372edb9d37
2. wxTreeCtrl::CollapseAndReset() doesn't destroy the item itself any more 3. wxTreeCtrl::Delete() sends wxEVT_COMMAND_TREE_CHILDREN event (but DeleteChildren() and DeleteAll() do not!) 4. Sample modified to show the new function too 5. Micro redraw bug fixed (small vertical line was sometimes drawn when it shouldn't have been) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1224 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
124 lines
2.9 KiB
C++
124 lines
2.9 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: treetest.h
|
|
// Purpose: wxTreeCtrl sample
|
|
// Author: Julian Smart
|
|
// Modified by:
|
|
// Created: 04/01/98
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) Julian Smart and Markus Holzem
|
|
// Licence: wxWindows license
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Define a new application type
|
|
class MyApp : public wxApp
|
|
{
|
|
public:
|
|
bool OnInit();
|
|
};
|
|
|
|
class MyTreeItemData : public wxTreeItemData
|
|
{
|
|
public:
|
|
MyTreeItemData(const wxString& desc) : m_desc(desc) { }
|
|
|
|
void ShowInfo(wxTreeCtrl *tree);
|
|
|
|
private:
|
|
wxString m_desc;
|
|
};
|
|
|
|
class MyTreeCtrl : public wxTreeCtrl
|
|
{
|
|
public:
|
|
enum
|
|
{
|
|
TreeCtrlIcon_File,
|
|
TreeCtrlIcon_Folder
|
|
};
|
|
|
|
MyTreeCtrl(wxWindow *parent, const wxWindowID id,
|
|
const wxPoint& pos, const wxSize& size,
|
|
long style);
|
|
virtual ~MyTreeCtrl();
|
|
|
|
void OnBeginDrag(wxTreeEvent& event);
|
|
void OnBeginRDrag(wxTreeEvent& event);
|
|
void OnBeginLabelEdit(wxTreeEvent& event);
|
|
void OnEndLabelEdit(wxTreeEvent& event);
|
|
void OnDeleteItem(wxTreeEvent& event);
|
|
void OnGetInfo(wxTreeEvent& event);
|
|
void OnSetInfo(wxTreeEvent& event);
|
|
void OnItemExpanded(wxTreeEvent& event);
|
|
void OnItemExpanding(wxTreeEvent& event);
|
|
void OnItemCollapsed(wxTreeEvent& event);
|
|
void OnItemCollapsing(wxTreeEvent& event);
|
|
void OnSelChanged(wxTreeEvent& event);
|
|
void OnSelChanging(wxTreeEvent& event);
|
|
void OnTreeKeyDown(wxTreeEvent& event);
|
|
void OnItemActivated(wxTreeEvent& event);
|
|
|
|
void GetItemsRecursively(const wxTreeItemId& idParent, long cookie);
|
|
|
|
void AddTestItemsToTree(size_t numChildren,
|
|
size_t depth);
|
|
|
|
private:
|
|
void AddItemsRecursively(const wxTreeItemId& idParent,
|
|
size_t nChildren,
|
|
size_t depth,
|
|
size_t folder);
|
|
|
|
wxImageList *m_imageListNormal;
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
};
|
|
|
|
// Define a new frame type
|
|
class MyFrame: public wxFrame
|
|
{
|
|
public:
|
|
// ctor and dtor
|
|
MyFrame(const wxString& title, int x, int y, int w, int h);
|
|
virtual ~MyFrame();
|
|
|
|
// menu callbacks
|
|
void OnQuit(wxCommandEvent& event);
|
|
void OnAbout(wxCommandEvent& event);
|
|
void OnDump(wxCommandEvent& event);
|
|
void OnDelete(wxCommandEvent& event);
|
|
void OnDeleteChildren(wxCommandEvent& event);
|
|
void OnDeleteAll(wxCommandEvent& event);
|
|
void OnRecreate(wxCommandEvent& event);
|
|
|
|
void OnSetBold(wxCommandEvent& WXUNUSED(event)) { DoSetBold(TRUE); }
|
|
void OnClearBold(wxCommandEvent& WXUNUSED(event)) { DoSetBold(FALSE); }
|
|
|
|
private:
|
|
MyTreeCtrl *m_treeCtrl;
|
|
|
|
void DoSetBold(bool bold = TRUE);
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
};
|
|
|
|
// menu and control ids
|
|
enum
|
|
{
|
|
TreeTest_Quit,
|
|
TreeTest_About,
|
|
TreeTest_Dump,
|
|
TreeTest_Bold,
|
|
TreeTest_UnBold,
|
|
TreeTest_Delete,
|
|
TreeTest_DeleteChildren,
|
|
TreeTest_DeleteAll,
|
|
TreeTest_Recreate,
|
|
TreeTest_Ctrl = 100
|
|
};
|
|
|
|
enum
|
|
{
|
|
TreeCtrlIcon_File,
|
|
TreeCtrlIcon_Folder
|
|
};
|