]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/propgrid/propgrid.h
make sure virtual method isn't inlined away
[wxWidgets.git] / include / wx / propgrid / propgrid.h
index fd3020a73748f95d6df44b9813d21f507a99cd9d..9eae5fad800008dc01d0cc39fddc92355ffa2926 100644 (file)
@@ -418,13 +418,10 @@ enum wxPG_KEYBOARD_ACTIONS
     wxPG_ACTION_EXPAND_PROPERTY,
     wxPG_ACTION_COLLAPSE_PROPERTY,
     wxPG_ACTION_CANCEL_EDIT,
-    wxPG_ACTION_CUT,
-    wxPG_ACTION_COPY,
-    wxPG_ACTION_PASTE,
     wxPG_ACTION_PRESS_BUTTON,  // Causes editor button (if any) to be pressed 
     wxPG_ACTION_MAX
 };
-
 /** @}
 */
 
@@ -491,8 +488,8 @@ enum wxPG_KEYBOARD_ACTIONS
 #define wxPG_FL_SPLITTER_PRE_SET            0x00400000
 // Validation failed. Clear on modify event.
 #define wxPG_FL_VALIDATION_FAILED           0x00800000
-// Set if selected is fully painted (ie. both image and text)
-//#define wxPG_FL_SELECTED_IS_FULL_PAINT      0x01000000
+// Auto sort is enabled (for categorized mode)
+#define wxPG_FL_CATMODE_AUTO_SORT           0x01000000
 // Set after page has been inserted to manager
 #define wxPG_MAN_FL_PAGE_INSERTED           0x02000000
 // Active editor control is abnormally large
@@ -990,11 +987,22 @@ public:
     /** Sets background colour of margin. */
     void SetMarginColour(const wxColour& col);
 
-    /** Sets background colour of property and all its children. Colours of
-        captions are not affected. Background brush cache is optimized for often
-        set colours to be set last.
+    /**
+        Sets background colour of property.
+
+        @param id
+            Property name or pointer.
+
+        @param colour
+            New background colour.
+
+        @param recursively
+            If True, child properties are affected recursively. Property
+            categories are skipped if this flag is used.
     */
-    void SetPropertyBackgroundColour( wxPGPropArg id, const wxColour& col );
+    void SetPropertyBackgroundColour( wxPGPropArg id,
+                                      const wxColour& colour,
+                                      bool recursively = false);
 
     /** Resets text and background colours of given property.
     */
@@ -1218,9 +1226,21 @@ public:
     // Mostly useful for page switching.
     void SwitchState( wxPropertyGridPageState* pNewState );
 
-    /** Pass this function to Connect calls in propertyclass::CreateEditor.
+    /**
+        When creating custom property editors, connect required editor events to
+        this function. For instance:
+
+        @code
+            control->Connect(control->GetId(), wxEVT_COMMAND_TEXT_UPDATED,
+                             wxEventHandler(wxPropertyGrid::OnCustomEditorEvent),
+                             NULL, propgrid);
+        @endcode
+
+        @remarks You should never need to call this function directly!
+
+        @see wxPGEditor::CreateControls(), wxEvtHandler::Connect()
     */
-    void OnCustomEditorEvent( wxCommandEvent &event );
+    void OnCustomEditorEvent( wxEvent &event );
 
     long GetInternalFlags() const { return m_iFlags; }
     bool HasInternalFlag( long flag ) const
@@ -1364,6 +1384,16 @@ public:
     // Control font changer helper.
     void SetCurControlBoldFont();
 
+    wxPGCell& GetPropertyDefaultCell()
+    {
+        return m_propertyDefaultCell;
+    }
+
+    wxPGCell& GetCategoryDefaultCell()
+    {
+        return m_categoryDefaultCell;
+    }
+
     //
     // Public methods for semi-public use
     // (not protected for optimization)
@@ -1610,13 +1640,16 @@ protected:
     // background colour for empty space below the grid
     wxColour            m_colEmptySpace;
 
-    // NB: These *cannot* be moved to globals.
+    // Default property colours
+    wxPGCell            m_propertyDefaultCell;
 
-    // Array of background colour brushes.
-    wxArrayPtrVoid      m_arrBgBrushes;
+    // Default property category
+    wxPGCell            m_categoryDefaultCell;
 
-    // Array of foreground colours.
-    wxArrayPtrVoid      m_arrFgCols;
+    // Backup of selected property's cells
+    wxVector<wxPGCell>  m_propCellsBackup;
+
+    // NB: These *cannot* be moved to globals.
 
     // labels when properties use common values
     wxVector<wxPGCommonValue*>  m_commonValues;
@@ -1645,7 +1678,6 @@ protected:
     void OnMouseDoubleClick( wxMouseEvent &event );
     void OnMouseUp( wxMouseEvent &event );
     void OnKey( wxKeyEvent &event );
-    void OnKeyUp( wxKeyEvent &event );
     void OnResize( wxSizeEvent &event );
 
     // event handlers
@@ -1654,9 +1686,7 @@ protected:
     bool HandleMouseRightClick( int x, unsigned int y, wxMouseEvent &event );
     bool HandleMouseDoubleClick( int x, unsigned int y, wxMouseEvent &event );
     bool HandleMouseUp( int x, unsigned int y, wxMouseEvent &event );
-    void HandleKeyEvent( wxKeyEvent &event );
-    // Handle TAB and ESCAPE in control
-    bool HandleChildKey( wxKeyEvent& event );
+    void HandleKeyEvent( wxKeyEvent &event, bool fromChild );
 
     void OnMouseEntry( wxMouseEvent &event );
 
@@ -1673,7 +1703,6 @@ protected:
     void OnMouseMoveChild( wxMouseEvent &event );
     void OnMouseUpChild( wxMouseEvent &event );
     void OnChildKeyDown( wxKeyEvent &event );
-    void OnChildKeyUp( wxKeyEvent &event );
 
     void OnCaptureChange( wxMouseCaptureChangedEvent &event );
 
@@ -1753,6 +1782,9 @@ protected:
 
     void ImprovedClientToScreen( int* px, int* py );
 
+    // Returns True if editor control has focus
+    bool IsEditorFocused() const;
+
     // Called by focus event handlers. newFocused is the window that becomes
     // focused.
     void HandleFocusChange( wxWindow* newFocused );
@@ -1782,14 +1814,6 @@ protected:
 
     static void RegisterDefaultEditors();
 
-    // Sets m_bgColIndex to this property and all its children.
-    void SetBackgroundColourIndex( wxPGProperty* p, int index );
-
-    // Sets m_fgColIndex to this property and all its children.
-    void SetTextColourIndex( wxPGProperty* p, int index, int flags );
-
-    int CacheColour( const wxColour& colour );
-
     // Sets up basic event handling for child control
     void SetupChildEventHandling( wxWindow* wnd );