wxWidgets/samples/treectrl/treetest.h
Vadim Zeitlin 372edb9d37 1. added wxTreeCtrl::DeleteChildren()
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
1998-12-17 18:41:00 +00:00

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
};