|
IrrlichtEngine
|
00001 // Copyright (C) 2003-2011 Nikolaus Gebhardt 00002 // This file is part of the "Irrlicht Engine". 00003 // For conditions of distribution and use, see copyright notice in irrlicht.h 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 u32 getColumnWidth(u32 columnIndex) const = 0; 00118 00120 virtual void setResizableColumns(bool resizable) = 0; 00121 00123 virtual bool hasResizableColumns() const = 0; 00124 00126 00128 virtual void setColumnOrdering(u32 columnIndex, EGUI_COLUMN_ORDERING mode) = 0; 00129 00131 virtual s32 getSelected() const = 0; 00132 00134 virtual void setSelected( s32 index ) = 0; 00135 00137 virtual s32 getRowCount() const = 0; 00138 00140 00147 virtual u32 addRow(u32 rowIndex) = 0; 00148 00150 virtual void removeRow(u32 rowIndex) = 0; 00151 00153 virtual void clearRows() = 0; 00154 00156 virtual void swapRows(u32 rowIndexA, u32 rowIndexB) = 0; 00157 00159 00165 virtual void orderRows(s32 columnIndex=-1, EGUI_ORDERING_MODE mode=EGOM_NONE) = 0; 00166 00168 virtual void setCellText(u32 rowIndex, u32 columnIndex, const core::stringw& text) = 0; 00169 00171 virtual void setCellText(u32 rowIndex, u32 columnIndex, const core::stringw& text, video::SColor color) = 0; 00172 00174 virtual void setCellData(u32 rowIndex, u32 columnIndex, void *data) = 0; 00175 00177 virtual void setCellColor(u32 rowIndex, u32 columnIndex, video::SColor color) = 0; 00178 00180 virtual const wchar_t* getCellText(u32 rowIndex, u32 columnIndex ) const = 0; 00181 00183 virtual void* getCellData(u32 rowIndex, u32 columnIndex ) const = 0; 00184 00186 virtual void clear() = 0; 00187 00189 virtual void setDrawFlags(s32 flags) = 0; 00190 00192 virtual s32 getDrawFlags() const = 0; 00193 }; 00194 00195 00196 } // end namespace gui 00197 } // end namespace irr 00198 00199 #endif 00200