X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ff1e1474ed73101f6d8bbb1f229f2204a83b9950..99c4be680622f58a48a04dfe0835b59d2c41afea:/include/wx/propgrid/propgridiface.h?ds=sidebyside diff --git a/include/wx/propgrid/propgridiface.h b/include/wx/propgrid/propgridiface.h index 75946b0792..c83dc78c9e 100644 --- a/include/wx/propgrid/propgridiface.h +++ b/include/wx/propgrid/propgridiface.h @@ -76,7 +76,7 @@ public: /** This constructor is required for NULL. */ wxPGPropArgCls( int ) { - m_ptr.property = (wxPGProperty*) NULL; + m_ptr.property = NULL; m_flags = IsProperty; } wxPGProperty* GetPtr( wxPropertyGridInterface* iface ) const; @@ -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(); } @@ -856,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 SetPropertyAttributes( wxPGPropArg id, - const wxPGAttributeStorage& attributes ) + void SetPropertyTextColour( wxPGPropArg id, + const wxColour& col, + bool recursively = true ); + + /** + Returns background colour of first cell of a property. + */ + 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. @@ -876,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. @@ -965,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 @@ -1161,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):