dfb993274c
It can be necessary to compare two item attributes for equality, e.g. to check if the attributes have changed, so provide a straightforward implementation of equality and inequality operator for it.
80 lines
2.6 KiB
C++
80 lines
2.6 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/itemattr.h
|
|
// Purpose: wxItemAttr class declaration
|
|
// Author: Vadim Zeitlin
|
|
// Created: 2016-04-16 (extracted from wx/listctrl.h)
|
|
// Copyright: (c) 2016 Vadim Zeitlin <vadim@wxwidgets.org>
|
|
// Licence: wxWindows licence
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_ITEMATTR_H_
|
|
#define _WX_ITEMATTR_H_
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxItemAttr: a structure containing the visual attributes of an item
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class wxItemAttr
|
|
{
|
|
public:
|
|
// ctors
|
|
wxItemAttr() { }
|
|
wxItemAttr(const wxColour& colText,
|
|
const wxColour& colBack,
|
|
const wxFont& font)
|
|
: m_colText(colText), m_colBack(colBack), m_font(font)
|
|
{
|
|
}
|
|
|
|
// default copy ctor, assignment operator and dtor are ok
|
|
|
|
bool operator==(const wxItemAttr& other) const
|
|
{
|
|
return m_colText == other.m_colText &&
|
|
m_colBack == other.m_colBack &&
|
|
m_font == other.m_font;
|
|
}
|
|
|
|
bool operator!=(const wxItemAttr& other) const
|
|
{
|
|
return !(*this == other);
|
|
}
|
|
|
|
// setters
|
|
void SetTextColour(const wxColour& colText) { m_colText = colText; }
|
|
void SetBackgroundColour(const wxColour& colBack) { m_colBack = colBack; }
|
|
void SetFont(const wxFont& font) { m_font = font; }
|
|
|
|
// accessors
|
|
bool HasTextColour() const { return m_colText.IsOk(); }
|
|
bool HasBackgroundColour() const { return m_colBack.IsOk(); }
|
|
bool HasFont() const { return m_font.IsOk(); }
|
|
|
|
bool HasColours() const { return HasTextColour() || HasBackgroundColour(); }
|
|
bool IsDefault() const { return !HasColours() && !HasFont(); }
|
|
|
|
const wxColour& GetTextColour() const { return m_colText; }
|
|
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 wxItemAttr& 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;
|
|
wxFont m_font;
|
|
};
|
|
|
|
#endif // _WX_ITEMATTR_H_
|