X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ac103441d12fb8128685ecd72963e1838841b9c9..f1d5aa4eca541a2f90044a63f555985d6bd4adf3:/samples/treectrl/treetest.h diff --git a/samples/treectrl/treetest.h b/samples/treectrl/treetest.h index 157c822767..e2908c0c44 100644 --- a/samples/treectrl/treetest.h +++ b/samples/treectrl/treetest.h @@ -23,18 +23,21 @@ class MyApp : public wxApp { public: - MyApp() { m_showImages = true; m_showButtons = false; } + MyApp() { m_showImages = true; m_showStates = true; m_showButtons = false; } bool OnInit(); void SetShowImages(bool show) { m_showImages = show; } bool ShowImages() const { return m_showImages; } + void SetShowStates(bool show) { m_showStates = show; } + bool ShowStates() const { return m_showStates; } + void SetShowButtons(bool show) { m_showButtons = show; } bool ShowButtons() const { return m_showButtons; } private: - bool m_showImages, m_showButtons; + bool m_showImages, m_showStates, m_showButtons; }; class MyTreeItemData : public wxTreeItemData @@ -61,7 +64,7 @@ public: TreeCtrlIcon_FolderOpened }; - MyTreeCtrl() { } + MyTreeCtrl() { m_alternateImages = false; m_alternateStates = false; } MyTreeCtrl(wxWindow *parent, const wxWindowID id, const wxPoint& pos, const wxSize& size, long style); @@ -74,8 +77,8 @@ public: void OnEndLabelEdit(wxTreeEvent& event); void OnDeleteItem(wxTreeEvent& event); void OnContextMenu(wxContextMenuEvent& event); + void OnItemMenu(wxTreeEvent& event); void OnGetInfo(wxTreeEvent& event); - void OnTreeRMouseClick(wxTreeEvent& event); void OnSetInfo(wxTreeEvent& event); void OnItemExpanded(wxTreeEvent& event); void OnItemExpanding(wxTreeEvent& event); @@ -85,6 +88,11 @@ public: void OnSelChanging(wxTreeEvent& event); void OnTreeKeyDown(wxTreeEvent& event); void OnItemActivated(wxTreeEvent& event); + void OnItemStateClick(wxTreeEvent& event); + void OnItemRClick(wxTreeEvent& event); + + void OnRMouseDown(wxMouseEvent& event); + void OnRMouseUp(wxMouseEvent& event); void OnRMouseDClick(wxMouseEvent& event); void GetItemsRecursively(const wxTreeItemId& idParent, @@ -92,6 +100,7 @@ public: void CreateImageList(int size = 16); void CreateButtonsImageList(int size = 11); + void CreateStateImageList(bool del = false); void AddTestItemsToTree(size_t numChildren, size_t depth); @@ -100,6 +109,7 @@ public: void DoEnsureVisible() { if (m_lastItem.IsOk()) EnsureVisible(m_lastItem); } void DoToggleIcon(const wxTreeItemId& item); + void DoToggleState(const wxTreeItemId& item); void ShowMenu(wxTreeItemId id, const wxPoint& pt); @@ -107,6 +117,12 @@ public: void SetLastItem(wxTreeItemId id) { m_lastItem = id; } + void SetAlternateImages(bool show) { m_alternateImages = show; } + bool AlternateImages() const { return m_alternateImages; } + + void SetAlternateStates(bool show) { m_alternateStates = show; } + bool AlternateStates() const { return m_alternateStates; } + protected: virtual int OnCompareItems(const wxTreeItemId& i1, const wxTreeItemId& i2); @@ -123,10 +139,14 @@ private: size_t depth, size_t folder); + void LogEvent(const wxChar *name, const wxTreeEvent& event); + int m_imageSize; // current size of images bool m_reverseSort; // flag for OnCompareItems wxTreeItemId m_lastItem, // for OnEnsureVisible() m_draggedItem; // item being dragged right now + bool m_alternateImages; + bool m_alternateStates; // NB: due to an ugly wxMSW hack you _must_ use DECLARE_DYNAMIC_CLASS() // if you want your overloaded OnCompareItems() to be called. @@ -147,6 +167,7 @@ public: // menu callbacks void OnQuit(wxCommandEvent& event); void OnAbout(wxCommandEvent& event); + void OnClearLog(wxCommandEvent& event); void OnTogButtons(wxCommandEvent& event) { TogStyle(event.GetId(), wxTR_HAS_BUTTONS); } @@ -171,6 +192,7 @@ public: void OnSetFgColour(wxCommandEvent& event); void OnSetBgColour(wxCommandEvent& event); + void OnHighlight(wxCommandEvent& event); void OnDump(wxCommandEvent& event); #ifndef NO_MULTIPLE_SELECTION void OnDumpSelected(wxCommandEvent& event); @@ -186,6 +208,9 @@ public: void OnRecreate(wxCommandEvent& event); void OnToggleButtons(wxCommandEvent& event); void OnToggleImages(wxCommandEvent& event); + void OnToggleStates(wxCommandEvent& event); + void OnToggleAlternateImages(wxCommandEvent& event); + void OnToggleAlternateStates(wxCommandEvent& event); void OnSetImageSize(wxCommandEvent& event); void OnCollapseAndReset(wxCommandEvent& event); @@ -211,6 +236,19 @@ public: void OnDecSpacing(wxCommandEvent& event); void OnToggleIcon(wxCommandEvent& event); + void OnToggleState(wxCommandEvent& event); + + void OnShowFirstVisible(wxCommandEvent& WXUNUSED(event)) + { DoShowFirstOrLast(&wxTreeCtrl::GetFirstVisibleItem, "first visible"); } +#ifdef wxHAS_LAST_VISIBLE // we don't have it currently but may add later + void OnShowLastVisible(wxCommandEvent& WXUNUSED(event)) + { DoShowFirstOrLast(&wxTreeCtrl::GetLastVisibleItem, "last visible"); } +#endif // wxHAS_LAST_VISIBLE + + void OnShowNextVisible(wxCommandEvent& WXUNUSED(event)) + { DoShowNextOrPrev(&wxTreeCtrl::GetNextVisible, "next visible"); } + void OnShowPrevVisible(wxCommandEvent& WXUNUSED(event)) + { DoShowNextOrPrev(&wxTreeCtrl::GetPrevVisible, "previous visible"); } void OnIdle(wxIdleEvent& event); void OnSize(wxSizeEvent& event); @@ -225,6 +263,15 @@ private: void CreateTreeWithDefStyle(); void CreateTree(long style); + // common parts of OnShowFirst/LastVisible() and OnShowNext/PrevVisible() + typedef wxTreeItemId (wxTreeCtrl::*TreeFunc0_t)() const; + void DoShowFirstOrLast(TreeFunc0_t pfn, const wxString& label); + + typedef wxTreeItemId (wxTreeCtrl::*TreeFunc1_t)(const wxTreeItemId&) const; + void DoShowNextOrPrev(TreeFunc1_t pfn, const wxString& label); + + + wxPanel *m_panel; MyTreeCtrl *m_treeCtrl; #if wxUSE_LOG wxTextCtrl *m_textCtrl; @@ -238,9 +285,10 @@ private: // menu and control ids enum { - TreeTest_Quit, - TreeTest_About, - TreeTest_TogButtons, + TreeTest_Quit = wxID_EXIT, + TreeTest_About = wxID_ABOUT, + TreeTest_ClearLog = wxID_CLEAR, + TreeTest_TogButtons = wxID_HIGHEST, TreeTest_TogTwist, TreeTest_TogLines, TreeTest_TogEdit, @@ -251,6 +299,7 @@ enum TreeTest_SetFgColour, TreeTest_SetBgColour, TreeTest_ResetStyle, + TreeTest_Highlight, TreeTest_Dump, TreeTest_DumpSelected, TreeTest_Count, @@ -265,6 +314,9 @@ enum TreeTest_DeleteAll, TreeTest_Recreate, TreeTest_ToggleImages, + TreeTest_ToggleStates, + TreeTest_ToggleAlternateImages, + TreeTest_ToggleAlternateStates, TreeTest_ToggleButtons, TreeTest_SetImageSize, TreeTest_ToggleSel, @@ -277,8 +329,13 @@ enum TreeTest_IncSpacing, TreeTest_DecSpacing, TreeTest_ToggleIcon, + TreeTest_ToggleState, TreeTest_Select, TreeTest_Unselect, TreeTest_SelectRoot, + TreeTest_ShowFirstVisible, + TreeTest_ShowLastVisible, + TreeTest_ShowNextVisible, + TreeTest_ShowPrevVisible, TreeTest_Ctrl = 1000 };