1
0
KF2-Dev-Scripts/Engine/Classes/UIDataStore_MenuItems.uc
2020-12-13 18:01:13 +03:00

82 lines
2.8 KiB
Ucode

/**
* This data store provides information for automatically generating lists of widgets
* given a collection of metadata provided by the UIDataProvider_MenuItem class.
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class UIDataStore_MenuItems extends UIDataStore_GameResource
native(inherit)
config(UI);
/**
* the tag used to retrieve the menu items for the gametype options of the OnlineGameSettings datastore's selected game configuration.
*/
var const name CurrentGameSettingsTag;
/** collection of providers per part type. */
var const private native transient MultiMap_Mirror OptionProviders{TMultiMap<FName, class UUIDataProvider_MenuItem*>};
/** Array of dynamically created providers. */
var transient array<UIDataProvider_MenuItem> DynamicProviders;
cpptext
{
/**
* Called when this data store is added to the data store manager's list of active data stores.
*
* @param PlayerOwner the player that will be associated with this DataStore. Only relevant if this data store is
* associated with a particular player; NULL if this is a global data store.
*/
virtual void OnRegister( ULocalPlayer* PlayerOwner );
}
/**
* Handler for the OnlineGameSettings data store's OnDataProviderPropertyChange delegate. When the selected gametype is
* changed, updates the current game option set.
*
* @param SourceProvider the data provider that generated the notification
* @param PropTag the property that changed
*/
function OnGameSettingsChanged( UIDataProvider SourceProvider, optional name PropTag )
{
local UIDataStore_OnlineGameSettings GameSettingsDataStore;
GameSettingsDataStore = UIDataStore_OnlineGameSettings(SourceProvider);
if ( GameSettingsDataStore != None && PropTag == 'SelectedIndex' )
{
RefreshSubscribers(CurrentGameSettingsTag, true, Self);
}
}
/* === UIDataStore interface === */
/**
* Called when this data store is added to the data store manager's list of active data stores.
*
* @param PlayerOwner the player that will be associated with this DataStore. Only relevant if this data store is
* associated with a particular player; NULL if this is a global data store.
*/
event Registered( LocalPlayer PlayerOwner )
{
Super.Registered(PlayerOwner);
}
/**
* Called when this data store is removed from the data store manager's list of active data stores.
*
* @param PlayerOwner the player that will be associated with this DataStore. Only relevant if this data store is
* associated with a particular player; NULL if this is a global data store.
*/
event Unregistered( LocalPlayer PlayerOwner )
{
Super.Unregistered(PlayerOwner);
}
DefaultProperties
{
Tag=MenuItems
CurrentGameSettingsTag=CurrentGameSettings
}