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)
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)
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");
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()
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();
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);
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!
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)
}
}
-void MyTreeCtrl::OnKeyDown(wxTreeEvent& WXUNUSED(event))
+void MyTreeCtrl::OnTreeKeyDown(wxTreeEvent&WXUNUSED(event))
{
// show some info about this item
wxTreeItemId itemId = GetSelection();
item->ShowInfo(this);
}
- wxLogMessage("OnKeyDown");
+ wxLogMessage("OnTreeKeyDown");
}
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));
}