Added 'bool editable' argument to wxPropertyGrid::MakeColumnEditable()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61802 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Jaakko Salli 2009-09-01 13:54:41 +00:00
parent aa498ec94e
commit e9fb1910b9
4 changed files with 53 additions and 7 deletions

View File

@ -1029,13 +1029,10 @@ public:
/**
Makes given column editable by user.
@see BeginLabelEdit(), EndLabelEdit()
@param editable
Using @false here will disable column from being editable.
*/
void MakeColumnEditable( unsigned int column )
{
wxASSERT( column != 1 );
m_pState->m_editableColumns.push_back(column);
}
void MakeColumnEditable( unsigned int column, bool editable = true );
/**
Creates label editor wxTextCtrl for given column, for property

View File

@ -751,9 +751,12 @@ public:
/**
Makes given column editable by user.
@param editable
Using @false here will disable column from being editable.
@see BeginLabelEdit(), EndLabelEdit()
*/
void MakeColumnEditable( unsigned int column );
void MakeColumnEditable( unsigned int column, bool editable = true );
/**
It is recommended that you call this function any time your code causes

View File

@ -775,6 +775,29 @@ bool FormMain::RunTests( bool fullTest, bool interactive )
RT_ASSERT( !pg->IsPropertySelected(prop3) )
}
{
//
// Test label editing
RT_START_TEST(LABEL_EDITING)
wxPropertyGrid* pg = pgman->GetGrid();
// Just mostly test that these won't crash
pg->MakeColumnEditable(0, true);
pg->MakeColumnEditable(2, true);
pg->MakeColumnEditable(0, false);
pg->MakeColumnEditable(2, false);
pg->SelectProperty(wxT("Height"));
pg->BeginLabelEdit(0);
pg->BeginLabelEdit(0);
pg->EndLabelEdit(0);
pg->EndLabelEdit(0);
// Recreate grid
CreateGrid( -1, -1 );
pgman = m_pPropGridManager;
}
{
RT_START_TEST(Attributes)

View File

@ -925,6 +925,29 @@ void wxPropertyGrid::DoSetSelection( const wxArrayPGProperty& newSelection,
// -----------------------------------------------------------------------
void wxPropertyGrid::MakeColumnEditable( unsigned int column,
bool editable )
{
wxASSERT( column != 1 );
wxArrayInt& cols = m_pState->m_editableColumns;
if ( editable )
{
cols.push_back(column);
}
else
{
for ( int i = cols.size() - 1; i > 0; i-- )
{
if ( cols[i] == (int)column )
cols.erase( cols.begin() + i );
}
}
}
// -----------------------------------------------------------------------
void wxPropertyGrid::DoBeginLabelEdit( unsigned int colIndex,
int selFlags )
{