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

FXTreeEditor.h

Go to the documentation of this file.
00001 /* FXTreeEditor ver.0.2.4
00002  *
00003  * This software is in the public domain.
00004  * There are no restrictions on any sort of usage of this software.
00005  *
00006  * $fxtreeeditor: fxtreeeditor.h,v 1.71.0 2001/10/25 10:43:00 Toshihiro Inoue Exp $
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  * An editor of tree items of specific number visible (huh?)
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   /// get an editor of tree items of specific num visible
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   /// create resources
00067   virtual void create();
00068 
00069   /// set a new tree item
00070   void setNewItem(FXTreeItem* item);
00071 
00072   /// set the default tree item
00073   virtual void setDefaultIcon(FXTreeItem* item);
00074 
00075   /// child command
00076   void cmdChild();
00077 
00078   /// append
00079   void cmdAppend();
00080 
00081   /// insert
00082   void cmdInsert();
00083 
00084   /// delete
00085   void cmdDelete();
00086 
00087   /// rename
00088   void cmdRename();
00089 
00090   /// copy
00091   void cmdCopy();
00092 
00093   /// insert an item
00094   FXTreeItem* insert(const FXString& text, FXTreeItem* next, FXbool sel=TRUE);
00095 
00096   /// put some data from the tree into a stream
00097   virtual void offerData(FXint type, FXStream* stream, FXTreeItem* item);
00098 
00099   /// get some data out of strean into tree, at a specific parent
00100   virtual FXTreeItem* acceptData(FXint type, FXuchar* buffer, FXuint size, FXTreeItem* parent, FXTreeItem* prev, FXTreeItem* next);
00101 
00102   /// put some item to the stream
00103   void toData(FXStream* stream, FXTreeItem* item, const FXString& indent);
00104 
00105   /// take some items from the stream
00106   FXTreeItem* fromData(FXStream* stream, FXint& indent, FXTreeItem* parent, FXTreeItem* prev, FXTreeItem* next, FXTreeItem* defPrev);
00107   
00108   /// dtor
00109   virtual ~FXTreeEditor();
00110   };
00111 
00112 } // namespace FXEX
00113 #endif // FXTREEEDITOR_H