X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f38374d0d7aa865e9bbe8ee61b75b94ffcdfb220..794bcc2dea743ac907b839f54e451847c9ea4b72:/include/wx/generic/treectrl.h diff --git a/include/wx/generic/treectrl.h b/include/wx/generic/treectrl.h index 4be159ae58..7d1dd7e39d 100644 --- a/include/wx/generic/treectrl.h +++ b/include/wx/generic/treectrl.h @@ -16,12 +16,6 @@ #pragma interface "treectrl.h" #endif -#ifdef __WXMSW__ -WXDLLEXPORT_DATA(extern const char*) wxTreeCtrlNameStr; -#else -#define wxTreeCtrlNameStr "wxTreeCtrl" -#endif - #include "wx/defs.h" #include "wx/string.h" #include "wx/object.h" @@ -32,51 +26,6 @@ WXDLLEXPORT_DATA(extern const char*) wxTreeCtrlNameStr; #include "wx/dynarray.h" #include "wx/timer.h" -//those defines should only be done in generic/treectrl.h, -//because wxMSW doesn't allow mutiple selection - -#ifndef wxTR_SINGLE -#define wxTR_SINGLE 0x0000 -#define wxTR_MULTIPLE 0x0020 -#define wxTR_EXTENDED 0x0040 -#define wxTR_HAS_VARIABLE_ROW_HIGHT 0x0080 -#endif - -// ----------------------------------------------------------------------------- -// constants -// ----------------------------------------------------------------------------- - -// values for the `flags' parameter of wxTreeCtrl::HitTest() which determine -// where exactly the specified point is situated: - -static const int wxTREE_HITTEST_ABOVE = 0x0001; -static const int wxTREE_HITTEST_BELOW = 0x0002; -static const int wxTREE_HITTEST_NOWHERE = 0x0004; - // on the button associated with an item. -static const int wxTREE_HITTEST_ONITEMBUTTON = 0x0008; - // on the bitmap associated with an item. -static const int wxTREE_HITTEST_ONITEMICON = 0x0010; - // on the ident associated with an item. -static const int wxTREE_HITTEST_ONITEMIDENT = 0x0020; - // on the label (string) associated with an item. -static const int wxTREE_HITTEST_ONITEMLABEL = 0x0040; - // on the right of the label associated with an item. -static const int wxTREE_HITTEST_ONITEMRIGHT = 0x0080; - // on the label (string) associated with an item. -//static const int wxTREE_HITTEST_ONITEMSTATEICON = 0x0100; - // on the left of the wxTreeCtrl. -static const int wxTREE_HITTEST_TOLEFT = 0x0200; - // on the right of the wxTreeCtrl. -static const int wxTREE_HITTEST_TORIGHT = 0x0400; - // on the upper part (first half) of the item. -static const int wxTREE_HITTEST_ONITEMUPPERPART = 0x0800; - // on the lower part (second half) of the item. -static const int wxTREE_HITTEST_ONITEMLOWERPART = 0x1000; - - // anywhere on the item -static const int wxTREE_HITTEST_ONITEM = wxTREE_HITTEST_ONITEMICON | - wxTREE_HITTEST_ONITEMLABEL; - // ----------------------------------------------------------------------------- // forward declaration // ----------------------------------------------------------------------------- @@ -147,50 +96,6 @@ protected: wxTreeItemId m_pItem; }; -//----------------------------------------------------------------------------- -// wxTreeRenameTimer (internal) -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxTreeRenameTimer: public wxTimer -{ - private: - wxTreeCtrl *m_owner; - - public: - wxTreeRenameTimer( wxTreeCtrl *owner ); - void Notify(); -}; - -//----------------------------------------------------------------------------- -// wxTreeTextCtrl (internal) -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxTreeTextCtrl: public wxTextCtrl -{ - DECLARE_DYNAMIC_CLASS(wxTreeTextCtrl); - - private: - bool *m_accept; - wxString *m_res; - wxTreeCtrl *m_owner; - wxString m_startValue; - - public: - wxTreeTextCtrl(void) {}; - wxTreeTextCtrl( wxWindow *parent, const wxWindowID id, - bool *accept, wxString *res, wxTreeCtrl *owner, - const wxString &value = wxEmptyString, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, -#if wxUSE_VALIDATORS - int style = 0, const wxValidator& validator = wxDefaultValidator, -#endif - const wxString &name = wxTextCtrlNameStr ); - void OnChar( wxKeyEvent &event ); - void OnKillFocus( wxFocusEvent &event ); - - DECLARE_EVENT_TABLE() -}; - // ----------------------------------------------------------------------------- // wxTreeCtrl - the tree control // ----------------------------------------------------------------------------- @@ -206,9 +111,7 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, -#if wxUSE_VALIDATORS const wxValidator &validator = wxDefaultValidator, -#endif const wxString& name = wxTreeCtrlNameStr) { Create(parent, id, pos, size, style, validator, name); @@ -220,9 +123,7 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, -#if wxUSE_VALIDATORS const wxValidator &validator = wxDefaultValidator, -#endif const wxString& name = wxTreeCtrlNameStr); // accessors @@ -290,6 +191,15 @@ public: // the item will be shown in bold void SetItemBold(const wxTreeItemId& item, bool bold = TRUE); + // set the items text colour + void SetItemTextColour(const wxTreeItemId& item, const wxColour& col); + + // set the items background colour + void SetItemBackgroundColour(const wxTreeItemId& item, const wxColour& col); + + // set the items font (should be of the same height for all items) + void SetItemFont(const wxTreeItemId& item, const wxFont& font); + // item status inquiries // --------------------- @@ -378,6 +288,13 @@ public: int image = -1, int selectedImage = -1, wxTreeItemData *data = NULL); + // insert a new item before the one with the given index + wxTreeItemId InsertItem(const wxTreeItemId& parent, + size_t index, + const wxString& text, + int image = -1, int selectedImage = -1, + wxTreeItemData *data = NULL); + // insert a new item in as the last child of the parent wxTreeItemId AppendItem(const wxTreeItemId& parent, const wxString& text, @@ -445,7 +362,7 @@ public: void SetItemSelectedImage(const wxTreeItemId& item, int image) { SetItemImage(item, image, wxTreeItemIcon_Selected); } - // implementation + // implementation only from now on // callbacks void OnPaint( wxPaintEvent &event ); @@ -455,12 +372,11 @@ public: void OnMouse( wxMouseEvent &event ); void OnIdle( wxIdleEvent &event ); - // implementation + // implementation helpers void SendDeleteEvent(wxGenericTreeItem *itemBeingDeleted); - // Draw Special Information - void DrawBorder(wxTreeItemId& item); - void DrawLine(wxTreeItemId& item, bool below); + void DrawBorder(const wxTreeItemId& item); + void DrawLine(const wxTreeItemId& item, bool below); protected: friend class wxGenericTreeItem; @@ -482,8 +398,14 @@ protected: wxBrush *m_hilightBrush; wxImageList *m_imageListNormal, *m_imageListState; + int m_dragCount; wxPoint m_dragStart; + bool m_isDragging; // true between BEGIN/END drag events + wxGenericTreeItem *m_dropTarget; + wxCursor m_oldCursor; // cursor is changed while dragging + wxGenericTreeItem *m_oldSelection; + wxTimer *m_renameTimer; bool m_renameAccept; wxString m_renameRes; @@ -519,6 +441,8 @@ protected: bool TagNextChildren(wxGenericTreeItem *crt_item, wxGenericTreeItem *last_item, bool select); void UnselectAllChildren( wxGenericTreeItem *item ); + void DrawDropEffect(wxGenericTreeItem *item); + private: DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS(wxTreeCtrl)