CrabUI
|
Drop down list, aka Select. More...
Public Member Functions | |
void | Open () |
void | Close () |
void | Clear () |
void | Add (string option) |
void | Select (int i) |
void | Select (string option) |
void | Remove (int i) |
void | Remove (string option) |
![]() | |
void | AddAnimation (string name, CUIAnimation animation) |
void | BlockChildrenAnimations () |
void | AttachTo (Item item, Action< Item, CUIComponent > callback=null) |
void | AddCommand (string name, Action< object > action) |
Manually adds command. | |
void | RemoveCommand (string name) |
void | DispatchUp (CUICommand command) |
Dispathes command up the component tree until someone consumes it. | |
void | DispatchDown (CUIData data) |
Dispathes command down the component tree until someone consumes it. | |
void | Execute (CUICommand command) |
Will execute action corresponding to this command. | |
virtual partial void | Draw (SpriteBatch spriteBatch) |
Here component should be drawn. | |
virtual partial void | DrawFront (SpriteBatch spriteBatch) |
Method for drawing something that should always be on top, e.g. resize handles. | |
virtual partial void | Draw (SpriteBatch spriteBatch) |
virtual partial void | DrawFront (SpriteBatch spriteBatch) |
CUIComponent (float? x=null, float? y=null, float? w=null, float? h=null) | |
void | Dispose () |
virtual void | CleanUp () |
override string | ToString () |
void | PrintTree (string offset="") |
void | Info (object msg, [CallerFilePath] string source="", [CallerLineNumber] int lineNumber=0) |
Prints component and then message. | |
CUIComponent | Remember (CUIComponent c, string name) |
CUIComponent | Remember (CUIComponent c) |
If it already has AKA. | |
CUIComponent | Forget (string name) |
CUIComponent | Forget (CUIComponent c) |
If it already has AKA. | |
virtual CUIComponent | Get (string name) |
Returns memorized component by name. | |
T | Get< T > (string name) |
void | CascadeRefresh () |
virtual bool | IsPointOnTransparentPixel (Vector2 point) |
virtual bool | ShouldInvoke (CUIInput e) |
void | InvokeOnLayoutUpdated () |
record | CompareResult (bool equal, string firstMismatch="") |
CUIComponent | Clone () |
void | SaveStateAs (string name) |
void | LoadState (string name) |
void | ForgetState (string name) |
void | ApplyState (CUIComponent state) |
virtual XElement | ToXML (CUIAttribute propAttribute=CUIAttribute.CUISerializable) |
virtual void | FromXML (XElement element, string baseFolder=null) |
string | Serialize (CUIAttribute propAttribute=CUIAttribute.CUISerializable) |
void | LoadSelfFromFile (string path, bool searchForSpritesInTheSameFolder=true, bool saveAfterLoad=false) |
void | LoadFromTheSameFile () |
void | SaveToTheSamePath () |
void | SaveToFile (string path, CUIAttribute propAttribute=CUIAttribute.CUISerializable) |
virtual void | Hydrate () |
Experimental method Here you can add data/ callbacks/ save stuff to variables after loading a xml skeletom. | |
virtual CUIComponent | Append (CUIComponent child, string name=null, [CallerMemberName] string memberName="") |
Adds children to the end of the list. | |
virtual CUIComponent | Prepend (CUIComponent child, string name=null, [CallerMemberName] string memberName="") |
Adds children to the begining of the list. | |
virtual CUIComponent | Insert (CUIComponent child, int index, string name=null, [CallerMemberName] string memberName="") |
void | RemoveSelf () |
CUIComponent | RemoveChild (CUIComponent child, [CallerMemberName] string memberName="") |
void | RemoveAllChildren ([CallerMemberName] string memberName="") |
void | MoveToFront () |
Moves component to front in Parent.Children which makes it render after other childs. | |
Properties | |
IEnumerable< string > | Options [get, set] |
List of options Options are just strings. | |
string | Selected [get, set] |
Action< string > | AddOnSelect [set] |
![]() | |
AttachedItemHandle | AttachedItemHandle [get, set] |
string | Command [get, set] |
This command will be dispatched up when some component specific event happens. | |
string | Consumes [get, set] |
Will consume data with this name. | |
bool | ReflectCommands [get, set] |
bool | RetranslateCommands [get, set] |
ObservableCollection< string > | Emits [get, set] |
Optimization to data flow If not empty component will search for consumers of the data and pass it directly to them instead of broadcasting it. | |
Dictionary< string, Action< object > > | Commands = new() [get, set] |
All commands. | |
static IEnumerable< CUIComponent > | AllComponents [get] |
bool | Debug [get, set] |
bool | IgnoreDebug [get, set] |
string | AKA [get, set] |
Parent can memorize it's children by their names, AKA. | |
Dictionary< string, CUIComponent > | NamedComponents = new() [get, set] |
All memorized components. | |
CUIComponent | this[string name] [get, set] |
You can access NamedComponents with this indexer. | |
bool | ConsumeMouseClicks [get, set] |
bool | ConsumeDragAndDrop [get, set] |
bool | ConsumeSwipe [get, set] |
bool | ConsumeMouseScroll [get, set] |
Action< double > | AddOnUpdate [set] |
Action< CUIInput > | AddOnMouseLeave [set] |
Action< CUIInput > | AddOnMouseEnter [set] |
Action< CUIInput > | AddOnMouseDown [set] |
Action< CUIInput > | AddOnMouseUp [set] |
Action< CUIInput > | AddOnMouseMove [set] |
Action< CUIInput > | AddOnMouseOn [set] |
Action< CUIInput > | AddOnMouseOff [set] |
Action< CUIInput > | AddOnClick [set] |
Action< CUIInput > | AddOnDClick [set] |
Action< CUIInput > | AddOnScroll [set] |
Action< float, float > | AddOnDrag [set] |
Action< float, float > | AddOnSwipe [set] |
Action< CUIInput > | AddOnKeyDown [set] |
Action< CUIInput > | AddOnKeyUp [set] |
Action< CUIInput > | AddOnTextInput [set] |
Action | AddOnFocus [set] |
Action | AddOnFocusLost [set] |
bool | Draggable [get, set] |
bool | Focusable [get, set] |
bool | Resizible [get, set] |
bool | ResizibleLeft [get, set] |
bool | ResizibleRight [get, set] |
CUIBool2 | ResizeDirection [get, set] |
bool | Swipeable [get, set] |
virtual CUILayout | Layout [get, set] |
Dictionary< string, CUIComponent > | States = new() [get, set] |
State is just a clone component with copies of all props. | |
string | SavePath [get, set] |
int | ID [get, set] |
Global ID, unique for component. | |
CUIMainComponent | MainComponent [get, set] |
Link to CUIMainComponent, passed to children. | |
bool | Focused [get, set] |
bool | BackgroundVisible [get, set] |
BackgroundColor != Color.Transparent. | |
bool | OutlineVisible [get, set] |
bool | MouseOver [get, set] |
bool | MousePressed [get, set] |
CUINullVector2 | ForcedMinSize [get, set] |
This is used by text to prevent resizing beyond that and works as AbsoluteMin. | |
float | Scale [get, set] |
This is set by ChildrenOffset when zooming, and iirc consumed by text to adjust text scale. | |
CUIRect | BorderBox [get, set] |
Calculated Prop, Real + BorderThickness. | |
CUIRect | OutlineBox [get, set] |
CUIRect | Real [get, set] |
Calculated prop, position on real screen in pixels Should be fully calculated after CUIMainComponent.Update. | |
CUIStyle | Style [get, set] |
Allows you to assing parsable string or link to CUIPalette to any prop It's indexable, so you can access it like this: component.Style["BackgroundColor"] = "cyan" if value starts with "CUIPalette." it will extract the value from palette e.g. component.Style["BackgroundColor"] = "CUIPalette.DarkBlue.Secondary.On" | |
CUIStyle | ResolvedStyle [get, set] |
List< CUIComponent > | Children = new() [get, set] |
CUIComponent? | Parent [get, set] |
IEnumerable< CUIComponent > | AddChildren [set] |
Allows you to add array of children. | |
CUIComponentProps | CUIProps = new() [get, set] |
Just a wrapper for CUIProps idk how to separate them better. | |
Vector2 | Padding [get, set] |
Used for text, should be in CUITextBlock really. | |
CUISprite | BorderSprite = CUISprite.Default [get, set] |
Should be one texture, not sprite sheet Or there would be no way to wrap it Top side will always point outwards. | |
CUIBorder | Border = new CUIBorder() [get, set] |
Container for Color and Thickness Border is drawn inside the component and will eat space from content If "by side" border prop != null then it'll take presidence. | |
CUIBorder | TopBorder [get, set] |
CUIBorder | RigthBorder [get, set] |
CUIBorder | BottomBorder [get, set] |
CUIBorder | LeftBorder [get, set] |
float | OutlineThickness = 1f [get, set] |
Color | OutlineColor [get, set] |
Outline is like a border, but on the outside of the component. | |
CUISprite | BackgroundSprite [get, set] |
Will be drawn in background with BackgroundColor Default is solid white 1x1 texture. | |
bool | IgnoreTransparent [get, set] |
If true, mouse events on transparent pixels will be ignored Note: this will buffer texture data and potentially consume a lot of memory so use wisely. | |
Color | BackgroundColor [get, set] |
Color of BackgroundSprite, default is black If you're using custom sprite and don't see it make sure this color is not black. | |
float | Transparency [get, set] |
PaletteOrder | Palette [get, set] |
This palette will be used to resolve palette styles Primary, Secondary, Tertiary, Quaternary. | |
PaletteOrder | DeepPalette [set] |
Color | ResizeHandleColor = Color.White [get, set] |
Had to expose resize handle props, because it's not a real component and can't really use styles. | |
Color | ResizeHandleGrabbedColor = Color.Cyan [get, set] |
SamplerState | SamplerState [get, set] |
don't | |
bool | HideChildrenOutsideFrame [get, set] |
Should children be cut off by scissor rect, this is just visual, it's not the same as culling. | |
bool | CullChildren [get, set] |
if child rect doesn't intersect with parent it won't be drawn and won't consume fps It also sets HideChildrenOutsideFrame | |
bool | UnCullable [get, set] |
It shouldn't be culled off even outside of parent bounds and even if parent demands so. | |
CUI3DOffset | ChildrenOffset [get, set] |
Will shift all children by this much, e.g. this is how scroll works It's also 3D. | |
Func< CUIRect, CUIBoundaries > | ChildrenBoundaries [get, set] |
Limits to children positions. | |
bool | Fixed [get, set] |
Should it ignore child offset? | |
Vector2 | Anchor [get, set] |
this point of this component | |
Vector2? | ParentAnchor [get, set] |
will be attached to this point of parent | |
CUIBool2 | Ghost [get, set] |
Ghost components don't affect layout. | |
int? | ZIndex [get, set] |
Components are drawn in order of their ZIndex Normally it's derived from component position in the tree, but this will override it. | |
bool | ResizeToSprite [get, set] |
If true component will set it's Absolute size to sprite texture size. | |
CUIBool2 | FillEmptySpace [get, set] |
Will be resized to fill empty space in list components. | |
CUIBool2 | FitContent [get, set] |
Will resize itself to fit components with absolute size, e.g. text. | |
CUINullRect | Absolute [get, set] |
Absolute size and position in pixels. | |
CUINullRect | AbsoluteMin [get, set] |
CUINullRect | AbsoluteMax [get, set] |
CUINullRect | Relative [get, set] |
Relative to parent size and position, [0..1]. | |
CUINullRect | RelativeMin [get, set] |
CUINullRect | RelativeMax [get, set] |
CUINullRect | CrossRelative [get, set] |
It's like Relative, but to the opposite dimension E.g. Real.Width = CrossRelative.Width * Parent.Real.Height Handy for creating square things. | |
string | GridTemplateRows [get, set] |
Used in Grid, space separated Row sizes, either in pixels (123) or in % (123%) | |
string | GridTemplateColumns [get, set] |
Used in Grid, space separated Columns sizes, either in pixels (123) or in % (123%) | |
Point? | GridStartCell [get, set] |
Component will be placed in this cell in the grid component. | |
Point? | GridEndCell [get, set] |
And resized to fit cells from GridStartCell to GridEndCell. | |
Point? | GridCell [get, set] |
Sets both GridStartCell and GridEndCell at once. | |
object | Data [get, set] |
Arbitrary data. | |
virtual bool | Disabled [get, set] |
Usually means - non interactable, e.g. unclickable gray button. | |
bool | ShouldPassPropsToChildren = true [get, set] |
Some props (like visible) are autopassed to all new childs see PassPropsToChild. | |
bool | IgnoreParentVisibility [get, set] |
Don't inherit parent Visibility. | |
bool | IgnoreParentEventIgnorance [get, set] |
Don't inherit parent IgnoreEvents. | |
bool | IgnoreParentZIndex [get, set] |
Don't inherit parent ZIndex. | |
bool | IgnoreParentTransparency [get, set] |
bool | Visible [get, set] |
Invisible components are not drawn, but still can be interacted with. | |
bool | IgnoreEvents [get, set] |
Won't react to mouse events. | |
bool | Revealed [get, set] |
Visible + !IgnoreEvents. | |
bool | Serializable = true [get, set] |
If false then this component and its children won't be serialized. | |
bool | SerializeChildren = true [get, set] |
Is this a serialization cutoff point Parent will serialize children down to this component and stop. | |
bool | MergeSerialization = false [get, set] |
If true it won't be deserialized, Instead its children will be detached and attached to the component with matching AKA on the parent. | |
bool | ReplaceSerialization = false [get, set] |
If true, deserialized component will replace existing component with the same AKA instead of creating a duplicate. | |
static bool | ForceSaveAllProps = false [get, set] |
![]() | |
![]() | |
![]() |
Events | |
Action< string > | OnSelect |
![]() | |
Action< CUICommand > | OnAnyCommand |
this will be executed on any command | |
Action< CUIData > | OnAnyData |
Will be executed when receiving any data. | |
Action< Object > | OnConsume |
Happens when appropriate data is received. | |
Action | OnTreeChanged |
Action< double > | OnUpdate |
Action< CUIInput > | OnMouseLeave |
Action< CUIInput > | OnMouseEnter |
Action< CUIInput > | OnMouseDown |
Action< CUIInput > | OnMouseUp |
Action< CUIInput > | OnMouseMove |
Action< CUIInput > | OnMouseOn |
Action< CUIInput > | OnMouseOff |
Action< CUIInput > | OnClick |
Action< CUIInput > | OnDClick |
Action< CUIInput > | OnScroll |
Action< float, float > | OnDrag |
Action< float, float > | OnSwipe |
Action< CUIInput > | OnKeyDown |
Action< CUIInput > | OnKeyUp |
Action< CUIInput > | OnTextInput |
Action | OnFocus |
Action | OnFocusLost |
Action | OnLayoutUpdated |
Action | OnStyleApplied |
Use it to e.g. update component color. | |
Action< CUIComponent > | OnChildAdded |
Action< CUIComponent > | OnChildRemoved |
Additional Inherited Members | |
![]() | |
static void | RunRecursiveOn (CUIComponent component, Action< CUIComponent > action) |
designed to be versatile, in fact never used | |
static void | ForEach (Action< CUIComponent > action) |
static IEnumerable< Type > | GetClassHierarchy (Type type) |
static IEnumerable< Type > | GetReverseClassHierarchy (Type type) |
static bool | DeepCompareVerbose (CUIComponent a, CUIComponent b) |
static CompareResult | DeepCompare (CUIComponent a, CUIComponent b) |
static CUIComponent | Deserialize (string raw, string baseFolder=null) |
static CUIComponent | Deserialize (XElement e, string baseFolder=null) |
static CUIComponent | LoadFromFile (string path, bool searchForSpritesInTheSameFolder=true, bool saveAfterLoad=false) |
static T | LoadFromFile< T > (string path, bool searchForSpritesInTheSameFolder=true, bool saveAfterLoad=false) |
![]() | |
Indexer< string, CUIAnimation > | Animations |
Dictionary< string, List< CUIComponent > > | DataTargets = new() |
Consumers of emmited data, updates on tree change. | |
bool | Disposed |
bool | ignoreDebug |
For debug frame itself. | |
CUIResizeHandle | LeftResizeHandle = new CUIResizeHandle(new Vector2(0, 1), new CUIBool2(false, false)) |
CUIResizeHandle | RightResizeHandle = new CUIResizeHandle(new Vector2(1, 1), new CUIBool2(true, false)) |
![]() | |
static Dictionary< int, WeakReference< CUIComponent > > | ComponentsById = new() |
static WeakCatalog< Type, CUIComponent > | ComponentsByType = new() |
static GUIButton | dummyComponent |
This is used to trick vanilla GUI into believing that mouse is hovering some component and block clicks. | |
![]() | |
void | ExtractProps (XElement element, string baseFolder=null) |
void | PackProps (XElement element, CUIAttribute propAttribute=CUIAttribute.CUISerializable) |
virtual void | PassPropsToChild (CUIComponent child) |
Pass props like ZIndex, Visible to a new child. | |
![]() | |
CUILayout | layout |
CUINullVector2 | forsedSize |
float | scale = 1f |
Color[] | TextureData |
Buffer for texture data, for IgnoreTransparent checks. | |
bool | disabled |
![]() | |
![]() | |
![]() | |
![]() |
Drop down list, aka Select.
Definition at line 17 of file CUIDropDown.cs.
CrabUI.CUIDropDown.CUIDropDown | ( | ) |
Definition at line 89 of file CUIDropDown.cs.
void CrabUI.CUIDropDown.Add | ( | string | option | ) |
Definition at line 61 of file CUIDropDown.cs.
void CrabUI.CUIDropDown.Clear | ( | ) |
Definition at line 55 of file CUIDropDown.cs.
void CrabUI.CUIDropDown.Remove | ( | string | option | ) |
Definition at line 78 of file CUIDropDown.cs.
void CrabUI.CUIDropDown.Select | ( | string | option | ) |
Definition at line 70 of file CUIDropDown.cs.
|
set |
Definition at line 49 of file CUIDropDown.cs.
|
getset |
List of options
Options are just strings.
Definition at line 32 of file CUIDropDown.cs.
|
getset |
Definition at line 42 of file CUIDropDown.cs.
Action<string> CrabUI.CUIDropDown.OnSelect |
Definition at line 48 of file CUIDropDown.cs.