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 class IGUITable : public IGUIElement
00085 {
00086 public:
00088 IGUITable(IGUIEnvironment* environment, IGUIElement* parent, s32 id, core::rect<s32> rectangle)
00089 : IGUIElement(EGUIET_TABLE, environment, parent, id, rectangle) {}
00090
00092
00093 virtual void addColumn(const wchar_t* caption, s32 columnIndex=-1) = 0;
00094
00096 virtual void removeColumn(u32 columnIndex) = 0;
00097
00099 virtual s32 getColumnCount() const = 0;
00100
00102
00105 virtual bool setActiveColumn(s32 idx, bool doOrder=false) = 0;
00106
00108 virtual s32 getActiveColumn() const = 0;
00109
00111 virtual EGUI_ORDERING_MODE getActiveColumnOrdering() const = 0;
00112
00114 virtual void setColumnWidth(u32 columnIndex, u32 width) = 0;
00115
00117 virtual void setResizableColumns(bool resizable) = 0;
00118
00120 virtual bool hasResizableColumns() const = 0;
00121
00123
00125 virtual void setColumnOrdering(u32 columnIndex, EGUI_COLUMN_ORDERING mode) = 0;
00126
00128 virtual s32 getSelected() const = 0;
00129
00131 virtual void setSelected( s32 index ) = 0;
00132
00134 virtual s32 getRowCount() const = 0;
00135
00137
00144 virtual u32 addRow(u32 rowIndex) = 0;
00145
00147 virtual void removeRow(u32 rowIndex) = 0;
00148
00150 virtual void clearRows() = 0;
00151
00153 virtual void swapRows(u32 rowIndexA, u32 rowIndexB) = 0;
00154
00156
00162 virtual void orderRows(s32 columnIndex=-1, EGUI_ORDERING_MODE mode=EGOM_NONE) = 0;
00163
00165 virtual void setCellText(u32 rowIndex, u32 columnIndex, const core::stringw& text) = 0;
00166
00168 virtual void setCellText(u32 rowIndex, u32 columnIndex, const core::stringw& text, video::SColor color) = 0;
00169
00171 virtual void setCellData(u32 rowIndex, u32 columnIndex, void *data) = 0;
00172
00174 virtual void setCellColor(u32 rowIndex, u32 columnIndex, video::SColor color) = 0;
00175
00177 virtual const wchar_t* getCellText(u32 rowIndex, u32 columnIndex ) const = 0;
00178
00180 virtual void* getCellData(u32 rowIndex, u32 columnIndex ) const = 0;
00181
00183 virtual void clear() = 0;
00184
00186 virtual void setDrawFlags(s32 flags) = 0;
00187
00189 virtual s32 getDrawFlags() const = 0;
00190 };
00191
00192
00193 }
00194 }
00195
00196 #endif
00197