X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/13bb4e59af826c9c45a3c9259499f5832b1a706f..6cab632f3251ae1117d24544813f47c6597a3b34:/include/wx/propgrid/propgrid.h diff --git a/include/wx/propgrid/propgrid.h b/include/wx/propgrid/propgrid.h index 30eaa0de3b..23cf2550e9 100644 --- a/include/wx/propgrid/propgrid.h +++ b/include/wx/propgrid/propgrid.h @@ -6,19 +6,23 @@ // Created: 2004-09-25 // RCS-ID: $Id$ // Copyright: (c) Jaakko Salli -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_PROPGRID_PROPGRID_H_ #define _WX_PROPGRID_PROPGRID_H_ +#include "wx/defs.h" + #if wxUSE_PROPGRID #include "wx/thread.h" #include "wx/dcclient.h" +#include "wx/control.h" #include "wx/scrolwin.h" #include "wx/tooltip.h" #include "wx/datetime.h" +#include "wx/recguard.h" #include "wx/propgrid/property.h" #include "wx/propgrid/propgridiface.h" @@ -30,12 +34,14 @@ extern WXDLLIMPEXP_DATA_PROPGRID(const char) wxPropertyGridNameStr[]; class wxPGComboBox; +#if wxUSE_STATUSBAR +class WXDLLIMPEXP_FWD_CORE wxStatusBar; +#endif + // ----------------------------------------------------------------------- // Global variables // ----------------------------------------------------------------------- -#ifndef SWIG - // This is required for sharing common global variables. class WXDLLIMPEXP_PROPGRID wxPGGlobalVarsClass { @@ -119,8 +125,6 @@ extern WXDLLIMPEXP_DATA_PROPGRID(wxPGGlobalVarsClass*) wxPGGlobalVars; // then the built-in module system won't pick this one up. Add it manually. WXDLLIMPEXP_PROPGRID void wxPGInitResourceModule(); -#endif // !SWIG - // ----------------------------------------------------------------------- /** @section propgrid_window_styles wxPropertyGrid Window Styles @@ -154,8 +158,12 @@ wxPG_ALPHABETIC_MODE = (wxPG_HIDE_CATEGORIES|wxPG_AUTO_SORT), */ wxPG_BOLD_MODIFIED = 0x00000040, -/** When wxPropertyGrid is resized, splitter moves to the center. This - behavior stops once the user manually moves the splitter. +/** Using this style, the column splitters move automatically based on column + proportions (default is equal proportion for every column). This behavior + stops once the user manually moves a splitter, and returns when a + splitter is double-clicked. + + @see wxPropertyGridInterface::SetColumnProportion(). */ wxPG_SPLITTER_AUTO_CENTER = 0x00000080, @@ -388,12 +396,34 @@ wxPG_VFB_BEEP = 0x02, */ wxPG_VFB_MARK_CELL = 0x04, -/** Display customizable text message explaining the situation. +/** + Display a text message explaining the situation. + + To customize the way the message is displayed, you need to + reimplement wxPropertyGrid::DoShowPropertyError() in a + derived class. Default behavior is to display the text on + the top-level frame's status bar, if present, and otherwise + using wxMessageBox. */ wxPG_VFB_SHOW_MESSAGE = 0x08, +/** + Similar to wxPG_VFB_SHOW_MESSAGE, except always displays the + message using wxMessageBox. +*/ +wxPG_VFB_SHOW_MESSAGEBOX = 0x10, + +/** + Similar to wxPG_VFB_SHOW_MESSAGE, except always displays the + message on the status bar (when present - you can reimplement + wxPropertyGrid::GetStatusBar() in a derived class to specify + this yourself). +*/ +wxPG_VFB_SHOW_MESSAGE_ON_STATUSBAR = 0x20, + /** Defaults. */ -wxPG_VFB_DEFAULT = wxPG_VFB_STAY_IN_PROPERTY|wxPG_VFB_BEEP, +wxPG_VFB_DEFAULT = wxPG_VFB_MARK_CELL | + wxPG_VFB_SHOW_MESSAGEBOX, /** Only used internally. */ wxPG_VFB_UNDEFINED = 0x80 @@ -403,7 +433,10 @@ wxPG_VFB_UNDEFINED = 0x80 /** @} */ -typedef wxByte wxPGVFBFlags; +// Having this as define instead of wxByte typedef makes things easier for +// wxPython bindings (ignoring and redefining it in SWIG interface file +// seemed rather tricky) +#define wxPGVFBFlags unsigned char /** wxPGValidationInfo @@ -416,6 +449,16 @@ class WXDLLIMPEXP_PROPGRID wxPGValidationInfo { friend class wxPropertyGrid; public: + wxPGValidationInfo() + { + m_failureBehavior = 0; + m_isFailing = false; + } + + ~wxPGValidationInfo() + { + } + /** @return Returns failure behavior which is a combination of @ref propgrid_vfbflags. @@ -464,6 +507,9 @@ private: /** Validation failure behavior. Use wxPG_VFB_XXX flags. */ wxPGVFBFlags m_failureBehavior; + + // True when validation is currently failing. + bool m_isFailing; }; // ----------------------------------------------------------------------- @@ -529,8 +575,6 @@ enum wxPG_SET_SPLITTER_POSITION_SPLITTER_FLAGS // ----------------------------------------------------------------------- -#ifndef SWIG - // Internal flags #define wxPG_FL_INITIALIZED 0x0001 // Set when creating editor controls if it was clicked on. @@ -565,8 +609,6 @@ enum wxPG_SET_SPLITTER_POSITION_SPLITTER_FLAGS #define wxPG_FL_IN_SELECT_PROPERTY 0x00100000 // Set when help string is shown in status bar #define wxPG_FL_STRING_IN_STATUSBAR 0x00200000 -// Validation failed. Clear on modify event. -#define wxPG_FL_VALIDATION_FAILED 0x00800000 // Auto sort is enabled (for categorized mode) #define wxPG_FL_CATMODE_AUTO_SORT 0x01000000 // Set after page has been inserted to manager @@ -583,9 +625,7 @@ enum wxPG_SET_SPLITTER_POSITION_SPLITTER_FLAGS // Prevents RecalculateVirtualSize re-entrancy #define wxPG_FL_RECALCULATING_VIRTUAL_SIZE 0x80000000 -#endif // #ifndef SWIG - -#if !defined(__wxPG_SOURCE_FILE__) && !defined(SWIG) +#if !defined(__wxPG_SOURCE_FILE__) // Reduce compile time, but still include in user app #include "wx/propgrid/props.h" #endif @@ -673,8 +713,9 @@ enum wxPG_SET_SPLITTER_POSITION_SPLITTER_FLAGS @library{wxpropgrid} @category{propgrid} */ -class WXDLLIMPEXP_PROPGRID - wxPropertyGrid : public wxScrolledWindow, public wxPropertyGridInterface +class WXDLLIMPEXP_PROPGRID wxPropertyGrid : public wxControl, + public wxScrollHelper, + public wxPropertyGridInterface { friend class wxPropertyGridEvent; friend class wxPropertyGridPageState; @@ -696,7 +737,7 @@ public: #endif /** The default constructor. The styles to be used are styles valid for - the wxWindow and wxScrolledWindow. + the wxWindow. @see @link wndflags Additional Window Styles @endlink */ @@ -711,12 +752,34 @@ public: /** Adds given key combination to trigger given action. + Here is a sample code to make Enter key press move focus to + the next property. + + @code + propGrid->AddActionTrigger(wxPG_ACTION_NEXT_PROPERTY, + WXK_RETURN); + propGrid->DedicateKey(WXK_RETURN); + @endcode + @param action Which action to trigger. See @link pgactions List of list of wxPropertyGrid actions@endlink. */ void AddActionTrigger( int action, int keycode, int modifiers = 0 ); + /** + Dedicates a specific keycode to wxPropertyGrid. This means that such + key presses will not be redirected to editor controls. + + Using this function allows, for example, navigation between + properties using arrow keys even when the focus is in the editor + control. + */ + void DedicateKey( int keycode ) + { + m_dedicatedKeys.push_back(keycode); + } + /** This static function enables or disables automatic use of wxGetTranslation for following strings: wxEnumProperty list labels, @@ -740,10 +803,11 @@ public: /** Centers the splitter. - If argument is true, automatic splitter centering is enabled (only - applicapple if style wxPG_SPLITTER_AUTO_CENTER was defined). + @param enableAutoResizing + If @true, automatic column resizing is enabled (only applicapple + if window style wxPG_SPLITTER_AUTO_CENTER is used). */ - void CenterSplitter( bool enable_auto_centering = false ); + void CenterSplitter( bool enableAutoResizing = false ); /** Deletes all properties. */ @@ -941,9 +1005,13 @@ public: /** Returns current selection text colour. */ wxColour GetSelectionForegroundColour() const { return m_colSelFore; } - /** Returns current splitter x position. */ - int GetSplitterPosition() const - { return m_pState->DoGetSplitterPosition(0); } + /** + Returns current splitter x position. + */ + int GetSplitterPosition( unsigned int splitterIndex = 0 ) const + { + return m_pState->DoGetSplitterPosition(splitterIndex); + } /** Returns wxTextCtrl active in currently selected property, if any. Takes into account wxOwnerDrawnComboBox. @@ -973,7 +1041,7 @@ public: @param pt Coordinates in the virtual grid space. You may need to use - wxScrolledWindow::CalcScrolledPosition() for translating + wxScrolled::CalcScrolledPosition() for translating wxPropertyGrid client coordinates into something this member function can use. */ @@ -1007,7 +1075,6 @@ public: */ virtual void RefreshProperty( wxPGProperty* p ); -#ifndef SWIG /** Registers a new editor class. @return Pointer to the editor class instance that should be used. @@ -1021,12 +1088,22 @@ public: static wxPGEditor* DoRegisterEditorClass( wxPGEditor* editorClass, const wxString& editorName, bool noDefCheck = false ); -#endif /** Resets all colours to the original system values. */ void ResetColours(); + /** + Resets column sizes and splitter positions, based on proportions. + + @param enableAutoResizing + If @true, automatic column resizing is enabled (only applicapple + if window style wxPG_SPLITTER_AUTO_CENTER is used). + + @see wxPropertyGridInterface::SetColumnProportion() + */ + void ResetColumnSizes( bool enableAutoResizing = false ); + /** Selects a property. Editor widget is automatically created, but not focused unless focus is @@ -1420,7 +1497,7 @@ public: /** Returns rectangle that fully contains properties between and including - p1 and p2. + p1 and p2. Rectangle is in virtual scrolled window coordinates. */ wxRect GetPropertyRect( const wxPGProperty* p1, const wxPGProperty* p2 ) const; @@ -1451,20 +1528,6 @@ public: // Events from editor controls are forward to this function void HandleCustomEditorEvent( wxEvent &event ); -#ifndef SWIG - - /** - Generates contents for string dst based on the contents of - wxArrayString src. - - Format will be "(preDelim)str1(postDelim) (preDelim)str2(postDelim) and - so on. Set flags to 1 inorder to convert backslashes to double-back- - slashes and "(preDelims)"'s to "(preDelims)". - */ - static void ArrayStringToString( wxString& dst, const wxArrayString& src, - wxChar preDelim, wxChar postDelim, - int flags ); - // Mostly useful for page switching. void SwitchState( wxPropertyGridPageState* pNewState ); @@ -1556,12 +1619,38 @@ public: m_validationInfo.m_failureMessage.clear(); } - /** Override in derived class to display error messages in custom manner + /** + Override in derived class to display error messages in custom manner (these message usually only result from validation failure). + + @remarks If you implement this, then you also need to implement + DoHidePropertyError() - possibly to do nothing, if error + does not need hiding (e.g. it was logged or shown in a + message box). + + @see DoHidePropertyError() */ virtual void DoShowPropertyError( wxPGProperty* property, const wxString& msg ); + /** + Override in derived class to hide an error displayed by + DoShowPropertyError(). + + @see DoShowPropertyError() + */ + virtual void DoHidePropertyError( wxPGProperty* property ); + +#if wxUSE_STATUSBAR + /** + Return wxStatusBar that is used by this wxPropertyGrid. You can + reimplement this member function in derived class to override + the default behavior of using the top-level wxFrame's status + bar, if any. + */ + virtual wxStatusBar* GetStatusBar(); +#endif + /** Override to customize property validation failure behavior. @param invalidValue Value which failed in validation. @@ -1664,9 +1753,6 @@ public: virtual void Refresh( bool eraseBackground = true, const wxRect *rect = (const wxRect *) NULL ); virtual bool SetFont( const wxFont& font ); -#if wxPG_SUPPORT_TOOLTIPS - void SetToolTip( const wxString& tipString ); -#endif virtual void Freeze(); virtual void SetExtraStyle( long exStyle ); virtual void Thaw(); @@ -1754,12 +1840,7 @@ protected: /** Current cursor id. */ int m_curcursor; - /** - This captionFont is made equal to the font of the wxScrolledWindow. - - As extra the bold face is set on it when this is wanted by the user - (see flags) - */ + // Caption font. Same as normal font plus bold style. wxFont m_captionFont; int m_fontHeight; // Height of the font. @@ -1800,6 +1881,14 @@ protected: /** Appearance of a unspecified value cell. */ wxPGCell m_unspecifiedAppearance; + /** List of properties to be deleted/removed in idle event handler. */ + wxArrayPGProperty m_deletedProperties; + wxArrayPGProperty m_removedProperties; + + /** List of key codes that will not be handed over to editor controls. */ + // FIXME: Make this a hash set once there is template-based wxHashSet. + wxVector m_dedicatedKeys; + // // Temporary values // @@ -1831,16 +1920,21 @@ protected: unsigned char m_keyComboConsumed; /** 1 if in DoPropertyChanged() */ - unsigned char m_inDoPropertyChanged; + bool m_inDoPropertyChanged; /** 1 if in CommitChangesFromEditor() */ - unsigned char m_inCommitChangesFromEditor; + bool m_inCommitChangesFromEditor; /** 1 if in DoSelectProperty() */ - unsigned char m_inDoSelectProperty; + bool m_inDoSelectProperty; + + bool m_inOnValidationFailure; wxPGVFBFlags m_permanentValidationFailureBehavior; // Set by app + // DoEditorValidate() recursion guard + wxRecursionGuardFlag m_validatingEditor; + /** Internal flags - see wxPG_FL_XXX constants. */ wxUint32 m_iFlags; @@ -2013,7 +2107,7 @@ protected: void CorrectEditorWidgetPosY(); int DoDrawItems( wxDC& dc, - const wxRect* drawRect, + const wxRect* itemsRect, bool isBuffered ) const; /** Draws an expand/collapse (ie. +/-) button. @@ -2025,7 +2119,7 @@ protected: void DrawItems( wxDC& dc, unsigned int topItemY, unsigned int bottomItemY, - const wxRect* drawRect = NULL ); + const wxRect* itemsRect = NULL ); // Translate wxKeyEvent to wxPG_ACTION_XXX int KeyEventToActions(wxKeyEvent &event, int* pSecond) const; @@ -2044,7 +2138,7 @@ protected: /** Reloads all non-customized colours from system settings. */ void RegainColours(); - bool DoEditorValidate(); + virtual bool DoEditorValidate(); // Similar to DoSelectProperty() but also works on columns // other than 1. Does not active editor if column is not @@ -2129,7 +2223,6 @@ private: bool ButtonTriggerKeyTest( int action, wxKeyEvent& event ); DECLARE_EVENT_TABLE() -#endif // #ifndef SWIG }; // ----------------------------------------------------------------------- @@ -2137,7 +2230,6 @@ private: // Bunch of inlines that need to resolved after all classes have been defined. // -#ifndef SWIG inline bool wxPropertyGridPageState::IsDisplayed() const { return ( this == m_pPropGrid->GetState() ); @@ -2147,9 +2239,8 @@ inline unsigned int wxPropertyGridPageState::GetActualVirtualHeight() const { return DoGetRoot()->GetChildrenHeight(GetGrid()->GetRowHeight()); } -#endif -wxString wxPGProperty::GetHintText() const +inline wxString wxPGProperty::GetHintText() const { wxVariant vHintText = GetAttribute(wxPGGlobalVars->m_strHint); @@ -2186,11 +2277,6 @@ inline void wxPGProperty::SetEditor( const wxString& editorName ) m_customEditor = wxPropertyGridInterface::GetEditorByName(editorName); } -inline bool wxPGProperty::Hide( bool hide, int flags ) -{ - return GetGrid()->HideProperty(this, hide, flags); -} - inline bool wxPGProperty::SetMaxLength( int maxLen ) { return GetGrid()->SetPropertyMaxLength(this,maxLen); @@ -2249,20 +2335,20 @@ wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, #ifndef SWIG typedef void (wxEvtHandler::*wxPropertyGridEventFunction)(wxPropertyGridEvent&); -#define EVT_PG_SELECTED(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_SELECTED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_CHANGING(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_CHANGING, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_CHANGED(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_CHANGED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_HIGHLIGHTED(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_HIGHLIGHTED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_RIGHT_CLICK(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_RIGHT_CLICK, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_DOUBLE_CLICK(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_DOUBLE_CLICK, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_PAGE_CHANGED(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_PAGE_CHANGED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_ITEM_COLLAPSED(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_ITEM_COLLAPSED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_ITEM_EXPANDED(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_ITEM_EXPANDED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_LABEL_EDIT_BEGIN(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_LABEL_EDIT_BEGIN, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_LABEL_EDIT_ENDING(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_LABEL_EDIT_ENDING, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_COL_BEGIN_DRAG(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_COL_BEGIN_DRAG, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_COL_DRAGGING(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_COL_DRAGGING, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_COL_END_DRAG(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_COL_END_DRAG, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), +#define EVT_PG_SELECTED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_SELECTED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), +#define EVT_PG_CHANGING(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_CHANGING, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), +#define EVT_PG_CHANGED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_CHANGED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), +#define EVT_PG_HIGHLIGHTED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_HIGHLIGHTED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), +#define EVT_PG_RIGHT_CLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_RIGHT_CLICK, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), +#define EVT_PG_DOUBLE_CLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_DOUBLE_CLICK, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), +#define EVT_PG_PAGE_CHANGED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_PAGE_CHANGED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), +#define EVT_PG_ITEM_COLLAPSED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_ITEM_COLLAPSED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), +#define EVT_PG_ITEM_EXPANDED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_ITEM_EXPANDED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), +#define EVT_PG_LABEL_EDIT_BEGIN(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_LABEL_EDIT_BEGIN, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), +#define EVT_PG_LABEL_EDIT_ENDING(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_LABEL_EDIT_ENDING, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), +#define EVT_PG_COL_BEGIN_DRAG(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_COL_BEGIN_DRAG, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), +#define EVT_PG_COL_DRAGGING(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_COL_DRAGGING, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), +#define EVT_PG_COL_END_DRAG(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_COL_END_DRAG, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), #define wxPropertyGridEventHandler(fn) \ wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ) @@ -2284,10 +2370,10 @@ public: /** Constructor. */ wxPropertyGridEvent(wxEventType commandType=0, int id=0); -#ifndef SWIG + /** Copy constructor. */ wxPropertyGridEvent(const wxPropertyGridEvent& event); -#endif + /** Destructor. */ ~wxPropertyGridEvent(); @@ -2397,7 +2483,6 @@ public: m_validationInfo->SetFailureMessage( message ); } -#ifndef SWIG wxPGVFBFlags GetValidationFailureBehavior() const { wxASSERT( GetEventType() == wxEVT_PG_CHANGING ); @@ -2455,8 +2540,6 @@ private: bool m_canVeto; bool m_wasVetoed; - -#endif };