X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/75b6c4ce9236da28f349c3393b8436903d92815f..ad60f9e7b66d326505592cc6dae034cab5826f3b:/include/wx/propgrid/propgridiface.h diff --git a/include/wx/propgrid/propgridiface.h b/include/wx/propgrid/propgridiface.h index 05592dca15..dda25e1faf 100644 --- a/include/wx/propgrid/propgridiface.h +++ b/include/wx/propgrid/propgridiface.h @@ -200,9 +200,18 @@ public: */ virtual void Clear() = 0; - /** Deselect current selection, if any. Returns true if success - (ie. validator did not intercept). */ - bool ClearSelection(); + /** + Clears current selection, if any. + + @param validation + If set to @false, deselecting the property will always work, + even if its editor had invalid value in it. + + @return Returns @true if successful or if there was no selection. May + fail if validation was enabled and active editor had invalid + value. + */ + bool ClearSelection( bool validation = false); /** Resets modified status of all properties. */ @@ -236,6 +245,16 @@ public: */ void DeleteProperty( wxPGPropArg id ); + /** + Removes and returns a property. + + @param id + Pointer or name of a property. + + @remarks Removed property cannot have any children. + */ + wxPGProperty* RemoveProperty( wxPGPropArg id ); + /** Disables property. */ bool DisableProperty( wxPGPropArg id ) { return EnableProperty(id,false); } @@ -354,7 +373,10 @@ public: */ const wxPGAttributeStorage& GetPropertyAttributes( wxPGPropArg id ) const { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(*((const wxPGAttributeStorage*)NULL)); + // If 'id' refers to invalid property, then we will return dummy + // attributes (ie. root property's attributes, which contents should + // should always be empty and of no consequence). + wxPG_PROP_ARG_CALL_PROLOG_RETVAL(m_pState->DoGetRoot()->GetAttributes()); return p->GetAttributes(); } @@ -833,16 +855,6 @@ public: static void SetBoolChoices( const wxString& trueChoice, const wxString& falseChoice ); - /** Sets or clears flag(s) of all properties in given array. - @param flags - Property flags to set or clear. - @param inverse - Set to true if you want to clear flag instead of setting them. - */ - void SetPropertiesFlag( const wxArrayPGProperty& srcArr, - wxPGProperty::FlagType flags, - bool inverse = false ); - /** Sets an attribute for this property. @param name Text identifier of attribute. See @ref propgrid_property_attributes. @@ -866,13 +878,60 @@ public: */ void SetPropertyAttributeAll( const wxString& attrName, wxVariant value ); - /** Sets attributes from a wxPGAttributeStorage. + /** + Sets background colour of a property. + + @param id + Property name or pointer. + + @param colour + New background colour. + + @param recursively + If True, child properties are affected recursively. Property + categories are skipped if this flag is used. + */ + void SetPropertyBackgroundColour( wxPGPropArg id, + const wxColour& colour, + bool recursively = true ); + + /** Resets text and background colours of given property. + */ + void SetPropertyColoursToDefault( wxPGPropArg id ); + + /** + Sets text colour of a property. + + @param id + Property name or pointer. + + @param colour + New background colour. + + @param recursively + If True, child properties are affected recursively. Property + categories are skipped if this flag is used. + */ + void SetPropertyTextColour( wxPGPropArg id, + const wxColour& col, + bool recursively = true ); + + /** + Returns background colour of first cell of a property. */ - void SetPropertyAttributes( wxPGPropArg id, - const wxPGAttributeStorage& attributes ) + wxColour GetPropertyBackgroundColour( wxPGPropArg id ) const { - wxPG_PROP_ARG_CALL_PROLOG() - p->SetAttributes(attributes); + wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxColour()) + return p->GetCell(0).GetBgCol(); + } + + /** + Returns text colour of first cell of a property. + */ + wxColour GetPropertyTextColour( wxPGPropArg id ) const + { + wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxColour()) + return p->GetCell(0).GetFgCol(); } /** Sets text, bitmap, and colours for given column's cell. @@ -886,11 +945,7 @@ public: const wxString& text = wxEmptyString, const wxBitmap& bitmap = wxNullBitmap, const wxColour& fgCol = wxNullColour, - const wxColour& bgCol = wxNullColour ) - { - wxPG_PROP_ARG_CALL_PROLOG() - p->SetCell( column, new wxPGCell(text, bitmap, fgCol, bgCol) ); - } + const wxColour& bgCol = wxNullColour ); #ifndef SWIG /** Sets client data (void*) of a property. @@ -975,7 +1030,12 @@ public: If it has children (it may be category), then the same thing is done to them. */ - void SetPropertyValueUnspecified( wxPGPropArg id ); + void SetPropertyValueUnspecified( wxPGPropArg id ) + { + wxPG_PROP_ARG_CALL_PROLOG() + wxVariant nullVariant; + SetPropVal(p, nullVariant); + } #ifndef SWIG /** Sets various property values from a list of wxVariants. If property with @@ -1171,6 +1231,37 @@ public: */ void SetValidationFailureBehavior( int vfbFlags ); + /** + Sorts all properties recursively. + + @param flags + This can contain any of the following options: + wxPG_SORT_TOP_LEVEL_ONLY: Only sort categories and their + immediate children. Sorting done by wxPG_AUTO_SORT option + uses this. + + @see SortChildren, wxPropertyGrid::SetSortFunction + */ + void Sort( int flags = 0 ); + + /** + Sorts children of a property. + + @param id + Name or pointer to a property. + + @param flags + This can contain any of the following options: + wxPG_RECURSE: Sorts recursively. + + @see Sort, wxPropertyGrid::SetSortFunction + */ + void SortChildren( wxPGPropArg id, int flags = 0 ) + { + wxPG_PROP_ARG_CALL_PROLOG() + m_pState->DoSortChildren(p, flags); + } + #ifdef SWIG %pythoncode { def MapType(class_,factory):