Added nominal wxPG_PROP_READONLY support for editor controls other than wxTextCtrl-based ones

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63337 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Jaakko Salli
2010-01-31 18:15:17 +00:00
parent 8669431add
commit c05fe84146
3 changed files with 15 additions and 4 deletions

View File

@@ -451,7 +451,9 @@ wxPG_PROP_CATEGORY = 0x2000,
*/ */
wxPG_PROP_MISC_PARENT = 0x4000, wxPG_PROP_MISC_PARENT = 0x4000,
/** Property is read-only. Editor is still created. /** Property is read-only. Editor is still created for wxTextCtrl-based
property editors. For others, editor is not usually created because
they do implement wxTE_READONLY style or equivalent.
*/ */
wxPG_PROP_READONLY = 0x8000, wxPG_PROP_READONLY = 0x8000,

View File

@@ -794,9 +794,6 @@ public:
In other words, user cannot change the value in the editor, but they can In other words, user cannot change the value in the editor, but they can
still copy it. still copy it.
@remarks This is mainly for use with textctrl editor. Only some other
editors fully support it.
@param id @param id
Property name or pointer. Property name or pointer.
@@ -806,6 +803,9 @@ public:
@param flags @param flags
By default changes are applied recursively. Set this parameter By default changes are applied recursively. Set this parameter
wxPG_DONT_RECURSE to prevent this. wxPG_DONT_RECURSE to prevent this.
@remarks This is mainly for use with textctrl editor. Only some other
editors fully support it.
*/ */
void SetPropertyReadOnly( wxPGPropArg id, bool set = true, void SetPropertyReadOnly( wxPGPropArg id, bool set = true,
int flags = wxPG_RECURSE ); int flags = wxPG_RECURSE );

View File

@@ -983,6 +983,12 @@ wxWindow* wxPGChoiceEditor::CreateControlsBase( wxPropertyGrid* propGrid,
const wxSize& sz, const wxSize& sz,
long extraStyle ) const long extraStyle ) const
{ {
// Since it is not possible (yet) to create a read-only combo box in
// the same sense that wxTextCtrl is read-only, simply do not create
// the control in this case.
if ( property->HasFlag(wxPG_PROP_READONLY) )
return NULL;
const wxPGChoices& choices = property->GetChoices(); const wxPGChoices& choices = property->GetChoices();
wxString defString; wxString defString;
int index = property->GetChoiceSelection(); int index = property->GetChoiceSelection();
@@ -1577,6 +1583,9 @@ wxPGWindowList wxPGCheckBoxEditor::CreateControls( wxPropertyGrid* propGrid,
const wxPoint& pos, const wxPoint& pos,
const wxSize& size ) const const wxSize& size ) const
{ {
if ( property->HasFlag(wxPG_PROP_READONLY) )
return NULL;
wxPoint pt = pos; wxPoint pt = pos;
pt.x -= wxPG_XBEFOREWIDGET; pt.x -= wxPG_XBEFOREWIDGET;
wxSize sz = size; wxSize sz = size;