X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cf724bceea97553bef690f52062ffbc336d0f7a9..f1567cddead054974c4a079ed8ee2c798ef998dc:/samples/treectrl/treetest.h diff --git a/samples/treectrl/treetest.h b/samples/treectrl/treetest.h index c3ce883347..53ecac8e1d 100644 --- a/samples/treectrl/treetest.h +++ b/samples/treectrl/treetest.h @@ -13,7 +13,15 @@ class MyApp : public wxApp { public: + MyApp() { m_showImages = TRUE; } + bool OnInit(); + + void SetShowImages(bool show) { m_showImages = show; } + bool ShowImages() const { return m_showImages; } + +private: + bool m_showImages; }; class MyTreeItemData : public wxTreeItemData @@ -34,7 +42,10 @@ public: enum { TreeCtrlIcon_File, - TreeCtrlIcon_Folder + TreeCtrlIcon_FileSelected, + TreeCtrlIcon_Folder, + TreeCtrlIcon_FolderSelected, + TreeCtrlIcon_FolderOpened }; MyTreeCtrl() { } @@ -45,6 +56,7 @@ public: void OnBeginDrag(wxTreeEvent& event); void OnBeginRDrag(wxTreeEvent& event); + void OnEndDrag(wxTreeEvent& event); void OnBeginLabelEdit(wxTreeEvent& event); void OnEndLabelEdit(wxTreeEvent& event); void OnDeleteItem(wxTreeEvent& event); @@ -62,15 +74,26 @@ public: void GetItemsRecursively(const wxTreeItemId& idParent, long cookie); + void CreateImageList(int size = 32); + void AddTestItemsToTree(size_t numChildren, size_t depth); void DoSortChildren(const wxTreeItemId& item, bool reverse = FALSE) - { m_reverseSort = reverse; wxTreeCtrl::SortChildren(item); } + { m_reverseSort = reverse; wxTreeCtrl::SortChildren(item); } void DoEnsureVisible() { EnsureVisible(m_lastItem); } + void DoToggleIcon(const wxTreeItemId& item); + protected: virtual int OnCompareItems(const wxTreeItemId& i1, const wxTreeItemId& i2); + // is this the test item which we use in several event handlers? + bool IsTestItem(const wxTreeItemId& item) + { + // the test item is the first child folder + return GetParent(item) == GetRootItem() && !GetPrevSibling(item); + } + private: void AddItemsRecursively(const wxTreeItemId& idParent, size_t nChildren, @@ -78,8 +101,9 @@ private: size_t folder); wxImageList *m_imageListNormal; - bool m_reverseSort; // flag for OnCompareItems - wxTreeItemId m_lastItem; // for OnEnsureVisible() + bool m_reverseSort; // flag for OnCompareItems + wxTreeItemId m_lastItem, // for OnEnsureVisible() + m_draggedItem; // item being dragged right now // NB: due to an ugly wxMSW hack you _must_ use DECLARE_DYNAMIC_CLASS() // if you want your overloaded OnCompareItems() to be called. @@ -102,10 +126,19 @@ public: void OnAbout(wxCommandEvent& event); void OnDump(wxCommandEvent& event); +#ifndef NO_MULTIPLE_SELECTION + void OnDumpSelected(wxCommandEvent& event); + void OnSelect(wxCommandEvent& event); + void OnUnselect(wxCommandEvent& event); + void OnToggleSel(wxCommandEvent& event); +#endif // NO_MULTIPLE_SELECTION void OnDelete(wxCommandEvent& event); void OnDeleteChildren(wxCommandEvent& event); void OnDeleteAll(wxCommandEvent& event); + void OnRecreate(wxCommandEvent& event); + void OnToggleImages(wxCommandEvent& event); + void OnSetImageSize(wxCommandEvent& event); void OnCollapseAndReset(wxCommandEvent& event); void OnSetBold(wxCommandEvent& WXUNUSED(event)) { DoSetBold(TRUE); } @@ -113,22 +146,33 @@ public: void OnEnsureVisible(wxCommandEvent& event); + void OnCount(wxCommandEvent& event); + void OnCountRec(wxCommandEvent& event); + void OnRename(wxCommandEvent& event); void OnSort(wxCommandEvent& event) { DoSort(); } void OnSortRev(wxCommandEvent& event) { DoSort(TRUE); } void OnAddItem(wxCommandEvent& event); - + void OnInsertItem(wxCommandEvent& event); + void OnIncIndent(wxCommandEvent& event); void OnDecIndent(wxCommandEvent& event); void OnIncSpacing(wxCommandEvent& event); void OnDecSpacing(wxCommandEvent& event); + void OnToggleIcon(wxCommandEvent& event); + + void OnSize(wxSizeEvent& event); + private: void DoSort(bool reverse = FALSE); + void Resize(const wxSize& size); + MyTreeCtrl *m_treeCtrl; + wxTextCtrl *m_textCtrl; void DoSetBold(bool bold = TRUE); @@ -141,6 +185,9 @@ enum TreeTest_Quit, TreeTest_About, TreeTest_Dump, + TreeTest_DumpSelected, + TreeTest_Count, + TreeTest_CountRec, TreeTest_Sort, TreeTest_SortRev, TreeTest_Bold, @@ -150,12 +197,19 @@ enum TreeTest_DeleteChildren, TreeTest_DeleteAll, TreeTest_Recreate, + TreeTest_ToggleImages, + TreeTest_SetImageSize, + TreeTest_ToggleSel, TreeTest_CollapseAndReset, TreeTest_EnsureVisible, TreeTest_AddItem, + TreeTest_InsertItem, TreeTest_IncIndent, TreeTest_DecIndent, TreeTest_IncSpacing, TreeTest_DecSpacing, - TreeTest_Ctrl = 100 + TreeTest_ToggleIcon, + TreeTest_Select, + TreeTest_Unselect, + TreeTest_Ctrl = 1000 };