From: Vadim Zeitlin Date: Sun, 31 May 2009 13:08:16 +0000 (+0000) Subject: improve wxTreeCtrl::ScrollTo() behaviour in the generic version and add a test for... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/51a5c8df7ce68ce57a58772afabcc65448307800 improve wxTreeCtrl::ScrollTo() behaviour in the generic version and add a test for it to the sample git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60835 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/changes.txt b/docs/changes.txt index a8771c89d9..483e174796 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -340,6 +340,7 @@ All (GUI): - wxHTML: add support for table borders width (Laurent Humbertclaude). - Added wxMouseEventsManager. - Building OpenGL library is now enabled by default. +- Improve wxTreeCtrl::ScrollTo() in generic version (Raanan Barzel). MSW: diff --git a/samples/treectrl/treetest.cpp b/samples/treectrl/treetest.cpp index 5cebdf70ee..e422f27a55 100644 --- a/samples/treectrl/treetest.cpp +++ b/samples/treectrl/treetest.cpp @@ -138,6 +138,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) MENU_LINK(ShowParent) MENU_LINK(ShowPrevSibling) MENU_LINK(ShowNextSibling) + MENU_LINK(ScrollTo) #undef MENU_LINK END_EVENT_TABLE() @@ -297,6 +298,9 @@ MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h) item_menu->Append(TreeTest_ShowParent, "Show pa&rent"); item_menu->Append(TreeTest_ShowPrevSibling, "Show &previous sibling"); item_menu->Append(TreeTest_ShowNextSibling, "Show &next sibling"); + item_menu->AppendSeparator(); + item_menu->Append(TreeTest_ScrollTo, "Scroll &to item", + "Scroll to the last by one top level child"); #ifndef NO_MULTIPLE_SELECTION item_menu->AppendSeparator(); @@ -821,6 +825,17 @@ void MyFrame::DoShowRelativeItem(TreeFunc1_t pfn, const wxString& label) label, m_treeCtrl->GetItemText(new_item)); } +void MyFrame::OnScrollTo(wxCommandEvent& WXUNUSED(event)) +{ + // scroll to the last but one top level child + wxTreeItemId item = m_treeCtrl->GetPrevSibling( + m_treeCtrl->GetLastChild( + m_treeCtrl->GetRootItem())); + CHECK_ITEM( item ); + + m_treeCtrl->ScrollTo(item); +} + void MyFrame::OnSetFgColour(wxCommandEvent& WXUNUSED(event)) { wxColour col = wxGetColourFromUser(this, m_treeCtrl->GetForegroundColour()); diff --git a/samples/treectrl/treetest.h b/samples/treectrl/treetest.h index c9c692eb73..90bbebb0da 100644 --- a/samples/treectrl/treetest.h +++ b/samples/treectrl/treetest.h @@ -268,6 +268,8 @@ public: void OnShowNextSibling(wxCommandEvent& WXUNUSED(event)) { DoShowRelativeItem(&wxTreeCtrl::GetNextSibling, "next sibling"); } + void OnScrollTo(wxCommandEvent& event); + void OnIdle(wxIdleEvent& event); void OnSize(wxSizeEvent& event); @@ -359,5 +361,6 @@ enum TreeTest_ShowParent, TreeTest_ShowPrevSibling, TreeTest_ShowNextSibling, + TreeTest_ScrollTo, TreeTest_Ctrl = 1000 };