Return the real column width from wxOSX wxDataViewColumn::GetWidth().

Code used to return the last programmatically set width value instead of the
real column width which could have been changed by user if the column was
resizeable, fix this by returning the current NSTableColumn:width value.

Closes #11397.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62516 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2009-10-31 15:57:51 +00:00
parent 52802b0727
commit d831e2db16
4 changed files with 22 additions and 4 deletions

View File

@ -477,6 +477,7 @@ Mac:
- Implement wxWindow::ShowWithEffect() in wxOSX/Cocoa.
- Correct min/max pages display in the print dialog (Auria).
- Fix wxDataViewColumn::GetWidth() in Cocoa (Neno Ganchev).
MSW:

View File

@ -397,7 +397,7 @@ public:
virtual int GetMaxWidth() const { return m_maxWidth; }
virtual int GetMinWidth() const { return m_minWidth; }
virtual wxString GetTitle() const { return m_title; }
virtual int GetWidth() const { return m_width; }
virtual int GetWidth() const;
virtual bool IsHidden() const { return false; } // TODO
virtual bool IsSortOrderAscending() const { return m_ascending; }
virtual bool IsSortKey() const;
@ -423,6 +423,10 @@ public:
}
void SetNativeData(wxDataViewColumnNativeData* newNativeDataPtr); // class takes ownership of pointer
int GetWidthVariable() const
{
return m_width;
}
void SetWidthVariable(int NewWidth)
{
m_width = NewWidth;

View File

@ -2476,6 +2476,13 @@ wxDataViewColumn::~wxDataViewColumn()
delete m_NativeDataPtr;
}
int wxDataViewColumn::GetWidth() const
{
// FIXME: This returns the last programatically set width and will not work if
// the user changes the column's width by dragging it with the mouse.
return m_width;
}
bool wxDataViewColumn::IsSortKey() const
{
wxDataViewCtrl * const dataViewCtrlPtr(GetOwner());

View File

@ -258,6 +258,7 @@ NSTableColumn* CreateNativeColumn(const wxDataViewColumn *column)
);
// setting the size related parameters:
const int width = column->GetWidthVariable();
if (column->IsResizeable())
{
[nativeColumn setResizingMask:NSTableColumnUserResizingMask];
@ -267,10 +268,10 @@ NSTableColumn* CreateNativeColumn(const wxDataViewColumn *column)
else
{
[nativeColumn setResizingMask:NSTableColumnNoResizing];
[nativeColumn setMinWidth:column->GetWidth()];
[nativeColumn setMaxWidth:column->GetWidth()];
[nativeColumn setMinWidth:width];
[nativeColumn setMaxWidth:width];
}
[nativeColumn setWidth:column->GetWidth()];
[nativeColumn setWidth:width];
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
// setting the visibility:
@ -2773,6 +2774,11 @@ wxDataViewColumn::~wxDataViewColumn()
delete m_NativeDataPtr;
}
int wxDataViewColumn::GetWidth() const
{
return [m_NativeDataPtr->GetNativeColumnPtr() width];
}
bool wxDataViewColumn::IsSortKey() const
{
NSTableColumn *nsCol = GetNativeData()->GetNativeColumnPtr();