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;
{ return true; }
void SetOwner( wxDataViewColumn *owner ) { m_owner = owner; }
- wxDataViewColumn* GetOwner() { return m_owner; }
+ wxDataViewColumn* GetOwner() const { return m_owner; }
// renderer properties:
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; }
void SetAttr( const wxDataViewItemAttr &attr ) { m_attr = attr; }
bool GetWantsAttr() { return m_wantsAttr; }
+ // implementation
+ int CalculateAlignment() const;
+
private:
wxDC *m_dc;
int m_align;
/**
Get owning wxDataViewModel.
*/
- wxDataViewModel* GetOwner();
+ wxDataViewModel* GetOwner() const;
/**
Called by owning model.
/**
Returns pointer to the owning wxDataViewColumn.
*/
- virtual wxDataViewColumn* GetOwner();
+ virtual wxDataViewColumn* GetOwner() const;
/**
This methods retrieves the value from the renderer in order to
/**
Returns the owning wxDataViewCtrl.
*/
- wxDataViewCtrl* GetOwner();
+ wxDataViewCtrl* GetOwner() const;
/**
Returns the renderer of this wxDataViewColumn.
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
// ---------------------------------------------------------
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;