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,
/** 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,

View File

@ -794,9 +794,6 @@ public:
In other words, user cannot change the value in the editor, but they can
still copy it.
@remarks This is mainly for use with textctrl editor. Only some other
editors fully support it.
@param id
Property name or pointer.
@ -806,6 +803,9 @@ public:
@param flags
By default changes are applied recursively. Set this parameter
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,
int flags = wxPG_RECURSE );

View File

@ -983,6 +983,12 @@ wxWindow* wxPGChoiceEditor::CreateControlsBase( wxPropertyGrid* propGrid,
const wxSize& sz,
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();
wxString defString;
int index = property->GetChoiceSelection();
@ -1577,6 +1583,9 @@ wxPGWindowList wxPGCheckBoxEditor::CreateControls( wxPropertyGrid* propGrid,
const wxPoint& pos,
const wxSize& size ) const
{
if ( property->HasFlag(wxPG_PROP_READONLY) )
return NULL;
wxPoint pt = pos;
pt.x -= wxPG_XBEFOREWIDGET;
wxSize sz = size;