]> git.saurik.com Git - wxWidgets.git/commitdiff
Adapt MSW's renderer's alignment to use column header's alignment by default
authorRobert Roebling <robert@roebling.de>
Tue, 8 Apr 2008 11:17:54 +0000 (11:17 +0000)
committerRobert Roebling <robert@roebling.de>
Tue, 8 Apr 2008 11:17:54 +0000 (11:17 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53091 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/dataview.h
include/wx/generic/dataview.h
interface/dataview.h
src/generic/datavgen.cpp

index e2dec89538c41024420c322b41ba2f6ffa70401c..c2db8eef481b92cdb03a362f16c24ddabfe1b502 100644 (file)
@@ -114,7 +114,7 @@ public:
     virtual void Resort() = 0;
 
     void SetOwner( wxDataViewModel *owner ) { m_owner = owner; }
-    wxDataViewModel *GetOwner()             { return m_owner; }
+    wxDataViewModel *GetOwner() const       { return m_owner; }
 
 private:
     wxDataViewModel *m_owner;
@@ -418,7 +418,7 @@ public:
         { return true; }
 
     void SetOwner( wxDataViewColumn *owner )    { m_owner = owner; }
-    wxDataViewColumn* GetOwner()                { return m_owner; }
+    wxDataViewColumn* GetOwner() const          { return m_owner; }
 
     // renderer properties:
 
index d48a6f050efc73ffd809e6ba353d17611d1636a3..6b14e807a3004711f62a4a595f2540b9fd6a5e32 100644 (file)
@@ -41,10 +41,8 @@ public:
     virtual bool Render( wxRect cell, wxDC *dc, int state ) = 0;
     virtual wxSize GetSize() const = 0;
 
-    virtual void SetAlignment( int align )
-        { m_align=align; }
-    virtual int GetAlignment() const
-        { return m_align; }
+    virtual void SetAlignment( int align );
+    virtual int GetAlignment() const;
 
     virtual void SetMode( wxDataViewCellMode mode )
         { m_mode=mode; }
@@ -83,6 +81,9 @@ public:
     void SetAttr( const wxDataViewItemAttr &attr ) { m_attr = attr; }
     bool GetWantsAttr() { return m_wantsAttr; }
 
+    // implementation
+    int CalculateAlignment() const;
+
 private:
     wxDC                        *m_dc;
     int                          m_align;
index 1ed5ed58297f32d3d191f44bcd541303bcca3de0..e09f63f0eeee7f84efb07af45f8c0eee1b5c59ac 100644 (file)
@@ -1026,7 +1026,7 @@ public:
     /**
         Get owning wxDataViewModel.
     */
-    wxDataViewModel* GetOwner();
+    wxDataViewModel* GetOwner() const;
 
     /**
         Called by owning model.
@@ -1159,7 +1159,7 @@ public:
     /**
         Returns pointer to the owning wxDataViewColumn.
     */
-    virtual wxDataViewColumn* GetOwner();
+    virtual wxDataViewColumn* GetOwner() const;
 
     /**
         This methods retrieves the value from the renderer in order to
@@ -1574,7 +1574,7 @@ public:
     /**
         Returns the owning wxDataViewCtrl.
     */
-    wxDataViewCtrl* GetOwner();
+    wxDataViewCtrl* GetOwner() const;
 
     /**
         Returns the renderer of this wxDataViewColumn.
index bd6a350ed8e5158b1a68d82eab292e0407de7561..db167505f141573730eef7bf0756446ccfceb525 100644 (file)
@@ -641,6 +641,29 @@ wxDC *wxDataViewRenderer::GetDC()
     return m_dc;
 }
 
+void wxDataViewRenderer::SetAlignment( int align )
+{ 
+    m_align=align;
+}
+
+int wxDataViewRenderer::GetAlignment() const
+{
+    return m_align;
+}
+
+int wxDataViewRenderer::CalculateAlignment() const
+{ 
+    if (m_align == wxDVR_DEFAULT_ALIGNMENT)
+    {
+        if (GetOwner() == NULL)
+           return wxALIGN_LEFT | wxALIGN_CENTRE_VERTICAL;
+           
+        return GetOwner()->GetAlignment() | wxALIGN_CENTRE_VERTICAL;
+    }
+    
+    return m_align;
+}
+
 // ---------------------------------------------------------
 // wxDataViewCustomRenderer
 // ---------------------------------------------------------
@@ -2214,7 +2237,7 @@ void wxDataViewMainWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
             size.y = cell_rect.height;
 
             wxRect item_rect(cell_rect.GetTopLeft(), size);
-            int align = cell->GetAlignment();
+            int align = cell->CalculateAlignment();
 
             // horizontal alignment:
             item_rect.x = cell_rect.x;