]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/treectlg.h
Implemented wxButton::DoGetBestSize for wxMotif. Now normal buttons
[wxWidgets.git] / include / wx / generic / treectlg.h
index da193415ce4a335cc8dc74f3adbe0ddf6bade761..407f09a3010fbc8994890fea7d1d58b72e260bde 100644 (file)
@@ -12,7 +12,7 @@
 #ifndef _GENERIC_TREECTRL_H_
 #define _GENERIC_TREECTRL_H_
 
 #ifndef _GENERIC_TREECTRL_H_
 #define _GENERIC_TREECTRL_H_
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
     #pragma interface "treectlg.h"
 #endif
 
     #pragma interface "treectlg.h"
 #endif
 
 
 #include "wx/scrolwin.h"
 #include "wx/pen.h"
 
 #include "wx/scrolwin.h"
 #include "wx/pen.h"
+#include "wx/imaglist.h"
 
 // -----------------------------------------------------------------------------
 // forward declaration
 // -----------------------------------------------------------------------------
 
 
 // -----------------------------------------------------------------------------
 // forward declaration
 // -----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxImageList;
 class WXDLLEXPORT wxGenericTreeItem;
 
 class WXDLLEXPORT wxTreeItemData;
 class WXDLLEXPORT wxGenericTreeItem;
 
 class WXDLLEXPORT wxTreeItemData;
@@ -33,6 +33,7 @@ class WXDLLEXPORT wxTreeItemData;
 class WXDLLEXPORT wxTreeRenameTimer;
 class WXDLLEXPORT wxTreeFindTimer;
 class WXDLLEXPORT wxTreeTextCtrl;
 class WXDLLEXPORT wxTreeRenameTimer;
 class WXDLLEXPORT wxTreeFindTimer;
 class WXDLLEXPORT wxTreeTextCtrl;
+class WXDLLEXPORT wxTextCtrl;
 
 // -----------------------------------------------------------------------------
 // wxGenericTreeCtrl - the tree control
 
 // -----------------------------------------------------------------------------
 // wxGenericTreeCtrl - the tree control
@@ -117,6 +118,15 @@ public:
         // get the data associated with the item
     wxTreeItemData *GetItemData(const wxTreeItemId& item) const;
 
         // 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
     // ---------
 
     // modifiers
     // ---------
 
@@ -192,7 +202,16 @@ public:
     size_t GetSelections(wxArrayTreeItemIds&) const;
 
         // get the parent of this item (may return NULL if root)
     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
 
         // for this enumeration function you must pass in a "cookie" parameter
         // which is opaque for the application but is necessary for the library
@@ -306,6 +325,10 @@ public:
         // been before.
     void EditLabel( const wxTreeItemId& item ) { Edit( item ); }
     void Edit( const wxTreeItemId& item );
         // 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
 
     // sorting
         // this function is called to compare 2 items and should return -1, 0
@@ -353,8 +376,7 @@ protected:
 
     wxGenericTreeItem   *m_anchor;
     wxGenericTreeItem   *m_current,
 
     wxGenericTreeItem   *m_anchor;
     wxGenericTreeItem   *m_current,
-                        *m_key_current,
-                        *m_currentEdit;
+                        *m_key_current;
     unsigned short       m_indent;
     unsigned short       m_spacing;
     int                  m_lineHeight;
     unsigned short       m_indent;
     unsigned short       m_spacing;
     int                  m_lineHeight;
@@ -367,7 +389,6 @@ protected:
                          m_ownsImageListState,
                          m_ownsImageListButtons;
     bool                 m_isDragging; // true between BEGIN/END drag events
                          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,
     bool                 m_lastOnSame;  // last click on the same item as prev
     wxImageList         *m_imageListNormal,
                         *m_imageListState,
@@ -378,9 +399,9 @@ protected:
     wxGenericTreeItem   *m_dropTarget;
     wxCursor             m_oldCursor;  // cursor is changed while dragging
     wxGenericTreeItem   *m_oldSelection;
     wxGenericTreeItem   *m_dropTarget;
     wxCursor             m_oldCursor;  // cursor is changed while dragging
     wxGenericTreeItem   *m_oldSelection;
+    wxTreeTextCtrl      *m_textCtrl;
 
     wxTimer             *m_renameTimer;
 
     wxTimer             *m_renameTimer;
-    wxString             m_renameRes;
 
     wxBitmap            *m_arrowRight,
                         *m_arrowDown;
 
     wxBitmap            *m_arrowRight,
                         *m_arrowDown;
@@ -405,6 +426,9 @@ protected:
                               int image, int selectedImage,
                               wxTreeItemData *data);
 
                               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;
 
     // find the first item starting with the given prefix after the given item
     wxTreeItemId FindItem(const wxTreeItemId& id, const wxString& prefix) const;
 
@@ -431,7 +455,8 @@ protected:
     void RefreshSelectedUnder(wxGenericTreeItem *item);
 
     void OnRenameTimer();
     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 );
 
     void FillArray(wxGenericTreeItem*, wxArrayTreeItemIds&) const;
     void SelectItemRange( wxGenericTreeItem *item1, wxGenericTreeItem *item2 );
@@ -442,6 +467,7 @@ protected:
 private:
     DECLARE_EVENT_TABLE()
     DECLARE_DYNAMIC_CLASS(wxGenericTreeCtrl)
 private:
     DECLARE_EVENT_TABLE()
     DECLARE_DYNAMIC_CLASS(wxGenericTreeCtrl)
+    DECLARE_NO_COPY_CLASS(wxGenericTreeCtrl)
 };
 
 #if !defined(__WXMSW__) || defined(__WIN16__) || defined(__WXUNIVERSAL__)
 };
 
 #if !defined(__WXMSW__) || defined(__WIN16__) || defined(__WXUNIVERSAL__)