X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ff5bf2590f02b5585c358b65eeeb6463e100a004..f0824a5a4a255989b5153945ade9e21232724980:/samples/treectrl/treetest.cpp diff --git a/samples/treectrl/treetest.cpp b/samples/treectrl/treetest.cpp index 5085521447..17d2ac3490 100644 --- a/samples/treectrl/treetest.cpp +++ b/samples/treectrl/treetest.cpp @@ -43,6 +43,8 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(TreeTest_Quit, MyFrame::OnQuit) EVT_MENU(TreeTest_About, MyFrame::OnAbout) EVT_MENU(TreeTest_Dump, MyFrame::OnDump) + EVT_MENU(TreeTest_Bold, MyFrame::OnSetBold) + EVT_MENU(TreeTest_UnBold, MyFrame::OnClearBold) EVT_MENU(TreeTest_Delete, MyFrame::OnDelete) EVT_MENU(TreeTest_DeleteAll, MyFrame::OnDeleteAll) EVT_MENU(TreeTest_Recreate, MyFrame::OnRecreate) @@ -62,7 +64,7 @@ BEGIN_EVENT_TABLE(MyTreeCtrl, wxTreeCtrl) EVT_TREE_ITEM_COLLAPSING(TreeTest_Ctrl, MyTreeCtrl::OnItemCollapsing) EVT_TREE_SEL_CHANGED(TreeTest_Ctrl, MyTreeCtrl::OnSelChanged) EVT_TREE_SEL_CHANGING(TreeTest_Ctrl, MyTreeCtrl::OnSelChanging) - EVT_CHAR(MyTreeCtrl::OnKeyDown) + EVT_TREE_KEY_DOWN(TreeTest_Ctrl, MyTreeCtrl::OnTreeKeyDown) END_EVENT_TABLE() IMPLEMENT_APP(MyApp) @@ -101,6 +103,9 @@ MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h) file_menu->Append(TreeTest_DeleteAll, "Delete &all items"); file_menu->Append(TreeTest_Recreate, "&Recreate the tree"); file_menu->AppendSeparator(); + file_menu->Append(TreeTest_Bold, "Make item &bold"); + file_menu->Append(TreeTest_UnBold, "Make item ¬ bold"); + file_menu->AppendSeparator(); file_menu->Append(TreeTest_About, "&About..."); file_menu->AppendSeparator(); file_menu->Append(TreeTest_Quit, "E&xit"); @@ -136,9 +141,15 @@ MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h) CreateStatusBar(3); SetStatusText("", 0); +#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(textCtrl); delete wxLog::SetActiveTarget(logWindow); +#endif } MyFrame::~MyFrame() @@ -167,6 +178,11 @@ void MyFrame::OnDump(wxCommandEvent& WXUNUSED(event)) m_treeCtrl->GetItemsRecursively(root, -1); } +void MyFrame::DoSetBold(bool bold) +{ + m_treeCtrl->SetItemBold(m_treeCtrl->GetSelection(), bold); +} + void MyFrame::OnDelete(wxCommandEvent& WXUNUSED(event)) { wxTreeItemId item = m_treeCtrl->GetSelection(); @@ -194,8 +210,8 @@ MyTreeCtrl::MyTreeCtrl(wxWindow *parent, const wxWindowID id, m_imageListNormal = new wxImageList(16, 16, TRUE); // should correspond to TreeCtrlIcon_xxx enum - m_imageListNormal->Add(wxICON(icon2)); m_imageListNormal->Add(wxICON(icon1)); + m_imageListNormal->Add(wxICON(icon2)); SetImageList(m_imageListNormal); @@ -227,7 +243,7 @@ void MyTreeCtrl::AddItemsRecursively(const wxTreeItemId& idParent, int image = depth == 1 ? TreeCtrlIcon_File : TreeCtrlIcon_Folder; wxTreeItemId id = AppendItem(idParent, str, image, image, new MyTreeItemData(str)); - AddItemsRecursively(id, numChildren, depth - 1,n+1); + AddItemsRecursively(id, numChildren, depth - 1, n + 1); } } //else: done! @@ -240,7 +256,7 @@ void MyTreeCtrl::AddTestItemsToTree(size_t numChildren, TreeCtrlIcon_Folder, TreeCtrlIcon_Folder, new MyTreeItemData("Root item")); - AddItemsRecursively(rootId, numChildren, depth,0); + AddItemsRecursively(rootId, numChildren, depth, 0); } void MyTreeCtrl::GetItemsRecursively(const wxTreeItemId& idParent, long cookie) @@ -301,7 +317,7 @@ void MyTreeCtrl::OnItemCollapsing(wxTreeEvent& event) } } -void MyTreeCtrl::OnKeyDown(wxTreeEvent& WXUNUSED(event)) +void MyTreeCtrl::OnTreeKeyDown(wxTreeEvent&WXUNUSED(event)) { // show some info about this item wxTreeItemId itemId = GetSelection(); @@ -312,7 +328,7 @@ void MyTreeCtrl::OnKeyDown(wxTreeEvent& WXUNUSED(event)) item->ShowInfo(this); } - wxLogMessage("OnKeyDown"); + wxLogMessage("OnTreeKeyDown"); } static inline const char *Bool2String(bool b) @@ -322,11 +338,12 @@ static inline const char *Bool2String(bool b) void MyTreeItemData::ShowInfo(wxTreeCtrl *tree) { - wxLogMessage("Item '%s': %sselected, %sexpanded, " + wxLogMessage("Item '%s': %sselected, %sexpanded, %sbold,\n" "%u children (%u immediately under this item).", m_desc.c_str(), Bool2String(tree->IsSelected(GetId())), Bool2String(tree->IsExpanded(GetId())), + Bool2String(tree->IsBold(GetId())), tree->GetChildrenCount(GetId()), tree->GetChildrenCount(GetId(), FALSE)); }