wxDataViewCtrl patch from Hartwig
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48664 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -407,7 +407,7 @@ public:
|
|||||||
virtual bool IsSortOrderAscending() const = 0;
|
virtual bool IsSortOrderAscending() const = 0;
|
||||||
|
|
||||||
const wxBitmap &GetBitmap() const { return m_bitmap; }
|
const wxBitmap &GetBitmap() const { return m_bitmap; }
|
||||||
unsigned int GetModelColumn() const { return m_model_column; }
|
unsigned int GetModelColumn() const { return static_cast<unsigned int>(m_model_column); }
|
||||||
|
|
||||||
wxDataViewCtrl *GetOwner() { return m_owner; }
|
wxDataViewCtrl *GetOwner() { return m_owner; }
|
||||||
wxDataViewRenderer* GetRenderer() { return m_renderer; }
|
wxDataViewRenderer* GetRenderer() { return m_renderer; }
|
||||||
|
@@ -179,7 +179,7 @@ public:
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool StartEditing(const wxDataViewItem &WXUNUSED(item), wxRect WXUNUSED(labelRect))
|
virtual bool StartEditing(wxDataViewItem const& WXUNUSED(item), wxRect WXUNUSED(labelRect))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -472,6 +472,10 @@ public:
|
|||||||
{
|
{
|
||||||
this->m_propertyID = newID;
|
this->m_propertyID = newID;
|
||||||
}
|
}
|
||||||
|
void SetWidthVariable(int NewWidth)
|
||||||
|
{
|
||||||
|
this->m_width = NewWidth;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
private:
|
private:
|
||||||
@@ -530,13 +534,14 @@ public:
|
|||||||
virtual bool DeleteColumn(wxDataViewColumn* columnPtr);
|
virtual bool DeleteColumn(wxDataViewColumn* columnPtr);
|
||||||
virtual wxDataViewColumn* GetColumn(unsigned int pos) const;
|
virtual wxDataViewColumn* GetColumn(unsigned int pos) const;
|
||||||
virtual unsigned int GetColumnCount(void) const;
|
virtual unsigned int GetColumnCount(void) const;
|
||||||
virtual int GetColumnPosition( const wxDataViewColumn *column ) const;
|
virtual int GetColumnPosition(wxDataViewColumn const* columnPtr) const;
|
||||||
virtual wxDataViewColumn *GetSortingColumn() const;
|
|
||||||
|
|
||||||
virtual void Collapse(wxDataViewItem const& item);
|
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 void Expand(wxDataViewItem const& item);
|
||||||
|
|
||||||
|
virtual wxDataViewColumn* GetSortingColumn(void) const;
|
||||||
|
|
||||||
virtual unsigned int GetCount(void) const;
|
virtual unsigned int GetCount(void) const;
|
||||||
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;
|
||||||
|
@@ -985,8 +985,23 @@ void wxMacDataViewDataBrowserListViewControl::DataBrowserItemNotificationProc(Da
|
|||||||
break;
|
break;
|
||||||
case kDataBrowserUserStateChanged:
|
case kDataBrowserUserStateChanged:
|
||||||
{
|
{
|
||||||
|
// variable definitions and initialization:
|
||||||
DataBrowserPropertyID propertyID;
|
DataBrowserPropertyID propertyID;
|
||||||
|
wxDataViewCtrl* dataViewCtrlPtr(dynamic_cast<wxDataViewCtrl*>(this->GetPeer()));
|
||||||
|
|
||||||
|
wxCHECK_RET(dataViewCtrlPtr != NULL,_("Pointer to data view control not set correctly"));
|
||||||
|
// update column widths:
|
||||||
|
for (size_t i=0; i<dataViewCtrlPtr->GetColumnCount(); ++i)
|
||||||
|
{
|
||||||
|
// constant definition for abbreviational purposes:
|
||||||
|
wxDataViewColumn* const columnPtr = dataViewCtrlPtr->GetColumn(i);
|
||||||
|
// variable definition:
|
||||||
|
UInt16 columnWidth;
|
||||||
|
|
||||||
|
wxCHECK_RET(this->GetColumnWidth(columnPtr->GetPropertyID(),&columnWidth) == noErr,_("Column width could not be determined"));
|
||||||
|
columnPtr->SetWidthVariable(columnWidth);
|
||||||
|
} /* for */
|
||||||
|
// update order status:
|
||||||
if ((this->GetSortProperty(&propertyID) == noErr) && (propertyID >= kMinPropertyID))
|
if ((this->GetSortProperty(&propertyID) == noErr) && (propertyID >= kMinPropertyID))
|
||||||
{
|
{
|
||||||
DataBrowserSortOrder sortOrder;
|
DataBrowserSortOrder sortOrder;
|
||||||
@@ -996,9 +1011,6 @@ void wxMacDataViewDataBrowserListViewControl::DataBrowserItemNotificationProc(Da
|
|||||||
{
|
{
|
||||||
// variable definition and initialization:
|
// variable definition and initialization:
|
||||||
wxDataViewColumn* columnPtr;
|
wxDataViewColumn* columnPtr;
|
||||||
wxDataViewCtrl* dataViewCtrlPtr(dynamic_cast<wxDataViewCtrl*>(this->GetPeer()));
|
|
||||||
|
|
||||||
wxCHECK_RET(dataViewCtrlPtr != NULL,_("Pointer to data vie wcontrol not set correctly."));
|
|
||||||
columnPtr = dataViewCtrlPtr->GetColumn(columnIndex);
|
columnPtr = dataViewCtrlPtr->GetColumn(columnIndex);
|
||||||
// check if the sort order has changed:
|
// check if the sort order has changed:
|
||||||
if ( columnPtr->IsSortOrderAscending() && (sortOrder == kDataBrowserOrderDecreasing) ||
|
if ( columnPtr->IsSortOrderAscending() && (sortOrder == kDataBrowserOrderDecreasing) ||
|
||||||
|
@@ -644,6 +644,7 @@ void wxDataViewColumn::SetSortOrder(bool ascending)
|
|||||||
else
|
else
|
||||||
headerDescription.initialOrder = kDataBrowserOrderDecreasing;
|
headerDescription.initialOrder = kDataBrowserOrderDecreasing;
|
||||||
verify_noerr(macDataViewListCtrlPtr->SetHeaderDesc(this->GetPropertyID(),&headerDescription));
|
verify_noerr(macDataViewListCtrlPtr->SetHeaderDesc(this->GetPropertyID(),&headerDescription));
|
||||||
|
macDataViewListCtrlPtr->SetSortProperty(this->GetPropertyID());
|
||||||
} /* if */
|
} /* if */
|
||||||
} /* if */
|
} /* if */
|
||||||
} /* wxDataViewColumn::SetSortOrder(bool) */
|
} /* wxDataViewColumn::SetSortOrder(bool) */
|
||||||
@@ -890,15 +891,20 @@ unsigned int wxDataViewCtrl::GetColumnCount(void) const
|
|||||||
return this->m_ColumnPointers.size();
|
return this->m_ColumnPointers.size();
|
||||||
} /* wxDataViewCtrl::GetColumnCount(void) const */
|
} /* wxDataViewCtrl::GetColumnCount(void) const */
|
||||||
|
|
||||||
int wxDataViewCtrl::GetColumnPosition( const wxDataViewColumn *column ) const
|
int wxDataViewCtrl::GetColumnPosition(wxDataViewColumn const* columnPtr) const
|
||||||
{
|
{
|
||||||
return -1;
|
if (columnPtr != NULL)
|
||||||
}
|
{
|
||||||
|
// variable definition and initialization:
|
||||||
|
DataBrowserTableViewColumnIndex Position;
|
||||||
|
wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast<wxMacDataViewDataBrowserListViewControlPointer>(this->m_peer));
|
||||||
|
|
||||||
wxDataViewColumn *wxDataViewCtrl::GetSortingColumn() const
|
wxCHECK_MSG(MacDataViewListCtrlPtr->GetColumnIndex(columnPtr->GetPropertyID(),&Position) == noErr,-1,_("Could not determine column's position"));
|
||||||
{
|
return static_cast<int>(Position);
|
||||||
return NULL;
|
} /* if */
|
||||||
}
|
else
|
||||||
|
return wxNOT_FOUND;
|
||||||
|
} /* wxDataViewCtrl::GetColumnPosition(wxDataViewColumn const*) const */
|
||||||
|
|
||||||
void wxDataViewCtrl::Collapse(wxDataViewItem const& item)
|
void wxDataViewCtrl::Collapse(wxDataViewItem const& item)
|
||||||
{
|
{
|
||||||
@@ -932,6 +938,19 @@ void wxDataViewCtrl::Expand(wxDataViewItem const& item)
|
|||||||
MacDataViewListCtrlPtr->OpenContainer(reinterpret_cast<DataBrowserItemID>(item.GetID()));
|
MacDataViewListCtrlPtr->OpenContainer(reinterpret_cast<DataBrowserItemID>(item.GetID()));
|
||||||
} /* wxDataViewCtrl::Expand(wxDataViewItem const&) */
|
} /* wxDataViewCtrl::Expand(wxDataViewItem const&) */
|
||||||
|
|
||||||
|
wxDataViewColumn* wxDataViewCtrl::GetSortingColumn(void) const
|
||||||
|
{
|
||||||
|
DataBrowserPropertyID propertyID;
|
||||||
|
|
||||||
|
wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast<wxMacDataViewDataBrowserListViewControlPointer>(this->m_peer));
|
||||||
|
|
||||||
|
|
||||||
|
if (MacDataViewListCtrlPtr->GetSortProperty(&propertyID) == noErr)
|
||||||
|
return this->GetColumnPtr(propertyID);
|
||||||
|
else
|
||||||
|
return NULL;
|
||||||
|
} /* wxDataViewCtrl::GetSortingColumn(void) const */
|
||||||
|
|
||||||
unsigned int wxDataViewCtrl::GetCount(void) const
|
unsigned int wxDataViewCtrl::GetCount(void) const
|
||||||
{
|
{
|
||||||
ItemCount noOfItems;
|
ItemCount noOfItems;
|
||||||
|
Reference in New Issue
Block a user