]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/treectrl/treetest.h
wxMkDir() has 'perm' argument
[wxWidgets.git] / samples / treectrl / treetest.h
index 68279c9208996aeeb673674f659bc274b0b7b2db..8c987b847b05db844d96731cae7880a04377824d 100644 (file)
@@ -32,10 +32,11 @@ class MyTreeCtrl : public wxTreeCtrl
 public:
   enum
   {
-    TreeCtrlIcon_Folder,
-    TreeCtrlIcon_File
+    TreeCtrlIcon_File,
+    TreeCtrlIcon_Folder
   };
 
+  MyTreeCtrl() { }
   MyTreeCtrl(wxWindow *parent, const wxWindowID id,
              const wxPoint& pos, const wxSize& size,
              long style);
@@ -54,18 +55,37 @@ public:
   void OnItemCollapsing(wxTreeEvent& event);
   void OnSelChanged(wxTreeEvent& event);
   void OnSelChanging(wxTreeEvent& event);
-  void OnKeyDown(wxTreeEvent& event);
+  void OnTreeKeyDown(wxTreeEvent& event);
+  void OnItemActivated(wxTreeEvent& event);
 
-private:
-  void AddItemsRecursively(const wxTreeItemId& idParent,
-                           size_t nChildren,
-                           size_t depth);
+  void GetItemsRecursively(const wxTreeItemId& idParent, long cookie);
 
   void AddTestItemsToTree(size_t numChildren,
                           size_t depth);
 
-  wxImageList *m_imageListNormal;
+  void DoSortChildren(const wxTreeItemId& item, bool reverse = FALSE)
+    { m_reverseSort = reverse; wxTreeCtrl::SortChildren(item); }
+  void DoEnsureVisible() { EnsureVisible(m_lastItem); }
+
+protected:
+  virtual int OnCompareItems(const wxTreeItemId& item1,
+                             const wxTreeItemId& item2);
 
+private:
+  void AddItemsRecursively(const wxTreeItemId& idParent,
+                           size_t nChildren,
+                           size_t depth,
+                           size_t folder);
+
+  wxImageList *m_imageListNormal;
+  bool         m_reverseSort;           // flag for OnCompareItems
+  wxTreeItemId m_lastItem;              // for OnEnsureVisible()
+
+  // NB: due to an ugly wxMSW hack you _must_ use DECLARE_DYNAMIC_CLASS()
+  //     if you want your overloaded OnCompareItems() to be called.
+  //     OTOH, if you don't want it you may omit the next line - this will
+  //     make default (alphabetical) sorting much faster under wxMSW.
+  DECLARE_DYNAMIC_CLASS(MyTreeCtrl)
   DECLARE_EVENT_TABLE()
 };
 
@@ -80,10 +100,29 @@ public:
   // menu callbacks
   void OnQuit(wxCommandEvent& event);
   void OnAbout(wxCommandEvent& event);
+  void OnDump(wxCommandEvent& event);
+  void OnDelete(wxCommandEvent& event);
+  void OnDeleteChildren(wxCommandEvent& event);
+  void OnDeleteAll(wxCommandEvent& event);
+  void OnRecreate(wxCommandEvent& event);
+  void OnCollapseAndReset(wxCommandEvent& event);
+
+  void OnSetBold(wxCommandEvent& WXUNUSED(event)) { DoSetBold(TRUE); }
+  void OnClearBold(wxCommandEvent& WXUNUSED(event)) { DoSetBold(FALSE); }
+
+  void OnEnsureVisible(wxCommandEvent& event);
+
+  void OnRename(wxCommandEvent& event);
+  void OnSort(wxCommandEvent& event) { DoSort(); }
+  void OnSortRev(wxCommandEvent& event) { DoSort(TRUE); }
 
 private:
+  void DoSort(bool reverse = FALSE);
+
   MyTreeCtrl *m_treeCtrl;
 
+  void DoSetBold(bool bold = TRUE);
+
   DECLARE_EVENT_TABLE()
 };
 
@@ -92,11 +131,17 @@ enum
 {
   TreeTest_Quit,
   TreeTest_About,
+  TreeTest_Dump,
+  TreeTest_Sort,
+  TreeTest_SortRev,
+  TreeTest_Bold,
+  TreeTest_UnBold,
+  TreeTest_Rename,
+  TreeTest_Delete,
+  TreeTest_DeleteChildren,
+  TreeTest_DeleteAll,
+  TreeTest_Recreate,
+  TreeTest_CollapseAndReset,
+  TreeTest_EnsureVisible,
   TreeTest_Ctrl = 100
 };
-
-enum
-{
-  TreeCtrlIcon_File,
-  TreeCtrlIcon_Folder
-};