1) separate expand/collapse event

2) separate Expand/Collapse/ToggleItem() functions
3) IsItemExpanded() added


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1998-07-12 22:50:32 +00:00
parent 5475b96085
commit 092bddef5a

View File

@@ -95,7 +95,7 @@ public:
int m_children; int m_children;
long m_data; long m_data;
wxTreeItem(void); wxTreeItem();
// Accessors // Accessors
inline long GetMask() const { return m_mask; } inline long GetMask() const { return m_mask; }
@@ -110,7 +110,7 @@ public:
inline void SetMask(long mask) { m_mask = mask; } inline void SetMask(long mask) { m_mask = mask; }
inline void SetItemId(long id) { m_itemId = m_itemId = id; } inline void SetItemId(long id) { m_itemId = m_itemId = id; }
inline void GetState(long state) { m_state = state; } inline void SetState(long state) { m_state = state; }
inline void SetStateMask(long stateMask) { m_stateMask = stateMask; } inline void SetStateMask(long stateMask) { m_stateMask = stateMask; }
inline void GetText(const wxString& text) { m_text = text; } inline void GetText(const wxString& text) { m_text = text; }
inline void SetImage(int image) { m_image = image; } inline void SetImage(int image) { m_image = image; }
@@ -121,13 +121,14 @@ public:
class WXDLLEXPORT wxTreeCtrl: public wxControl class WXDLLEXPORT wxTreeCtrl: public wxControl
{ {
DECLARE_DYNAMIC_CLASS(wxTreeCtrl) public:
public:
/* /*
* Public interface * Public interface
*/ */
wxTreeCtrl(void); // creation
// --------
wxTreeCtrl();
inline wxTreeCtrl(wxWindow *parent, wxWindowID id = -1, inline wxTreeCtrl(wxWindow *parent, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
@@ -138,7 +139,7 @@ class WXDLLEXPORT wxTreeCtrl: public wxControl
{ {
Create(parent, id, pos, size, style, validator, name); Create(parent, id, pos, size, style, validator, name);
} }
~wxTreeCtrl(void); ~wxTreeCtrl();
bool Create(wxWindow *parent, wxWindowID id = -1, bool Create(wxWindow *parent, wxWindowID id = -1,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
@@ -147,52 +148,85 @@ class WXDLLEXPORT wxTreeCtrl: public wxControl
const wxValidator& validator = wxDefaultValidator, const wxValidator& validator = wxDefaultValidator,
const wxString& name = "wxTreeCtrl"); const wxString& name = "wxTreeCtrl");
// Attributes // accessors
int GetCount(void) const ; // ---------
int GetIndent(void) const ; //
void SetIndent(int indent) ; int GetCount() const;
wxImageList *GetImageList(int which = wxIMAGE_LIST_NORMAL) const ;
void SetImageList(wxImageList *imageList, int which = wxIMAGE_LIST_NORMAL) ; // indent
long GetNextItem(long item, int code) const ; int GetIndent() const;
bool ItemHasChildren(long item) const ; void SetIndent(int indent);
long GetChild(long item) const ; // image list
long GetParent(long item) const ; wxImageList *GetImageList(int which = wxIMAGE_LIST_NORMAL) const;
long GetFirstVisibleItem(void) const ; void SetImageList(wxImageList *imageList, int which = wxIMAGE_LIST_NORMAL);
long GetNextVisibleItem(long item) const ;
long GetSelection(void) const ; // navigation inside the tree
long GetRootItem(void) const ; long GetNextItem(long item, int code) const;
bool GetItem(wxTreeItem& info) const ; bool ItemHasChildren(long item) const;
bool SetItem(wxTreeItem& info) ; long GetChild(long item) const;
int GetItemState(long item, long stateMask) const ; long GetParent(long item) const;
bool SetItemState(long item, long state, long stateMask) ; long GetFirstVisibleItem() const;
bool SetItemImage(long item, int image, int selImage) ; long GetNextVisibleItem(long item) const;
wxString GetItemText(long item) const ; long GetSelection() const;
void SetItemText(long item, const wxString& str) ; long GetRootItem() const;
long GetItemData(long item) const ;
bool SetItemData(long item, long data) ; // generic function for (g|s)etting item attributes
bool GetItem(wxTreeItem& info) const;
bool SetItem(wxTreeItem& info);
// item state
int GetItemState(long item, long stateMask) const;
bool SetItemState(long item, long state, long stateMask);
// item image
bool SetItemImage(long item, int image, int selImage);
// item text
wxString GetItemText(long item) const;
void SetItemText(long item, const wxString& str);
// custom data associated with the item
long GetItemData(long item) const;
bool SetItemData(long item, long data);
// convenience function
bool IsItemExpanded(long item)
{
return (GetItemState(item, wxTREE_STATE_EXPANDED) &
wxTREE_STATE_EXPANDED) != 0;
}
// bounding rect
bool GetItemRect(long item, wxRectangle& rect, bool textOnly = FALSE) const; bool GetItemRect(long item, wxRectangle& rect, bool textOnly = FALSE) const;
wxTextCtrl& GetEditControl(void) const; //
wxTextCtrl& GetEditControl() const;
// Operations // operations
// ----------
// adding/deleting items
bool DeleteItem(long item); bool DeleteItem(long item);
bool ExpandItem(long item, int action); long InsertItem(long parent, wxTreeItem& info,
long InsertItem(long parent, wxTreeItem& info, long insertAfter = wxTREE_INSERT_LAST); long insertAfter = wxTREE_INSERT_LAST);
// If image > -1 and selImage == -1, the same image is used for // If image > -1 and selImage == -1, the same image is used for
// both selected and unselected items. // both selected and unselected items.
long InsertItem(long parent, const wxString& label, int image = -1, int selImage = -1, long insertAfter = wxTREE_INSERT_LAST); long InsertItem(long parent, const wxString& label,
int image = -1, int selImage = -1,
long insertAfter = wxTREE_INSERT_LAST);
// changing item state
bool ExpandItem(long item) { return ExpandItem(item, wxTREE_EXPAND_EXPAND); }
bool CollapseItem(long item) { return ExpandItem(item, wxTREE_EXPAND_COLLAPSE); }
bool ToggleItem(long item) { return ExpandItem(item, wxTREE_EXPAND_TOGGLE); }
// common interface for {Expand|Collapse|Toggle}Item
bool ExpandItem(long item, int action);
//
bool SelectItem(long item); bool SelectItem(long item);
bool ScrollTo(long item); bool ScrollTo(long item);
bool DeleteAllItems(void) ; bool DeleteAllItems();
wxTextCtrl& Edit(long item) ; wxTextCtrl& Edit(long item);
long HitTest(const wxPoint& point, int& flags); long HitTest(const wxPoint& point, int& flags);
// wxImageList *CreateDragImage(long item) ; // wxImageList *CreateDragImage(long item);
bool SortChildren(long item) ; bool SortChildren(long item);
bool EnsureVisible(long item) ; bool EnsureVisible(long item);
void Command(wxCommandEvent& event) { ProcessCommand(event); };
// IMPLEMENTATION // IMPLEMENTATION
void Command(wxCommandEvent& event) { ProcessCommand(event); };
bool MSWCommand(WXUINT param, WXWORD id); bool MSWCommand(WXUINT param, WXWORD id);
bool MSWNotify(WXWPARAM wParam, WXLPARAM lParam); bool MSWNotify(WXWPARAM wParam, WXLPARAM lParam);
@@ -200,6 +234,8 @@ protected:
wxTextCtrl m_textCtrl; wxTextCtrl m_textCtrl;
wxImageList *m_imageListNormal; wxImageList *m_imageListNormal;
wxImageList *m_imageListState; wxImageList *m_imageListState;
DECLARE_DYNAMIC_CLASS(wxTreeCtrl)
}; };
/* /*
@@ -212,6 +248,8 @@ protected:
wxEVT_COMMAND_TREE_SET_INFO, wxEVT_COMMAND_TREE_SET_INFO,
wxEVT_COMMAND_TREE_ITEM_EXPANDED, wxEVT_COMMAND_TREE_ITEM_EXPANDED,
wxEVT_COMMAND_TREE_ITEM_EXPANDING, wxEVT_COMMAND_TREE_ITEM_EXPANDING,
wxEVT_COMMAND_TREE_ITEM_COLLAPSED,
wxEVT_COMMAND_TREE_ITEM_COLLAPSING,
wxEVT_COMMAND_TREE_SEL_CHANGED, wxEVT_COMMAND_TREE_SEL_CHANGED,
wxEVT_COMMAND_TREE_SEL_CHANGING, wxEVT_COMMAND_TREE_SEL_CHANGING,
wxEVT_COMMAND_TREE_KEY_DOWN wxEVT_COMMAND_TREE_KEY_DOWN
@@ -246,6 +284,8 @@ typedef void (wxEvtHandler::*wxTreeEventFunction)(wxTreeEvent&);
#define EVT_TREE_SET_INFO(id, fn) { wxEVT_COMMAND_TREE_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, #define EVT_TREE_SET_INFO(id, fn) { wxEVT_COMMAND_TREE_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
#define EVT_TREE_ITEM_EXPANDED(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, #define EVT_TREE_ITEM_EXPANDED(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
#define EVT_TREE_ITEM_EXPANDING(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, #define EVT_TREE_ITEM_EXPANDING(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
#define EVT_TREE_ITEM_COLLAPSED(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
#define EVT_TREE_ITEM_COLLAPSING(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
#define EVT_TREE_SEL_CHANGED(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, #define EVT_TREE_SEL_CHANGED(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
#define EVT_TREE_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, #define EVT_TREE_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
#define EVT_TREE_KEY_DOWN(id, fn) { wxEVT_COMMAND_TREE_KEY_DOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, #define EVT_TREE_KEY_DOWN(id, fn) { wxEVT_COMMAND_TREE_KEY_DOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },