@return Returns @true if successful or if there was no selection. May
fail if validation was enabled and active editor had invalid
value.
+
+ @remarks In wxPropertyGrid 1.4, this member function used to send
+ wxPG_EVT_SELECTED. In wxWidgets 2.9 and later, it no longer
+ does that.
*/
- bool ClearSelection( bool validation = false);
+ bool ClearSelection( bool validation = false );
/** Resets modified status of all properties.
*/
return value.GetArrayString();
}
-#if wxUSE_LONGLONG_NATIVE
+#ifdef wxLongLong_t
wxLongLong_t GetPropertyValueAsLongLong( wxPGPropArg id ) const
{
- wxPG_PROP_ID_GETPROPVAL_CALL_PROLOG_RETVAL_WFALLBACK("wxLongLong",
- (long) GetPropertyValueAsLong(id))
- wxLongLong ll;
- ll << value;
- return ll.GetValue();
+ wxPG_PROP_ARG_CALL_PROLOG_RETVAL(0)
+ return p->GetValue().GetLongLong().GetValue();
}
wxULongLong_t GetPropertyValueAsULongLong( wxPGPropArg id ) const
{
- wxPG_PROP_ID_GETPROPVAL_CALL_PROLOG_RETVAL_WFALLBACK("wxULongLong",
- (unsigned long) GetPropertyValueAsULong(id))
- wxULongLong ull;
- ull << value;
- return ull.GetValue();
+ wxPG_PROP_ARG_CALL_PROLOG_RETVAL(0)
+ return p->GetValue().GetULongLong().GetValue();
}
#endif
}
#endif
- /** Returns currently selected property. */
- wxPGProperty* GetSelection() const
+ /**
+ Returns currently selected property. NULL if none.
+
+ @remarks When wxPG_EX_MULTIPLE_SELECTION extra style is used, this
+ member function returns the focused property, that is the
+ one which can have active editor.
+ */
+ wxPGProperty* GetSelection() const;
+
+ /**
+ Returns list of currently selected properties.
+
+ @remarks wxArrayPGProperty should be compatible with std::vector API.
+ */
+ const wxArrayPGProperty& GetSelectedProperties() const
{
- return m_pState->GetSelection();
+ return m_pState->m_selection;
}
#ifndef SWIG
return ( (p->GetFlags() & wxPG_PROP_MODIFIED) ? true : false );
}
+ /**
+ Returns true if property is selected.
+ */
+ bool IsPropertySelected( wxPGPropArg id ) const
+ {
+ wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false)
+ return m_pState->DoIsPropertySelected(p);
+ }
+
/**
Returns true if property is shown (ie hideproperty with true not
called for it).
- */
+ */
bool IsPropertyShown( wxPGPropArg id ) const
{
wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false)
}
#ifndef SWIG
- /** Sets various property values from a list of wxVariants. If property with
- name is missing from the grid, new property is created under given
- default category (or root if omitted).
+ /**
+ Sets property values from a list of wxVariants.
*/
void SetPropertyValues( const wxVariantList& list,
wxPGPropArg defaultCategory = wxNullProperty )
m_pState->DoSetPropertyValues(list, p);
}
+ /**
+ Sets property values from a list of wxVariants.
+ */
void SetPropertyValues( const wxVariant& list,
wxPGPropArg defaultCategory = wxNullProperty )
{
SetPropVal( id, v );
}
-#if wxUSE_LONGLONG_NATIVE
+#ifdef wxLongLong_t
/** Sets value (wxLongLong&) of a property.
*/
void SetPropertyValue( wxPGPropArg id, wxLongLong_t value )
static wxPGEditor* GetEditorByName( const wxString& editorName );
+ // NOTE: This function reselects the property and may cause
+ // excess flicker, so to just call Refresh() on a rect
+ // of single property, call DrawItem() instead.
virtual void RefreshProperty( wxPGProperty* p ) = 0;
protected:
+ bool DoClearSelection( bool validation = false,
+ int selFlags = 0 );
+
/**
In derived class, implement to set editable state component with
given name to given value.
// Cannot be GetGrid() due to ambiguity issues.
wxPropertyGrid* GetPropertyGrid()
{
+ if ( !m_pState )
+ return NULL;
return m_pState->GetGrid();
}
// Cannot be GetGrid() due to ambiguity issues.
const wxPropertyGrid* GetPropertyGrid() const
{
- return (const wxPropertyGrid*) m_pState->GetGrid();
+ if ( !m_pState )
+ return NULL;
+ return static_cast<const wxPropertyGrid*>(m_pState->GetGrid());
}
#endif // #ifndef SWIG