]> git.saurik.com Git - wxWidgets.git/commitdiff
On OSX don't propogate the alignment setting from column to renderer if it is a custo...
authorRobin Dunn <robin@alldunn.com>
Wed, 19 Jan 2011 08:09:51 +0000 (08:09 +0000)
committerRobin Dunn <robin@alldunn.com>
Wed, 19 Jan 2011 08:09:51 +0000 (08:09 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66706 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/dvrenderers.h
src/osx/carbon/dataview.cpp
src/osx/cocoa/dataview.mm

index 717f73608a4c2e2ab59cf7e7de9e724e310fc47e..97539bf19ab2f60dc296ca95dfa8c6f96e4288b1 100644 (file)
@@ -159,6 +159,9 @@ public:
 
     wxControl *GetEditorCtrl() { return m_editorCtrl; }
 
+    virtual bool IsCustomRenderer() const { return false; }
+
+
 protected:
     // Called from {Cancel,Finish}Editing() to cleanup m_editorCtrl
     void DestroyEditControl();
@@ -278,6 +281,8 @@ public:
     // Prepare DC to use attributes and call Render().
     void WXCallRender(wxRect rect, wxDC *dc, int state);
 
+    virtual bool IsCustomRenderer() const { return true; }
+
 protected:
     // helper for GetSize() implementations, respects attributes
     wxSize GetTextExtent(const wxString& str) const;
index 680d368ea0962d073e3ccca064c020790ce902dd..a981920486b4bdb72844bdd6c11785acc5aff6af 100644 (file)
@@ -2468,16 +2468,18 @@ wxDataViewColumn::wxDataViewColumn(const wxString& title, wxDataViewRenderer* re
                  :wxDataViewColumnBase(renderer, model_column), m_NativeDataPtr(new wxDataViewColumnNativeData()), m_title(title)
 {
   InitCommon(width, align, flags);
-  if ((renderer != NULL) && (renderer->GetAlignment() == wxDVR_DEFAULT_ALIGNMENT))
-    renderer->SetAlignment(align);
+  if ((renderer != NULL) && !renderer->IsCustomRenderer() &&
+      (renderer->GetAlignment() == wxDVR_DEFAULT_ALIGNMENT))
+      renderer->SetAlignment(align);
 }
 
 wxDataViewColumn::wxDataViewColumn(const wxBitmap& bitmap, wxDataViewRenderer* renderer, unsigned int model_column, int width, wxAlignment align, int flags)
                  :wxDataViewColumnBase(bitmap, renderer, model_column), m_NativeDataPtr(new wxDataViewColumnNativeData())
 {
   InitCommon(width, align, flags);
-  if ((renderer != NULL) && (renderer->GetAlignment() == wxDVR_DEFAULT_ALIGNMENT))
-    renderer->SetAlignment(align);
+  if ((renderer != NULL) && !renderer->IsCustomRenderer() &&
+      (renderer->GetAlignment() == wxDVR_DEFAULT_ALIGNMENT))
+      renderer->SetAlignment(align);
 }
 
 wxDataViewColumn::~wxDataViewColumn()
index c2132ae5343e9036cc7157f8d359e27716d52be3..7243ab2e030027ade28b80b157989dd709cde150 100644 (file)
@@ -3015,7 +3015,8 @@ wxDataViewColumn::wxDataViewColumn(const wxString& title,
        m_title(title)
 {
     InitCommon(width, align, flags);
-    if (renderer && (renderer->GetAlignment() == wxDVR_DEFAULT_ALIGNMENT))
+    if (renderer && !renderer->IsCustomRenderer() &&
+        (renderer->GetAlignment() == wxDVR_DEFAULT_ALIGNMENT))
         renderer->SetAlignment(align);
 }
 
@@ -3029,7 +3030,8 @@ wxDataViewColumn::wxDataViewColumn(const wxBitmap& bitmap,
       m_NativeDataPtr(new wxDataViewColumnNativeData())
 {
     InitCommon(width, align, flags);
-    if (renderer && (renderer->GetAlignment() == wxDVR_DEFAULT_ALIGNMENT))
+    if (renderer && !renderer->IsCustomRenderer() &&
+        (renderer->GetAlignment() == wxDVR_DEFAULT_ALIGNMENT))
         renderer->SetAlignment(align);
 }
 
@@ -3053,7 +3055,8 @@ void wxDataViewColumn::SetAlignment(wxAlignment align)
 {
     m_alignment = align;
     [[m_NativeDataPtr->GetNativeColumnPtr() headerCell] setAlignment:ConvertToNativeHorizontalTextAlignment(align)];
-    if (m_renderer && (m_renderer->GetAlignment() == wxDVR_DEFAULT_ALIGNMENT))
+    if (m_renderer && !m_renderer->IsCustomRenderer() &&
+        (m_renderer->GetAlignment() == wxDVR_DEFAULT_ALIGNMENT))
         m_renderer->SetAlignment(align);
 }