this->SetCustomCallbacks(&customCallbacks);
// style setting:
- this->EnableCellSizeModification();
+ this->EnableCellSizeModification( ((style & wxDV_VARIABLE_LINE_HEIGHT) != 0), true );
DataBrowserSelectionFlags flags; // variable definition
*helpItemString = NULL;
// create information for a context menu event:
wxDataViewEvent dataViewEvent(wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU,dataViewCtrlPtr->GetId());
-
+
+ dataViewEvent.SetEventObject(dataViewCtrlPtr);
dataViewEvent.SetModel(dataViewCtrlPtr->GetModel());
// get the item information;
// theoretically more than one ID can be returned but the event can only handle one item, therefore all item related data is using the data of the first item in the array:
wxCHECK_MSG(dataViewCtrlPtr->GetModel() != NULL,errDataBrowserNotConfigured,_("Pointer to model not set correctly."));
dataViewColumnPtr = dataViewCtrlPtr->GetColumnPtr(propertyID);
wxCHECK_MSG((dataViewColumnPtr != NULL) && (dataViewColumnPtr->GetRenderer() != NULL),errDataBrowserNotConfigured,_("There is no column or renderer for the specified column index."));
+
+ wxDataViewItem dvItem(reinterpret_cast<void*>(itemID));
+ unsigned int col = dataViewColumnPtr->GetModelColumn();
+
switch (dataViewColumnPtr->GetRenderer()->GetPropertyType())
{
case kDataBrowserCheckboxType:
// variable definition and initialization:
wxVariant modifiedData(true);
- return (dataViewCtrlPtr->GetModel()->SetValue(modifiedData,wxDataViewItem(reinterpret_cast<void*>(itemID)),dataViewColumnPtr->GetModelColumn()) ? OSStatus(noErr) : OSStatus(errDataBrowserNotConfigured));
+ if (dataViewCtrlPtr->GetModel()->SetValue(modifiedData, dvItem, col) &&
+ dataViewCtrlPtr->GetModel()->ValueChanged(dvItem, col))
+ return noErr;
+ else
+ return errDataBrowserInvalidPropertyData;
} /* if */
else if (buttonValue == kThemeButtonOff)
{
// variable definition and initialization:
wxVariant modifiedData(false);
- return (dataViewCtrlPtr->GetModel()->SetValue(modifiedData,wxDataViewItem(reinterpret_cast<void*>(itemID)),dataViewColumnPtr->GetModelColumn()) ? OSStatus(noErr) : OSStatus(errDataBrowserNotConfigured));
+ if (dataViewCtrlPtr->GetModel()->SetValue(modifiedData, dvItem, col) &&
+ dataViewCtrlPtr->GetModel()->ValueChanged(dvItem, col))
+ return noErr;
+ else
+ return errDataBrowserInvalidPropertyData;
} /* if */
else
return errDataBrowserInvalidPropertyData;
wxMacCFStringHolder modifiedString(stringReference);
#endif
wxVariant modifiedData(modifiedString.AsString());
-
- if (dataViewCtrlPtr->GetModel()->SetValue(modifiedData,wxDataViewItem(reinterpret_cast<void*>(itemID)),dataViewColumnPtr->GetModelColumn()))
- return noErr;
- else
- return errDataBrowserNotConfigured;
+
+ if (dataViewCtrlPtr->GetModel()->SetValue(modifiedData, dvItem, col) &&
+ dataViewCtrlPtr->GetModel()->ValueChanged(dvItem, col))
+ return noErr;
+ else
+ return errDataBrowserInvalidPropertyData;
} /* if */
else
return errorStatus;
dataViewCustomRendererPtr->SetValue(dataToRender);
wxDataViewItem dataitem( reinterpret_cast<void*>(itemID) );
- dataViewCtrlPtr->GetModel()->GetValue(dataToRender,dataitem,columnIndex);
+ dataViewCtrlPtr->GetModel()->GetValue(dataToRender,dataitem,dataViewColumnPtr->GetModelColumn());
dataViewCustomRendererPtr->SetValue(dataToRender);
// try to determine the content's size (drawable part):