X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/22993989b4d5f77b95f7cdc3f4d149516340db91..fa699cbaaf217af186cd04dd10d6ec67c8667136:/samples/treectrl/treetest.cpp diff --git a/samples/treectrl/treetest.cpp b/samples/treectrl/treetest.cpp index f22c467189..485e203b54 100644 --- a/samples/treectrl/treetest.cpp +++ b/samples/treectrl/treetest.cpp @@ -30,6 +30,7 @@ #include "wx/treectrl.h" #include "wx/math.h" #include "wx/renderer.h" +#include "wx/wupdlock.h" #ifdef __WIN32__ // this is not supported by native control @@ -53,7 +54,7 @@ #include "unchecked.xpm" #include "checked.xpm" -#ifndef __WXMSW__ +#ifndef wxHAS_IMAGES_IN_RESOURCES #include "../sample.xpm" #endif @@ -113,6 +114,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) MENU_LINK(Recreate) MENU_LINK(ToggleImages) MENU_LINK(ToggleStates) + MENU_LINK(ToggleBell) MENU_LINK(ToggleAlternateImages) MENU_LINK(ToggleAlternateStates) MENU_LINK(ToggleButtons) @@ -121,6 +123,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) MENU_LINK(EnsureVisible) MENU_LINK(SetFocus) MENU_LINK(AddItem) + MENU_LINK(AddManyItems) MENU_LINK(InsertItem) MENU_LINK(IncIndent) MENU_LINK(DecIndent) @@ -198,7 +201,6 @@ bool MyApp::OnInit() // Show the frame frame->Show(true); - SetTopWindow(frame); return true; } @@ -215,7 +217,7 @@ MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h) // This reduces flicker effects - even better would be to define // OnEraseBackground to do nothing. When the tree control's scrollbars are // show or hidden, the frame is sent a background erase event. - SetBackgroundColour(wxColour(255, 255, 255)); + SetBackgroundColour(*wxWHITE); // Give it an icon SetIcon(wxICON(sample)); @@ -227,9 +229,11 @@ MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h) *tree_menu = new wxMenu, *item_menu = new wxMenu; +#if wxUSE_LOG file_menu->Append(TreeTest_ClearLog, wxT("&Clear log\tCtrl-L")); file_menu->AppendSeparator(); - file_menu->Append(TreeTest_About, wxT("&About...")); +#endif // wxUSE_LOG + file_menu->Append(TreeTest_About, wxT("&About")); file_menu->AppendSeparator(); file_menu->Append(TreeTest_Quit, wxT("E&xit\tAlt-X")); @@ -248,6 +252,7 @@ MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h) #endif // NO_MULTIPLE_SELECTION style_menu->AppendCheckItem(TreeTest_ToggleImages, wxT("Toggle show ima&ges")); style_menu->AppendCheckItem(TreeTest_ToggleStates, wxT("Toggle show st&ates")); + style_menu->AppendCheckItem(TreeTest_ToggleBell, wxT("Toggle &bell on no match")); style_menu->AppendCheckItem(TreeTest_ToggleAlternateImages, wxT("Toggle alternate images")); style_menu->AppendCheckItem(TreeTest_ToggleAlternateStates, wxT("Toggle alternate state images")); style_menu->Append(TreeTest_SetImageSize, wxT("Set image si&ze...")); @@ -261,6 +266,7 @@ MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h) tree_menu->Append(TreeTest_CollapseAndReset, wxT("C&ollapse and reset")); tree_menu->AppendSeparator(); tree_menu->Append(TreeTest_AddItem, wxT("Append a &new item")); + tree_menu->Append(TreeTest_AddManyItems, wxT("Appends &many items")); tree_menu->Append(TreeTest_InsertItem, wxT("&Insert a new item")); tree_menu->Append(TreeTest_Delete, wxT("&Delete this item")); tree_menu->Append(TreeTest_DeleteChildren, wxT("Delete &children")); @@ -335,6 +341,16 @@ MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h) m_textCtrl = new wxTextCtrl(m_panel, wxID_ANY, wxT(""), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE | wxSUNKEN_BORDER); + +#ifdef __WXMOTIF__ + // For some reason, we get a memcpy crash in wxLogStream::DoLogStream + // on gcc/wxMotif, if we use wxLogTextCtl. Maybe it's just gcc? + delete wxLog::SetActiveTarget(new wxLogStderr); +#else + // set our text control as the log target + wxLogTextCtrl *logWindow = new wxLogTextCtrl(m_textCtrl); + delete wxLog::SetActiveTarget(logWindow); +#endif #endif // wxUSE_LOG CreateTreeWithDefStyle(); @@ -348,18 +364,6 @@ MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h) // create a status bar CreateStatusBar(2); #endif // wxUSE_STATUSBAR - -#if wxUSE_LOG -#ifdef __WXMOTIF__ - // For some reason, we get a memcpy crash in wxLogStream::DoLogStream - // on gcc/wxMotif, if we use wxLogTextCtl. Maybe it's just gcc? - delete wxLog::SetActiveTarget(new wxLogStderr); -#else - // set our text control as the log target - wxLogTextCtrl *logWindow = new wxLogTextCtrl(m_textCtrl); - delete wxLog::SetActiveTarget(logWindow); -#endif -#endif // wxUSE_LOG } MyFrame::~MyFrame() @@ -706,6 +710,11 @@ void MyFrame::OnToggleStates(wxCommandEvent& WXUNUSED(event)) } } +void MyFrame::OnToggleBell(wxCommandEvent& event) +{ + m_treeCtrl->EnableBellOnNoMatch(event.IsChecked()); +} + void MyFrame::OnToggleAlternateImages(wxCommandEvent& WXUNUSED(event)) { bool alternateImages = m_treeCtrl->AlternateImages(); @@ -776,6 +785,17 @@ void MyFrame::OnAddItem(wxCommandEvent& WXUNUSED(event)) MyTreeCtrl::TreeCtrlIcon_File */ ); } +void MyFrame::OnAddManyItems(wxCommandEvent& WXUNUSED(event)) +{ + wxWindowUpdateLocker lockUpdates(this); + + const wxTreeItemId root = m_treeCtrl->GetRootItem(); + for ( int n = 0; n < 1000; n++ ) + { + m_treeCtrl->AppendItem(root, wxString::Format("Item #%03d", n)); + } +} + void MyFrame::OnIncIndent(wxCommandEvent& WXUNUSED(event)) { unsigned int indent = m_treeCtrl->GetIndent(); @@ -902,14 +922,14 @@ void MyFrame::OnSelectLast(wxCommandEvent& WXUNUSED(event)) void MyFrame::OnSetFgColour(wxCommandEvent& WXUNUSED(event)) { wxColour col = wxGetColourFromUser(this, m_treeCtrl->GetForegroundColour()); - if ( col.Ok() ) + if ( col.IsOk() ) m_treeCtrl->SetForegroundColour(col); } void MyFrame::OnSetBgColour(wxCommandEvent& WXUNUSED(event)) { wxColour col = wxGetColourFromUser(this, m_treeCtrl->GetBackgroundColour()); - if ( col.Ok() ) + if ( col.IsOk() ) m_treeCtrl->SetBackgroundColour(col); } @@ -1607,7 +1627,7 @@ void MyTreeCtrl::ShowMenu(wxTreeItemId id, const wxPoint& pt) #if wxUSE_MENUS wxMenu menu(title); - menu.Append(TreeTest_About, wxT("&About...")); + menu.Append(TreeTest_About, wxT("&About")); menu.AppendSeparator(); menu.Append(TreeTest_Highlight, wxT("&Highlight item")); menu.Append(TreeTest_Dump, wxT("&Dump"));