#include "wx/dynarray.h"
#include "wx/timer.h"
-//those defines should only be done in generic/treectrl.h,
+//those defines should only be done in generic/treectrl.h,
//because wxMSW doesn't allow mutiple selection
#ifndef wxTR_SINGLE
private:
bool *m_accept;
wxString *m_res;
- wxTreeCtrl *m_owner;
+ wxTreeCtrl *m_owner;
+ wxString m_startValue;
public:
wxTreeTextCtrl(void) {};
- wxTreeTextCtrl( wxWindow *parent, const wxWindowID id,
+ wxTreeTextCtrl( wxWindow *parent, const wxWindowID id,
bool *accept, wxString *res, wxTreeCtrl *owner,
- const wxString &value = "",
+ const wxString &value = wxEmptyString,
const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
+#if wxUSE_VALIDATORS
+# if defined(__VISAGECPP__)
+ int style = 0, const wxValidator* validator = wxDefaultValidator,
+# else
int style = 0, const wxValidator& validator = wxDefaultValidator,
- const wxString &name = "wxTreeTextCtrlText" );
+# endif
+#endif
+ const wxString &name = wxTextCtrlNameStr );
void OnChar( wxKeyEvent &event );
void OnKillFocus( wxFocusEvent &event );
-
+
DECLARE_EVENT_TABLE()
};
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,
+#if wxUSE_VALIDATORS
+# if defined(__VISAGECPP__)
+ const wxValidator *validator = wxDefaultValidator,
+# else
const wxValidator &validator = wxDefaultValidator,
+# endif
+#endif
const wxString& name = wxTreeCtrlNameStr)
{
Create(parent, id, pos, size, style, validator, name);
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,
+#if wxUSE_VALIDATORS
+# if defined(__VISAGECPP__)
+ const wxValidator *validator = wxDefaultValidator,
+# else
const wxValidator &validator = wxDefaultValidator,
+# endif
+#endif
const wxString& name = wxTreeCtrlNameStr);
// accessors
unsigned int GetIndent() const { return m_indent; }
void SetIndent(unsigned int indent);
- // spacing is the number of pixels between the start and the Text
+ // spacing is the number of pixels between the start and the Text
unsigned int GetSpacing() const { return m_spacing; }
void SetSpacing(unsigned int spacing);
-
+
// 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
// retrieve items label
wxString GetItemText(const wxTreeItemId& item) const;
- // get the normal item image
- int GetItemImage(const wxTreeItemId& item) const;
- // get the selected item image
- int GetItemSelectedImage(const wxTreeItemId& item) const;
+ // get one of the images associated with the item (normal by default)
+ int GetItemImage(const wxTreeItemId& item,
+ wxTreeItemIcon which = wxTreeItemIcon_Normal) const;
// get the data associated with the item
wxTreeItemData *GetItemData(const wxTreeItemId& item) const;
// set items label
void SetItemText(const wxTreeItemId& item, const wxString& text);
- // set the normal item image
- void SetItemImage(const wxTreeItemId& item, int image);
- // set the selected item image
- void SetItemSelectedImage(const wxTreeItemId& item, int image);
+ // get one of the images associated with the item (normal by default)
+ void SetItemImage(const wxTreeItemId& item, int image,
+ wxTreeItemIcon which = wxTreeItemIcon_Normal);
// associate some data with the item
void SetItemData(const wxTreeItemId& item, wxTreeItemData *data);
// been before.
void EditLabel( const wxTreeItemId& item ) { Edit( item ); }
void Edit( const wxTreeItemId& item );
-
+
// sorting
// this function is called to compare 2 items and should return -1, 0
// or +1 if the first item is less than, equal to or greater than the
// NB: this function is not reentrant and not MT-safe (FIXME)!
void SortChildren(const wxTreeItemId& item);
+ // deprecated functions: use Set/GetItemImage directly
+ // get the selected item image
+ int GetItemSelectedImage(const wxTreeItemId& item) const
+ { return GetItemImage(item, wxTreeItemIcon_Selected); }
+ // set the selected item image
+ void SetItemSelectedImage(const wxTreeItemId& item, int image)
+ { SetItemImage(item, image, wxTreeItemIcon_Selected); }
+
+ // implementation
+
// callbacks
void OnPaint( wxPaintEvent &event );
void OnSetFocus( wxFocusEvent &event );
// Draw Special Information
void DrawBorder(wxTreeItemId& item);
void DrawLine(wxTreeItemId& item, bool below);
-
+
protected:
friend class wxGenericTreeItem;
friend class wxTreeRenameTimer;
friend class wxTreeTextCtrl;
+ wxFont m_normalFont;
+ wxFont m_boldFont;
+
wxGenericTreeItem *m_anchor;
wxGenericTreeItem *m_current, *m_key_current, *m_currentEdit;
bool m_hasFocus;
wxImageList *m_imageListNormal,
*m_imageListState;
int m_dragCount;
+ wxPoint m_dragStart;
wxTimer *m_renameTimer;
bool m_renameAccept;
wxString m_renameRes;
void RefreshSubtree( wxGenericTreeItem *item );
void RefreshLine( wxGenericTreeItem *item );
-
+
void OnRenameTimer();
void OnRenameAccept();