![]() |
Main Page
Class Hierarchy
Alphabetical List
Compound List
File List
Compound Members
![]() |
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