00001
00002
00003
00004
00005 #ifndef __I_GUI_TABLE_H_INCLUDED__
00006 #define __I_GUI_TABLE_H_INCLUDED__
00007
00008 #include "IGUIElement.h"
00009 #include "irrTypes.h"
00010 #include "SColor.h"
00011 #include "IGUISkin.h"
00012
00013 namespace irr
00014 {
00015 namespace gui
00016 {
00017
00019 enum EGUI_COLUMN_ORDERING
00020 {
00022 EGCO_NONE,
00023
00025 EGCO_CUSTOM,
00026
00028 EGCO_ASCENDING,
00029
00031 EGCO_DESCENDING,
00032
00034 EGCO_FLIP_ASCENDING_DESCENDING,
00035
00037 EGCO_COUNT
00038 };
00039
00041 const c8* const GUIColumnOrderingNames[] =
00042 {
00043 "none",
00044 "custom",
00045 "ascend",
00046 "descend",
00047 "ascend_descend",
00048 0,
00049 };
00050
00051 enum EGUI_ORDERING_MODE
00052 {
00054 EGOM_NONE,
00055
00057 EGOM_ASCENDING,
00058
00060 EGOM_DESCENDING,
00061
00064 EGOM_COUNT
00065 };
00066
00067 const c8* const GUIOrderingModeNames[] =
00068 {
00069 "none",
00070 "ascending",
00071 "descending",
00072 0
00073 };
00074
00075 enum EGUI_TABLE_DRAW_FLAGS
00076 {
00077 EGTDF_ROWS = 1,
00078 EGTDF_COLUMNS = 2,
00079 EGTDF_ACTIVE_ROW = 4,
00080 EGTDF_COUNT
00081 };
00082
00084
00089 class IGUITable : public IGUIElement
00090 {
00091 public:
00093 IGUITable(IGUIEnvironment* environment, IGUIElement* parent, s32 id, core::rect<s32> rectangle)
00094 : IGUIElement(EGUIET_TABLE, environment, parent, id, rectangle) {}
00095
00097
00098 virtual void addColumn(const wchar_t* caption, s32 columnIndex=-1) = 0;
00099
00101 virtual void removeColumn(u32 columnIndex) = 0;
00102
00104 virtual s32 getColumnCount() const = 0;
00105
00107
00110 virtual bool setActiveColumn(s32 idx, bool doOrder=false) = 0;
00111
00113 virtual s32 getActiveColumn() const = 0;
00114
00116 virtual EGUI_ORDERING_MODE getActiveColumnOrdering() const = 0;
00117
00119 virtual void setColumnWidth(u32 columnIndex, u32 width) = 0;
00120
00122 virtual u32 getColumnWidth(u32 columnIndex) const = 0;
00123
00125 virtual void setResizableColumns(bool resizable) = 0;
00126
00128 virtual bool hasResizableColumns() const = 0;
00129
00131
00133 virtual void setColumnOrdering(u32 columnIndex, EGUI_COLUMN_ORDERING mode) = 0;
00134
00136 virtual s32 getSelected() const = 0;
00137
00139 virtual void setSelected( s32 index ) = 0;
00140
00142 virtual s32 getRowCount() const = 0;
00143
00145
00152 virtual u32 addRow(u32 rowIndex) = 0;
00153
00155 virtual void removeRow(u32 rowIndex) = 0;
00156
00158 virtual void clearRows() = 0;
00159
00161 virtual void swapRows(u32 rowIndexA, u32 rowIndexB) = 0;
00162
00164
00170 virtual void orderRows(s32 columnIndex=-1, EGUI_ORDERING_MODE mode=EGOM_NONE) = 0;
00171
00173 virtual void setCellText(u32 rowIndex, u32 columnIndex, const core::stringw& text) = 0;
00174
00176 virtual void setCellText(u32 rowIndex, u32 columnIndex, const core::stringw& text, video::SColor color) = 0;
00177
00179 virtual void setCellData(u32 rowIndex, u32 columnIndex, void *data) = 0;
00180
00182 virtual void setCellColor(u32 rowIndex, u32 columnIndex, video::SColor color) = 0;
00183
00185 virtual const wchar_t* getCellText(u32 rowIndex, u32 columnIndex ) const = 0;
00186
00188 virtual void* getCellData(u32 rowIndex, u32 columnIndex ) const = 0;
00189
00191 virtual void clear() = 0;
00192
00194 virtual void setDrawFlags(s32 flags) = 0;
00195
00197 virtual s32 getDrawFlags() const = 0;
00198 };
00199
00200
00201 }
00202 }
00203
00204 #endif
00205