bool wxPropertyGridInterface::EnableProperty( wxPGPropArg id, bool enable ) { wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false) wxPropertyGridPageState* state = p->GetParentState(); wxPropertyGrid* grid = state->GetGrid(); if ( enable ) { if ( !(p->m_flags & wxPG_PROP_DISABLED) ) return false; // If active, Set active Editor. if ( grid->GetState() == state && p == grid->GetSelection() ) grid->DoSelectProperty( p, wxPG_SEL_FORCE ); } else { if ( p->m_flags & wxPG_PROP_DISABLED ) return false; // If active, Disable as active Editor. if ( grid->GetState() == state && p == grid->GetSelection() ) grid->DoSelectProperty( p, wxPG_SEL_FORCE ); } state->DoEnableProperty(p, enable); RefreshProperty( p ); return true; }
wxPGProperty* wxPropertyGridInterface::RemoveProperty( wxPGPropArg id ) { wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxNullProperty) wxCHECK( !p->GetChildCount() || p->HasFlag(wxPG_PROP_AGGREGATE), wxNullProperty); wxPropertyGridPageState* state = p->GetParentState(); wxPropertyGrid* grid = state->GetGrid(); if ( grid->GetState() == state ) { grid->DoSelectProperty(NULL, wxPG_SEL_DELETING|wxPG_SEL_NOVALIDATE); } state->DoDelete( p, false ); // Mark the property as 'unattached' p->m_parentState = NULL; p->m_parent = NULL; RefreshGrid(state); return p; }
wxPGProperty* wxPropertyGridInterface::ReplaceProperty( wxPGPropArg id, wxPGProperty* property ) { wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxNullProperty) wxPGProperty* replaced = p; wxCHECK_MSG( replaced && property, wxNullProperty, wxT("NULL property") ); wxCHECK_MSG( !replaced->IsCategory(), wxNullProperty, wxT("cannot replace this type of property") ); wxCHECK_MSG( !m_pState->IsInNonCatMode(), wxNullProperty, wxT("cannot replace properties in alphabetic mode") ); // Get address to the slot wxPGProperty* parent = replaced->GetParent(); int ind = replaced->GetIndexInParent(); wxPropertyGridPageState* state = replaced->GetParentState(); DeleteProperty(replaced); // Must use generic Delete state->DoInsert(parent,ind,property); return property; }
wxPGProperty* wxPropertyGridInterface::Insert( wxPGPropArg id, int index, wxPGProperty* newproperty ) { wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxNullProperty) wxPGProperty* retp = m_pState->DoInsert((wxPGProperty*)p,index,newproperty); RefreshGrid(); return retp; }
wxPGProperty* wxPropertyGridInterface::Insert( wxPGPropArg id, wxPGProperty* property ) { wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxNullProperty) wxPGProperty* retp = m_pState->DoInsert(p->GetParent(), p->GetIndexInParent(), property); RefreshGrid(); return retp; }
wxPGProperty* wxPropertyGridInterface::AppendIn( wxPGPropArg id, wxPGProperty* newproperty ) { wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxNullProperty) wxPGProperty* pwc = (wxPGProperty*) p; wxPGProperty* retp = m_pState->DoInsert(pwc, pwc->GetChildCount(), newproperty); return retp; }
bool wxPropertyGridManager::EnsureVisible( wxPGPropArg id ) { wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false) wxPropertyGridPageState* parentState = p->GetParentState(); // Select correct page. if ( m_pPropGrid->m_pState != parentState ) DoSelectPage( GetPageByState(parentState) ); return m_pPropGrid->EnsureVisible(id); }
wxPGProperty* wxPropertyGridInterface::RemoveProperty( wxPGPropArg id ) { wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxNullProperty) wxCHECK( !p->GetChildCount() || p->HasFlag(wxPG_PROP_AGGREGATE), wxNullProperty); wxPropertyGridPageState* state = p->GetParentState(); state->DoDelete( p, false ); RefreshGrid(state); return p; }