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. - Implement wxWindow::ShowWithEffect() in wxOSX/Cocoa.
- Correct min/max pages display in the print dialog (Auria). - Correct min/max pages display in the print dialog (Auria).
- Fix wxDataViewColumn::GetWidth() in Cocoa (Neno Ganchev).
MSW: MSW:

View File

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

View File

@ -2476,6 +2476,13 @@ wxDataViewColumn::~wxDataViewColumn()
delete m_NativeDataPtr; 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 bool wxDataViewColumn::IsSortKey() const
{ {
wxDataViewCtrl * const dataViewCtrlPtr(GetOwner()); wxDataViewCtrl * const dataViewCtrlPtr(GetOwner());

View File

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