// Created: 04/01/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows license
+// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
// Define a new application type
-class MyApp: public wxApp
-{ public:
- bool OnInit(void);
+class MyApp : public wxApp
+{
+public:
+ bool OnInit();
+};
+
+class MyTreeItemData : public wxTreeItemData
+{
+public:
+ MyTreeItemData(const wxString& desc) : m_desc(desc) { }
- wxImageList *m_imageListNormal;
+ void ShowInfo(wxTreeCtrl *tree);
+
+private:
+ wxString m_desc;
};
-class MyTreeCtrl: public wxTreeCtrl
+class MyTreeCtrl : public wxTreeCtrl
{
public:
- MyTreeCtrl(wxWindow *parent, const wxWindowID id, const wxPoint& pos,
- const wxSize& size, long style):
- wxTreeCtrl(parent, id, pos, size, style)
- {
- }
-
- 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 OnSelChanged(wxTreeEvent& event);
- void OnSelChanging(wxTreeEvent& event);
- void OnKeyDown(wxTreeEvent& event);
-
- DECLARE_EVENT_TABLE()
+ enum
+ {
+ TreeCtrlIcon_Folder,
+ TreeCtrlIcon_File
+ };
+
+ 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 OnKeyDown(wxTreeEvent& event);
+
+ void GetItemsRecursively(const wxTreeItemId& idParent, long cookie);
+
+private:
+ void AddItemsRecursively(const wxTreeItemId& idParent,
+ size_t nChildren,
+ size_t depth,
+ size_t folder);
+
+ void AddTestItemsToTree(size_t numChildren,
+ size_t depth);
+
+ wxImageList *m_imageListNormal;
+
+ DECLARE_EVENT_TABLE()
};
// Define a new frame type
class MyFrame: public wxFrame
-{ public:
- MyTreeCtrl *m_treeCtrl;
- wxTextCtrl *m_logWindow;
-
- MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h);
- ~MyFrame(void);
-
- public:
- void OnQuit(wxCommandEvent& event);
- void OnAbout(wxCommandEvent& event);
- bool OnClose(void) { return TRUE; }
-
- DECLARE_EVENT_TABLE()
-};
+{
+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);
-// ID for the menu quit command
-#define TREE_QUIT 1
-#define TREE_ABOUT 102
+private:
+ MyTreeCtrl *m_treeCtrl;
-#define TREE_CTRL 1000
+ DECLARE_EVENT_TABLE()
+};
+// menu and control ids
+enum
+{
+ TreeTest_Quit,
+ TreeTest_About,
+ TreeTest_Dump,
+ TreeTest_Ctrl = 100
+};
+enum
+{
+ TreeCtrlIcon_File,
+ TreeCtrlIcon_Folder
+};