]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/databrow.cpp
button text uses fg color, not text color
[wxWidgets.git] / src / mac / carbon / databrow.cpp
index a4485f8bc5a0c514014e9dc14dacbe3fa1e81e60..6d4e55cc5bb01bd3003ffa840ee13c0afa5cff91 100644 (file)
@@ -169,7 +169,7 @@ wxMacDataBrowserTableViewControl::wxMacDataBrowserTableViewControl(wxWindow* pee
   this->SetCustomCallbacks(&customCallbacks);
 
  // style setting:
-  this->EnableCellSizeModification();
+  this->EnableCellSizeModification( ((style & wxDV_VARIABLE_LINE_HEIGHT) != 0), true );
 
   DataBrowserSelectionFlags flags; // variable definition
 
@@ -650,7 +650,8 @@ void wxMacDataViewDataBrowserListViewControl::DataBrowserGetContextualMenuProc(M
   *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:
@@ -680,6 +681,10 @@ OSStatus wxMacDataViewDataBrowserListViewControl::DataBrowserGetSetItemDataProc(
       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:
@@ -695,14 +700,22 @@ OSStatus wxMacDataViewDataBrowserListViewControl::DataBrowserGetSetItemDataProc(
                // 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;
@@ -725,11 +738,12 @@ OSStatus wxMacDataViewDataBrowserListViewControl::DataBrowserGetSetItemDataProc(
               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;
@@ -1004,7 +1018,7 @@ void wxMacDataViewDataBrowserListViewControl::DataBrowserDrawItemProc(DataBrowse
   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):