Duckcpp 2.1.0
Duckcpp is a high-performance c++ graphics engine.
Loading...
Searching...
No Matches
dcpp::gui::IGUITable Class Referenceabstract

Default list box GUI element. More...

#include <duckcpp/core/engine/IGUITable.hpp>

Inheritance diagram for dcpp::gui::IGUITable:
Inheritance graph
Collaboration diagram for dcpp::gui::IGUITable:
Collaboration graph

Public Member Functions

 IGUITable (IGUIEnvironment *environment, IGUIElement *parent, dcpp::int32_kt id, dcpp::nub::recti rectangle)
 constructor
 
virtual void addColumn (const wchar_t *caption, dcpp::int32_kt columnIndex=-1)=0
 Adds a column.
 
virtual void removeColumn (dcpp::uint32_kt columnIndex)=0
 remove a column from the table
 
virtual dcpp::int32_kt getColumnCount () const =0
 Returns the number of columns in the table control.
 
virtual bool setActiveColumn (dcpp::int32_kt idx, bool doOrder=false)=0
 Makes a column active. This will trigger an ordering process.
 
virtual dcpp::int32_kt getActiveColumn () const =0
 Returns which header is currently active.
 
virtual EGUI_ORDERING_MODE getActiveColumnOrdering () const =0
 Returns the ordering used by the currently active column.
 
virtual void setColumnWidth (dcpp::uint32_kt columnIndex, dcpp::uint32_kt width)=0
 Set the width of a column.
 
virtual dcpp::uint32_kt getColumnWidth (dcpp::uint32_kt columnIndex) const =0
 Get the width of a column.
 
virtual void setResizableColumns (bool resizable)=0
 columns can be resized by drag 'n drop
 
virtual bool hasResizableColumns () const =0
 can columns be resized by drag 'n drop?
 
virtual void setColumnOrdering (dcpp::uint32_kt columnIndex, EGUI_COLUMN_ORDERING mode)=0
 This tells the table control which ordering mode should be used when a column header is clicked.
 
virtual dcpp::int32_kt getSelected () const =0
 Returns which row is currently selected.
 
virtual void setSelected (dcpp::int32_kt index)=0
 set which row is currently selected
 
virtual dcpp::int32_kt getRowCount () const =0
 Get amount of rows in the tabcontrol.
 
virtual dcpp::uint32_kt addRow (dcpp::uint32_kt rowIndex)=0
 adds a row to the table
 
virtual void removeRow (dcpp::uint32_kt rowIndex)=0
 Remove a row from the table.
 
virtual void clearRows ()=0
 clears the table rows, but keeps the columns intact
 
virtual void swapRows (dcpp::uint32_kt rowIndexA, dcpp::uint32_kt rowIndexB)=0
 Swap two row positions.
 
virtual void orderRows (dcpp::int32_kt columnIndex=-1, EGUI_ORDERING_MODE mode=EGOM_NONE)=0
 This tells the table to start ordering all the rows.
 
virtual void setCellText (dcpp::uint32_kt rowIndex, dcpp::uint32_kt columnIndex, const dcpp::nub::wstring &text)=0
 Set the text of a cell.
 
virtual void setCellText (dcpp::uint32_kt rowIndex, dcpp::uint32_kt columnIndex, const dcpp::nub::wstring &text, dcpp::video::SColor color)=0
 Set the text of a cell, and set a color of this cell.
 
virtual void setCellData (dcpp::uint32_kt rowIndex, dcpp::uint32_kt columnIndex, void *data)=0
 Set the data of a cell.
 
virtual void setCellColor (dcpp::uint32_kt rowIndex, dcpp::uint32_kt columnIndex, dcpp::video::SColor color)=0
 Set the color of a cell text.
 
virtual const wchar_t * getCellText (dcpp::uint32_kt rowIndex, dcpp::uint32_kt columnIndex) const =0
 Get the text of a cell.
 
virtual void * getCellData (dcpp::uint32_kt rowIndex, dcpp::uint32_kt columnIndex) const =0
 Get the data of a cell.
 
virtual void clear ()=0
 clears the table, deletes all items in the table
 
virtual void setDrawFlags (dcpp::int32_kt flags)=0
 Set flags, as defined in EGUI_TABLE_DRAW_FLAGS, which influence the layout.
 
virtual dcpp::int32_kt getDrawFlags () const =0
 Get the flags, as defined in EGUI_TABLE_DRAW_FLAGS, which influence the layout.
 
virtual void setOverrideFont (IGUIFont *font=0)=0
 Sets another skin independent font.
 
virtual IGUIFontgetOverrideFont (void) const =0
 Gets the override font (if any)
 
virtual IGUIFontgetActiveFont () const =0
 Get the font which is used right now for drawing.
 
virtual dcpp::int32_kt getItemHeight () const =0
 Get the height of items/rows.
 
virtual IGUIScrollBargetVerticalScrollBar () const =0
 Access the vertical scrollbar.
 
virtual IGUIScrollBargetHorizontalScrollBar () const =0
 Access the horizontal scrollbar.
 
virtual void setDrawBackground (bool draw)=0
 Sets whether to draw the background.
 
virtual bool isDrawBackgroundEnabled () const =0
 Checks if background drawing is enabled.
 
- Public Member Functions inherited from dcpp::gui::IGUIElement
 IGUIElement (EGUI_ELEMENT_TYPE type, IGUIEnvironment *environment, IGUIElement *parent, dcpp::int32_kt id, const dcpp::nub::recti &rectangle)
 Constructor.
 
virtual ~IGUIElement ()
 Destructor.
 
IGUIElementgetParent () const
 Returns parent of this element.
 
dcpp::nub::recti getRelativePosition () const
 Returns the relative rectangle of this element.
 
void setRelativePosition (const dcpp::nub::recti &r)
 Sets the relative rectangle of this element.
 
void setRelativePosition (const dcpp::nub::position2di &position)
 Sets the relative rectangle of this element, maintaining its current width and height.
 
void setRelativePositionProportional (const dcpp::nub::rectf &r)
 Sets the relative rectangle of this element as a proportion of its parent's area.
 
dcpp::nub::recti getAbsolutePosition () const
 Gets the absolute rectangle of this element.
 
dcpp::nub::recti getAbsoluteClippingRect () const
 Returns the visible area of the element.
 
void setNotClipped (bool noClip)
 Sets whether the element will ignore its parent's clipping rectangle.
 
bool isNotClipped () const
 Gets whether the element will ignore its parent's clipping rectangle.
 
void setMaxSize (dcpp::nub::dimension2du size)
 Sets the maximum size allowed for this element.
 
void setMinSize (dcpp::nub::dimension2du size)
 Sets the minimum size allowed for this element.
 
void setAlignment (EGUI_ALIGNMENT left, EGUI_ALIGNMENT right, EGUI_ALIGNMENT top, EGUI_ALIGNMENT bottom)
 The alignment defines how the borders of this element will be positioned when the parent element is resized.
 
EGUI_ALIGNMENT getAlignLeft () const
 How left element border is aligned when parent is resized.
 
EGUI_ALIGNMENT getAlignRight () const
 How right element border is aligned when parent is resized.
 
EGUI_ALIGNMENT getAlignTop () const
 How top element border is aligned when parent is resized.
 
EGUI_ALIGNMENT getAlignBottom () const
 How bottom element border is aligned when parent is resized.
 
virtual void updateAbsolutePosition ()
 Updates the absolute position.
 
virtual IGUIElementgetElementFromPoint (const dcpp::nub::position2di &point)
 Returns the topmost GUI element at the specific position.
 
virtual bool isPointInside (const dcpp::nub::position2di &point) const
 Returns true if a point is within this element.
 
virtual void addChild (IGUIElement *child)
 Adds a GUI element as new child of this element.
 
virtual void removeChild (IGUIElement *child)
 Removes a child.
 
virtual void remove ()
 Removes this element from its parent.
 
virtual void draw ()
 Draws the element and its children.
 
virtual void OnPostRender (dcpp::uint32_kt timeMs)
 animate the element and its children.
 
virtual void move (dcpp::nub::position2di absoluteMovement)
 Moves this element.
 
virtual bool isVisible () const
 Returns true if element is visible.
 
virtual bool isTrulyVisible () const
 Check whether the element is truly visible, taking into accounts its parents' visibility.
 
virtual void setVisible (bool visible)
 Sets the visible state of this element.
 
virtual bool isSubElement () const
 Returns true if this element was created as part of its parent control.
 
virtual void setSubElement (bool subElement)
 Sets whether this control was created as part of its parent.
 
void setTabStop (bool enable)
 If set to true, the focus will visit this element when using the tab key to cycle through elements.
 
bool isTabStop () const
 Returns true if this element can be focused by navigating with the tab key.
 
void setTabOrder (dcpp::int32_kt index)
 Sets the priority of focus when using the tab key to navigate between a group of elements.
 
dcpp::int32_kt getTabOrder () const
 Returns the number in the tab order sequence.
 
void setTabGroup (bool isGroup)
 Sets whether this element is a container for a group of elements which can be navigated using the tab key.
 
bool isTabGroup () const
 Returns true if this element is a tab group.
 
IGUIElementgetTabGroup ()
 Returns the container element which holds all elements in this element's tab group.
 
virtual bool isEnabled () const
 Returns true if element is enabled.
 
virtual void setEnabled (bool enabled)
 Sets the enabled state of this element.
 
virtual void setText (const wchar_t *text)
 Sets the new caption of this element.
 
virtual const wchar_t * getText () const
 Returns caption of this element.
 
virtual void setToolTipText (const wchar_t *text)
 Sets the new caption of this element.
 
virtual const dcpp::nub::wstringgetToolTipText () const
 Returns caption of this element.
 
virtual dcpp::int32_kt getID () const
 Returns id. Can be used to identify the element.
 
virtual void setID (dcpp::int32_kt id)
 Sets the id of this element.
 
virtual bool OnEvent (const SEvent &event) override
 Called if an event happened.
 
virtual bool bringToFront (IGUIElement *element)
 Brings a child to front.
 
virtual bool sendToBack (IGUIElement *child)
 Moves a child to the back, so it's siblings are drawn on top of it.
 
virtual const dcpp::nub::list< IGUIElement * > & getChildren () const
 Returns list with children of this element.
 
virtual IGUIElementgetElementFromId (dcpp::int32_kt id, bool searchchildren=false) const
 Finds the first element with the given id.
 
bool isMyChild (IGUIElement *child) const
 
bool getNextElement (dcpp::int32_kt startOrder, bool reverse, bool group, IGUIElement *&first, IGUIElement *&closest, bool includeInvisible=false, bool includeDisabled=false) const
 searches elements to find the closest next element to tab to
 
EGUI_ELEMENT_TYPE getType () const
 Returns the type of the gui element.
 
virtual bool hasType (EGUI_ELEMENT_TYPE type) const
 Returns true if the gui element supports the given type.
 
virtual const dcpp::char_ktgetTypeName () const
 Returns the type name of the gui element.
 
virtual const dcpp::char_ktgetName () const
 Returns the name of the element.
 
virtual void setName (const dcpp::char_kt *name)
 Sets the name of the element.
 
virtual void setName (const dcpp::nub::string &name)
 Sets the name of the element.
 
virtual void serializeAttributes (dcpp::io::IAttributes *out, dcpp::io::SAttributeReadWriteOptions *options=0) const override
 Writes attributes of the scene node.
 
virtual void deserializeAttributes (dcpp::io::IAttributes *in, dcpp::io::SAttributeReadWriteOptions *options=0) override
 Reads attributes of the scene node.
 
- Public Member Functions inherited from dcpp::IReferenceCounted
 IReferenceCounted ()
 Constructor.
 
virtual ~IReferenceCounted ()
 Destructor.
 
void grab () const
 Grabs the object. Increments the reference counter by one.
 
bool drop () const
 Drops the object. Decrements the reference counter by one.
 
dcpp::int32_kt getReferenceCount () const
 Get the reference count.
 
const dcpp::char_ktgetDebugName () const
 Returns the debug name of the object.
 
- Public Member Functions inherited from dcpp::IEventReceiver
virtual ~IEventReceiver ()
 Destructor.
 

Additional Inherited Members

- Protected Member Functions inherited from dcpp::gui::IGUIElement
void addChildToEnd (IGUIElement *child)
 
void recalculateAbsolutePosition (bool recursive)
 
- Protected Member Functions inherited from dcpp::IReferenceCounted
void setDebugName (const dcpp::char_kt *newName)
 Sets the debug name of the object.
 
- Protected Attributes inherited from dcpp::gui::IGUIElement
dcpp::nub::list< IGUIElement * > Children
 List of all children of this element.
 
IGUIElementParent
 Pointer to the parent.
 
dcpp::nub::recti RelativeRect
 relative rect of element
 
dcpp::nub::recti AbsoluteRect
 absolute rect of element
 
dcpp::nub::recti AbsoluteClippingRect
 absolute clipping rect of element
 
dcpp::nub::recti DesiredRect
 
dcpp::nub::recti LastParentRect
 for calculating the difference when resizing parent
 
dcpp::nub::rectf ScaleRect
 relative scale of the element inside its parent
 
dcpp::nub::dimension2du MaxSize
 maximum and minimum size of the element
 
dcpp::nub::dimension2du MinSize
 
bool IsVisible
 is visible?
 
bool IsEnabled
 is enabled?
 
bool IsSubElement
 is a part of a larger whole and should not be serialized?
 
bool NoClip
 does this element ignore its parent's clipping rectangle?
 
dcpp::nub::wstring Text
 caption
 
dcpp::nub::wstring ToolTipText
 tooltip
 
dcpp::nub::string Name
 users can set this for identifying the element by string
 
dcpp::int32_kt ID
 users can set this for identifying the element by integer
 
bool IsTabStop
 tab stop like in windows
 
dcpp::int32_kt TabOrder
 tab order
 
bool IsTabGroup
 tab groups are containers like windows, use ctrl+tab to navigate
 
EGUI_ALIGNMENT AlignLeft
 tells the element how to act when its parent is resized
 
EGUI_ALIGNMENT AlignRight
 
EGUI_ALIGNMENT AlignTop
 
EGUI_ALIGNMENT AlignBottom
 
IGUIEnvironmentEnvironment
 GUI Environment.
 
EGUI_ELEMENT_TYPE Type
 type of element
 

Detailed Description

Default list box GUI element.

This element can create the following events of type EGUI_EVENT_TYPE:
  • EGET_TABLE_CHANGED
  • EGET_TABLE_SELECTED_AGAIN
  • EGET_TABLE_HEADER_CHANGED

Member Function Documentation

◆ addColumn()

virtual void dcpp::gui::IGUITable::addColumn ( const wchar_t *  caption,
dcpp::int32_kt  columnIndex = -1 
)
pure virtual

Adds a column.

If columnIndex is outside the current range, do push new column at the end

◆ addRow()

virtual dcpp::uint32_kt dcpp::gui::IGUITable::addRow ( dcpp::uint32_kt  rowIndex)
pure virtual

adds a row to the table

Parameters
rowIndexZero based index of rows. The row will be inserted at this position, if a row already exist there, it will be placed after it. If the row is larger than the actual number of row by more than one, it won't be created. Note that if you create a row that's not at the end, there might be performance issues.
Returns
index of inserted row.

◆ getActiveFont()

virtual IGUIFont * dcpp::gui::IGUITable::getActiveFont ( ) const
pure virtual

Get the font which is used right now for drawing.

Currently this is the override font when one is set and the font of the active skin otherwise

◆ getOverrideFont()

virtual IGUIFont * dcpp::gui::IGUITable::getOverrideFont ( void  ) const
pure virtual

Gets the override font (if any)

Returns
The override font (may be 0)

◆ isDrawBackgroundEnabled()

virtual bool dcpp::gui::IGUITable::isDrawBackgroundEnabled ( ) const
pure virtual

Checks if background drawing is enabled.

Returns
true if background drawing is enabled, false otherwise

◆ orderRows()

virtual void dcpp::gui::IGUITable::orderRows ( dcpp::int32_kt  columnIndex = -1,
EGUI_ORDERING_MODE  mode = EGOM_NONE 
)
pure virtual

This tells the table to start ordering all the rows.

You need to explicitly tell the table to re order the rows when a new row is added or the cells data is changed. This makes the system more flexible and doesn't make you pay the cost of ordering when adding a lot of rows.

Parameters
columnIndexWhen set to -1 the active column is used.
modeOrdering mode of the rows.

◆ setActiveColumn()

virtual bool dcpp::gui::IGUITable::setActiveColumn ( dcpp::int32_kt  idx,
bool  doOrder = false 
)
pure virtual

Makes a column active. This will trigger an ordering process.

Parameters
idxThe id of the column to make active or a negative number to make non active.
doOrderDo also the ordering which depending on mode for active column
Returns
True when the column could be set active (aka - it did exist).

◆ setColumnOrdering()

virtual void dcpp::gui::IGUITable::setColumnOrdering ( dcpp::uint32_kt  columnIndex,
EGUI_COLUMN_ORDERING  mode 
)
pure virtual

This tells the table control which ordering mode should be used when a column header is clicked.

Parameters
columnIndexThe index of the column header.
modeOne of the modes defined in EGUI_COLUMN_ORDERING

◆ setOverrideFont()

virtual void dcpp::gui::IGUITable::setOverrideFont ( IGUIFont font = 0)
pure virtual

Sets another skin independent font.

If this is set to zero, the button uses the font of the skin.

Parameters
fontNew font to set.

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

Duckcpp    @cppfx.xyz