From bdcb882076d15c176b376fbec73f8938b8b20da7 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 22 Dec 2005 03:10:35 +0000 Subject: [PATCH] added wxListAttr::AssignFrom() git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36523 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/listbase.h | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/include/wx/listbase.h b/include/wx/listbase.h index c7f06adc7f..71f8983831 100644 --- a/include/wx/listbase.h +++ b/include/wx/listbase.h @@ -160,6 +160,9 @@ enum // wxListItemAttr: a structure containing the visual attributes of an item // ---------------------------------------------------------------------------- +// TODO: this should be renamed to wxItemAttr or something general like this +// and used as base class for wxTextAttr which duplicates this class +// entirely currently class WXDLLEXPORT wxListItemAttr { public: @@ -168,7 +171,12 @@ public: wxListItemAttr(const wxColour& colText, const wxColour& colBack, const wxFont& font) - : m_colText(colText), m_colBack(colBack), m_font(font) { } + : m_colText(colText), m_colBack(colBack), m_font(font) + { + } + + // default copy ctor, assignment operator and dtor are ok + // setters void SetTextColour(const wxColour& colText) { m_colText = colText; } @@ -184,6 +192,19 @@ public: const wxColour& GetBackgroundColour() const { return m_colBack; } const wxFont& GetFont() const { return m_font; } + + // this is almost like assignment operator except it doesn't overwrite the + // fields unset in the source attribute + void AssignFrom(const wxListItemAttr& source) + { + if ( source.HasTextColour() ) + SetTextColour(source.GetTextColour()); + if ( source.HasBackgroundColour() ) + SetBackgroundColour(source.GetBackgroundColour()); + if ( source.HasFont() ) + SetFont(source.GetFont()); + } + private: wxColour m_colText, m_colBack; @@ -213,7 +234,7 @@ public: m_attr(NULL) { // copy list item attributes - if( item.HasAttributes() ) + if ( item.HasAttributes() ) m_attr = new wxListItemAttr(*item.GetAttributes()); } virtual ~wxListItem() { delete m_attr; }