00001
00002
00003
00004 #ifndef __I_GUI_TREE_VIEW_H_INCLUDED__
00005 #define __I_GUI_TREE_VIEW_H_INCLUDED__
00006
00007 #include "IGUIElement.h"
00008 #include "IGUIImageList.h"
00009 #include "irrTypes.h"
00010
00011 namespace irr
00012 {
00013 namespace gui
00014 {
00015 class IGUIFont;
00016 class IGUITreeView;
00017
00018
00020 class IGUITreeViewNode : public IReferenceCounted
00021 {
00022 public:
00024 virtual IGUITreeView* getOwner() const = 0;
00025
00027
00028 virtual IGUITreeViewNode* getParent() const = 0;
00029
00031 virtual const wchar_t* getText() const = 0;
00032
00034 virtual void setText( const wchar_t* text ) = 0;
00035
00037 virtual const wchar_t* getIcon() const = 0;
00038
00040 virtual void setIcon( const wchar_t* icon ) = 0;
00041
00043 virtual u32 getImageIndex() const = 0;
00044
00046 virtual void setImageIndex( u32 imageIndex ) = 0;
00047
00049 virtual u32 getSelectedImageIndex() const = 0;
00050
00052 virtual void setSelectedImageIndex( u32 imageIndex ) = 0;
00053
00055 virtual void* getData() const = 0;
00056
00058 virtual void setData( void* data ) = 0;
00059
00061 virtual IReferenceCounted* getData2() const = 0;
00062
00064 virtual void setData2( IReferenceCounted* data ) = 0;
00065
00067 virtual u32 getChildCount() const = 0;
00068
00070 virtual void clearChilds() = 0;
00071
00073 virtual bool hasChilds() const = 0;
00074
00076
00084 virtual IGUITreeViewNode* addChildBack(
00085 const wchar_t* text, const wchar_t* icon = 0,
00086 s32 imageIndex=-1, s32 selectedImageIndex=-1,
00087 void* data=0, IReferenceCounted* data2=0) =0;
00088
00090
00098 virtual IGUITreeViewNode* addChildFront(
00099 const wchar_t* text, const wchar_t* icon = 0,
00100 s32 imageIndex=-1, s32 selectedImageIndex=-1,
00101 void* data=0, IReferenceCounted* data2=0 ) =0;
00102
00104
00114 virtual IGUITreeViewNode* insertChildAfter(
00115 IGUITreeViewNode* other,
00116 const wchar_t* text, const wchar_t* icon = 0,
00117 s32 imageIndex=-1, s32 selectedImageIndex=-1,
00118 void* data=0, IReferenceCounted* data2=0) =0;
00119
00121
00131 virtual IGUITreeViewNode* insertChildBefore(
00132 IGUITreeViewNode* other,
00133 const wchar_t* text, const wchar_t* icon = 0,
00134 s32 imageIndex=-1, s32 selectedImageIndex=-1,
00135 void* data=0, IReferenceCounted* data2=0) = 0;
00136
00138
00139 virtual IGUITreeViewNode* getFirstChild() const = 0;
00140
00142
00143 virtual IGUITreeViewNode* getLastChild() const = 0;
00144
00146
00149 virtual IGUITreeViewNode* getPrevSibling() const = 0;
00150
00152
00155 virtual IGUITreeViewNode* getNextSibling() const = 0;
00156
00158
00160 virtual IGUITreeViewNode* getNextVisible() const = 0;
00161
00163
00164 virtual bool deleteChild( IGUITreeViewNode* child ) = 0;
00165
00167
00168 virtual bool moveChildUp( IGUITreeViewNode* child ) = 0;
00169
00171
00172 virtual bool moveChildDown( IGUITreeViewNode* child ) = 0;
00173
00175 virtual bool getExpanded() const = 0;
00176
00178 virtual void setExpanded( bool expanded ) = 0;
00179
00181 virtual bool getSelected() const = 0;
00182
00184 virtual void setSelected( bool selected ) = 0;
00185
00187 virtual bool isRoot() const = 0;
00188
00190
00191 virtual s32 getLevel() const = 0;
00192
00194 virtual bool isVisible() const = 0;
00195 };
00196
00197
00199
00202 class IGUITreeView : public IGUIElement
00203 {
00204 public:
00206 IGUITreeView(IGUIEnvironment* environment, IGUIElement* parent,
00207 s32 id, core::rect<s32> rectangle)
00208 : IGUIElement( EGUIET_TREE_VIEW, environment, parent, id, rectangle ) {}
00209
00211 virtual IGUITreeViewNode* getRoot() const = 0;
00212
00214 virtual IGUITreeViewNode* getSelected() const = 0;
00215
00217 virtual bool getLinesVisible() const = 0;
00218
00220
00221 virtual void setLinesVisible( bool visible ) = 0;
00222
00224
00230 virtual void setIconFont( IGUIFont* font ) = 0;
00231
00233
00234 virtual void setImageList( IGUIImageList* imageList ) = 0;
00235
00237 virtual IGUIImageList* getImageList() const = 0;
00238
00240 virtual void setImageLeftOfIcon( bool bLeftOf ) = 0;
00241
00243 virtual bool getImageLeftOfIcon() const = 0;
00244
00246
00247 virtual IGUITreeViewNode* getLastEventNode() const = 0;
00248 };
00249
00250
00251 }
00252 }
00253
00254 #endif
00255