I am trying to catch changes in value cells within the property grid control but can’t figure this one out... I dynamically create the instance of the CExtPropertyStore class and this instance itself adds instances of CExtPropertyCategory and CExtPropertyValue, like this:
IMPLEMENT_DYNAMIC( CGUIThemeStore, CExtPropertyStore );
CGUIThemeStore::CGUIThemeStore()
: CExtPropertyStore( _T("GUI Theme") )
{
}
CGUIThemeStore::~CGUIThemeStore()
{
}
bool
CGUIThemeStore::Initialize()
{
CExtPropertyCategory * pCategoryColorTheme =
new CExtPropertyCategory( _T("Color Theme") );
ASSERT(pCategoryColorTheme);
pCategoryColorTheme->DescriptionSet( _T("Color theme properties.") );
VERIFY( ItemInsert( pCategoryColorTheme ) );
CExtPropertyValue* pThValue =
new CExtPropertyValue( _T("Color theme") );
ASSERT(pThValue);
pThValue->ValueActiveGetByRTC( RUNTIME_CLASS(CExtGridCellComboBox) );
pThValue->ValueDefaultFromActive();
pThValue->DescriptionSet( _T("Color theme.") );
pCategoryColorTheme->ItemInsert( pThValue );
CExtPropertyValue* pBkValue =
new CExtPropertyValue( _T("Background color") );
ASSERT(pBkValue);
pBkValue->ValueActiveGetByRTC( RUNTIME_CLASS(CExtGridCellColor) );
pBkValue->ValueDefaultFromActive();
pBkValue->DescriptionSet( _T("Color theme background color.") );
pCategoryColorTheme->ItemInsert( pBkValue );
CExtPropertyValue* pSlValue =
new CExtPropertyValue( _T("Selection color") );
ASSERT(pSlValue);
pSlValue->ValueActiveGetByRTC( RUNTIME_CLASS(CExtGridCellColor) );
pSlValue->ValueDefaultFromActive();
pSlValue->DescriptionSet( _T("Color theme selection color.") );
pCategoryColorTheme->ItemInsert( pSlValue );
return true;
}
The store is added to the grid control with
CExtPropertyGridComboBoxBar::PropertyStoreInsert. I then implemented the function
OnPgcInputComplete in my own instance of CExtPropertyGridCtrl but I don’t get any calls when changing cells??? Is there any special initialization that I am missing here??? Everything shows up on the screen and seems to work well though...
Thanks in advanced.