Patch from Hartwig for wxMac implementation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48459 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -120,6 +120,7 @@ public:
|
|||||||
OSStatus SetHasScrollBars( bool horiz, bool vert );
|
OSStatus SetHasScrollBars( bool horiz, bool vert );
|
||||||
OSStatus SetHeaderButtonHeight( UInt16 height );
|
OSStatus SetHeaderButtonHeight( UInt16 height );
|
||||||
OSStatus SetHiliteStyle( DataBrowserTableViewHiliteStyle hiliteStyle );
|
OSStatus SetHiliteStyle( DataBrowserTableViewHiliteStyle hiliteStyle );
|
||||||
|
OSStatus SetIndent(float Indent);
|
||||||
OSStatus SetRowHeight( DataBrowserItemID item , UInt16 height);
|
OSStatus SetRowHeight( DataBrowserItemID item , UInt16 height);
|
||||||
OSStatus SetScrollPosition( UInt32 top , UInt32 left );
|
OSStatus SetScrollPosition( UInt32 top , UInt32 left );
|
||||||
|
|
||||||
@@ -135,7 +136,8 @@ public:
|
|||||||
|
|
||||||
OSStatus IsUsedPropertyID(DataBrowserPropertyID propertyID) const; // checks if passed property id is used by the control; no error is returned if the id exists
|
OSStatus IsUsedPropertyID(DataBrowserPropertyID propertyID) const; // checks if passed property id is used by the control; no error is returned if the id exists
|
||||||
|
|
||||||
OSStatus RemoveColumn(DataBrowserTableViewColumnIndex index);
|
OSStatus RemoveColumnByProperty(DataBrowserTableViewColumnID propertyID);
|
||||||
|
OSStatus RemoveColumnByIndex (DataBrowserTableViewColumnIndex index);
|
||||||
|
|
||||||
OSStatus SetColumnIndex (DataBrowserPropertyID propertyID, DataBrowserTableViewColumnIndex index);
|
OSStatus SetColumnIndex (DataBrowserPropertyID propertyID, DataBrowserTableViewColumnIndex index);
|
||||||
OSStatus SetDisclosureColumn(DataBrowserPropertyID propertyID, Boolean expandableRows=true);
|
OSStatus SetDisclosureColumn(DataBrowserPropertyID propertyID, Boolean expandableRows=true);
|
||||||
@@ -207,6 +209,13 @@ public:
|
|||||||
OSStatus SetSortOrder (DataBrowserSortOrder order);
|
OSStatus SetSortOrder (DataBrowserSortOrder order);
|
||||||
OSStatus SetSortProperty(DataBrowserPropertyID propertyID);
|
OSStatus SetSortProperty(DataBrowserPropertyID propertyID);
|
||||||
|
|
||||||
|
//
|
||||||
|
// container handling
|
||||||
|
//
|
||||||
|
OSStatus CloseContainer(DataBrowserItemID containerID);
|
||||||
|
|
||||||
|
OSStatus OpenContainer(DataBrowserItemID containerID);
|
||||||
|
|
||||||
protected :
|
protected :
|
||||||
//
|
//
|
||||||
// callback functions
|
// callback functions
|
||||||
|
@@ -193,7 +193,7 @@ public:
|
|||||||
// implementation
|
// implementation
|
||||||
//
|
//
|
||||||
virtual bool Render(void); // declared in wxDataViewRenderer but will not be used here, therefore calling this function will
|
virtual bool Render(void); // declared in wxDataViewRenderer but will not be used here, therefore calling this function will
|
||||||
// return 'false' without having done anything
|
// return 'true' without having done anything
|
||||||
|
|
||||||
virtual DataBrowserPropertyType GetPropertyType(void) const
|
virtual DataBrowserPropertyType GetPropertyType(void) const
|
||||||
{
|
{
|
||||||
@@ -281,6 +281,33 @@ private:
|
|||||||
// wxDataViewToggleRenderer
|
// wxDataViewToggleRenderer
|
||||||
// ---------------------------------------------------------
|
// ---------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_ADV wxDataViewIconTextRenderer: public wxDataViewRenderer
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxDataViewIconTextRenderer(wxString const& varianttype = wxT("wxDataViewIconText"), wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int align=wxDVR_DEFAULT_ALIGNMENT);
|
||||||
|
|
||||||
|
//
|
||||||
|
// inherited functions from wxDataViewRenderer
|
||||||
|
//
|
||||||
|
virtual bool Render(void);
|
||||||
|
|
||||||
|
//
|
||||||
|
// implementation
|
||||||
|
//
|
||||||
|
virtual DataBrowserPropertyType GetPropertyType(void) const
|
||||||
|
{
|
||||||
|
return kDataBrowserIconAndTextType;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
private:
|
||||||
|
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewIconTextRenderer)
|
||||||
|
};
|
||||||
|
|
||||||
|
// ---------------------------------------------------------
|
||||||
|
// wxDataViewToggleRenderer
|
||||||
|
// ---------------------------------------------------------
|
||||||
|
|
||||||
class WXDLLIMPEXP_ADV wxDataViewToggleRenderer: public wxDataViewRenderer
|
class WXDLLIMPEXP_ADV wxDataViewToggleRenderer: public wxDataViewRenderer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -490,17 +517,23 @@ public:
|
|||||||
bool Create(wxWindow *parent, wxWindowID id, wxPoint const& pos=wxDefaultPosition, wxSize const& size=wxDefaultSize, long style=0,
|
bool Create(wxWindow *parent, wxWindowID id, wxPoint const& pos=wxDefaultPosition, wxSize const& size=wxDefaultSize, long style=0,
|
||||||
wxValidator const& validator=wxDefaultValidator);
|
wxValidator const& validator=wxDefaultValidator);
|
||||||
|
|
||||||
// inherited methods from 'wxDataViewCtrlBase':
|
|
||||||
virtual bool AppendColumn(wxDataViewColumn* columnPtr);
|
|
||||||
|
|
||||||
virtual bool AssociateModel(wxDataViewModel* model);
|
|
||||||
|
|
||||||
virtual wxControl* GetMainWindow(void) // should disappear as it is not of any use for the native implementation
|
virtual wxControl* GetMainWindow(void) // should disappear as it is not of any use for the native implementation
|
||||||
{
|
{
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// inherited methods from 'wxDataViewCtrlBase':
|
||||||
|
virtual bool AssociateModel(wxDataViewModel* model);
|
||||||
|
|
||||||
|
virtual bool AppendColumn(wxDataViewColumn* columnPtr);
|
||||||
|
virtual bool ClearColumns(void);
|
||||||
|
virtual bool DeleteColumn(wxDataViewColumn* columnPtr);
|
||||||
|
virtual wxDataViewColumn* GetColumn(unsigned int pos) const;
|
||||||
|
virtual unsigned int GetColumnCount(void) const;
|
||||||
|
|
||||||
|
virtual void Collapse(wxDataViewItem const& item);
|
||||||
virtual void EnsureVisible(wxDataViewItem const& item, wxDataViewColumn const* columnPtr=NULL);
|
virtual void EnsureVisible(wxDataViewItem const& item, wxDataViewColumn const* columnPtr=NULL);
|
||||||
|
virtual void Expand(wxDataViewItem const& item);
|
||||||
|
|
||||||
virtual wxRect GetItemRect(wxDataViewItem const& item, wxDataViewColumn const* columnPtr) const;
|
virtual wxRect GetItemRect(wxDataViewItem const& item, wxDataViewColumn const* columnPtr) const;
|
||||||
virtual wxDataViewItem GetSelection(void) const;
|
virtual wxDataViewItem GetSelection(void) const;
|
||||||
@@ -517,7 +550,6 @@ public:
|
|||||||
virtual void Unselect(wxDataViewItem const& item);
|
virtual void Unselect(wxDataViewItem const& item);
|
||||||
virtual void UnselectAll(void);
|
virtual void UnselectAll(void);
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// implementation
|
// implementation
|
||||||
//
|
//
|
||||||
@@ -525,6 +557,10 @@ public:
|
|||||||
// adds all children of the passed parent to the control; if 'parentItem' is invalid the root(s) is/are added:
|
// adds all children of the passed parent to the control; if 'parentItem' is invalid the root(s) is/are added:
|
||||||
void AddChildrenLevel(wxDataViewItem const& parentItem);
|
void AddChildrenLevel(wxDataViewItem const& parentItem);
|
||||||
|
|
||||||
|
// returns a pointer to a column;
|
||||||
|
// in case the pointer cannot be found NULL is returned:
|
||||||
|
wxDataViewColumn* GetColumnPtr(DataBrowserPropertyID propertyID) const;
|
||||||
|
|
||||||
// checks if currently a delete process is running:
|
// checks if currently a delete process is running:
|
||||||
bool IsDeleting(void) const
|
bool IsDeleting(void) const
|
||||||
{
|
{
|
||||||
@@ -559,6 +595,9 @@ protected:
|
|||||||
void OnSize(wxSizeEvent &event);
|
void OnSize(wxSizeEvent &event);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// type definitions:
|
||||||
|
WX_DECLARE_HASH_MAP(DataBrowserPropertyID,wxDataViewColumn*,wxIntegerHash,wxIntegerEqual,ColumnPointerHashMapType);
|
||||||
|
|
||||||
// initializing of local variables:
|
// initializing of local variables:
|
||||||
void Init(void);
|
void Init(void);
|
||||||
|
|
||||||
@@ -572,7 +611,7 @@ private:
|
|||||||
|
|
||||||
void* m_cgContext; // pointer to core graphics context
|
void* m_cgContext; // pointer to core graphics context
|
||||||
|
|
||||||
wxDataViewModelNotifier* m_NotifierPtr; // the notifier is NOT owned by this class but by the associated model
|
ColumnPointerHashMapType m_ColumnPointers; // all column pointers are stored in a hash map with the property ID as a key
|
||||||
|
|
||||||
// wxWidget internal stuff:
|
// wxWidget internal stuff:
|
||||||
DECLARE_DYNAMIC_CLASS(wxDataViewCtrl)
|
DECLARE_DYNAMIC_CLASS(wxDataViewCtrl)
|
||||||
|
@@ -273,20 +273,25 @@ OSStatus wxMacDataBrowserTableViewControl::SetDefaultRowHeight(UInt16 height)
|
|||||||
return ::SetDataBrowserTableViewRowHeight(this->m_controlRef,height);
|
return ::SetDataBrowserTableViewRowHeight(this->m_controlRef,height);
|
||||||
}
|
}
|
||||||
|
|
||||||
OSStatus wxMacDataBrowserTableViewControl::SetHasScrollBars( bool horiz, bool vert )
|
OSStatus wxMacDataBrowserTableViewControl::SetHasScrollBars(bool horiz, bool vert)
|
||||||
{
|
{
|
||||||
return SetDataBrowserHasScrollBars(this->m_controlRef, horiz, vert );
|
return ::SetDataBrowserHasScrollBars(this->m_controlRef,horiz,vert);
|
||||||
}
|
} /* wxMacDataBrowserTableViewControl::SetHasScrollBars(bool, bool) */
|
||||||
|
|
||||||
OSStatus wxMacDataBrowserTableViewControl::SetHeaderButtonHeight(UInt16 height)
|
OSStatus wxMacDataBrowserTableViewControl::SetHeaderButtonHeight(UInt16 height)
|
||||||
{
|
{
|
||||||
return SetDataBrowserListViewHeaderBtnHeight(this->m_controlRef, height );
|
return ::SetDataBrowserListViewHeaderBtnHeight(this->m_controlRef,height);
|
||||||
}
|
} /* wxMacDataBrowserTableViewControl::SetHeaderButtonHeight(UInt16) */
|
||||||
|
|
||||||
OSStatus wxMacDataBrowserTableViewControl::SetHiliteStyle( DataBrowserTableViewHiliteStyle hiliteStyle )
|
OSStatus wxMacDataBrowserTableViewControl::SetHiliteStyle(DataBrowserTableViewHiliteStyle hiliteStyle)
|
||||||
{
|
{
|
||||||
return SetDataBrowserTableViewHiliteStyle(this->m_controlRef, hiliteStyle );
|
return ::SetDataBrowserTableViewHiliteStyle(this->m_controlRef,hiliteStyle);
|
||||||
}
|
} /*wxMacDataBrowserTableViewControl::SetHiliteStyle(DataBrowserTableViewHiliteStyle) */
|
||||||
|
|
||||||
|
OSStatus wxMacDataBrowserTableViewControl::SetIndent(float Indent)
|
||||||
|
{
|
||||||
|
return ::DataBrowserSetMetric(this->m_controlRef,kDataBrowserMetricDisclosureColumnPerDepthGap,true,Indent);
|
||||||
|
} /* wxMacDataBrowserTableViewControl::SetIndent(float* Indent) */
|
||||||
|
|
||||||
OSStatus wxMacDataBrowserTableViewControl::SetRowHeight(DataBrowserItemID item, UInt16 height)
|
OSStatus wxMacDataBrowserTableViewControl::SetRowHeight(DataBrowserItemID item, UInt16 height)
|
||||||
{
|
{
|
||||||
@@ -344,14 +349,19 @@ OSStatus wxMacDataBrowserTableViewControl::IsUsedPropertyID(DataBrowserPropertyI
|
|||||||
return ::GetDataBrowserTableViewColumnPosition(this->m_controlRef,propertyID,&index);
|
return ::GetDataBrowserTableViewColumnPosition(this->m_controlRef,propertyID,&index);
|
||||||
} /* wxMacDataBrowserTableViewControl::IsUsedPropertyId(DataBrowserPropertyID) const */
|
} /* wxMacDataBrowserTableViewControl::IsUsedPropertyId(DataBrowserPropertyID) const */
|
||||||
|
|
||||||
OSStatus wxMacDataBrowserTableViewControl::RemoveColumn(DataBrowserTableViewColumnIndex index)
|
OSStatus wxMacDataBrowserTableViewControl::RemoveColumnByProperty(DataBrowserTableViewColumnID propertyID)
|
||||||
|
{
|
||||||
|
return ::RemoveDataBrowserTableViewColumn(this->m_controlRef,propertyID);
|
||||||
|
} /* wxMacDataBrowserTableViewControl::RemoveColumnByProperty(DataBrowserTableViewColumnID) */
|
||||||
|
|
||||||
|
OSStatus wxMacDataBrowserTableViewControl::RemoveColumnByIndex(DataBrowserTableViewColumnIndex index)
|
||||||
{
|
{
|
||||||
DataBrowserTableViewColumnID propertyID;
|
DataBrowserTableViewColumnID propertyID;
|
||||||
|
|
||||||
|
|
||||||
this->GetPropertyID(index,&propertyID);
|
this->GetPropertyID(index,&propertyID);
|
||||||
return ::RemoveDataBrowserTableViewColumn(this->m_controlRef,propertyID);
|
return ::RemoveDataBrowserTableViewColumn(this->m_controlRef,propertyID);
|
||||||
} /* wxMacDataBrowserTableViewControl::RemoveColumn(DataBrowserTableViewColumnIndex) */
|
} /* wxMacDataBrowserTableViewControl::RemoveColumnByIndex(DataBrowserTableViewColumnIndex) */
|
||||||
|
|
||||||
OSStatus wxMacDataBrowserTableViewControl::SetColumnIndex(DataBrowserPropertyID propertyID, DataBrowserTableViewColumnIndex index)
|
OSStatus wxMacDataBrowserTableViewControl::SetColumnIndex(DataBrowserPropertyID propertyID, DataBrowserTableViewColumnIndex index)
|
||||||
{
|
{
|
||||||
@@ -526,6 +536,19 @@ OSStatus wxMacDataBrowserTableViewControl::SetSortProperty(DataBrowserPropertyID
|
|||||||
return ::SetDataBrowserSortProperty(this->m_controlRef,propertyID);
|
return ::SetDataBrowserSortProperty(this->m_controlRef,propertyID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// container handling
|
||||||
|
//
|
||||||
|
OSStatus wxMacDataBrowserTableViewControl::CloseContainer(DataBrowserItemID containerID)
|
||||||
|
{
|
||||||
|
return ::CloseDataBrowserContainer(this->m_controlRef,containerID);
|
||||||
|
} /* wxMacDataBrowserTableViewControl::CloseContainer(DataBrowserItemID) */
|
||||||
|
|
||||||
|
OSStatus wxMacDataBrowserTableViewControl::OpenContainer(DataBrowserItemID containerID)
|
||||||
|
{
|
||||||
|
return ::OpenDataBrowserContainer(this->m_controlRef,containerID);
|
||||||
|
} /* wxMacDataBrowserTableViewControl::OpenContainer(DataBrowserItemID) */
|
||||||
|
|
||||||
IMPLEMENT_ABSTRACT_CLASS(wxMacDataBrowserTableViewControl,wxMacControl)
|
IMPLEMENT_ABSTRACT_CLASS(wxMacDataBrowserTableViewControl,wxMacControl)
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
@@ -714,27 +737,27 @@ OSStatus wxMacDataViewDataBrowserListViewControl::DataBrowserGetSetItemDataProc(
|
|||||||
if (propertyID >= kMinPropertyID) // in case data columns set the data
|
if (propertyID >= kMinPropertyID) // in case data columns set the data
|
||||||
{
|
{
|
||||||
// variable definitions:
|
// variable definitions:
|
||||||
DataBrowserTableViewColumnIndex columnIndex;
|
wxVariant variant;
|
||||||
OSStatus errorStatus;
|
wxDataViewColumn* dataViewColumnPtr;
|
||||||
wxVariant variant;
|
wxDataViewCtrl* dataViewCtrlPtr;
|
||||||
wxDataViewColumn* dataViewColumnPtr;
|
|
||||||
wxDataViewCtrl* dataViewCtrlPtr;
|
|
||||||
|
|
||||||
dataViewCtrlPtr = dynamic_cast<wxDataViewCtrl*>(this->GetPeer());
|
dataViewCtrlPtr = dynamic_cast<wxDataViewCtrl*>(this->GetPeer());
|
||||||
wxCHECK_MSG(dataViewCtrlPtr != NULL,errDataBrowserNotConfigured,_("Pointer to data view control not set correctly."));
|
wxCHECK_MSG(dataViewCtrlPtr != NULL,errDataBrowserNotConfigured,_("Pointer to data view control not set correctly."));
|
||||||
wxCHECK_MSG(dataViewCtrlPtr->GetModel() != NULL,errDataBrowserNotConfigured,_("Pointer to model not set correctly."));
|
wxCHECK_MSG(dataViewCtrlPtr->GetModel() != NULL,errDataBrowserNotConfigured,_("Pointer to model not set correctly."));
|
||||||
errorStatus = this->GetColumnIndex(propertyID,&columnIndex);
|
dataViewColumnPtr = dataViewCtrlPtr->GetColumnPtr(propertyID);
|
||||||
wxCHECK_MSG(errorStatus == noErr,errorStatus,_("Column index does not exist."));
|
|
||||||
dataViewColumnPtr = dataViewCtrlPtr->GetColumn(columnIndex);
|
|
||||||
wxCHECK_MSG(dataViewColumnPtr != NULL,errDataBrowserNotConfigured,_("No column for the specified column position existing."));
|
wxCHECK_MSG(dataViewColumnPtr != NULL,errDataBrowserNotConfigured,_("No column for the specified column position existing."));
|
||||||
wxCHECK_MSG(dataViewColumnPtr->GetRenderer() != NULL,errDataBrowserNotConfigured,_("No renderer specified for column."));
|
wxCHECK_MSG(dataViewColumnPtr->GetRenderer() != NULL,errDataBrowserNotConfigured,_("No renderer specified for column."));
|
||||||
dataViewCtrlPtr->GetModel()->GetValue(variant,wxDataViewItem(reinterpret_cast<void*>(itemID)),dataViewColumnPtr->GetModelColumn());
|
dataViewCtrlPtr->GetModel()->GetValue(variant,wxDataViewItem(reinterpret_cast<void*>(itemID)),dataViewColumnPtr->GetModelColumn());
|
||||||
dataViewColumnPtr->GetRenderer()->SetDataReference(itemData);
|
if (!(variant.IsNull()))
|
||||||
dataViewColumnPtr->GetRenderer()->SetValue(variant);
|
{
|
||||||
wxCHECK_MSG(dataViewColumnPtr->GetRenderer()->Render(),errDataBrowserNotConfigured,_("Rendering failed."));
|
dataViewColumnPtr->GetRenderer()->SetDataReference(itemData);
|
||||||
|
dataViewColumnPtr->GetRenderer()->SetValue(variant);
|
||||||
|
wxCHECK_MSG(dataViewColumnPtr->GetRenderer()->Render(),errDataBrowserNotConfigured,_("Rendering failed."));
|
||||||
|
} /* if */
|
||||||
return noErr;
|
return noErr;
|
||||||
} /* if */
|
} /* if */
|
||||||
else // react on special system requests
|
else // react on special system requests
|
||||||
|
{
|
||||||
switch (propertyID)
|
switch (propertyID)
|
||||||
{
|
{
|
||||||
case kDataBrowserContainerIsClosableProperty:
|
case kDataBrowserContainerIsClosableProperty:
|
||||||
@@ -753,7 +776,6 @@ OSStatus wxMacDataViewDataBrowserListViewControl::DataBrowserGetSetItemDataProc(
|
|||||||
// opening the container is allowed if not vetoed:
|
// opening the container is allowed if not vetoed:
|
||||||
return ::SetDataBrowserItemDataBooleanValue(itemData,dataViewEvent.IsAllowed());
|
return ::SetDataBrowserItemDataBooleanValue(itemData,dataViewEvent.IsAllowed());
|
||||||
} /* block */
|
} /* block */
|
||||||
return noErr;
|
|
||||||
case kDataBrowserContainerIsOpenableProperty:
|
case kDataBrowserContainerIsOpenableProperty:
|
||||||
{
|
{
|
||||||
// variable definitions:
|
// variable definitions:
|
||||||
@@ -782,11 +804,12 @@ OSStatus wxMacDataViewDataBrowserListViewControl::DataBrowserGetSetItemDataProc(
|
|||||||
case kDataBrowserItemIsEditableProperty:
|
case kDataBrowserItemIsEditableProperty:
|
||||||
return ::SetDataBrowserItemDataBooleanValue(itemData,true);
|
return ::SetDataBrowserItemDataBooleanValue(itemData,true);
|
||||||
} /* switch */
|
} /* switch */
|
||||||
|
} /* if */
|
||||||
} /* if */
|
} /* if */
|
||||||
return errDataBrowserPropertyNotSupported;
|
return errDataBrowserPropertyNotSupported;
|
||||||
} /* wxMacDataViewDataBrowserListViewControl::DataBrowserGetSetItemDataProc(DataBrowserItemID, DataBrowserPropertyID, DataBrowserItemDataRef, Boolean) */
|
} /* wxMacDataViewDataBrowserListViewControl::DataBrowserGetSetItemDataProc(DataBrowserItemID, DataBrowserPropertyID, DataBrowserItemDataRef, Boolean) */
|
||||||
|
|
||||||
void wxMacDataViewDataBrowserListViewControl::DataBrowserItemNotificationProc(DataBrowserItemID itemID, DataBrowserItemNotification message, DataBrowserItemDataRef WXUNUSED(itemData))
|
void wxMacDataViewDataBrowserListViewControl::DataBrowserItemNotificationProc(DataBrowserItemID itemID, DataBrowserItemNotification message, DataBrowserItemDataRef itemData)
|
||||||
{
|
{
|
||||||
switch (message)
|
switch (message)
|
||||||
{
|
{
|
||||||
@@ -823,6 +846,60 @@ void wxMacDataViewDataBrowserListViewControl::DataBrowserItemNotificationProc(Da
|
|||||||
dataViewCtrlPtr->GetEventHandler()->ProcessEvent(dataViewEvent);
|
dataViewCtrlPtr->GetEventHandler()->ProcessEvent(dataViewEvent);
|
||||||
} /* block */
|
} /* block */
|
||||||
break;
|
break;
|
||||||
|
case kDataBrowserEditStarted:
|
||||||
|
{
|
||||||
|
// variable definitions:
|
||||||
|
wxDataViewCtrl* dataViewCtrlPtr(dynamic_cast<wxDataViewCtrl*>(this->GetPeer()));
|
||||||
|
|
||||||
|
if (dataViewCtrlPtr != NULL)
|
||||||
|
{
|
||||||
|
// initialize wxWidget event:
|
||||||
|
DataBrowserPropertyID propertyID;
|
||||||
|
wxDataViewEvent dataViewEvent(wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED,dataViewCtrlPtr->GetId()); // variable definition
|
||||||
|
|
||||||
|
dataViewEvent.SetEventObject(dataViewCtrlPtr);
|
||||||
|
dataViewEvent.SetItem(wxDataViewItem(reinterpret_cast<void*>(itemID)));
|
||||||
|
if (this->GetPropertyID(itemData,&propertyID) == noErr)
|
||||||
|
{
|
||||||
|
// variable definition and initialization:
|
||||||
|
DataBrowserTableViewColumnIndex columnIndex;
|
||||||
|
|
||||||
|
wxCHECK_RET(this->GetColumnIndex(propertyID,&columnIndex),_("Column index not found."));
|
||||||
|
dataViewEvent.SetColumn(columnIndex);
|
||||||
|
dataViewEvent.SetDataViewColumn(dataViewCtrlPtr->GetColumnPtr(propertyID));
|
||||||
|
} /* if */
|
||||||
|
// finally send the equivalent wxWidget event:
|
||||||
|
dataViewCtrlPtr->GetEventHandler()->ProcessEvent(dataViewEvent);
|
||||||
|
} /* if */
|
||||||
|
} /* block */
|
||||||
|
break;
|
||||||
|
case kDataBrowserEditStopped:
|
||||||
|
{
|
||||||
|
// variable definitions:
|
||||||
|
wxDataViewCtrl* dataViewCtrlPtr(dynamic_cast<wxDataViewCtrl*>(this->GetPeer()));
|
||||||
|
|
||||||
|
if (dataViewCtrlPtr != NULL)
|
||||||
|
{
|
||||||
|
// initialize wxWidget event:
|
||||||
|
DataBrowserPropertyID propertyID;
|
||||||
|
wxDataViewEvent dataViewEvent(wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE,dataViewCtrlPtr->GetId()); // variable definition
|
||||||
|
|
||||||
|
dataViewEvent.SetEventObject(dataViewCtrlPtr);
|
||||||
|
dataViewEvent.SetItem(wxDataViewItem(reinterpret_cast<void*>(itemID)));
|
||||||
|
if (this->GetPropertyID(itemData,&propertyID) == noErr)
|
||||||
|
{
|
||||||
|
// variable definition and initialization:
|
||||||
|
DataBrowserTableViewColumnIndex columnIndex;
|
||||||
|
|
||||||
|
wxCHECK_RET(this->GetColumnIndex(propertyID,&columnIndex),_("Column index not found."));
|
||||||
|
dataViewEvent.SetColumn(columnIndex);
|
||||||
|
dataViewEvent.SetDataViewColumn(dataViewCtrlPtr->GetColumnPtr(propertyID));
|
||||||
|
} /* if */
|
||||||
|
// finally send the equivalent wxWidget event:
|
||||||
|
dataViewCtrlPtr->GetEventHandler()->ProcessEvent(dataViewEvent);
|
||||||
|
} /* if */
|
||||||
|
} /* block */
|
||||||
|
break;
|
||||||
case kDataBrowserItemAdded:
|
case kDataBrowserItemAdded:
|
||||||
{
|
{
|
||||||
// variable definitions:
|
// variable definitions:
|
||||||
@@ -838,6 +915,23 @@ void wxMacDataViewDataBrowserListViewControl::DataBrowserItemNotificationProc(Da
|
|||||||
dataViewCtrlPtr->GetEventHandler()->ProcessEvent(dataViewEvent);
|
dataViewCtrlPtr->GetEventHandler()->ProcessEvent(dataViewEvent);
|
||||||
} /* block */
|
} /* block */
|
||||||
break;
|
break;
|
||||||
|
case kDataBrowserItemDeselected:
|
||||||
|
{
|
||||||
|
// variable definitions:
|
||||||
|
wxDataViewCtrl* dataViewCtrlPtr(dynamic_cast<wxDataViewCtrl*>(this->GetPeer()));
|
||||||
|
|
||||||
|
if (dataViewCtrlPtr != NULL) // can become NULL if an item is still selected while removing the data browser
|
||||||
|
{
|
||||||
|
// initialize wxWidget event:
|
||||||
|
wxDataViewEvent dataViewEvent(wxEVT_COMMAND_DATAVIEW_ITEM_DESELECTED,dataViewCtrlPtr->GetId()); // variable definition
|
||||||
|
|
||||||
|
dataViewEvent.SetEventObject(dataViewCtrlPtr);
|
||||||
|
dataViewEvent.SetItem(wxDataViewItem(reinterpret_cast<void*>(itemID)));
|
||||||
|
// finally send the equivalent wxWidget event:
|
||||||
|
dataViewCtrlPtr->GetEventHandler()->ProcessEvent(dataViewEvent);
|
||||||
|
} /* if */
|
||||||
|
} /* block */
|
||||||
|
break;
|
||||||
case kDataBrowserItemDoubleClicked:
|
case kDataBrowserItemDoubleClicked:
|
||||||
{
|
{
|
||||||
// variable definitions:
|
// variable definitions:
|
||||||
@@ -885,6 +979,8 @@ void wxMacDataViewDataBrowserListViewControl::DataBrowserItemNotificationProc(Da
|
|||||||
dataViewCtrlPtr->GetEventHandler()->ProcessEvent(dataViewEvent);
|
dataViewCtrlPtr->GetEventHandler()->ProcessEvent(dataViewEvent);
|
||||||
} /* block */
|
} /* block */
|
||||||
break;
|
break;
|
||||||
|
case kDataBrowserSelectionSetChanged:
|
||||||
|
break;
|
||||||
case kDataBrowserUserStateChanged:
|
case kDataBrowserUserStateChanged:
|
||||||
{
|
{
|
||||||
DataBrowserPropertyID propertyID;
|
DataBrowserPropertyID propertyID;
|
||||||
|
@@ -277,7 +277,7 @@ IMPLEMENT_ABSTRACT_CLASS(wxDataViewRenderer,wxDataViewRendererBase)
|
|||||||
// ---------------------------------------------------------
|
// ---------------------------------------------------------
|
||||||
#pragma mark -
|
#pragma mark -
|
||||||
wxDataViewCustomRenderer::wxDataViewCustomRenderer(wxString const& varianttype, wxDataViewCellMode mode, int align)
|
wxDataViewCustomRenderer::wxDataViewCustomRenderer(wxString const& varianttype, wxDataViewCellMode mode, int align)
|
||||||
:wxDataViewRenderer(varianttype,mode,align), m_editorCtrlPtr(NULL)
|
:wxDataViewRenderer(varianttype,mode,align), m_editorCtrlPtr(NULL), m_DCPtr(NULL)
|
||||||
{
|
{
|
||||||
} /* wxDataViewCustomRenderer::wxDataViewCustomRenderer(wxString const&, wxDataViewCellMode) */
|
} /* wxDataViewCustomRenderer::wxDataViewCustomRenderer(wxString const&, wxDataViewCellMode) */
|
||||||
|
|
||||||
@@ -300,7 +300,7 @@ wxDC* wxDataViewCustomRenderer::GetDC(void)
|
|||||||
|
|
||||||
bool wxDataViewCustomRenderer::Render(void)
|
bool wxDataViewCustomRenderer::Render(void)
|
||||||
{
|
{
|
||||||
return false;
|
return true;
|
||||||
} /* wxDataViewCustomRenderer::Render(void) */
|
} /* wxDataViewCustomRenderer::Render(void) */
|
||||||
|
|
||||||
void wxDataViewCustomRenderer::SetDC(wxDC* newDCPtr)
|
void wxDataViewCustomRenderer::SetDC(wxDC* newDCPtr)
|
||||||
@@ -363,6 +363,38 @@ bool wxDataViewBitmapRenderer::Render(void)
|
|||||||
|
|
||||||
IMPLEMENT_CLASS(wxDataViewBitmapRenderer,wxDataViewRenderer)
|
IMPLEMENT_CLASS(wxDataViewBitmapRenderer,wxDataViewRenderer)
|
||||||
|
|
||||||
|
// ---------------------------------------------------------
|
||||||
|
// wxDataViewIconTextRenderer
|
||||||
|
// ---------------------------------------------------------
|
||||||
|
#pragma mark -
|
||||||
|
wxDataViewIconTextRenderer::wxDataViewIconTextRenderer(wxString const& varianttype, wxDataViewCellMode mode, int align)
|
||||||
|
:wxDataViewRenderer(varianttype,mode)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxDataViewIconTextRenderer::Render(void)
|
||||||
|
{
|
||||||
|
wxLogMessage(wxString(_("Types: ")) << this->GetValue().GetType() << wxT(' ') << this->GetVariantType());
|
||||||
|
if (this->GetValue().GetType() == this->GetVariantType())
|
||||||
|
{
|
||||||
|
// variable definition:
|
||||||
|
wxDataViewIconText iconText;
|
||||||
|
|
||||||
|
iconText << this->GetValue();
|
||||||
|
|
||||||
|
// variable definition:
|
||||||
|
wxMacCFStringHolder cfString(iconText.GetText(),(this->GetView()->GetFont().Ok() ? this->GetView()->GetFont().GetEncoding() : wxLocale::GetSystemEncoding()));
|
||||||
|
|
||||||
|
return ((::SetDataBrowserItemDataIcon(this->GetDataReference(),MAC_WXHICON(iconText.GetIcon().GetHICON())) == noErr) &&
|
||||||
|
(::SetDataBrowserItemDataText(this->GetDataReference(),cfString) == noErr));
|
||||||
|
} /* if */
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
} /* wxDataViewIconTextRenderer::Render(void) */
|
||||||
|
|
||||||
|
IMPLEMENT_ABSTRACT_CLASS(wxDataViewIconTextRenderer,wxDataViewRenderer)
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------
|
// ---------------------------------------------------------
|
||||||
// wxDataViewToggleRenderer
|
// wxDataViewToggleRenderer
|
||||||
// ---------------------------------------------------------
|
// ---------------------------------------------------------
|
||||||
@@ -670,7 +702,6 @@ void wxDataViewCtrl::Init(void)
|
|||||||
{
|
{
|
||||||
this->m_Deleting = false;
|
this->m_Deleting = false;
|
||||||
this->m_macIsUserPane = false;
|
this->m_macIsUserPane = false;
|
||||||
this->m_NotifierPtr = NULL;
|
|
||||||
this->m_cgContext = NULL;
|
this->m_cgContext = NULL;
|
||||||
} /* wxDataViewCtrl::Init(void) */
|
} /* wxDataViewCtrl::Init(void) */
|
||||||
|
|
||||||
@@ -692,25 +723,40 @@ bool wxDataViewCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos,
|
|||||||
return true;
|
return true;
|
||||||
} /* wxDataViewCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxValidator& validator) */
|
} /* wxDataViewCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxValidator& validator) */
|
||||||
|
|
||||||
|
bool wxDataViewCtrl::AssociateModel(wxDataViewModel* model)
|
||||||
|
{
|
||||||
|
if (!wxDataViewCtrlBase::AssociateModel(model))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
model->AddNotifier(new wxMacDataViewModelNotifier(dynamic_cast<wxMacDataViewDataBrowserListViewControl*>(this->m_peer)));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} /* wxDataViewCtrl::AssociateModel(wxDataViewModel*) */
|
||||||
|
|
||||||
bool wxDataViewCtrl::AppendColumn(wxDataViewColumn* dataViewColumnPtr)
|
bool wxDataViewCtrl::AppendColumn(wxDataViewColumn* dataViewColumnPtr)
|
||||||
{
|
{
|
||||||
|
DataBrowserPropertyID NewPropertyID;
|
||||||
|
|
||||||
|
wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast<wxMacDataViewDataBrowserListViewControlPointer>(this->m_peer));
|
||||||
|
|
||||||
|
|
||||||
// first, some error checking:
|
// first, some error checking:
|
||||||
|
wxCHECK_MSG(MacDataViewListCtrlPtr != NULL, false,_("m_peer is not or incorrectly initialized"));
|
||||||
wxCHECK_MSG(dataViewColumnPtr != NULL, false,_("Column pointer must not be NULL."));
|
wxCHECK_MSG(dataViewColumnPtr != NULL, false,_("Column pointer must not be NULL."));
|
||||||
wxCHECK_MSG(dataViewColumnPtr->GetRenderer() != NULL, false,_("Column does not have a renderer."));
|
wxCHECK_MSG(dataViewColumnPtr->GetRenderer() != NULL, false,_("Column does not have a renderer."));
|
||||||
wxCHECK_MSG(this->GetModel() != NULL, false,_("No model associated with control."));
|
wxCHECK_MSG(this->GetModel() != NULL, false,_("No model associated with control."));
|
||||||
wxCHECK_MSG((dataViewColumnPtr->GetModelColumn() >= 0) &&
|
wxCHECK_MSG((dataViewColumnPtr->GetModelColumn() >= 0) &&
|
||||||
(dataViewColumnPtr->GetModelColumn() < this->GetModel()->GetColumnCount()),false,_("Column's model column has no equivalent in the associated model."));
|
(dataViewColumnPtr->GetModelColumn() < this->GetModel()->GetColumnCount()),false,_("Column's model column has no equivalent in the associated model."));
|
||||||
if (this->wxDataViewCtrlBase::AppendColumn(dataViewColumnPtr))
|
if ((MacDataViewListCtrlPtr->GetFreePropertyID(&NewPropertyID) == noErr) && this->wxDataViewCtrlBase::AppendColumn(dataViewColumnPtr))
|
||||||
{
|
{
|
||||||
|
// insert column into hash map:
|
||||||
|
this->m_ColumnPointers.insert(ColumnPointerHashMapType::value_type(NewPropertyID,dataViewColumnPtr));
|
||||||
|
|
||||||
// variable definitions:
|
// variable definitions:
|
||||||
DataBrowserPropertyID NewPropertyID;
|
DataBrowserListViewColumnDesc columnDescription;
|
||||||
DataBrowserListViewColumnDesc columnDescription;
|
wxMacCFStringHolder cfTitle(dataViewColumnPtr->GetTitle(),(this->m_font.Ok() ? this->m_font.GetEncoding() : wxLocale::GetSystemEncoding()));
|
||||||
wxMacCFStringHolder cfTitle(dataViewColumnPtr->GetTitle(),(this->m_font.Ok() ? this->m_font.GetEncoding() : wxLocale::GetSystemEncoding()));
|
|
||||||
wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast<wxMacDataViewDataBrowserListViewControlPointer>(this->m_peer));
|
|
||||||
|
|
||||||
// initialize column description:
|
// initialize column description:
|
||||||
wxCHECK_MSG(MacDataViewListCtrlPtr != NULL, false,_("m_peer is not or incorrectly initialized"));
|
|
||||||
wxCHECK_MSG(MacDataViewListCtrlPtr->GetFreePropertyID(&NewPropertyID) == noErr,false,_("Maximum number of columns reached."));
|
|
||||||
dataViewColumnPtr->SetPropertyID(NewPropertyID);
|
dataViewColumnPtr->SetPropertyID(NewPropertyID);
|
||||||
if (dataViewColumnPtr->GetWidth() <= 0)
|
if (dataViewColumnPtr->GetWidth() <= 0)
|
||||||
dataViewColumnPtr->SetWidth(wxDVC_DEFAULT_WIDTH);
|
dataViewColumnPtr->SetWidth(wxDVC_DEFAULT_WIDTH);
|
||||||
@@ -735,7 +781,7 @@ bool wxDataViewCtrl::AppendColumn(wxDataViewColumn* dataViewColumnPtr)
|
|||||||
columnDescription.propertyDesc.propertyFlags |= kDataBrowserListViewNoGapForIconInHeaderButton;
|
columnDescription.propertyDesc.propertyFlags |= kDataBrowserListViewNoGapForIconInHeaderButton;
|
||||||
#endif
|
#endif
|
||||||
columnDescription.headerBtnDesc.version = kDataBrowserListViewLatestHeaderDesc;
|
columnDescription.headerBtnDesc.version = kDataBrowserListViewLatestHeaderDesc;
|
||||||
if (dataViewColumnPtr->IsResizable())
|
if (dataViewColumnPtr->IsResizeable())
|
||||||
{
|
{
|
||||||
columnDescription.headerBtnDesc.minimumWidth = 0;
|
columnDescription.headerBtnDesc.minimumWidth = 0;
|
||||||
columnDescription.headerBtnDesc.maximumWidth = 30000;
|
columnDescription.headerBtnDesc.maximumWidth = 30000;
|
||||||
@@ -775,10 +821,6 @@ bool wxDataViewCtrl::AppendColumn(wxDataViewColumn* dataViewColumnPtr)
|
|||||||
|
|
||||||
// final adjustments for the layout:
|
// final adjustments for the layout:
|
||||||
wxCHECK_MSG(MacDataViewListCtrlPtr->SetColumnWidth(NewPropertyID,dataViewColumnPtr->GetWidth()) == noErr,false,_("Column width could not be set."));
|
wxCHECK_MSG(MacDataViewListCtrlPtr->SetColumnWidth(NewPropertyID,dataViewColumnPtr->GetWidth()) == noErr,false,_("Column width could not be set."));
|
||||||
#if 0
|
|
||||||
if (dataViewColumnPtr->IsSortable()) // if the current column is marked sortable this column will become the active sortable column, otherwise don't do anything
|
|
||||||
MacDataViewListCtrlPtr->SetSortProperty(NewPropertyID);
|
|
||||||
#endif
|
|
||||||
if (dataViewColumnPtr == this->GetExpanderColumn()) // if the current column is marked expandable this column will become the active expandable column
|
if (dataViewColumnPtr == this->GetExpanderColumn()) // if the current column is marked expandable this column will become the active expandable column
|
||||||
MacDataViewListCtrlPtr->SetDisclosureColumn(NewPropertyID,true);
|
MacDataViewListCtrlPtr->SetDisclosureColumn(NewPropertyID,true);
|
||||||
|
|
||||||
@@ -795,16 +837,67 @@ bool wxDataViewCtrl::AppendColumn(wxDataViewColumn* dataViewColumnPtr)
|
|||||||
return false;
|
return false;
|
||||||
} /* wxDataViewCtrl::AppendColumn(wxDataViewColumn*) */
|
} /* wxDataViewCtrl::AppendColumn(wxDataViewColumn*) */
|
||||||
|
|
||||||
bool wxDataViewCtrl::AssociateModel(wxDataViewModel* model)
|
bool wxDataViewCtrl::ClearColumns(void)
|
||||||
{
|
{
|
||||||
if (!wxDataViewCtrlBase::AssociateModel(model))
|
wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast<wxMacDataViewDataBrowserListViewControlPointer>(this->m_peer));
|
||||||
return false;
|
|
||||||
|
|
||||||
this->m_NotifierPtr = new wxMacDataViewModelNotifier(dynamic_cast<wxMacDataViewDataBrowserListViewControl*>(this->m_peer));
|
|
||||||
model->AddNotifier(this->m_NotifierPtr);
|
|
||||||
|
|
||||||
|
while (this->m_ColumnPointers.begin() != this->m_ColumnPointers.end())
|
||||||
|
{
|
||||||
|
wxCHECK_MSG(MacDataViewListCtrlPtr->RemoveColumnByProperty(this->m_ColumnPointers.begin()->first) == noErr,false,_("Could not remove column."));
|
||||||
|
delete this->m_ColumnPointers.begin()->second;
|
||||||
|
this->m_ColumnPointers.erase(this->m_ColumnPointers.begin());
|
||||||
|
} /* while */
|
||||||
return true;
|
return true;
|
||||||
} /* wxDataViewCtrl::AssociateModel(wxDataViewModel*) */
|
} /* wxDataViewCtrl::ClearColumns(void) */
|
||||||
|
|
||||||
|
bool wxDataViewCtrl::DeleteColumn(wxDataViewColumn* columnPtr)
|
||||||
|
{
|
||||||
|
wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast<wxMacDataViewDataBrowserListViewControlPointer>(this->m_peer));
|
||||||
|
|
||||||
|
|
||||||
|
if ((MacDataViewListCtrlPtr->RemoveColumnByProperty(columnPtr->GetPropertyID()) == noErr) && (this->m_ColumnPointers.erase(columnPtr->GetPropertyID()) > 0))
|
||||||
|
{
|
||||||
|
delete columnPtr;
|
||||||
|
return true;
|
||||||
|
} /* if */
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
} /* wxDataViewCtrl::DeleteColumn(wxDataViewColumn*) */
|
||||||
|
|
||||||
|
wxDataViewColumn* wxDataViewCtrl::GetColumn(unsigned int pos) const
|
||||||
|
{
|
||||||
|
DataBrowserPropertyID propertyID;
|
||||||
|
|
||||||
|
wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast<wxMacDataViewDataBrowserListViewControlPointer>(this->m_peer));
|
||||||
|
|
||||||
|
|
||||||
|
if (MacDataViewListCtrlPtr->GetPropertyID(pos,&propertyID) == noErr)
|
||||||
|
{
|
||||||
|
// variable definition:
|
||||||
|
ColumnPointerHashMapType::const_iterator Result(this->m_ColumnPointers.find(propertyID));
|
||||||
|
|
||||||
|
if (Result != this->m_ColumnPointers.end())
|
||||||
|
return Result->second;
|
||||||
|
else
|
||||||
|
return NULL;
|
||||||
|
} /* if */
|
||||||
|
else
|
||||||
|
return NULL;
|
||||||
|
} /* wxDataViewCtrl::GetColumn(unsigned int pos) const */
|
||||||
|
|
||||||
|
unsigned int wxDataViewCtrl::GetColumnCount(void) const
|
||||||
|
{
|
||||||
|
return this->m_ColumnPointers.size();
|
||||||
|
} /* wxDataViewCtrl::GetColumnCount(void) const */
|
||||||
|
|
||||||
|
void wxDataViewCtrl::Collapse(wxDataViewItem const& item)
|
||||||
|
{
|
||||||
|
wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast<wxMacDataViewDataBrowserListViewControlPointer>(this->m_peer));
|
||||||
|
|
||||||
|
|
||||||
|
MacDataViewListCtrlPtr->CloseContainer(reinterpret_cast<DataBrowserItemID>(item.GetID()));
|
||||||
|
} /* wxDataViewCtrl::Collapse(wxDataViewItem const&) */
|
||||||
|
|
||||||
void wxDataViewCtrl::EnsureVisible(wxDataViewItem const& item, wxDataViewColumn const* columnPtr)
|
void wxDataViewCtrl::EnsureVisible(wxDataViewItem const& item, wxDataViewColumn const* columnPtr)
|
||||||
{
|
{
|
||||||
@@ -822,6 +915,14 @@ void wxDataViewCtrl::EnsureVisible(wxDataViewItem const& item, wxDataViewColumn
|
|||||||
} /* if */
|
} /* if */
|
||||||
} /* wxDataViewCtrl::EnsureVisible(wxDataViewItem const&, wxDataViewColumn const*) */
|
} /* wxDataViewCtrl::EnsureVisible(wxDataViewItem const&, wxDataViewColumn const*) */
|
||||||
|
|
||||||
|
void wxDataViewCtrl::Expand(wxDataViewItem const& item)
|
||||||
|
{
|
||||||
|
wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast<wxMacDataViewDataBrowserListViewControlPointer>(this->m_peer));
|
||||||
|
|
||||||
|
|
||||||
|
MacDataViewListCtrlPtr->OpenContainer(reinterpret_cast<DataBrowserItemID>(item.GetID()));
|
||||||
|
} /* wxDataViewCtrl::Expand(wxDataViewItem const&) */
|
||||||
|
|
||||||
wxRect wxDataViewCtrl::GetItemRect(wxDataViewItem const& item, wxDataViewColumn const* columnPtr) const
|
wxRect wxDataViewCtrl::GetItemRect(wxDataViewItem const& item, wxDataViewColumn const* columnPtr) const
|
||||||
{
|
{
|
||||||
if (item.IsOk() && (columnPtr != NULL))
|
if (item.IsOk() && (columnPtr != NULL))
|
||||||
@@ -984,23 +1085,36 @@ void wxDataViewCtrl::AddChildrenLevel(wxDataViewItem const& parentItem)
|
|||||||
} /* while */
|
} /* while */
|
||||||
} /* wxDataViewCtrl::AddChildrenLevel(wxDataViewItem const&) */
|
} /* wxDataViewCtrl::AddChildrenLevel(wxDataViewItem const&) */
|
||||||
|
|
||||||
|
wxDataViewColumn* wxDataViewCtrl::GetColumnPtr(DataBrowserPropertyID propertyID) const
|
||||||
|
{
|
||||||
|
// variable definition:
|
||||||
|
ColumnPointerHashMapType::const_iterator Result(this->m_ColumnPointers.find(propertyID));
|
||||||
|
|
||||||
|
if (Result != this->m_ColumnPointers.end())
|
||||||
|
return Result->second;
|
||||||
|
else
|
||||||
|
return NULL;
|
||||||
|
} /* wxDataViewCtrl::GetColumnPtr(DataBrowserPropertyID) const */
|
||||||
|
|
||||||
// inherited methods from wxDataViewCtrlBase
|
// inherited methods from wxDataViewCtrlBase
|
||||||
void wxDataViewCtrl::DoSetExpanderColumn(void)
|
void wxDataViewCtrl::DoSetExpanderColumn(void)
|
||||||
{
|
{
|
||||||
if (this->GetExpanderColumn() < this->GetColumnCount())
|
if (this->GetExpanderColumn() != NULL)
|
||||||
{
|
{
|
||||||
// variable definition and initialization:
|
// variable definition and initialization:
|
||||||
DataBrowserPropertyID propertyID;
|
|
||||||
wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast<wxMacDataViewDataBrowserListViewControlPointer>(this->m_peer));
|
wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast<wxMacDataViewDataBrowserListViewControlPointer>(this->m_peer));
|
||||||
|
|
||||||
if (MacDataViewListCtrlPtr->GetPropertyID(this->GetExpanderColumn(),&propertyID) == noErr)
|
(void) MacDataViewListCtrlPtr->SetDisclosureColumn(this->GetExpanderColumn()->GetPropertyID());
|
||||||
(void) MacDataViewListCtrlPtr->SetDisclosureColumn(propertyID);
|
|
||||||
} /* if */
|
} /* if */
|
||||||
} /* wxDataViewCtrl::DoSetExpanderColumn(void) */
|
} /* wxDataViewCtrl::DoSetExpanderColumn(void) */
|
||||||
|
|
||||||
void wxDataViewCtrl::DoSetIndent(void)
|
void wxDataViewCtrl::DoSetIndent(void)
|
||||||
{
|
{
|
||||||
} /* wxDataViewCtrl::DoSetExpanderColumn(void) */
|
wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast<wxMacDataViewDataBrowserListViewControlPointer>(this->m_peer));
|
||||||
|
|
||||||
|
|
||||||
|
(void) MacDataViewListCtrlPtr->SetIndent(static_cast<float>(this->GetIndent()));
|
||||||
|
} /* wxDataViewCtrl::DoSetIndent(void) */
|
||||||
|
|
||||||
// event handling:
|
// event handling:
|
||||||
void wxDataViewCtrl::OnSize(wxSizeEvent& event)
|
void wxDataViewCtrl::OnSize(wxSizeEvent& event)
|
||||||
|
Reference in New Issue
Block a user