Fix wxOSX wxDataViewRenderers' alignment handling
Don't override renderer's wxDVR_DEFAULT_ALIGNMENT alignment when
column's alignment is set. Call a method to recompute effective
alignment instead.
Related to a6be5bda
that fixed a similar issue in wxGTK.
This commit is contained in:
@@ -76,6 +76,7 @@ public:
|
|||||||
|
|
||||||
void SetNativeData(wxDataViewRendererNativeData* newNativeDataPtr);
|
void SetNativeData(wxDataViewRendererNativeData* newNativeDataPtr);
|
||||||
|
|
||||||
|
void OSXUpdateAlignment();
|
||||||
|
|
||||||
#if wxOSX_USE_COCOA
|
#if wxOSX_USE_COCOA
|
||||||
// called when a value was edited by user
|
// called when a value was edited by user
|
||||||
|
@@ -2645,7 +2645,14 @@ wxDataViewRenderer::~wxDataViewRenderer()
|
|||||||
void wxDataViewRenderer::SetAlignment(int align)
|
void wxDataViewRenderer::SetAlignment(int align)
|
||||||
{
|
{
|
||||||
m_alignment = align;
|
m_alignment = align;
|
||||||
[GetNativeData()->GetColumnCell() setAlignment:ConvertToNativeHorizontalTextAlignment(align)];
|
OSXUpdateAlignment();
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxDataViewRenderer::OSXUpdateAlignment()
|
||||||
|
{
|
||||||
|
int align = GetEffectiveAlignment();
|
||||||
|
NSCell *cell = GetNativeData()->GetColumnCell();
|
||||||
|
[cell setAlignment:ConvertToNativeHorizontalTextAlignment(align)];
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxDataViewRenderer::SetMode(wxDataViewCellMode mode)
|
void wxDataViewRenderer::SetMode(wxDataViewCellMode mode)
|
||||||
@@ -3261,7 +3268,7 @@ wxDataViewColumn::wxDataViewColumn(const wxString& title,
|
|||||||
InitCommon(width, align, flags);
|
InitCommon(width, align, flags);
|
||||||
if (renderer && !renderer->IsCustomRenderer() &&
|
if (renderer && !renderer->IsCustomRenderer() &&
|
||||||
(renderer->GetAlignment() == wxDVR_DEFAULT_ALIGNMENT))
|
(renderer->GetAlignment() == wxDVR_DEFAULT_ALIGNMENT))
|
||||||
renderer->SetAlignment(align);
|
renderer->OSXUpdateAlignment();
|
||||||
SetResizeable((flags & wxDATAVIEW_COL_RESIZABLE) != 0);
|
SetResizeable((flags & wxDATAVIEW_COL_RESIZABLE) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3277,7 +3284,7 @@ wxDataViewColumn::wxDataViewColumn(const wxBitmap& bitmap,
|
|||||||
InitCommon(width, align, flags);
|
InitCommon(width, align, flags);
|
||||||
if (renderer && !renderer->IsCustomRenderer() &&
|
if (renderer && !renderer->IsCustomRenderer() &&
|
||||||
(renderer->GetAlignment() == wxDVR_DEFAULT_ALIGNMENT))
|
(renderer->GetAlignment() == wxDVR_DEFAULT_ALIGNMENT))
|
||||||
renderer->SetAlignment(align);
|
renderer->OSXUpdateAlignment();
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDataViewColumn::~wxDataViewColumn()
|
wxDataViewColumn::~wxDataViewColumn()
|
||||||
@@ -3302,7 +3309,7 @@ void wxDataViewColumn::SetAlignment(wxAlignment align)
|
|||||||
[[m_NativeDataPtr->GetNativeColumnPtr() headerCell] setAlignment:ConvertToNativeHorizontalTextAlignment(align)];
|
[[m_NativeDataPtr->GetNativeColumnPtr() headerCell] setAlignment:ConvertToNativeHorizontalTextAlignment(align)];
|
||||||
if (m_renderer && !m_renderer->IsCustomRenderer() &&
|
if (m_renderer && !m_renderer->IsCustomRenderer() &&
|
||||||
(m_renderer->GetAlignment() == wxDVR_DEFAULT_ALIGNMENT))
|
(m_renderer->GetAlignment() == wxDVR_DEFAULT_ALIGNMENT))
|
||||||
m_renderer->SetAlignment(align);
|
m_renderer->OSXUpdateAlignment();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxDataViewColumn::SetBitmap(const wxBitmap& bitmap)
|
void wxDataViewColumn::SetBitmap(const wxBitmap& bitmap)
|
||||||
|
Reference in New Issue
Block a user