Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members

FXTreeListEx.h

Go to the documentation of this file.
00001 /* TreeText ver.0.3.2
00002  * 
00003  * This software is in the public domain.
00004  * There are no restrictions on any sort of usage of this software.
00005  * 
00006  * $treetext: fxtreelistex.h,v 1.40.12 2001/05/16 11:22:43 Toshihiro Inoue Exp $
00007  */
00008 #ifndef FXTREELISTEX_H
00009 #define FXTREELISTEX_H
00010 
00011 #ifndef FXTREELIST_H
00012 #include <fox/FXTreeList.h>
00013 using namespace FX;
00014 #endif
00015 namespace FXEX {
00016 
00017 /**
00018  * A list widget which  contains a tree?
00019  */
00020 class FXAPI FXTreeListEx: public FXTreeList {
00021   FXDECLARE(FXTreeListEx)
00022 
00023 private:
00024   FXTextField *labelEdit;
00025   FXTreeItem  *mEditItem;
00026   FXbool       flgEditTimer;
00027   FXbool       flgEnter;
00028 
00029 protected:
00030   FXTreeListEx();
00031   
00032 protected:
00033   FXTreeItem* selItem;
00034   
00035 public:
00036   enum{
00037     ID_LABELEDIT=FXTreeList::ID_LAST,
00038     ID_EDITTIMER,
00039     ID_LAST
00040     };
00041 
00042 public:
00043   long onTipTimer(FXObject* sender, FXSelector sel, void* ptr);
00044   long onSelected(FXObject* sender, FXSelector sel, void* ptr);
00045   long onLeftBtnPress(FXObject* sender, FXSelector sel, void* ptr);
00046   long onLeftBtnRelease(FXObject* sender, FXSelector sel, void* ptr);
00047   long onEditTimer(FXObject* sender, FXSelector sel, void* ptr);
00048   long onEditKeyPress(FXObject* sender, FXSelector sel, void* ptr);
00049   long onKeyRelease(FXObject* sender, FXSelector sel, void* ptr);
00050   long onEditFocusOut(FXObject* sender, FXSelector sel, void* ptr);
00051 
00052 public:
00053   /// get a new tree list
00054   FXTreeListEx(FXComposite *p,FXint nvis,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0);
00055 
00056   /// get the next item position
00057   void getItemPos(FXTreeItem* item, FXint& x, FXint& y);
00058 
00059   /// get the descending height
00060   FXint getDescHeight(FXTreeItem* item);
00061 
00062   /// move contents to x,y
00063   virtual void moveContents(FXint x, FXint y);
00064 
00065   /// add a new tree item
00066   virtual FXTreeItem* newItem(FXTreeItem* parent,FXTreeItem* prev,FXTreeItem* next);
00067 
00068   /// copy an already existing item
00069   virtual FXTreeItem* copyItem(FXTreeItem* src,FXTreeItem* parent,FXTreeItem* prev,FXTreeItem* next,FXTreeItem* ignore=NULL);
00070 
00071   /// move an item to another position
00072   virtual FXTreeItem* moveItem(FXTreeItem* src,FXTreeItem* parent,FXTreeItem* prev,FXTreeItem* next);
00073 
00074   /// find out if the item is an ancestor
00075   FXbool isAncestor(FXTreeItem* anc,FXTreeItem* desc);
00076 
00077   /// check if an item is an ancestor
00078   FXbool checkAncestor(FXTreeItem* src,FXTreeItem* parent,FXTreeItem* prev,FXTreeItem* next);
00079 
00080   /// edit an item
00081   void editItem(FXTreeItem* item);
00082 
00083   /// finish editing an item
00084   void editEnd();
00085 
00086   /// cancel the editing of an item
00087   void editCancel();
00088   
00089   /// dtor
00090   virtual ~FXTreeListEx();
00091   };
00092 
00093 } // namespace FXEX
00094 #endif // FXTREELISTEX_H