X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/525b29124a9b69837c1d7973d44da21d2da28ea1..e9e8b38179b147dd04f5c19af7e56a94342e93a7:/include/wx/propgrid/propgrid.h diff --git a/include/wx/propgrid/propgrid.h b/include/wx/propgrid/propgrid.h index 83c748da39..cf6dd98c48 100644 --- a/include/wx/propgrid/propgrid.h +++ b/include/wx/propgrid/propgrid.h @@ -6,16 +6,19 @@ // 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" @@ -31,6 +34,10 @@ extern WXDLLIMPEXP_DATA_PROPGRID(const char) wxPropertyGridNameStr[]; class wxPGComboBox; +#if wxUSE_STATUSBAR +class WXDLLIMPEXP_FWD_CORE wxStatusBar; +#endif + // ----------------------------------------------------------------------- // Global variables // ----------------------------------------------------------------------- @@ -390,7 +397,7 @@ wxPG_VFB_BEEP = 0x02, wxPG_VFB_MARK_CELL = 0x04, /** - Display a 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 @@ -517,12 +524,32 @@ private: enum wxPG_KEYBOARD_ACTIONS { wxPG_ACTION_INVALID = 0, + + /** Select the next property. */ wxPG_ACTION_NEXT_PROPERTY, + + /** Select the previous property. */ wxPG_ACTION_PREV_PROPERTY, + + /** Expand the selected property, if it has child items. */ wxPG_ACTION_EXPAND_PROPERTY, + + /** Collapse the selected property, if it has child items. */ wxPG_ACTION_COLLAPSE_PROPERTY, + + /** Cancel and undo any editing done in the currently active property + editor. + */ wxPG_ACTION_CANCEL_EDIT, - wxPG_ACTION_PRESS_BUTTON, // Causes editor button (if any) to be pressed + + /** Move focus to the editor control of the currently selected + property. + */ + wxPG_ACTION_EDIT, + + /** Causes editor's button (if any) to be pressed. */ + wxPG_ACTION_PRESS_BUTTON, + wxPG_ACTION_MAX }; @@ -706,8 +733,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; @@ -729,7 +757,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 */ @@ -754,8 +782,12 @@ public: @endcode @param action - Which action to trigger. See @link pgactions List of list of - wxPropertyGrid actions@endlink. + Which action to trigger. See @ref propgrid_keyboard_actions. + @param keycode + Which keycode triggers the action. + @param modifiers + Which key event modifiers, in addition to keycode, are needed to + trigger the action. */ void AddActionTrigger( int action, int keycode, int modifiers = 0 ); @@ -794,7 +826,7 @@ public: /** Centers the splitter. - + @param enableAutoResizing If @true, automatic column resizing is enabled (only applicapple if window style wxPG_SPLITTER_AUTO_CENTER is used). @@ -1033,7 +1065,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. */ @@ -1518,7 +1550,7 @@ public: void RefreshEditor(); // Events from editor controls are forward to this function - void HandleCustomEditorEvent( wxEvent &event ); + bool HandleCustomEditorEvent( wxEvent &event ); // Mostly useful for page switching. void SwitchState( wxPropertyGridPageState* pNewState ); @@ -1539,11 +1571,11 @@ public: /** Standardized double-to-string conversion. */ - static void DoubleToString( wxString& target, - double value, - int precision, - bool removeZeroes, - wxString* precTemplate ); + static const wxString& DoubleToString( wxString& target, + double value, + int precision, + bool removeZeroes, + wxString* precTemplate = NULL ); /** Call this from wxPGProperty::OnEvent() to cause property value to be @@ -1745,9 +1777,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(); @@ -1835,12 +1864,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. @@ -2107,7 +2131,7 @@ protected: void CorrectEditorWidgetPosY(); int DoDrawItems( wxDC& dc, - const wxRect* drawRect, + const wxRect* itemsRect, bool isBuffered ) const; /** Draws an expand/collapse (ie. +/-) button. @@ -2119,7 +2143,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; @@ -2214,6 +2238,8 @@ protected: unsigned int selFlags = wxPG_SEL_NOVALIDATE, unsigned int column = 1 ); + // This function only moves focus to the wxPropertyGrid if it already + // was on one of its child controls. void SetFocusOnCanvas(); bool DoHideProperty( wxPGProperty* p, bool hide, int flags );