|
CrabUI
|
Button with multiple options which are rotating when you click. More...
Public Member Functions | |
| void | Add (string option) |
| void | Remove (string option) |
| void | Select (int i) |
| void | Select (string option) |
| void | SelectNext () |
| void | SelectPrev () |
Public Member Functions inherited from CrabUI.CUIButton | |
| void | DetermineColor () |
| override void | Draw (SpriteBatch spriteBatch) |
| Here component should be drawn. | |
| CUIButton (string text) | |
Public Member Functions inherited from CrabUI.CUITextBlock | |
| float | CaretPos (int i) |
| X coordinate of caret if there was one Used in CUITextInput, you don't need this. | |
| int | CaretIndex (float x) |
| Tndex of caret if there was one Used in CUITextInput, you don't need this. | |
| override void | Draw (SpriteBatch spriteBatch) |
| Here component should be drawn. | |
| CUITextBlock (string text) | |
Public Member Functions inherited from CrabUI.CUIComponent | |
| 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 | DrawFront (SpriteBatch spriteBatch) |
| Method for drawing something that should always be on top, e.g. resize handles. | |
| 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. | |
Protected Member Functions | |
| override Vector2 | DoWrapFor (Vector2 size) |
| CUITextBlock DoWrapFor but for all text. | |
Protected Member Functions inherited from CrabUI.CUITextBlock | |
| virtual void | MeasureUnwrapped () |
Protected Member Functions inherited from CrabUI.CUIComponent | |
| 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. | |
Properties | |
| IEnumerable< string > | Options [get, set] |
| Options are just strings. | |
| Action< string > | AddOnSelect [set] |
| bool | CycleOnClick = true [get, set] |
| int | SelectedIndex [get, set] |
| string | Selected [get, set] |
Properties inherited from CrabUI.CUIButton | |
| GUISoundType | ClickSound = GUISoundType.Select [get, set] |
| bool | PlaySound = true [get, set] |
| Color | DisabledColor [get, set] |
| Color | InactiveColor [get, set] |
| Color | MouseOverColor [get, set] |
| Color | MousePressedColor [get, set] |
| bool | AutoUpdateColor = true [get, set] |
| Color | MasterColor [set] |
| Convenient prop to set all colors at once. | |
| Color | MasterColorOpaque [set] |
| new Color | BackgroundColor [get, set] |
| BackgroundColor is used in base.Draw, but here it's calculated from colors above So it's not a prop anymore, and i don't want to serialize it. | |
Properties inherited from CrabUI.CUITextBlock | |
| Action | AddOnTextChanged [set] |
| bool | Wrap [get, set] |
| Color | TextColor [get, set] |
| GUIFont | Font [get, set] |
| Vector2 | TextAlign [get, set] |
| A Vector2 ([0..1],[0..1]) | |
| bool | Vertical [get, set] |
| bool | GhostText [get, set] |
| Lil optimization: ghost text won't set forsed size and parent won't be able to fit to it But it will increase performance in large lists. | |
| string | Text [get, set] |
| float | TextScale [get, set] |
| Vector2 | TextDrawPos [get, set] |
| string | WrappedText = "" [get, set] |
| Vector2 | WrappedSize [get, set] |
| Vector2 | UnwrappedTextSize [get, set] |
| Vector2 | UnwrappedMinSize [get, set] |
Properties inherited from CrabUI.CUIComponent | |
| 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] |
Properties inherited from CrabUI.ISimpleProps | |
Properties inherited from CrabUI.IListProps | |
Properties inherited from CrabUI.ISerializationProps | |
Events | |
| Action< string > | OnSelect |
Events inherited from CrabUI.CUITextBlock | |
| Action | OnTextChanged |
Events inherited from CrabUI.CUIComponent | |
| 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 Public Member Functions inherited from CrabUI.CUIComponent | |
| 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) |
Public Attributes inherited from CrabUI.CUIComponent | |
| 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 Public Attributes inherited from CrabUI.CUIComponent | |
| 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. | |
Protected Attributes inherited from CrabUI.CUITextBlock | |
| Vector2 | RealTextSize |
| Vector2? | WrappedForThisSize |
| bool | TextPropChanged |
| string | text = "" |
| float | textScale = 0.9f |
Protected Attributes inherited from CrabUI.CUIComponent | |
| CUILayout | layout |
| CUINullVector2 | forsedSize |
| float | scale = 1f |
| Color[] | TextureData |
| Buffer for texture data, for IgnoreTransparent checks. | |
| bool | disabled |
Package Functions inherited from CrabUI.CUITextBlock | |
Package Functions inherited from CrabUI.CUIComponent | |
Static Package Functions inherited from CrabUI.CUIComponent | |
Package Attributes inherited from CrabUI.CUIComponent | |
Static Package Attributes inherited from CrabUI.CUIComponent | |
Button with multiple options which are rotating when you click.
Definition at line 17 of file CUIMultiButton.cs.
| CrabUI.CUIMultiButton.CUIMultiButton | ( | ) |
Definition at line 71 of file CUIMultiButton.cs.
|
protectedvirtual |
CUITextBlock DoWrapFor but for all text.
| size |
Reimplemented from CrabUI.CUITextBlock.
Definition at line 90 of file CUIMultiButton.cs.
| void CrabUI.CUIMultiButton.Remove | ( | string | option | ) |
Definition at line 60 of file CUIMultiButton.cs.
|
set |
Definition at line 30 of file CUIMultiButton.cs.
|
getset |
Definition at line 32 of file CUIMultiButton.cs.
|
getset |
Options are just strings.
Definition at line 24 of file CUIMultiButton.cs.
|
getset |
Definition at line 49 of file CUIMultiButton.cs.
|
getset |
Definition at line 33 of file CUIMultiButton.cs.
| Action<string> CrabUI.CUIMultiButton.OnSelect |
Definition at line 29 of file CUIMultiButton.cs.