Gorgon Game Engine
ListItem Class Reference

This widget is designed to be used by Listbox, Table, Grid and Treeview. More...

Inheritance diagram for ListItem:
[legend]

Public Member Functions

 ListItem (const UI::Template &temp)
 Constructor requires template. ListItem. More...
 
virtual bool Activate () override
 Activates the widget. More...
 
const Graphics::AnimationGetIcon () const
 Returns the icon on the label. More...
 
int GetIndex () const
 Returns the index of the Item in the Listbox. More...
 
YesNoUnset GetOpened () const
 Returns whether the item is opened and displaying subitems. More...
 
Parity GetParity () const
 Returns the odd/even parity. More...
 
ItemPosition GetPosition () const
 Returns the position of this item in the list. This is not automated. More...
 
bool GetSelected () const
 Return selection status. More...
 
std::string GetText () const
 Returns the currently displayed text. More...
 
bool HasIcon () const
 Returns if the label has an icon. More...
 
void OwnIcon ()
 Transfers the ownership of the current icon. More...
 
void OwnIcon (const Graphics::Animation &value)
 Sets the icon while transferring the ownership. More...
 
void OwnIcon (Graphics::Bitmap &&value)
 Moves the given animation to the icon of the label. More...
 
void RemoveIcon ()
 Removes the icon on the label. More...
 
void SetIcon (const Graphics::Animation &value)
 Changes the icon on the label. More...
 
void SetIcon (const Graphics::Bitmap &value)
 Changes the icon on the label. More...
 
void SetIconProvider (const Graphics::AnimationProvider &value)
 Changes the icon on the label. More...
 
void SetIconProvider (Graphics::AnimationProvider &&provider)
 Changes the icon on the label. More...
 
void SetIndex (long value)
 Sets the index of the ListItem in the Listbox. More...
 
void SetOpened (YesNoUnset value)
 Sets whether the item is opened and displaying subitems. More...
 
void SetParity (Parity value)
 Set odd/even parity of the widget. More...
 
void SetPosition (ItemPosition value)
 Sets the position of this item in the list. More...
 
void SetSelected (bool value)
 Sets selection status of the widget. More...
 
void SetText (const std::string &value)
 Changes the text displayed. More...
 
- Public Member Functions inherited from ComponentStackWidget
 ComponentStackWidget (ComponentStackWidget &&)=default
 
 ComponentStackWidget (const Template &temp, std::map< ComponentTemplate::Tag, std::function< Widget *(const Template &)>> generators={})
 
virtual ~ComponentStackWidget ()
 
virtual Geometry::Point GetLocation () const override
 Returns the location of the widget. More...
 
virtual Geometry::Size GetSize () const override
 Returns the size of the widget. More...
 
virtual bool IsEnabled () const override
 Returns whether the widget is enabled. More...
 
virtual void Move (const Geometry::Point &location) override
 Moves this widget to the given position. More...
 
virtual void Move (const Geometry::Point &location)=0
 Moves this widget to the given position. More...
 
void Move (int x, int y)
 Moves this widget to the given position. More...
 
virtual void Resize (const Geometry::Size &size) override
 Changes the size of the widget. More...
 
virtual void Resize (const Geometry::Size &size)=0
 Changes the size of the widget. More...
 
virtual void Resize (int w, int h)
 Changes the size of the widget. More...
 
virtual void SetEnabled (bool value) override
 Sets the enabled state of the widget. More...
 
- Public Member Functions inherited from Widget
 Widget ()
 
 Widget (Widget &&)=default
 
virtual ~Widget ()
 
bool AllowFocus () const
 If this widget can be focused currently. More...
 
virtual bool CharacterEvent (Char)
 This function should be called whenever a character is received from operating system. More...
 
bool Defocus ()
 Removes the focus from this widget if this widget is focused. More...
 
void Disable ()
 Disables the widget so that the user cannot interact with it. More...
 
virtual bool Done ()
 For widgets that supports it, this will trigger finalization the user interaction. More...
 
void Enable ()
 Enables the widget so that the user can interact with it. More...
 
bool EnsureVisible () const
 Ensures this widget is visible in its container by scrolling it into view. More...
 
bool Focus ()
 Transfers the focus to this widget. More...
 
Geometry::Bounds GetBounds () const
 Returns the bounds of the widget. More...
 
int GetHeight () const
 Returns the height of the widget. More...
 
WidgetContainerGetParent () const
 Returns the parent of this widget, throws if it does not have a parent. More...
 
int GetWidth () const
 Returns the width of the widget. More...
 
bool HasParent () const
 Returns if this widget has a parent. More...
 
void Hide ()
 Hides this widget, when hidden, widgets cannot gain focus. More...
 
bool IsFloating () const
 Returns floating status of this widget. More...
 
bool IsFocused () const
 Returns if this widget is focused. More...
 
bool IsVisible () const
 Returns if the widget is visible. More...
 
virtual bool KeyEvent (Input::Key, float)
 This function should be called whenever a key is pressed or released. More...
 
void Move (int x, int y)
 Moves this widget to the given position. More...
 
bool Remove ()
 Removes the widget from its parent. More...
 
virtual void Resize (int w, int h)
 Changes the size of the widget. More...
 
void SetHeight (int height)
 Sets the height of the widget. More...
 
virtual void SetIsFloating (bool value)
 Sets floating status of this widget. More...
 
void setname (std::string value)
 This is a debug feature. More...
 
void SetVisible (bool value)
 Changes the visibility of the widget. More...
 
void SetWidth (int width)
 Sets the width of the widget. More...
 
void Show ()
 Shows this widget, widgets are visible by default. More...
 
void ToggleEnabled ()
 Toggles enabled state of the widget. More...
 
void ToggleVisible ()
 Toggles the visibility state of the widget. More...
 

Public Attributes

Event< ListItemClickEvent
 Fired when the item is clicked. This includes clicks to toggle area. More...
 
Event< ListItemToggleEvent
 If template has a ToggleTag, this will be raised only if that component is clicked. More...
 
- Public Attributes inherited from Widget
Event< WidgetBoundsChangedEvent
 This event will be fired when the area that the widget occupies on its container is changed. More...
 
std::string dbgname
 
Event< WidgetFocusEvent
 This event will be fired when the widget receives or looses focus. More...
 
Geometry::PointProperty< Widget, &Widget::getlocation, &Widget::move > Location
 
Geometry::SizeProperty< Widget, &Widget::getsize, &Widget::resize > Size
 

Protected Member Functions

virtual bool allowfocus () const override
 Should return true if the widget can be focused. More...
 
- Protected Member Functions inherited from ComponentStackWidget
virtual void addto (Layer &layer) override
 When called, widget should locate itself on to this layer. More...
 
virtual void focused () override
 This is called after the focus is transferred to this widget. More...
 
virtual void focuslost () override
 This is called after the focus is lost. More...
 
virtual void parentenabledchanged (bool state) override
 This function is called when the parent's enabled state changes. More...
 
virtual void removed () override
 Called after this widget is removed from its parent. More...
 
virtual void removefrom (Layer &layer) override
 When called, widget should remove itself from the given layer. More...
 
virtual void setlayerorder (Layer &, int order) override
 When called, widget should reorder itself in layer hierarchy. More...
 
- Protected Member Functions inherited from Widget
virtual void addedto (WidgetContainer &container)
 Called when this widget added to the given container. More...
 
virtual bool addingto (WidgetContainer &)
 Called when it is about to be added to the given container. More...
 
virtual void boundschanged ()
 Call this function when the widget bounds is changed. More...
 
virtual bool canloosefocus () const
 Should return true if the widget can loose the focus right now. More...
 
virtual void displaced ()
 Call this function when the widget container causes it to be displaced. More...
 
virtual bool removingfrom ()
 Called before this widget is removed from its parent. More...
 

Additional Inherited Members

- Protected Attributes inherited from ComponentStackWidget
bool enabled
 
bool parentenabled
 
ComponentStackstack
 

Detailed Description

This widget is designed to be used by Listbox, Table, Grid and Treeview.

It can be used separately, however, it has minimal functionality. The rest of the functionality is provided by the host widget.

This widget is meant to be used in listboxes to display the contents. ListItem only supports strings; therefore, conversion is necessary at the Listbox side. ListboxItem does not perform any operation by itself. All state changes should be facilitated by the listbox. State changes apart from hover/down/disabled/focused are not automatic. Finally, apart from the inherited properties, this widget does not feature any properties.

ClickEvent will be raise when the widget is clicked. This event will be raised first if the widget will be toggled too. Toggle event will be called depending on the template. If the template features ToggleTag, only clicking ToggleTag component will raise this event. Otherwise, every click will raise it. Even if ToggleTag component is clicked, ClickEvent will be fired first.

Constructor & Destructor Documentation

◆ ListItem()

Member Function Documentation

◆ Activate()

bool Activate ( )
overridevirtual

Activates the widget.

This might perform the action if the widget is a button, forward the focus if it is a label or focus if it is an input field.

Implements Widget.

References ListItem::ToggleEvent.

◆ allowfocus()

bool allowfocus ( ) const
overrideprotectedvirtual

Should return true if the widget can be focused.

Reimplemented from Widget.

◆ GetIcon()

const Graphics::Animation& GetIcon ( ) const

Returns the icon on the label.

If the label does not have an icon, this function will throw

References ListItem::HasIcon().

◆ GetIndex()

int GetIndex ( ) const

Returns the index of the Item in the Listbox.

◆ GetOpened()

YesNoUnset GetOpened ( ) const

Returns whether the item is opened and displaying subitems.

◆ GetParity()

Parity GetParity ( ) const

Returns the odd/even parity.

◆ GetPosition()

ItemPosition GetPosition ( ) const

Returns the position of this item in the list. This is not automated.

◆ GetSelected()

bool GetSelected ( ) const

Return selection status.

◆ GetText()

std::string GetText ( ) const

Returns the currently displayed text.

◆ HasIcon()

bool HasIcon ( ) const

Returns if the label has an icon.

◆ OwnIcon() [1/3]

void OwnIcon ( )

Transfers the ownership of the current icon.

◆ OwnIcon() [2/3]

void OwnIcon ( const Graphics::Animation value)

Sets the icon while transferring the ownership.

References ListItem::SetIcon().

◆ OwnIcon() [3/3]

void OwnIcon ( Graphics::Bitmap &&  value)

Moves the given animation to the icon of the label.

References ListItem::OwnIcon().

◆ RemoveIcon()

void RemoveIcon ( )

◆ SetIcon() [1/2]

void SetIcon ( const Graphics::Animation value)

Changes the icon on the label.

The ownership of the animation is not transferred. If you wish the animation to be destroyed with the label, use OwnIcon instead.

References Base::DeleteAnimation(), ComponentTemplate::Icon, ComponentStack::SetData(), and ComponentStackWidget::stack.

◆ SetIcon() [2/2]

void SetIcon ( const Graphics::Bitmap value)

Changes the icon on the label.

The ownership of the bitmap is not transferred. If you wish the bitmap to be destroyed with the label, use OwnIcon instead.

◆ SetIconProvider() [1/2]

void SetIconProvider ( const Graphics::AnimationProvider value)

Changes the icon on the label.

This will create a new animation from the given provider and will own the resultant animation.

References AnimationProvider::CreateAnimation(), and ListItem::OwnIcon().

◆ SetIconProvider() [2/2]

void SetIconProvider ( Graphics::AnimationProvider &&  provider)

Changes the icon on the label.

This will move in the provider, create a new animation and own both the provider and the animation

References AnimationProvider::CreateAnimation(), and ListItem::OwnIcon().

◆ SetIndex()

void SetIndex ( long  value)

Sets the index of the ListItem in the Listbox.

◆ SetOpened()

void SetOpened ( YesNoUnset  value)

Sets whether the item is opened and displaying subitems.

This will not actually display any subitems, but only an indication. Depending on the template No might display + icon, Yes might display - icon. Setting this value to Unset will ensure no indication will be displayed.

References ComponentStack::AddCondition(), Gorgon::UI::Closed, Gorgon::UI::Opened, ComponentStack::RemoveCondition(), and ComponentStackWidget::stack.

◆ SetParity()

void SetParity ( Parity  value)

Set odd/even parity of the widget.

Depending on the template this might not have any effect at all.

References ComponentStack::AddCondition(), Gorgon::UI::Even, Gorgon::None, Gorgon::UI::Odd, ComponentStack::RemoveCondition(), and ComponentStackWidget::stack.

◆ SetPosition()

void SetPosition ( ItemPosition  value)

Sets the position of this item in the list.

Depending on the template this might display visual cues or used as a way to connect treeview items to their parent.

References ComponentStack::AddCondition(), Gorgon::UI::Alone, Gorgon::First, Gorgon::UI::First, Gorgon::Last, Gorgon::UI::Last, Gorgon::Input::Mouse::Middle, ComponentStack::RemoveCondition(), and ComponentStackWidget::stack.

◆ SetSelected()

void SetSelected ( bool  value)

Sets selection status of the widget.

Depending on the template, selected status might invert colors or display checkbox, radiobutton or similar indication that the item is selected.

References ComponentStack::AddCondition(), ComponentStack::RemoveCondition(), ComponentStackWidget::stack, and Gorgon::UI::State2.

◆ SetText()

void SetText ( const std::string &  value)

Changes the text displayed.

Depending on the template, text might be overwritten by icon.

References ComponentStack::SetData(), ComponentStackWidget::stack, and ComponentTemplate::Text.

Member Data Documentation

◆ ClickEvent

Event<ListItem> ClickEvent

Fired when the item is clicked. This includes clicks to toggle area.

◆ ToggleEvent

Event<ListItem> ToggleEvent

If template has a ToggleTag, this will be raised only if that component is clicked.

Otherwise this will be raised when anywhere is clicked. This event will be fired after ClickEvent. Only case when toggle event will not be triggered is when this widget gets activated


The documentation for this class was generated from the following files: