X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/458917e8de93a8020b79bca55d820831d3201c5a..c39058f631b3a53682f00807a60bfff6c5aa2b7c:/include/wx/propgrid/propgrid.h diff --git a/include/wx/propgrid/propgrid.h b/include/wx/propgrid/propgrid.h index 7bcba570a7..fd3020a737 100644 --- a/include/wx/propgrid/propgrid.h +++ b/include/wx/propgrid/propgrid.h @@ -4,7 +4,7 @@ // Author: Jaakko Salli // Modified by: // Created: 2004-09-25 -// RCS-ID: $Id: +// RCS-ID: $Id$ // Copyright: (c) Jaakko Salli // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// @@ -49,7 +49,7 @@ public: wxPGHashMapS2P m_mapEditorClasses; #if wxUSE_VALIDATORS - wxArrayPtrVoid m_arrValidators; // These wxValidators need to be freed + wxVector m_arrValidators; // These wxValidators need to be freed #endif wxPGHashMapS2P m_dictPropertyClassInfo; // PropertyName -> ClassInfo @@ -241,12 +241,6 @@ wxPG_EX_AUTO_UNSPECIFIED_VALUES = 0x00200000, */ wxPG_EX_WRITEONLY_BUILTIN_ATTRIBUTES = 0x00400000, -/** - With this style Validators on properties will work same as in - wxPropertyGrid 1.2. -*/ -wxPG_EX_LEGACY_VALIDATORS = 0x00800000, - /** Hides page selection buttons from toolbar. */ wxPG_EX_HIDE_PAGE_BUTTONS = 0x01000000 @@ -353,7 +347,7 @@ typedef wxByte wxPGVFBFlags; actually perform validation. Mostly used in custom property classes. */ -class wxPGValidationInfo +class WXDLLIMPEXP_PROPGRID wxPGValidationInfo { friend class wxPropertyGrid; public: @@ -361,7 +355,8 @@ public: @return Returns failure behavior which is a combination of @ref propgrid_vfbflags. */ - wxPGVFBFlags GetFailureBehavior(); + wxPGVFBFlags GetFailureBehavior() const + { return m_failureBehavior; } /** Returns current failure message. @@ -389,7 +384,8 @@ public: /** Set current failure message. */ - void SetFailureMessage(const wxString& message); + void SetFailureMessage(const wxString& message) + { m_failureMessage = message; } private: /** Value to be validated. @@ -425,6 +421,7 @@ enum wxPG_KEYBOARD_ACTIONS wxPG_ACTION_CUT, wxPG_ACTION_COPY, wxPG_ACTION_PASTE, + wxPG_ACTION_PRESS_BUTTON, // Causes editor button (if any) to be pressed wxPG_ACTION_MAX }; @@ -486,8 +483,6 @@ enum wxPG_KEYBOARD_ACTIONS #define wxPG_FL_IN_MANAGER 0x00020000 // Set after wxPropertyGrid is shown in its initial good size #define wxPG_FL_GOOD_SIZE_SET 0x00040000 -// Next navigation key event will get ignored -#define wxPG_FL_IGNORE_NEXT_NAVKEY 0x00080000 // Set when in SelectProperty. #define wxPG_FL_IN_SELECT_PROPERTY 0x00100000 // Set when help string is shown in status bar @@ -790,9 +785,9 @@ public: /** Returns number of columns currently on grid. */ - int GetColumnCount() const + unsigned int GetColumnCount() const { - return m_pState->m_colWidths.size(); + return (unsigned int) m_pState->m_colWidths.size(); } /** Returns colour of empty space below properties. */ @@ -837,6 +832,14 @@ public: /** Returns background colour of margin. */ wxColour GetMarginColour() const { return m_colMargin; } + /** + Returns most up-to-date value of selected property. This will return + value different from GetSelectedProperty()->GetValue() only when text + editor is activate and string edited by user represents valid, + uncommitted property value. + */ + wxVariant GetUncommittedPropertyValue(); + /** Returns cell background colour of a property. */ wxColour GetPropertyBackgroundColour( wxPGPropArg id ) const; @@ -938,15 +941,6 @@ public: return DoSelectProperty(p,focus?wxPG_SEL_FOCUS:0); } - /** Changes keyboard shortcut to push the editor button. - @remarks - You can set default with keycode 0. Good value for the platform is - guessed, but don't expect it to be very accurate. - */ - void SetButtonShortcut( int keycode, - bool ctrlDown = false, - bool altDown = false ); - /** Sets category caption background colour. */ void SetCaptionBackgroundColour(const wxColour& col); @@ -1040,18 +1034,6 @@ public: virtual width should be disabled. */ void SetVirtualWidth( int width ); - /** Sets name of a property. - @param id - Name or pointer of property which name to change. - @param newname - New name. - */ - void SetPropertyName( wxPGPropArg id, const wxString& newname ) - { - wxPG_PROP_ARG_CALL_PROLOG() - DoSetPropertyName( p, newname ); - } - /** Moves splitter as left as possible, while still allowing all labels to be shown in full. @@ -1106,7 +1088,7 @@ public: */ unsigned int GetCommonValueCount() const { - return m_commonValues.size(); + return (unsigned int) m_commonValues.size(); } /** Returns label of given common value. @@ -1202,16 +1184,9 @@ public: const wxPGProperty* p2 ) const; /** Returns pointer to current active primary editor control (NULL if none). - - If editor uses clipper window, pointer is returned to the actual - editor, not the clipper. */ wxWindow* GetEditorControl() const; - /** Adjusts given position if topCtrlWnd is child of clipper window. - */ - bool AdjustPosForClipperWindow( wxWindow* topCtrlWnd, int* x, int* y ); - wxWindow* GetPrimaryEditor() const { return GetEditorControl(); @@ -1248,6 +1223,8 @@ public: void OnCustomEditorEvent( wxCommandEvent &event ); long GetInternalFlags() const { return m_iFlags; } + bool HasInternalFlag( long flag ) const + { return (m_iFlags & flag) ? true : false; } void SetInternalFlag( long flag ) { m_iFlags |= flag; } void ClearInternalFlag( long flag ) { m_iFlags &= ~(flag); } void IncFrozen() { m_frozen++; } @@ -1256,9 +1233,6 @@ public: void OnComboItemPaint( wxPGCustomComboControl* pCb,int item,wxDC& dc, wxRect& rect,int flags ); - // Used by simple check box for keyboard navigation - void SendNavigationKeyEvent( int dir ); - /** Standardized double-to-string conversion. */ static void DoubleToString( wxString& target, @@ -1293,12 +1267,6 @@ public: virtual bool DoPropertyChanged( wxPGProperty* p, unsigned int selFlags = 0 ); - /** - Runs all validation functionality (includes sending wxEVT_PG_CHANGING). - Returns true if all tests passed. - */ - virtual bool PerformValidation( wxPGProperty* p, wxVariant& pendingValue ); - /** Called when validation for given property fails. @param invalidValue Value which failed in validation. @@ -1376,7 +1344,21 @@ protected: */ virtual wxPropertyGridPageState* CreateState() const; -#ifndef DOXYGEN + enum PerformValidationFlags + { + SendEvtChanging = 0x0001, + IsStandaloneValidation = 0x0002 // Not called in response to event + }; + + /** + Runs all validation functionality (includes sending wxEVT_PG_CHANGING). + Returns true if all tests passed. Implement in derived class to + add additional validation behavior. + */ + virtual bool PerformValidation( wxPGProperty* p, + wxVariant& pendingValue, + int flags = SendEvtChanging ); + public: // Control font changer helper. @@ -1424,8 +1406,6 @@ protected: wxBitmap *m_doubleBuffer; #endif - wxArrayPtrVoid *m_windowsToDelete; - /** Local time ms when control was created. */ wxLongLong m_timeCreated; @@ -1501,9 +1481,6 @@ protected: int m_fontHeight; // Height of the font. - // Base keycode for triggering push button. - int m_pushButKeyCode; - /** m_splitterx when drag began. */ int m_startingSplitterX; @@ -1561,12 +1538,6 @@ protected: unsigned char m_vspacing; - // Does triggering push button need Alt down? - unsigned char m_pushButKeyCodeNeedsAlt; - - // Does triggering push button need Ctrl down? - unsigned char m_pushButKeyCodeNeedsCtrl; - // Used to track when Alt/Ctrl+Key was consumed. unsigned char m_keyComboConsumed; @@ -1643,11 +1614,13 @@ protected: // Array of background colour brushes. wxArrayPtrVoid m_arrBgBrushes; + // Array of foreground colours. wxArrayPtrVoid m_arrFgCols; // labels when properties use common values - wxArrayPtrVoid m_commonValues; + wxVector m_commonValues; + // Which cv selection really sets value to unspecified? int m_cvUnspecified; @@ -1673,7 +1646,6 @@ protected: void OnMouseUp( wxMouseEvent &event ); void OnKey( wxKeyEvent &event ); void OnKeyUp( wxKeyEvent &event ); - void OnNavigationKey( wxNavigationKeyEvent& event ); void OnResize( wxSizeEvent &event ); // event handlers @@ -1818,10 +1790,8 @@ protected: int CacheColour( const wxColour& colour ); - void DoSetPropertyName( wxPGProperty* p, const wxString& newname ); - // Sets up basic event handling for child control - void SetupChildEventHandling( wxWindow* wnd, int id ); + void SetupChildEventHandling( wxWindow* wnd ); void CustomSetCursor( int type, bool override = false ); @@ -1841,21 +1811,14 @@ protected: wxVariant* pValue = NULL, unsigned int selFlags = 0 ); - void SetFocusOnCanvas() - { - m_canvas->SetFocusIgnoringChildren(); - m_editorFocused = 0; - } + void SetFocusOnCanvas(); bool DoHideProperty( wxPGProperty* p, bool hide, int flags ); private: - bool ButtonTriggerKeyTest( wxKeyEvent &event ); - -#endif // DOXYGEN_SHOULD_SKIP_THIS + bool ButtonTriggerKeyTest( int action, wxKeyEvent& event ); -private: DECLARE_EVENT_TABLE() #endif // #ifndef SWIG }; @@ -1883,7 +1846,7 @@ inline int wxPGProperty::GetDisplayedCommonValueCount() const { wxPropertyGrid* pg = GetGrid(); if ( pg ) - return pg->GetCommonValueCount(); + return (int) pg->GetCommonValueCount(); } return 0; } @@ -2215,12 +2178,6 @@ protected: // #undef const wxString& #endif -// Doxygen special -#ifdef DOXYGEN - #include "wx/propgrid/editor.h" - #include "wx/propgrid/manager.h" -#endif - // ----------------------------------------------------------------------- #endif