00001
00002
00003
00004
00005
00006
00007
00008 #ifndef FXTREEEDITOR_H
00009 #define FXTREEEDITOR_H
00010
00011 #ifndef FXEXTREELIST_H
00012 #include "FXExTreeList.h"
00013 #endif
00014 namespace FXEX {
00015
00016
00017
00018
00019 class FXAPI FXTreeEditor: public FXExTreeList {
00020 FXDECLARE(FXTreeEditor)
00021
00022 protected:
00023 FXMenuPane* menu;
00024 FXString copyString;
00025 FXString mIndent;
00026
00027 private:
00028 void initMenu();
00029
00030 protected:
00031 FXTreeEditor(){}
00032
00033 public:
00034 enum {
00035 ID_APPEND=FXExTreeList::ID_LAST,
00036 ID_CHILD,
00037 ID_INSERT,
00038 ID_DELETE,
00039 ID_RENAME,
00040 ID_COPYITEM,
00041 ID_CUT_SEL,
00042 ID_COPY_SEL,
00043 ID_PASTE,
00044 ID_LAST
00045 };
00046
00047 public:
00048 inline FXString getIndent() const { return mIndent; }
00049 inline void setIndent(const FXString& ind) { mIndent = ind; }
00050
00051 public:
00052 long onEditEnd(FXObject* sender, FXSelector sel, void* ptr);
00053 long onUpdMenu(FXObject* sender, FXSelector sel, void* ptr);
00054 long onRightBtnRelease(FXObject* sender, FXSelector sel, void* ptr);
00055 long onKeyPress(FXObject* sender, FXSelector sel, void* ptr);
00056 long onCmdItem(FXObject* sender, FXSelector sel, void* ptr);
00057 long onClipboardRequest(FXObject* sender, FXSelector sel, void* ptr);
00058 long onCmdCutSel(FXObject* sender, FXSelector sel, void* ptr);
00059 long onCmdCopySel(FXObject* sender, FXSelector sel, void* ptr);
00060 long onCmdPaste(FXObject* sender, FXSelector sel, void* ptr);
00061
00062 public:
00063
00064 FXTreeEditor(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);
00065
00066
00067 virtual void create();
00068
00069
00070 void setNewItem(FXTreeItem* item);
00071
00072
00073 virtual void setDefaultIcon(FXTreeItem* item);
00074
00075
00076 void cmdChild();
00077
00078
00079 void cmdAppend();
00080
00081
00082 void cmdInsert();
00083
00084
00085 void cmdDelete();
00086
00087
00088 void cmdRename();
00089
00090
00091 void cmdCopy();
00092
00093
00094 FXTreeItem* insert(const FXString& text, FXTreeItem* next, FXbool sel=TRUE);
00095
00096
00097 virtual void offerData(FXint type, FXStream* stream, FXTreeItem* item);
00098
00099
00100 virtual FXTreeItem* acceptData(FXint type, FXuchar* buffer, FXuint size, FXTreeItem* parent, FXTreeItem* prev, FXTreeItem* next);
00101
00102
00103 void toData(FXStream* stream, FXTreeItem* item, const FXString& indent);
00104
00105
00106 FXTreeItem* fromData(FXStream* stream, FXint& indent, FXTreeItem* parent, FXTreeItem* prev, FXTreeItem* next, FXTreeItem* defPrev);
00107
00108
00109 virtual ~FXTreeEditor();
00110 };
00111
00112 }
00113 #endif // FXTREEEDITOR_H