00001
00002
00003
00004
00005
00006
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
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
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
00057 void getItemPos(FXTreeItem* item, FXint& x, FXint& y);
00058
00059
00060 FXint getDescHeight(FXTreeItem* item);
00061
00062
00063 virtual void moveContents(FXint x, FXint y);
00064
00065
00066 virtual FXTreeItem* newItem(FXTreeItem* parent,FXTreeItem* prev,FXTreeItem* next);
00067
00068
00069 virtual FXTreeItem* copyItem(FXTreeItem* src,FXTreeItem* parent,FXTreeItem* prev,FXTreeItem* next,FXTreeItem* ignore=NULL);
00070
00071
00072 virtual FXTreeItem* moveItem(FXTreeItem* src,FXTreeItem* parent,FXTreeItem* prev,FXTreeItem* next);
00073
00074
00075 FXbool isAncestor(FXTreeItem* anc,FXTreeItem* desc);
00076
00077
00078 FXbool checkAncestor(FXTreeItem* src,FXTreeItem* parent,FXTreeItem* prev,FXTreeItem* next);
00079
00080
00081 void editItem(FXTreeItem* item);
00082
00083
00084 void editEnd();
00085
00086
00087 void editCancel();
00088
00089
00090 virtual ~FXTreeListEx();
00091 };
00092
00093 }
00094 #endif // FXTREELISTEX_H