]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/treectrl/treetest.cpp
corrected (?) wxStringList::Delete()
[wxWidgets.git] / samples / treectrl / treetest.cpp
index 5085521447ce1a8c12bedcfb837ba8511a35fc38..17d2ac3490bb6aeccb22f70fedb8a539dc7aa8ec 100644 (file)
@@ -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_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_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_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)
 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_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 &not bold");
+  file_menu->AppendSeparator();
   file_menu->Append(TreeTest_About, "&About...");
   file_menu->AppendSeparator();
   file_menu->Append(TreeTest_Quit, "E&xit");
   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);
 
   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);
   // set our text control as the log target
   wxLogTextCtrl *logWindow = new wxLogTextCtrl(textCtrl);
   delete wxLog::SetActiveTarget(logWindow);
+#endif
 }
 
 MyFrame::~MyFrame()
 }
 
 MyFrame::~MyFrame()
@@ -167,6 +178,11 @@ void MyFrame::OnDump(wxCommandEvent& WXUNUSED(event))
   m_treeCtrl->GetItemsRecursively(root, -1);
 }
 
   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();
 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 = 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(icon1));
+  m_imageListNormal->Add(wxICON(icon2));
 
   SetImageList(m_imageListNormal);
 
 
   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));
       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!
     }
   }
   //else: done!
@@ -240,7 +256,7 @@ void MyTreeCtrl::AddTestItemsToTree(size_t numChildren,
                         TreeCtrlIcon_Folder, TreeCtrlIcon_Folder,
                         new MyTreeItemData("Root item"));
 
                         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::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();
 {
   // show some info about this item
   wxTreeItemId itemId = GetSelection();
@@ -312,7 +328,7 @@ void MyTreeCtrl::OnKeyDown(wxTreeEvent& WXUNUSED(event))
     item->ShowInfo(this);
   }
 
     item->ShowInfo(this);
   }
 
-  wxLogMessage("OnKeyDown");
+  wxLogMessage("OnTreeKeyDown");
 }
 
 static inline const char *Bool2String(bool b)
 }
 
 static inline const char *Bool2String(bool b)
@@ -322,11 +338,12 @@ static inline const char *Bool2String(bool b)
 
 void MyTreeItemData::ShowInfo(wxTreeCtrl *tree)
 {
 
 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())),
                "%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));
 }
                tree->GetChildrenCount(GetId()),
                tree->GetChildrenCount(GetId(), FALSE));
 }