// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
+
#ifdef __GNUG__
#pragma interface "treectrl.h"
#endif
-#include "wx/control.h"
-#include "wx/event.h"
+#include "wx/textctrl.h"
#ifdef __GNUWIN32__
-# ifdef GetFirstChild
-# undef GetFirstChild
-# endif
-
-# ifdef GetNextSibling
-# undef GetNextSibling
-# endif
-#endif
+ // Cygwin windows.h defines these identifiers
+ #undef GetFirstChild
+ #undef GetNextSibling
+#endif // Cygwin
// the type for "untyped" data
typedef long wxDataType;
unsigned int GetIndent() const;
void SetIndent(unsigned int indent);
+ // spacing is the number of pixels between the start and the Text
+ // not implemented under wxMSW
+ unsigned int GetSpacing() const { return 18; } // return wxGTK default
+ void SetSpacing(unsigned int ) {}
+
// image list: these functions allow to associate an image list with
// the control and retrieve it. Note that the control does _not_ delete
// the associated image list when it's deleted in order to allow image
// the item will be shown in bold
void SetItemBold(const wxTreeItemId& item, bool bold = TRUE);
+ // the item will be shown with a drop highlight
+ void SetItemDropHighlight(const wxTreeItemId& item, bool highlight = TRUE);
+
// item status inquiries
// ---------------------
wxTreeItemId GetFirstChild(const wxTreeItemId& item, long& _cookie) const;
// get the next child
wxTreeItemId GetNextChild(const wxTreeItemId& item, long& _cookie) const;
+ // get the last child of this item - this method doesn't use cookies
+ wxTreeItemId GetLastChild(const wxTreeItemId& item) const;
// get the next sibling of this item
wxTreeItemId GetNextSibling(const wxTreeItemId& item) const;
wxTreeItemId HitTest(const wxPoint& point, int& flags);
// get the bounding rectangle of the item (or of its label only)
- // @@@ do we really need to expose this functions to the application?
- void GetBoundingRect(const wxTreeItemId& item,
+ bool GetBoundingRect(const wxTreeItemId& item,
wxRect& rect,
bool textOnly = FALSE) const;
// implementation
// --------------
- void Command(wxCommandEvent& event) { ProcessCommand(event); };
virtual bool MSWCommand(WXUINT param, WXWORD id);
- virtual bool MSWNotify(WXWPARAM wParam, WXLPARAM lParam, WXLPARAM *result);
+ virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
protected:
// SetImageList helper
DECLARE_DYNAMIC_CLASS(wxTreeCtrl)
};
-// ----------------------------------------------------------------------------
-// wxTreeEvent is a special class for all events associated with tree controls
-//
-// NB: note that not all accessors make sense for all events, see the event
-// descriptions below
-// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxTreeEvent : public wxNotifyEvent
-{
-friend wxTreeCtrl;
-public:
- wxTreeEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
-
- // accessors
- // get the item on which the operation was performed or the newly
- // selected item for wxEVT_COMMAND_TREE_SEL_CHANGED/ING events
- wxTreeItemId GetItem() const { return m_item; }
-
- // for wxEVT_COMMAND_TREE_SEL_CHANGED/ING events, get the previously
- // selected item
- wxTreeItemId GetOldItem() const { return m_itemOld; }
-
- // the point where the mouse was when the drag operation started (for
- // wxEVT_COMMAND_TREE_BEGIN_(R)DRAG events only)
- wxPoint GetPoint() const { return m_pointDrag; }
-
- // keyboard code (for wxEVT_COMMAND_TREE_KEY_DOWN only)
- int GetCode() const { return m_code; }
-
-private:
- // @@ we could save some space by using union here
- int m_code;
- wxTreeItemId m_item,
- m_itemOld;
- wxPoint m_pointDrag;
-
- DECLARE_DYNAMIC_CLASS(wxTreeEvent)
-};
-
-typedef void (wxEvtHandler::*wxTreeEventFunction)(wxTreeEvent&);
-
-// ----------------------------------------------------------------------------
-// macros for handling tree control events
-// ----------------------------------------------------------------------------
-
-// GetItem() returns the item being dragged, GetPoint() the mouse coords
-#define EVT_TREE_BEGIN_DRAG(id, fn) { wxEVT_COMMAND_TREE_BEGIN_DRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL },
-#define EVT_TREE_BEGIN_RDRAG(id, fn) { wxEVT_COMMAND_TREE_BEGIN_RDRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL },
-
-// GetItem() returns the itme whose label is being edited
-#define EVT_TREE_BEGIN_LABEL_EDIT(id, fn) { wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL },
-#define EVT_TREE_END_LABEL_EDIT(id, fn) { wxEVT_COMMAND_TREE_END_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL },
-
-// provide/update information about GetItem() item
-#define EVT_TREE_GET_INFO(id, fn) { wxEVT_COMMAND_TREE_GET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL },
-#define EVT_TREE_SET_INFO(id, fn) { wxEVT_COMMAND_TREE_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL },
-
-// GetItem() is the item being expanded/collapsed, the "ING" versions can use
-#define EVT_TREE_ITEM_EXPANDED(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL },
-#define EVT_TREE_ITEM_EXPANDING(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL },
-#define EVT_TREE_ITEM_COLLAPSED(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL },
-#define EVT_TREE_ITEM_COLLAPSING(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
-
-// GetOldItem() is the item which had the selection previously, GetItem() is
-// the item which acquires selection
-#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 },
-
-// GetCode() returns the key code
-// NB: this is the only message for which GetItem() is invalid (you may get the
-// item from GetSelection())
-#define EVT_TREE_KEY_DOWN(id, fn) { wxEVT_COMMAND_TREE_KEY_DOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
-
-// GetItem() returns the item being deleted, the associated data (if any) will
-// be deleted just after the return of this event handler (if any)
-#define EVT_TREE_DELETE_ITEM(id, fn) { wxEVT_COMMAND_TREE_DELETE_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL },
-
-// GetItem() returns the item that was activated (double click, enter, space)
-#define EVT_TREE_ITEM_ACTIVATED(id, fn) { wxEVT_COMMAND_TREE_ITEM_ACTIVATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL },
-
#endif
// _WX_TREECTRL_H_