From abbd88b52b3080023a46af19e43a839fdf5c6fb0 Mon Sep 17 00:00:00 2001 From: Jaakko Salli Date: Wed, 22 Dec 2010 17:25:45 +0000 Subject: [PATCH] Added wxPG_ACTION_EDIT, which allows specifying custom key to move focus to the property editor. Also documented wxPG_ACTION_FOOs better. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66432 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/propgrid/propgrid.h | 22 +++++++++++++++++++++- interface/wx/propgrid/propgrid.h | 25 +++++++++++++++++++++++-- src/propgrid/propgrid.cpp | 6 ++++++ 3 files changed, 50 insertions(+), 3 deletions(-) diff --git a/include/wx/propgrid/propgrid.h b/include/wx/propgrid/propgrid.h index 874c576b09..5f275ab91f 100644 --- a/include/wx/propgrid/propgrid.h +++ b/include/wx/propgrid/propgrid.h @@ -524,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 }; diff --git a/interface/wx/propgrid/propgrid.h b/interface/wx/propgrid/propgrid.h index c88cf3efcc..3c03e98296 100644 --- a/interface/wx/propgrid/propgrid.h +++ b/interface/wx/propgrid/propgrid.h @@ -233,7 +233,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 @@ -320,11 +320,32 @@ public: 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, + + /** 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 }; @@ -1074,7 +1095,7 @@ public: control over wxPropertyGrid behavior. */ //@{ - + /** Override in derived class to display error messages in custom manner (these message usually only result from validation failure). diff --git a/src/propgrid/propgrid.cpp b/src/propgrid/propgrid.cpp index f79faf1af2..fac6436c3b 100644 --- a/src/propgrid/propgrid.cpp +++ b/src/propgrid/propgrid.cpp @@ -5687,6 +5687,12 @@ void wxPropertyGrid::HandleKeyEvent( wxKeyEvent &event, bool fromChild ) wxPGProperty* p = selected; + if ( action == wxPG_ACTION_EDIT && !editorFocused ) + { + DoSelectProperty( p, wxPG_SEL_FOCUS ); + wasHandled = true; + } + // Travel and expand/collapse int selectDir = -2; -- 2.45.2