// Created: 01/02/97
// RCS-ID: $Id$
// Copyright: (c) 1997,1998 Robert Roebling
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _GENERIC_TREECTRL_H_
#define _GENERIC_TREECTRL_H_
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "treectlg.h"
#endif
#include "wx/scrolwin.h"
#include "wx/pen.h"
+#include "wx/imaglist.h"
// -----------------------------------------------------------------------------
// forward declaration
// -----------------------------------------------------------------------------
-class WXDLLEXPORT wxImageList;
class WXDLLEXPORT wxGenericTreeItem;
class WXDLLEXPORT wxTreeItemData;
class WXDLLEXPORT wxTreeRenameTimer;
class WXDLLEXPORT wxTreeFindTimer;
class WXDLLEXPORT wxTreeTextCtrl;
+class WXDLLEXPORT wxTextCtrl;
// -----------------------------------------------------------------------------
// wxGenericTreeCtrl - the tree control
// get the data associated with the item
wxTreeItemData *GetItemData(const wxTreeItemId& item) const;
+ // get the item's text colour
+ wxColour GetItemTextColour(const wxTreeItemId& item) const;
+
+ // get the item's background colour
+ wxColour GetItemBackgroundColour(const wxTreeItemId& item) const;
+
+ // get the item's font
+ wxFont GetItemFont(const wxTreeItemId& item) const;
+
// modifiers
// ---------
size_t GetSelections(wxArrayTreeItemIds&) const;
// get the parent of this item (may return NULL if root)
- wxTreeItemId GetParent(const wxTreeItemId& item) const;
+ wxTreeItemId GetItemParent(const wxTreeItemId& item) const;
+
+#if WXWIN_COMPATIBILITY_2_2
+ // deprecated: Use GetItemParent instead.
+ wxTreeItemId GetParent(const wxTreeItemId& item) const
+ { return GetItemParent( item ); }
+
+ // Expose the base class method hidden by the one above.
+ wxWindow *GetParent() const { return wxScrolledWindow::GetParent(); }
+#endif // WXWIN_COMPATIBILITY_2_2
// for this enumeration function you must pass in a "cookie" parameter
// which is opaque for the application but is necessary for the library
// been before.
void EditLabel( const wxTreeItemId& item ) { Edit( item ); }
void Edit( const wxTreeItemId& item );
+ // returns a pointer to the text edit control if the item is being
+ // edited, NULL otherwise (it's assumed that no more than one item may
+ // be edited simultaneously)
+ wxTextCtrl* GetEditControl() const;
// sorting
// this function is called to compare 2 items and should return -1, 0
void OnKillFocus( wxFocusEvent &event );
void OnChar( wxKeyEvent &event );
void OnMouse( wxMouseEvent &event );
- void OnIdle( wxIdleEvent &event );
+ void OnInternalIdle( );
// implementation helpers
protected:
wxGenericTreeItem *m_anchor;
wxGenericTreeItem *m_current,
*m_key_current,
- *m_currentEdit;
+ // A hint to select a parent item after deleting a child
+ *m_select_me;
unsigned short m_indent;
unsigned short m_spacing;
int m_lineHeight;
m_ownsImageListState,
m_ownsImageListButtons;
bool m_isDragging; // true between BEGIN/END drag events
- bool m_renameAccept;
bool m_lastOnSame; // last click on the same item as prev
wxImageList *m_imageListNormal,
*m_imageListState,
wxGenericTreeItem *m_dropTarget;
wxCursor m_oldCursor; // cursor is changed while dragging
wxGenericTreeItem *m_oldSelection;
+ wxTreeTextCtrl *m_textCtrl;
wxTimer *m_renameTimer;
- wxString m_renameRes;
wxBitmap *m_arrowRight,
*m_arrowDown;
int image, int selectedImage,
wxTreeItemData *data);
+ // called by wxTextTreeCtrl when it marks itself for deletion
+ void ResetTextControl();
+
// find the first item starting with the given prefix after the given item
wxTreeItemId FindItem(const wxTreeItemId& id, const wxString& prefix) const;
void RefreshSelectedUnder(wxGenericTreeItem *item);
void OnRenameTimer();
- void OnRenameAccept();
+ bool OnRenameAccept(wxGenericTreeItem *item, const wxString& value);
+ void OnRenameCancelled(wxGenericTreeItem *item);
void FillArray(wxGenericTreeItem*, wxArrayTreeItemIds&) const;
void SelectItemRange( wxGenericTreeItem *item1, wxGenericTreeItem *item2 );
private:
DECLARE_EVENT_TABLE()
DECLARE_DYNAMIC_CLASS(wxGenericTreeCtrl)
+ DECLARE_NO_COPY_CLASS(wxGenericTreeCtrl)
};
#if !defined(__WXMSW__) || defined(__WIN16__) || defined(__WXUNIVERSAL__)