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;
|
||||
|
||||
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; }
|
||||
wxDataViewRenderer* GetRenderer() { return m_renderer; }
|
||||
|
@@ -179,7 +179,7 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual bool StartEditing(const wxDataViewItem &WXUNUSED(item), wxRect WXUNUSED(labelRect))
|
||||
virtual bool StartEditing(wxDataViewItem const& WXUNUSED(item), wxRect WXUNUSED(labelRect))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -472,6 +472,10 @@ public:
|
||||
{
|
||||
this->m_propertyID = newID;
|
||||
}
|
||||
void SetWidthVariable(int NewWidth)
|
||||
{
|
||||
this->m_width = NewWidth;
|
||||
}
|
||||
|
||||
protected:
|
||||
private:
|
||||
@@ -530,13 +534,14 @@ public:
|
||||
virtual bool DeleteColumn(wxDataViewColumn* columnPtr);
|
||||
virtual wxDataViewColumn* GetColumn(unsigned int pos) const;
|
||||
virtual unsigned int GetColumnCount(void) const;
|
||||
virtual int GetColumnPosition( const wxDataViewColumn *column ) const;
|
||||
virtual wxDataViewColumn *GetSortingColumn() const;
|
||||
virtual int GetColumnPosition(wxDataViewColumn const* columnPtr) const;
|
||||
|
||||
virtual void Collapse(wxDataViewItem const& item);
|
||||
virtual void EnsureVisible(wxDataViewItem const& item, wxDataViewColumn const* columnPtr=NULL);
|
||||
virtual void Expand(wxDataViewItem const& item);
|
||||
|
||||
virtual wxDataViewColumn* GetSortingColumn(void) const;
|
||||
|
||||
virtual unsigned int GetCount(void) const;
|
||||
virtual wxRect GetItemRect(wxDataViewItem const& item, wxDataViewColumn const* columnPtr) const;
|
||||
virtual wxDataViewItem GetSelection(void) const;
|
||||
|
@@ -985,8 +985,23 @@ void wxMacDataViewDataBrowserListViewControl::DataBrowserItemNotificationProc(Da
|
||||
break;
|
||||
case kDataBrowserUserStateChanged:
|
||||
{
|
||||
// variable definitions and initialization:
|
||||
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))
|
||||
{
|
||||
DataBrowserSortOrder sortOrder;
|
||||
@@ -996,9 +1011,6 @@ void wxMacDataViewDataBrowserListViewControl::DataBrowserItemNotificationProc(Da
|
||||
{
|
||||
// variable definition and initialization:
|
||||
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);
|
||||
// check if the sort order has changed:
|
||||
if ( columnPtr->IsSortOrderAscending() && (sortOrder == kDataBrowserOrderDecreasing) ||
|
||||
|
@@ -644,6 +644,7 @@ void wxDataViewColumn::SetSortOrder(bool ascending)
|
||||
else
|
||||
headerDescription.initialOrder = kDataBrowserOrderDecreasing;
|
||||
verify_noerr(macDataViewListCtrlPtr->SetHeaderDesc(this->GetPropertyID(),&headerDescription));
|
||||
macDataViewListCtrlPtr->SetSortProperty(this->GetPropertyID());
|
||||
} /* if */
|
||||
} /* if */
|
||||
} /* wxDataViewColumn::SetSortOrder(bool) */
|
||||
@@ -890,15 +891,20 @@ unsigned int wxDataViewCtrl::GetColumnCount(void) const
|
||||
return this->m_ColumnPointers.size();
|
||||
} /* wxDataViewCtrl::GetColumnCount(void) const */
|
||||
|
||||
int wxDataViewCtrl::GetColumnPosition( const wxDataViewColumn *column ) const
|
||||
int wxDataViewCtrl::GetColumnPosition(wxDataViewColumn const* columnPtr) const
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
wxDataViewColumn *wxDataViewCtrl::GetSortingColumn() const
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
if (columnPtr != NULL)
|
||||
{
|
||||
// variable definition and initialization:
|
||||
DataBrowserTableViewColumnIndex Position;
|
||||
wxMacDataViewDataBrowserListViewControlPointer MacDataViewListCtrlPtr(dynamic_cast<wxMacDataViewDataBrowserListViewControlPointer>(this->m_peer));
|
||||
|
||||
wxCHECK_MSG(MacDataViewListCtrlPtr->GetColumnIndex(columnPtr->GetPropertyID(),&Position) == noErr,-1,_("Could not determine column's position"));
|
||||
return static_cast<int>(Position);
|
||||
} /* if */
|
||||
else
|
||||
return wxNOT_FOUND;
|
||||
} /* wxDataViewCtrl::GetColumnPosition(wxDataViewColumn const*) const */
|
||||
|
||||
void wxDataViewCtrl::Collapse(wxDataViewItem const& item)
|
||||
{
|
||||
@@ -932,6 +938,19 @@ void wxDataViewCtrl::Expand(wxDataViewItem const& item)
|
||||
MacDataViewListCtrlPtr->OpenContainer(reinterpret_cast<DataBrowserItemID>(item.GetID()));
|
||||
} /* 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
|
||||
{
|
||||
ItemCount noOfItems;
|
||||
|
Reference in New Issue
Block a user