Irrlicht 3D Engine
IGUITable.h
Go to the documentation of this file.
1 // Copyright (C) 2003-2012 Nikolaus Gebhardt
2 // This file is part of the "Irrlicht Engine".
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
4 
5 #ifndef __I_GUI_TABLE_H_INCLUDED__
6 #define __I_GUI_TABLE_H_INCLUDED__
7 
8 #include "IGUIElement.h"
9 #include "SColor.h"
10 
11 namespace irr
12 {
13 namespace gui
14 {
15  class IGUIFont;
16  class IGUIScrollBar;
17 
20  {
23 
26 
29 
32 
35 
38  };
39 
41  const c8* const GUIColumnOrderingNames[] =
42  {
43  "none",
44  "custom",
45  "ascend",
46  "descend",
47  "ascend_descend",
48  0,
49  };
50 
52  {
55 
58 
61 
65  };
66 
67  const c8* const GUIOrderingModeNames[] =
68  {
69  "none",
70  "ascending",
71  "descending",
72  0
73  };
74 
76  {
81  };
82 
84 
89  class IGUITable : public IGUIElement
90  {
91  public:
93  IGUITable(IGUIEnvironment* environment, IGUIElement* parent, s32 id, core::rect<s32> rectangle)
94  : IGUIElement(EGUIET_TABLE, environment, parent, id, rectangle) {}
95 
97 
98  virtual void addColumn(const wchar_t* caption, s32 columnIndex=-1) = 0;
99 
101  virtual void removeColumn(u32 columnIndex) = 0;
102 
104  virtual s32 getColumnCount() const = 0;
105 
107 
110  virtual bool setActiveColumn(s32 idx, bool doOrder=false) = 0;
111 
113  virtual s32 getActiveColumn() const = 0;
114 
116  virtual EGUI_ORDERING_MODE getActiveColumnOrdering() const = 0;
117 
119  virtual void setColumnWidth(u32 columnIndex, u32 width) = 0;
120 
122  virtual u32 getColumnWidth(u32 columnIndex) const = 0;
123 
125  virtual void setResizableColumns(bool resizable) = 0;
126 
128  virtual bool hasResizableColumns() const = 0;
129 
131 
133  virtual void setColumnOrdering(u32 columnIndex, EGUI_COLUMN_ORDERING mode) = 0;
134 
136  virtual s32 getSelected() const = 0;
137 
139  virtual void setSelected( s32 index ) = 0;
140 
142  virtual s32 getRowCount() const = 0;
143 
145 
152  virtual u32 addRow(u32 rowIndex) = 0;
153 
155  virtual void removeRow(u32 rowIndex) = 0;
156 
158  virtual void clearRows() = 0;
159 
161  virtual void swapRows(u32 rowIndexA, u32 rowIndexB) = 0;
162 
164 
170  virtual void orderRows(s32 columnIndex=-1, EGUI_ORDERING_MODE mode=EGOM_NONE) = 0;
171 
173  virtual void setCellText(u32 rowIndex, u32 columnIndex, const core::stringw& text) = 0;
174 
176  virtual void setCellText(u32 rowIndex, u32 columnIndex, const core::stringw& text, video::SColor color) = 0;
177 
179  virtual void setCellData(u32 rowIndex, u32 columnIndex, void *data) = 0;
180 
182  virtual void setCellColor(u32 rowIndex, u32 columnIndex, video::SColor color) = 0;
183 
185  virtual const wchar_t* getCellText(u32 rowIndex, u32 columnIndex ) const = 0;
186 
188  virtual void* getCellData(u32 rowIndex, u32 columnIndex ) const = 0;
189 
191  virtual void clear() = 0;
192 
194  virtual void setDrawFlags(s32 flags) = 0;
195 
197  virtual s32 getDrawFlags() const = 0;
198 
200 
202  virtual void setOverrideFont(IGUIFont* font=0) = 0;
203 
205 
206  virtual IGUIFont* getOverrideFont(void) const = 0;
207 
209 
211  virtual IGUIFont* getActiveFont() const = 0;
212 
214  virtual s32 getItemHeight() const = 0;
215 
217  virtual IGUIScrollBar* getVerticalScrollBar() const = 0;
218 
220  virtual IGUIScrollBar* getHorizontalScrollBar() const = 0;
221 
223  virtual void setDrawBackground(bool draw) = 0;
224 
226 
227  virtual bool isDrawBackgroundEnabled() const = 0;
228  };
229 
230 
231 } // end namespace gui
232 } // end namespace irr
233 
234 #endif
235 
virtual IGUIFont * getOverrideFont(void) const =0
Gets the override font (if any)
virtual s32 getSelected() const =0
Returns which row is currently selected.
virtual IGUIScrollBar * getHorizontalScrollBar() const =0
Access the horizontal scrollbar.
virtual void orderRows(s32 columnIndex=-1, EGUI_ORDERING_MODE mode=EGOM_NONE)=0
This tells the table to start ordering all the rows.
IGUITable(IGUIEnvironment *environment, IGUIElement *parent, s32 id, core::rect< s32 > rectangle)
constructor
Definition: IGUITable.h:93
virtual void setDrawFlags(s32 flags)=0
Set flags, as defined in EGUI_TABLE_DRAW_FLAGS, which influence the layout.
virtual void removeRow(u32 rowIndex)=0
Remove a row from the table.
virtual void clear()=0
clears the table, deletes all items in the table
virtual s32 getDrawFlags() const =0
Get the flags, as defined in EGUI_TABLE_DRAW_FLAGS, which influence the layout.
char c8
8 bit character variable.
Definition: irrTypes.h:35
virtual void setCellColor(u32 rowIndex, u32 columnIndex, video::SColor color)=0
Set the color of a cell text.
Do not use ordering.
Definition: IGUITable.h:22
virtual void setCellData(u32 rowIndex, u32 columnIndex, void *data)=0
Set the data of a cell.
virtual void setCellText(u32 rowIndex, u32 columnIndex, const core::stringw &text)=0
Set the text of a cell.
virtual const wchar_t * getCellText(u32 rowIndex, u32 columnIndex) const =0
Get the text of a cell.
Elements are ordered from the smallest to the largest.
Definition: IGUITable.h:57
Sort it ascending on first click, descending on next, etc.
Definition: IGUITable.h:34
Everything in the Irrlicht Engine can be found in this namespace.
Definition: aabbox3d.h:12
EGUI_COLUMN_ORDERING
modes for ordering used when a column header is clicked
Definition: IGUITable.h:19
virtual u32 addRow(u32 rowIndex)=0
adds a row to the table
GUI Environment. Used as factory and manager of all other GUI elements.
const c8 *const GUIOrderingModeNames[]
Definition: IGUITable.h:67
Not used as mode, only to get maximum value for this enum.
Definition: IGUITable.h:37
Very simple string class with some useful features.
Definition: irrString.h:37
virtual u32 getColumnWidth(u32 columnIndex) const =0
Get the width of a column.
const c8 *const GUIColumnOrderingNames[]
Names for EGUI_COLUMN_ORDERING types.
Definition: IGUITable.h:41
virtual void setColumnWidth(u32 columnIndex, u32 width)=0
Set the width of a column.
Font interface.
Definition: IGUIFont.h:39
virtual IGUIScrollBar * getVerticalScrollBar() const =0
Access the vertical scrollbar.
virtual bool hasResizableColumns() const =0
can columns be resized by drag 'n drop?
signed int s32
32 bit signed variable.
Definition: irrTypes.h:70
Default scroll bar GUI element.
Definition: IGUIScrollBar.h:19
virtual s32 getColumnCount() const =0
Returns the number of columns in the table control.
virtual void draw()
Draws the element and its children.
Definition: IGUIElement.h:309
virtual s32 getRowCount() const =0
Get amount of rows in the tabcontrol.
unsigned int u32
32 bit unsigned variable.
Definition: irrTypes.h:62
virtual void removeColumn(u32 columnIndex)=0
remove a column from the table
EGUI_ORDERING_MODE
Definition: IGUITable.h:51
virtual s32 getActiveColumn() const =0
Returns which header is currently active.
EGUI_TABLE_DRAW_FLAGS
Definition: IGUITable.h:75
Sort it ascending by it's ascii value like: a,b,c,...
Definition: IGUITable.h:28
virtual void setOverrideFont(IGUIFont *font=0)=0
Sets another skin independent font.
virtual IGUIFont * getActiveFont() const =0
Get the font which is used right now for drawing.
Class representing a 32 bit ARGB color.
Definition: SColor.h:314
Base class of all GUI elements.
Definition: IGUIElement.h:23
virtual s32 getItemHeight() const =0
Get the height of items/rows.
virtual void setColumnOrdering(u32 columnIndex, EGUI_COLUMN_ORDERING mode)=0
This tells the table control which ordering mode should be used when a column header is clicked.
Default list box GUI element.
Definition: IGUITable.h:89
virtual bool setActiveColumn(s32 idx, bool doOrder=false)=0
Makes a column active. This will trigger an ordering process.
virtual void clearRows()=0
clears the table rows, but keeps the columns intact
virtual void setSelected(s32 index)=0
set which row is currently selected
Elements are ordered from the largest to the smallest.
Definition: IGUITable.h:60
virtual void addColumn(const wchar_t *caption, s32 columnIndex=-1)=0
Adds a column.
virtual bool isDrawBackgroundEnabled() const =0
Checks if background drawing is enabled.
virtual void * getCellData(u32 rowIndex, u32 columnIndex) const =0
Get the data of a cell.
virtual EGUI_ORDERING_MODE getActiveColumnOrdering() const =0
Returns the ordering used by the currently active column.
No element ordering.
Definition: IGUITable.h:54
virtual void setResizableColumns(bool resizable)=0
columns can be resized by drag 'n drop
virtual void setDrawBackground(bool draw)=0
Sets whether to draw the background.
Sort it descending by it's ascii value like: z,x,y,...
Definition: IGUITable.h:31
Send a EGET_TABLE_HEADER_CHANGED message when a column header is clicked.
Definition: IGUITable.h:25
virtual void swapRows(u32 rowIndexA, u32 rowIndexB)=0
Swap two row positions.