| Irrlicht 3D Engine |

IGUITreeView.h
Go to the documentation of this file.

    00001 // written by Reinhard Ostermeier, reinhard@nospam.r-ostermeier.de
    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_TREE_VIEW_H_INCLUDED__
    00006 #define __I_GUI_TREE_VIEW_H_INCLUDED__
    00007
    00008 #include "IGUIElement.h"
    00009 #include "IGUIImageList.h"
    00010 #include "irrTypes.h"
    00011
    00012 namespace irr
    00013 {
    00014 namespace gui
    00015 {
    00016     class IGUIFont;
    00017     class IGUITreeView;
    00018
    00019
    00021
    00027     class IGUITreeViewNode : public IReferenceCounted
    00028     {
    00029     public:
    00031         virtual IGUITreeView* getOwner() const = 0;
    00032
    00034
    00035         virtual IGUITreeViewNode* getParent() const = 0;
    00036
    00038         virtual const wchar_t* getText() const = 0;
    00039
    00041         virtual void setText( const wchar_t* text ) = 0;
    00042
    00044         virtual const wchar_t* getIcon() const = 0;
    00045
    00047         virtual void setIcon( const wchar_t* icon ) = 0;
    00048
    00050         virtual u32 getImageIndex() const = 0;
    00051
    00053         virtual void setImageIndex( u32 imageIndex ) = 0;
    00054
    00056         virtual u32 getSelectedImageIndex() const = 0;
    00057
    00059         virtual void setSelectedImageIndex( u32 imageIndex ) = 0;
    00060
    00062         virtual void* getData() const = 0;
    00063
    00065         virtual void setData( void* data ) = 0;
    00066
    00068         virtual IReferenceCounted* getData2() const = 0;
    00069
    00071         virtual void setData2( IReferenceCounted* data ) = 0;
    00072
    00074         virtual u32 getChildCount() const = 0;
    00075
    00077         virtual void clearChildren() = 0;
    00078
    00080
    00082         _IRR_DEPRECATED_ void clearChilds()
    00083         {
    00084             return clearChildren();
    00085         }
    00086
    00088         virtual bool hasChildren() const = 0;
    00089
    00091
    00093         _IRR_DEPRECATED_ bool hasChilds() const
    00094         {
    00095             return hasChildren();
    00096         }
    00097
    00099
    00107         virtual IGUITreeViewNode* addChildBack(
    00108                 const wchar_t* text, const wchar_t* icon = 0,
    00109                 s32 imageIndex=-1, s32 selectedImageIndex=-1,
    00110                 void* data=0, IReferenceCounted* data2=0) =0;
    00111
    00113
    00121         virtual IGUITreeViewNode* addChildFront(
    00122                 const wchar_t* text, const wchar_t* icon = 0,
    00123                 s32 imageIndex=-1, s32 selectedImageIndex=-1,
    00124                 void* data=0, IReferenceCounted* data2=0 ) =0;
    00125
    00127
    00137         virtual IGUITreeViewNode* insertChildAfter(
    00138                 IGUITreeViewNode* other,
    00139                 const wchar_t* text, const wchar_t* icon = 0,
    00140                 s32 imageIndex=-1, s32 selectedImageIndex=-1,
    00141                 void* data=0, IReferenceCounted* data2=0) =0;
    00142
    00144
    00154         virtual IGUITreeViewNode* insertChildBefore(
    00155                 IGUITreeViewNode* other,
    00156                 const wchar_t* text, const wchar_t* icon = 0,
    00157                 s32 imageIndex=-1, s32 selectedImageIndex=-1,
    00158                 void* data=0, IReferenceCounted* data2=0) = 0;
    00159
    00161
    00162         virtual IGUITreeViewNode* getFirstChild() const = 0;
    00163
    00165
    00166         virtual IGUITreeViewNode* getLastChild() const = 0;
    00167
    00169
    00172         virtual IGUITreeViewNode* getPrevSibling() const = 0;
    00173
    00175
    00178         virtual IGUITreeViewNode* getNextSibling() const = 0;
    00179
    00181
    00183         virtual IGUITreeViewNode* getNextVisible() const = 0;
    00184
    00186
    00187         virtual bool deleteChild( IGUITreeViewNode* child ) = 0;
    00188
    00190
    00191         virtual bool moveChildUp( IGUITreeViewNode* child ) = 0;
    00192
    00194
    00195         virtual bool moveChildDown( IGUITreeViewNode* child ) = 0;
    00196
    00198         virtual bool getExpanded() const = 0;
    00199
    00201         virtual void setExpanded( bool expanded ) = 0;
    00202
    00204         virtual bool getSelected() const = 0;
    00205
    00207         virtual void setSelected( bool selected ) = 0;
    00208
    00210         virtual bool isRoot() const = 0;
    00211
    00213
    00214         virtual s32 getLevel() const = 0;
    00215
    00217         virtual bool isVisible() const = 0;
    00218     };
    00219
    00220
    00222
    00225     class IGUITreeView : public IGUIElement
    00226     {
    00227     public:
    00229         IGUITreeView(IGUIEnvironment* environment, IGUIElement* parent,
    00230                 s32 id, core::rect<s32> rectangle)
    00231             : IGUIElement( EGUIET_TREE_VIEW, environment, parent, id, rectangle ) {}
    00232
    00234         virtual IGUITreeViewNode* getRoot() const = 0;
    00235
    00237         virtual IGUITreeViewNode* getSelected() const = 0;
    00238
    00240         virtual bool getLinesVisible() const = 0;
    00241
    00243
    00244         virtual void setLinesVisible( bool visible ) = 0;
    00245
    00247
    00253         virtual void setIconFont( IGUIFont* font ) = 0;
    00254
    00256
    00257         virtual void setImageList( IGUIImageList* imageList ) = 0;
    00258
    00260         virtual IGUIImageList* getImageList() const = 0;
    00261
    00263         virtual void setImageLeftOfIcon( bool bLeftOf ) = 0;
    00264
    00266         virtual bool getImageLeftOfIcon() const = 0;
    00267
    00269
    00270         virtual IGUITreeViewNode* getLastEventNode() const = 0;
    00271     };
    00272
    00273
    00274 } // end namespace gui
    00275 } // end namespace irr
    00276
    00277 #endif
    00278