Overview | Package | Class | Source | Class tree | Glossary | UnrealScript Documentation |
previous class next class | frames no frames |
00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 00025 00026 00027 00028 00029 00030 00031 00032 00033 00034 00035 00036 00037 00038 00039 00040 00041 00042 00043 00044 00045 00046 00047 00048 00049 00050 00051 00052 00053 00054 00055 00056 00057 00058 00059 00060 00061 00062 00063 00064 00065 00066 00067 00068 00069 00070 00071 00072 00073 00074 00075 00076 00077 00078 00079 00080 00081 00082 00083 00084 00085 00086 00087 00088 00089 00090 00091 00092 00093 00094 00095 00096 00097 00098 00099 00100 00101 00102 00103 00104 00105 00106 00107 00108 00109 00110 00111 00112 00113 00114 00115 00116 00117 00118 00119 00120 00121 00122 00123 00124 00125 00126 00127 00128 00129 00130 00131 00132 00133 00134 00135 00136 00137 00138 00139 00140 00141 00142 00143 00144 00145 00146 00147 00148 00149 00150 00151 00152 00153 00154 00155 00156 00157 00158 00159 00160 00161 00162 00163 00164 00165 00166 00167 00168 00169 00170 00171 00172 00173 00174 00175 00176 00177 00178 00179 00180 00181 00182 00183 00184 00185 00186 00187 00188 00189 00190 00191 00192 00193 00194 00195 00196 00197 00198 00199 00200 00201 00202 00203 00204 00205 00206 00207 00208 00209 00210 00211 00212 00213 00214 00215 00216 00217 00218 00219 00220 00221 00222 00223 00224 00225 00226 00227 00228 00229 00230 00231 00232 00233 00234 00235 00236 00237 00238 00239 00240 00241 00242 00243 00244 00245 00246 00247 00248 00249 00250 00251 00252 00253 00254 00255 00256 00257 00258 00259 00260 00261 00262 00263 00264 00265 00266 00267 00268 00269 00270 00271 00272 00273 00274 00275 00276 00277 00278 00279 00280 00281 00282 00283 00284 00285 00286 00287 00288 00289 00290 00291 00292 00293 00294 00295 00296 00297 00298 00299 00300 00301 00302 00303 00304 00305 00306 00307 00308 00309 00310 00311 00312 00313 00314 00315 00316 00317 00318 00319 00320 00321 00322 00323 00324 00325 00326 00327 00328 00329 00330 00331 00332 00333 00334 00335 00336 00337 00338 00339 00340 00341 00342 00343 00344 00345 |
/** * Modifies the behavior, appearance, available events, or actions for a single widget. Every widget has at last two * UIStates - enabled and disabled, but can have as many as necessary. Other common widget states might be focused, * active, pressed, dragging (i.e. drag-n-drop), or selected. * * Examples of things a UIState may do include replacing the widget's image or changing the appearance of the widget in * some other fashion, such as brightening, adding a bevel, etc. * * Copyright 1998-2008 Epic Games, Inc. All Rights Reserved. */ class UIState extends UIRoot native(inherit) abstract implements(UIEventContainer) editinlinenew; /** * Contains the events, actions, and variables that are only available while this state is active. * * Marked noimport because UUISceneFactoryText uses accessor functions to create the creates sequences for pasted objects, so * we don't want to overwrite the value of the pasted widget's StateSequence with the value from the paste text. */ var instanced noimport UIStateSequence StateSequence; /** * The list of events that should be de-activated while this UIState is in scope. When the state becomes active, it will * remove these events from the widget's list of active events, and will prevent any other UIStates from activating that * event type as long as this UIState is still active. */ //@todo - figure out the best data structure for exposing this //var() editinline array<class<UIEvent> > EventsToSuppress; /** * The list of input keys (and their associated actions) to activate when this state becomes active. When the state becomes * active, any input actions in this list will be added to the widget's input processing event. If the widget does not have * a input processing event, one is automatically created. When this state is deactivated, the input actions in this list are * removed from the widget's event processor. */ var array<InputKeyAction> StateInputActions; /** * Contains the input keys that the designer wants to remove from this state's supported input keys. Only those input actions * which are generated from a default input action [declared in a widget class's default properties] need to be in this array. * Required to prevent the code that instances default input key actions that were added by the programmer after the designer * placed this widget from re-instancing input keys that the designer has removed from this state's list of supported input keys. */ var array<InputKeyAction> DisabledInputActions; /** * The list of input keys (and their associated actions) that should be disabled while this UIState is in scope. When the state * becomes active, it will remove these input actions from the widget's input processing event. When this state is deactivated, * it will readd these input actions to the widget's input processor */ //var() editinline array<InputKeyAction> InputActionsToSuppress; /** * Allows UIStates to specify a particular mouse cursor that should be used while this state is active. Can be overridden * by the widget that owns this UIState, and must correspond to a cursor resource name from the active skin's MouseCursorMap. */ var() name MouseCursorName; /** * A bitmask representing the indexes [into the Engine.GamePlayers array] that this state has been activated for. The value * is generated by left bitshifting by the index of the player. * A value of 1 << 1 indicates that this state was activated by the player at index 1. So value of 3 means that this state * is active for the players at indexes 0 and 1. */ var transient byte PlayerIndexMask; /** * Controls where the state will be inserted into the owning widget's StateStack array. States with a higher value will * always be inserted after states with a lower value. */ var transient const byte StackPriority; // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) // (cpptext) /** * Determines whether this state can be used by the widget class specified. Only used in the UI editor to remove * unsupported states from the various controls and menus. */ event bool IsWidgetClassSupported( class<UIScreenObject> WidgetClass ) { return WidgetClass != None; } /** * Determines whether this state has been activated for the specified player index * * @param PlayerIndex the index [into the Engine.GamePlayers array] of the player to check for * * @return TRUE if this state has been activated for the specified player. */ native final function bool IsActiveForPlayer( int PlayerIndex ) const; /** * Activate this state for the specified target. * * @param Target the widget that is activating this state. * @param PlayerIndex the index [into the Engine.GamePlayers array] for the player that generated this call * * @return TRUE to allow this state to be activated for the specified Target. */ event bool ActivateState( UIScreenObject Target, int PlayerIndex ) { return true; } /** * Deactivate this state for the specified target. * * @param Target the widget that is deactivating this state. * @param PlayerIndex the index [into the Engine.GamePlayers array] for the player that generated this call * * @return TRUE to allow this state to be deactivated for the specified Target. */ event bool DeactivateState( UIScreenObject Target, int PlayerIndex ) { return true; } /** * Notification that Target has made this state its active state. * * @param Target the widget that activated this state. * @param PlayerIndex the index [into the Engine.GamePlayers array] for the player that generated this call * @param bPushedState TRUE when this state has just been added to the owning widget's StateStack; FALSE if this state * is being activated for additional players in split-screen */ event OnActivate( UIScreenObject Target, int PlayerIndex, bool bPushedState ); /** * Notification that Target has just deactivated this state. * * @param Target the widget that deactivated this state. * @param PlayerIndex the index [into the Engine.GamePlayers array] for the player that generated this call * @param bPoppedState TRUE when this state has been removed from the owning widget's StateStack; FALSE if this state * is still active for at least one player (i.e. in split-screen) */ event OnDeactivate( UIScreenObject Target, int PlayerIndex, bool bPoppedState ); /** * Allows states currently in a widget's StateStack to prevent the widget from entering a new state. This * function is only called for states currently in the widget's StateStack. * * @param Target the widget that wants to enter the new state * @param NewState the new state that widget wants to enter * @param PlayerIndex the index [into the Engine.GamePlayers array] for the player that generated this call * * @return TRUE if the widget should be allowed to enter the state specified. * * @fixme splitscreen */ event bool IsStateAllowed( UIScreenObject Target, UIState NewState, int PlayerIndex ) { // default behavior is to simply prevent duplicate states from being in the target's StateStack, unless we're activating // a state for another player // return NewState != Self || (PlayerIndexMask & (1 << PlayerIndex)) == 0; // attempting to add a state which is already in the state stack is now handled differently return true; } /* == UIEventContainer interface == */ /** * Retrieves the UIEvents contained by this container. * * @param out_Events will be filled with the UIEvent instances stored in by this container * @param LimitClass if specified, only events of the specified class (or child class) will be added to the array */ native final function GetUIEvents( out array<UIEvent> out_Events, optional class<UIEvent> LimitClass ); /** * Adds a new SequenceObject to this containers's list of ops * * @param NewObj the sequence object to add. * @param bRecurse if TRUE, recursively add any sequence objects attached to this one * * @return TRUE if the object was successfully added to the sequence. * */ native final function bool AddSequenceObject( SequenceObject NewObj, optional bool bRecurse ); /** * Removes the specified SequenceObject from this container's list of ops. * * @param ObjectToRemove the sequence object to remove */ native final function RemoveSequenceObject( SequenceObject ObjectToRemove ); /** * Removes the specified SequenceObjects from this container's list of ops. * * @param ObjectsToRemove the objects to remove from this sequence */ native final function RemoveSequenceObjects( const out array<SequenceObject> ObjectsToRemove ); defaultproperties { MouseCursorName="Arrow" Name="Default__UIState" ObjectArchetype=UIRoot'Engine.Default__UIRoot' } |
Overview | Package | Class | Source | Class tree | Glossary | UnrealScript Documentation |
previous class next class | frames no frames |