From f7df62c5759ad8bb44daa30f27d14131679284af Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 15 Jun 2025 02:51:30 +0200 Subject: [PATCH 1/9] Fix type of wxAuiToolBarArt::Get{Label,Tool}Size "dc" parameters They are now wxReadOnlyDC and not wxDC. --- interface/wx/aui/auibar.h | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/interface/wx/aui/auibar.h b/interface/wx/aui/auibar.h index 2a3c456465..12d9255be5 100644 --- a/interface/wx/aui/auibar.h +++ b/interface/wx/aui/auibar.h @@ -537,13 +537,27 @@ public: const wxRect& rect, int state) = 0; + /** + Return the size of the label for the given item. + + Note that the type of @a dc was wxDC until wxWidgets 3.3.0, where it + was changed to wxReadOnlyDC as this function doesn't modify the DC + contents. + */ virtual wxSize GetLabelSize( - wxDC& dc, + wxReadOnlyDC& dc, wxWindow* wnd, const wxAuiToolBarItem& item) = 0; + /** + Return the size of the given item. + + Note that the type of @a dc was wxDC until wxWidgets 3.3.0, where it + was changed to wxReadOnlyDC as this function doesn't modify the DC + contents. + */ virtual wxSize GetToolSize( - wxDC& dc, + wxReadOnlyDC& dc, wxWindow* wnd, const wxAuiToolBarItem& item) = 0; From 72d5da6379894116af7ed0a3f765dbeac58a2333 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 15 Jun 2025 02:54:07 +0200 Subject: [PATCH 2/9] Fix default value of wxUIntPtr data in wxDataViewCtrl docs wxUIntPtr is not a pointer, so can't be set to nullptr by default, use the same 0 as is used in the actual C++ header. --- interface/wx/dataview.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/interface/wx/dataview.h b/interface/wx/dataview.h index d466397d85..3d97ce24b0 100644 --- a/interface/wx/dataview.h +++ b/interface/wx/dataview.h @@ -3109,14 +3109,14 @@ public: after adding any items to the control (or, conversely, items must not be added before the columns are set up). */ - void AppendItem( const wxVector &values, wxUIntPtr data = nullptr ); + void AppendItem( const wxVector &values, wxUIntPtr data = 0 ); /** Prepends an item (i.e.\ a row) to the control. See remarks for AppendItem() for preconditions of this method. */ - void PrependItem( const wxVector &values, wxUIntPtr data = nullptr ); + void PrependItem( const wxVector &values, wxUIntPtr data = 0 ); /** Inserts an item (i.e.\ a row) to the control. @@ -3126,7 +3126,7 @@ public: Additionally, @a row must be less than or equal to the current number of items in the control (see GetItemCount()). */ - void InsertItem( unsigned int row, const wxVector &values, wxUIntPtr data = nullptr ); + void InsertItem( unsigned int row, const wxVector &values, wxUIntPtr data = 0 ); /** Delete the row at position @a row. @@ -3498,7 +3498,7 @@ public: in number and type. No (default) values are filled in automatically. */ - void AppendItem( const wxVector &values, wxUIntPtr data = nullptr ); + void AppendItem( const wxVector &values, wxUIntPtr data = 0 ); /** Prepends an item (=row) and fills it with @a values. @@ -3507,7 +3507,7 @@ public: in number and type. No (default) values are filled in automatically. */ - void PrependItem( const wxVector &values, wxUIntPtr data = nullptr ); + void PrependItem( const wxVector &values, wxUIntPtr data = 0 ); /** Inserts an item (=row) and fills it with @a values. @@ -3516,7 +3516,7 @@ public: in number and type. No (default) values are filled in automatically. */ - void InsertItem( unsigned int row, const wxVector &values, wxUIntPtr data = nullptr ); + void InsertItem( unsigned int row, const wxVector &values, wxUIntPtr data = 0 ); /** Delete the item (=row) at position @a pos. From bcfed7d0233ba1bebd0b3c4751f2ccb98f695d95 Mon Sep 17 00:00:00 2001 From: jensgoe Date: Thu, 10 Jul 2025 11:45:53 +0200 Subject: [PATCH 3/9] Fix wxBitmapComboBox::Append() and Insert() documentation Their parameters are of type wxBitmapBundle now and not wxBitmap. See #25623. Closes #25622. --- interface/wx/bmpcbox.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/interface/wx/bmpcbox.h b/interface/wx/bmpcbox.h index 2773aa2924..b3ef85b44c 100644 --- a/interface/wx/bmpcbox.h +++ b/interface/wx/bmpcbox.h @@ -138,20 +138,20 @@ public: Adds the item to the end of the combo box. */ int Append(const wxString& item, - const wxBitmap& bitmap = wxNullBitmap); + const wxBitmapBundle& bitmap = wxBitmapBundle()); /** Adds the item to the end of the combo box, associating the given untyped, client data pointer @a clientData with the item. */ - int Append(const wxString& item, const wxBitmap& bitmap, + int Append(const wxString& item, const wxBitmapBundle& bitmap, void* clientData); /** Adds the item to the end of the combo box, associating the given typed client data pointer @a clientData with the item. */ - int Append(const wxString& item, const wxBitmap& bitmap, + int Append(const wxString& item, const wxBitmapBundle& bitmap, wxClientData* clientData); /** @@ -193,7 +193,7 @@ public: Inserts the item into the list before @a pos. Not valid for @c wxCB_SORT style, use Append() instead. */ - int Insert(const wxString& item, const wxBitmap& bitmap, + int Insert(const wxString& item, const wxBitmapBundle& bitmap, unsigned int pos); /** @@ -201,7 +201,7 @@ public: untyped, client data pointer with the item. Not valid for @c wxCB_SORT style, use Append() instead. */ - int Insert(const wxString& item, const wxBitmap& bitmap, + int Insert(const wxString& item, const wxBitmapBundle& bitmap, unsigned int pos, void* clientData); @@ -210,7 +210,7 @@ public: client data pointer with the item. Not valid for @c wxCB_SORT style, use Append() instead. */ - int Insert(const wxString& item, const wxBitmap& bitmap, + int Insert(const wxString& item, const wxBitmapBundle& bitmap, unsigned int pos, wxClientData* clientData); From 2f4861b57a9dc2cf8617f3ecfc59ed6aee43a66d Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 10 Jul 2025 19:04:21 +0200 Subject: [PATCH 4/9] Remove member functions of wxRibbon{MSW,AUI}ArtProvider from the docs Having them there wasn't really useful, all the overridden functions are already present in the base class and it would only make sense to have them in the derived ones if we had any documentation specific to these classes, but this is not the case, --- interface/wx/ribbon/art.h | 333 -------------------------------------- 1 file changed, 333 deletions(-) diff --git a/interface/wx/ribbon/art.h b/interface/wx/ribbon/art.h index e8f54068ee..8ae1b51f70 100644 --- a/interface/wx/ribbon/art.h +++ b/interface/wx/ribbon/art.h @@ -1075,210 +1075,6 @@ class wxRibbonMSWArtProvider : public wxRibbonArtProvider { public: wxRibbonMSWArtProvider(bool set_colour_scheme = true); - virtual ~wxRibbonMSWArtProvider(); - - wxRibbonArtProvider* Clone() const; - void SetFlags(long flags); - long GetFlags() const; - - int GetMetric(int id) const; - void SetMetric(int id, int new_val); - void SetFont(int id, const wxFont& font); - wxFont GetFont(int id) const; - wxColour GetColour(int id) const; - void SetColour(int id, const wxColour& colour); - void GetColourScheme(wxColour* primary, - wxColour* secondary, - wxColour* tertiary) const; - void SetColourScheme(const wxColour& primary, - const wxColour& secondary, - const wxColour& tertiary); - - int GetTabCtrlHeight( - wxDC& dc, - wxWindow* wnd, - const wxRibbonPageTabInfoArray& pages); - - void DrawTabCtrlBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect); - - void DrawTab(wxDC& dc, - wxWindow* wnd, - const wxRibbonPageTabInfo& tab); - - void DrawTabSeparator( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - double visibility); - - void DrawPageBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect); - - void DrawScrollButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - long style); - - void DrawPanelBackground( - wxDC& dc, - wxRibbonPanel* wnd, - const wxRect& rect); - - void DrawGalleryBackground( - wxDC& dc, - wxRibbonGallery* wnd, - const wxRect& rect); - - void DrawGalleryItemBackground( - wxDC& dc, - wxRibbonGallery* wnd, - const wxRect& rect, - wxRibbonGalleryItem* item); - - void DrawMinimisedPanel( - wxDC& dc, - wxRibbonPanel* wnd, - const wxRect& rect, - wxBitmap& bitmap); - - void DrawButtonBarBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect); - - void DrawButtonBarButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - wxRibbonButtonKind kind, - long state, - const wxString& label, - const wxBitmap& bitmap_large, - const wxBitmap& bitmap_small); - - void DrawToolBarBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect); - - void DrawToolGroupBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect); - - void DrawTool( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - const wxBitmap& bitmap, - wxRibbonButtonKind kind, - long state); - - void DrawToggleButton( - wxDC& dc, - wxRibbonBar* wnd, - const wxRect& rect, - wxRibbonDisplayMode mode); - - void DrawHelpButton(wxDC& dc, - wxRibbonBar* wnd, - const wxRect& rect); - - void GetBarTabWidth( - wxDC& dc, - wxWindow* wnd, - const wxString& label, - const wxBitmap& bitmap, - int* ideal, - int* small_begin_need_separator, - int* small_must_have_separator, - int* minimum); - - wxSize GetScrollButtonMinimumSize( - wxDC& dc, - wxWindow* wnd, - long style); - - wxSize GetPanelSize( - wxDC& dc, - const wxRibbonPanel* wnd, - wxSize client_size, - wxPoint* client_offset); - - wxSize GetPanelClientSize( - wxDC& dc, - const wxRibbonPanel* wnd, - wxSize size, - wxPoint* client_offset); - - wxRect GetPanelExtButtonArea( - wxDC& dc, - const wxRibbonPanel* wnd, - wxRect rect); - - wxSize GetGallerySize( - wxDC& dc, - const wxRibbonGallery* wnd, - wxSize client_size); - - wxSize GetGalleryClientSize( - wxDC& dc, - const wxRibbonGallery* wnd, - wxSize size, - wxPoint* client_offset, - wxRect* scroll_up_button, - wxRect* scroll_down_button, - wxRect* extension_button); - - wxRect GetPageBackgroundRedrawArea( - wxDC& dc, - const wxRibbonPage* wnd, - wxSize page_old_size, - wxSize page_new_size); - - bool GetButtonBarButtonSize( - wxDC& dc, - wxWindow* wnd, - wxRibbonButtonKind kind, - wxRibbonButtonBarButtonState size, - const wxString& label, - wxCoord text_min_width, - wxSize bitmap_size_large, - wxSize bitmap_size_small, - wxSize* button_size, - wxRect* normal_region, - wxRect* dropdown_region); - - wxCoord GetButtonBarButtonTextWidth( - wxDC& dc, - const wxString& label, - wxRibbonButtonKind kind, - wxRibbonButtonBarButtonState size); - - wxSize GetMinimisedPanelMinimumSize( - wxDC& dc, - const wxRibbonPanel* wnd, - wxSize* desired_bitmap_size, - wxDirection* expanded_panel_direction); - - wxSize GetToolSize( - wxDC& dc, - wxWindow* wnd, - wxSize bitmap_size, - wxRibbonButtonKind kind, - bool is_first, - bool is_last, - wxRect* dropdown_region); - - wxRect GetBarToggleButtonArea(const wxRect& rect); - - wxRect GetRibbonHelpButtonArea(const wxRect& rect); }; @@ -1286,133 +1082,4 @@ class wxRibbonAUIArtProvider : public wxRibbonMSWArtProvider { public: wxRibbonAUIArtProvider(); - virtual ~wxRibbonAUIArtProvider(); - - wxRibbonArtProvider* Clone() const; - - wxColour GetColour(int id) const; - void SetColour(int id, const wxColour& colour); - void SetColourScheme(const wxColour& primary, - const wxColour& secondary, - const wxColour& tertiary); - void SetFont(int id, const wxFont& font); - - wxSize GetScrollButtonMinimumSize( - wxDC& dc, - wxWindow* wnd, - long style); - - void DrawScrollButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - long style); - - wxSize GetPanelSize( - wxDC& dc, - const wxRibbonPanel* wnd, - wxSize client_size, - wxPoint* client_offset); - - wxSize GetPanelClientSize( - wxDC& dc, - const wxRibbonPanel* wnd, - wxSize size, - wxPoint* client_offset); - - wxRect GetPanelExtButtonArea( - wxDC& dc, - const wxRibbonPanel* wnd, - wxRect rect); - - void DrawTabCtrlBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect); - - int GetTabCtrlHeight( - wxDC& dc, - wxWindow* wnd, - const wxRibbonPageTabInfoArray& pages); - - void GetBarTabWidth( - wxDC& dc, - wxWindow* wnd, - const wxString& label, - const wxBitmap& bitmap, - int* ideal, - int* small_begin_need_separator, - int* small_must_have_separator, - int* minimum); - - void DrawTab(wxDC& dc, - wxWindow* wnd, - const wxRibbonPageTabInfo& tab); - - void DrawTabSeparator( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - double visibility); - - void DrawPageBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect); - - void DrawPanelBackground( - wxDC& dc, - wxRibbonPanel* wnd, - const wxRect& rect); - - void DrawMinimisedPanel( - wxDC& dc, - wxRibbonPanel* wnd, - const wxRect& rect, - wxBitmap& bitmap); - - void DrawGalleryBackground( - wxDC& dc, - wxRibbonGallery* wnd, - const wxRect& rect); - - void DrawGalleryItemBackground( - wxDC& dc, - wxRibbonGallery* wnd, - const wxRect& rect, - wxRibbonGalleryItem* item); - - void DrawButtonBarBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect); - - void DrawButtonBarButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - wxRibbonButtonKind kind, - long state, - const wxString& label, - const wxBitmap& bitmap_large, - const wxBitmap& bitmap_small); - - void DrawToolBarBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect); - - void DrawToolGroupBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect); - - void DrawTool( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - const wxBitmap& bitmap, - wxRibbonButtonKind kind, - long state); - }; From fe090c6d109d45ca53567200527e58810366e53b Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 10 Jul 2025 19:06:22 +0200 Subject: [PATCH 5/9] Update type of "dc" parameters in wxRibbonArtProvider docs They are now of type wxReadOnlyDC and not wxDC. --- interface/wx/ribbon/art.h | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/interface/wx/ribbon/art.h b/interface/wx/ribbon/art.h index 8ae1b51f70..e3e8324fb8 100644 --- a/interface/wx/ribbon/art.h +++ b/interface/wx/ribbon/art.h @@ -740,7 +740,7 @@ public: than or equal to zero, which is the minimum pixel width for the tab. */ virtual void GetBarTabWidth( - wxDC& dc, + wxReadOnlyDC& dc, wxWindow* wnd, const wxString& label, const wxBitmap& bitmap, @@ -763,7 +763,7 @@ public: The tabs which will acquire the returned height. */ virtual int GetTabCtrlHeight( - wxDC& dc, + wxReadOnlyDC& dc, wxWindow* wnd, const wxRibbonPageTabInfoArray& pages) = 0; @@ -781,7 +781,7 @@ public: regardless of its state). */ virtual wxSize GetScrollButtonMinimumSize( - wxDC& dc, + wxReadOnlyDC& dc, wxWindow* wnd, long style) = 0; @@ -803,7 +803,7 @@ public: @see GetPanelClientSize() */ virtual wxSize GetPanelSize( - wxDC& dc, + wxReadOnlyDC& dc, const wxRibbonPanel* wnd, wxSize client_size, wxPoint* client_offset) = 0; @@ -826,7 +826,7 @@ public: @see GetPanelSize() */ virtual wxSize GetPanelClientSize( - wxDC& dc, + wxReadOnlyDC& dc, const wxRibbonPanel* wnd, wxSize size, wxPoint* client_offset) = 0; @@ -844,7 +844,7 @@ public: @since 2.9.4 */ virtual wxRect GetPanelExtButtonArea( - wxDC& dc, + wxReadOnlyDC& dc, const wxRibbonPanel* wnd, wxRect rect) = 0; @@ -863,7 +863,7 @@ public: @see GetGalleryClientSize() */ virtual wxSize GetGallerySize( - wxDC& dc, + wxReadOnlyDC& dc, const wxRibbonGallery* wnd, wxSize client_size) = 0; @@ -893,7 +893,7 @@ public: occupies. */ virtual wxSize GetGalleryClientSize( - wxDC& dc, + wxReadOnlyDC& dc, const wxRibbonGallery* wnd, wxSize size, wxPoint* client_offset, @@ -919,7 +919,7 @@ public: The size of the page after the resize. */ virtual wxRect GetPageBackgroundRedrawArea( - wxDC& dc, + wxReadOnlyDC& dc, const wxRibbonPage* wnd, wxSize page_old_size, wxSize page_new_size) = 0; @@ -959,7 +959,7 @@ public: @return @true if a size exists for the button, @false otherwise. */ virtual bool GetButtonBarButtonSize( - wxDC& dc, + wxReadOnlyDC& dc, wxWindow* wnd, wxRibbonButtonKind kind, wxRibbonButtonBarButtonState size, @@ -995,7 +995,7 @@ public: @since 3.1.2 */ virtual wxCoord GetButtonBarButtonTextWidth( - wxDC& dc, const wxString& label, + wxReadOnlyDC& dc, const wxString& label, wxRibbonButtonKind kind, wxRibbonButtonBarButtonState size) = 0; @@ -1015,7 +1015,7 @@ public: minimised panel (@c wxEAST or @c wxSOUTH depending on the style). */ virtual wxSize GetMinimisedPanelMinimumSize( - wxDC& dc, + wxReadOnlyDC& dc, const wxRibbonPanel* wnd, wxSize* desired_bitmap_size, wxDirection* expanded_panel_direction) = 0; @@ -1040,7 +1040,7 @@ public: size which counts as the dropdown part. */ virtual wxSize GetToolSize( - wxDC& dc, + wxReadOnlyDC& dc, wxWindow* wnd, wxSize bitmap_size, wxRibbonButtonKind kind, From 5d7fc6ec3abc750fe9b2a820b734fa61bcbeaf52 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 10 Jul 2025 19:09:57 +0200 Subject: [PATCH 6/9] Add compatibility note to wxReadOnlyDC documentation Explain that functions taking it used to take wxDC parameters and still accept them. --- interface/wx/dc.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/interface/wx/dc.h b/interface/wx/dc.h index f8892ec9a7..c5958bcc30 100644 --- a/interface/wx/dc.h +++ b/interface/wx/dc.h @@ -118,6 +118,10 @@ struct wxFontMetrics Objects of this class can't be created directly, please see wxDC for the description of how to create objects of the derived classes. + Please note that all wxWidgets functions taking parameters of this type + added before wxWidgets 3.3.0 used to take wxDC instead and that they can + still be called with wxDC objects, as wxDC inherits from wxReadOnlyDC. + @since 3.3.0 */ class wxReadOnlyDC : public wxObject @@ -129,7 +133,7 @@ public: bool IsOk() const; /** - @name query capabilities + @name Query capabilities */ ///@{ From 9613378b296fe6b79e62b28941a28684f7849473 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 10 Jul 2025 19:13:59 +0200 Subject: [PATCH 7/9] Fix wxXmlParseError offset field documentation It was somehow added with an incorrect name and type in 38d8980283 (Add optional wxXmlParseError to wxXmlDocument::Load(), 2024-01-14). See #24215. --- interface/wx/xml/xml.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/interface/wx/xml/xml.h b/interface/wx/xml/xml.h index d2afbe3e5f..bacb272740 100644 --- a/interface/wx/xml/xml.h +++ b/interface/wx/xml/xml.h @@ -565,10 +565,10 @@ enum wxXmlDocumentLoadFlag */ struct wxXmlParseError { - wxString message; ///< Error description - int line; ///< Line number where error occurred - int column; ///< Column number where error occurred - int byte_offset; ///< Byte offset where error occurred + wxString message; ///< Error description + int line = 0; ///< Line number where error occurred + int column = 0; ///< Column number where error occurred + wxFileOffset offset = 0;///< Byte offset where error occurred }; From ff28461e14e4601b226fd2e40766d2440fedd385 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 10 Jul 2025 19:15:26 +0200 Subject: [PATCH 8/9] Fix default value of wxPGSplitterPositionFlags parameter This parameter of wxPropertyGridPageState::DoSetSplitter() must default to wxPGSplitterPositionFlags::Null, which is of correct type, and not 0, which is not. --- interface/wx/propgrid/propgridpagestate.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/interface/wx/propgrid/propgridpagestate.h b/interface/wx/propgrid/propgridpagestate.h index ac86aa6fe7..14f113abfa 100644 --- a/interface/wx/propgrid/propgridpagestate.h +++ b/interface/wx/propgrid/propgridpagestate.h @@ -435,7 +435,8 @@ public: */ virtual void DoSetSplitter( int pos, int splitterColumn = 0, - wxPGSplitterPositionFlags flags = 0 ); + wxPGSplitterPositionFlags flags = + wxPGSplitterPositionFlags::Null ); bool EnableCategories( bool enable ); From 7c7bd14259c7fcd6433b2ee00c57f55443cc376d Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 10 Jul 2025 19:18:08 +0200 Subject: [PATCH 9/9] Remove wxPGProperty::AddChild() documentation This function was removed from the actual class in 5e2da5a106 (Get rid of v2.8 code, 2022-08-01), so remove it from the documentation as well. See #22692. --- interface/wx/propgrid/property.h | 9 --------- 1 file changed, 9 deletions(-) diff --git a/interface/wx/propgrid/property.h b/interface/wx/propgrid/property.h index 3107fbf79d..426b91d700 100644 --- a/interface/wx/propgrid/property.h +++ b/interface/wx/propgrid/property.h @@ -1273,15 +1273,6 @@ public: */ int AddChoice( const wxString& label, int value = wxPG_INVALID_VALUE ); - /** - Adds a private child property. - - @deprecated Use AddPrivateChild() instead. - - @see AddPrivateChild() - */ - void AddChild( wxPGProperty* prop ); - /** Adds a private child property. If you use this instead of wxPropertyGridInterface::Insert() or