///////////////////////////////////////////////////////////////////////////////
// Name: wx/textctrl.h
-// Purpose: wxTextCtrlBase class - the interface of wxTextCtrl
+// Purpose: wxTextAttr and wxTextCtrlBase class - the interface of wxTextCtrl
// Author: Vadim Zeitlin
// Modified by:
// Created: 13.07.99
{
wxTEXT_ATTR_TEXT_COLOUR = 0x00000001,
wxTEXT_ATTR_BACKGROUND_COLOUR = 0x00000002,
+
wxTEXT_ATTR_FONT_FACE = 0x00000004,
wxTEXT_ATTR_FONT_SIZE = 0x00000008,
wxTEXT_ATTR_FONT_WEIGHT = 0x00000010,
wxTEXT_ATTR_LEFT_INDENT = 0x00000100,
wxTEXT_ATTR_RIGHT_INDENT = 0x00000200,
wxTEXT_ATTR_TABS = 0x00000400,
-
wxTEXT_ATTR_PARA_SPACING_AFTER = 0x00000800,
wxTEXT_ATTR_PARA_SPACING_BEFORE = 0x00001000,
wxTEXT_ATTR_LINE_SPACING = 0x00002000,
wxTEXT_ATTR_CHARACTER_STYLE_NAME = 0x00004000,
wxTEXT_ATTR_PARAGRAPH_STYLE_NAME = 0x00008000,
wxTEXT_ATTR_LIST_STYLE_NAME = 0x00010000,
+
wxTEXT_ATTR_BULLET_STYLE = 0x00020000,
wxTEXT_ATTR_BULLET_NUMBER = 0x00040000,
wxTEXT_ATTR_BULLET_TEXT = 0x00080000,
wxTEXT_ATTR_BULLET_NAME = 0x00100000,
+
+ wxTEXT_ATTR_BULLET = \
+ ( wxTEXT_ATTR_BULLET_STYLE | wxTEXT_ATTR_BULLET_NUMBER | wxTEXT_ATTR_BULLET_TEXT | \
+ wxTEXT_ATTR_BULLET_NAME ),
+
+
wxTEXT_ATTR_URL = 0x00200000,
wxTEXT_ATTR_PAGE_BREAK = 0x00400000,
wxTEXT_ATTR_EFFECTS = 0x00800000,
wxTEXT_ATTR_PARAGRAPH = \
(wxTEXT_ATTR_ALIGNMENT|wxTEXT_ATTR_LEFT_INDENT|wxTEXT_ATTR_RIGHT_INDENT|wxTEXT_ATTR_TABS|\
wxTEXT_ATTR_PARA_SPACING_BEFORE|wxTEXT_ATTR_PARA_SPACING_AFTER|wxTEXT_ATTR_LINE_SPACING|\
- wxTEXT_ATTR_BULLET_STYLE|wxTEXT_ATTR_BULLET_NUMBER|wxTEXT_ATTR_BULLET_TEXT|wxTEXT_ATTR_BULLET_NAME|\
- wxTEXT_ATTR_PARAGRAPH_STYLE_NAME|wxTEXT_ATTR_LIST_STYLE_NAME|wxTEXT_ATTR_OUTLINE_LEVEL),
+ wxTEXT_ATTR_BULLET|wxTEXT_ATTR_PARAGRAPH_STYLE_NAME|wxTEXT_ATTR_LIST_STYLE_NAME|wxTEXT_ATTR_OUTLINE_LEVEL),
wxTEXT_ATTR_ALL = (wxTEXT_ATTR_CHARACTER|wxTEXT_ATTR_PARAGRAPH)
};
void SetRightIndent(int indent) { m_rightIndent = indent; m_flags |= wxTEXT_ATTR_RIGHT_INDENT; }
void SetFontSize(int pointSize) { m_fontSize = pointSize; m_flags |= wxTEXT_ATTR_FONT_SIZE; }
- void SetFontStyle(int fontStyle) { m_fontStyle = fontStyle; m_flags |= wxTEXT_ATTR_FONT_ITALIC; }
- void SetFontWeight(int fontWeight) { m_fontWeight = fontWeight; m_flags |= wxTEXT_ATTR_FONT_WEIGHT; }
+ void SetFontStyle(wxFontStyle fontStyle) { m_fontStyle = fontStyle; m_flags |= wxTEXT_ATTR_FONT_ITALIC; }
+ void SetFontWeight(wxFontWeight fontWeight) { m_fontWeight = fontWeight; m_flags |= wxTEXT_ATTR_FONT_WEIGHT; }
void SetFontFaceName(const wxString& faceName) { m_fontFaceName = faceName; m_flags |= wxTEXT_ATTR_FONT_FACE; }
void SetFontUnderlined(bool underlined) { m_fontUnderlined = underlined; m_flags |= wxTEXT_ATTR_FONT_UNDERLINE; }
void SetFontEncoding(wxFontEncoding encoding) { m_fontEncoding = encoding; m_flags |= wxTEXT_ATTR_FONT_ENCODING; }
- void SetFontFamily(int family) { m_fontFamily = family; m_flags |= wxTEXT_ATTR_FONT_FAMILY; }
+ void SetFontFamily(wxFontFamily family) { m_fontFamily = family; m_flags |= wxTEXT_ATTR_FONT_FAMILY; }
// Set font
void SetFont(const wxFont& font, int flags = wxTEXT_ATTR_FONT) { GetFontAttributes(font, flags); }
long GetFlags() const { return m_flags; }
int GetFontSize() const { return m_fontSize; }
- int GetFontStyle() const { return m_fontStyle; }
- int GetFontWeight() const { return m_fontWeight; }
+ wxFontStyle GetFontStyle() const { return m_fontStyle; }
+ wxFontWeight GetFontWeight() const { return m_fontWeight; }
bool GetFontUnderlined() const { return m_fontUnderlined; }
const wxString& GetFontFaceName() const { return m_fontFaceName; }
wxFontEncoding GetFontEncoding() const { return m_fontEncoding; }
- int GetFontFamily() const { return m_fontFamily; }
+ wxFontFamily GetFontFamily() const { return m_fontFamily; }
wxFont GetFont() const;
int GetParagraphSpacingAfter() const { return m_paragraphSpacingAfter; }
int GetParagraphSpacingBefore() const { return m_paragraphSpacingBefore; }
- // TODO: should return the relative wxTextAttr* enumeration values
int GetLineSpacing() const { return m_lineSpacing; }
int GetBulletStyle() const { return m_bulletStyle; }
int GetBulletNumber() const { return m_bulletNumber; }
wxColour m_colText,
m_colBack;
int m_fontSize;
- int m_fontStyle;
- int m_fontWeight;
- int m_fontFamily;
+ wxFontStyle m_fontStyle;
+ wxFontWeight m_fontWeight;
+ wxFontFamily m_fontFamily;
bool m_fontUnderlined;
wxString m_fontFaceName;
/////////////////////////////////////////////////////////////////////////////
-
/**
- The following values can be passed to wxTextAttr::SetAlignment to determine paragraph alignment.
+ One of the following values can be passed to wxTextAttr::SetAlignment to determine paragraph alignment.
*/
enum wxTextAttrAlignment
{
{
wxTEXT_ATTR_TEXT_COLOUR = 0x00000001,
wxTEXT_ATTR_BACKGROUND_COLOUR = 0x00000002,
+
wxTEXT_ATTR_FONT_FACE = 0x00000004,
wxTEXT_ATTR_FONT_SIZE = 0x00000008,
wxTEXT_ATTR_FONT_WEIGHT = 0x00000010,
wxTEXT_ATTR_FONT_UNDERLINE = 0x00000040,
wxTEXT_ATTR_FONT_ENCODING = 0x02000000,
wxTEXT_ATTR_FONT_FAMILY = 0x04000000,
+
+ /**
+ Defined as the combination of all @c wxTEXT_ATTR_FONT_* values above.
+ */
wxTEXT_ATTR_FONT = \
( wxTEXT_ATTR_FONT_FACE | wxTEXT_ATTR_FONT_SIZE | wxTEXT_ATTR_FONT_WEIGHT | \
wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE | wxTEXT_ATTR_FONT_ENCODING | wxTEXT_ATTR_FONT_FAMILY ),
wxTEXT_ATTR_LEFT_INDENT = 0x00000100,
wxTEXT_ATTR_RIGHT_INDENT = 0x00000200,
wxTEXT_ATTR_TABS = 0x00000400,
-
wxTEXT_ATTR_PARA_SPACING_AFTER = 0x00000800,
wxTEXT_ATTR_PARA_SPACING_BEFORE = 0x00001000,
wxTEXT_ATTR_LINE_SPACING = 0x00002000,
wxTEXT_ATTR_CHARACTER_STYLE_NAME = 0x00004000,
wxTEXT_ATTR_PARAGRAPH_STYLE_NAME = 0x00008000,
wxTEXT_ATTR_LIST_STYLE_NAME = 0x00010000,
+
wxTEXT_ATTR_BULLET_STYLE = 0x00020000,
wxTEXT_ATTR_BULLET_NUMBER = 0x00040000,
wxTEXT_ATTR_BULLET_TEXT = 0x00080000,
wxTEXT_ATTR_BULLET_NAME = 0x00100000,
+
+ /**
+ Defined as the combination of all @c wxTEXT_ATTR_BULLET_* values above.
+ */
+ wxTEXT_ATTR_BULLET = \
+ ( wxTEXT_ATTR_BULLET_STYLE | wxTEXT_ATTR_BULLET_NUMBER | wxTEXT_ATTR_BULLET_TEXT | \
+ wxTEXT_ATTR_BULLET_NAME ),
+
wxTEXT_ATTR_URL = 0x00200000,
wxTEXT_ATTR_PAGE_BREAK = 0x00400000,
wxTEXT_ATTR_EFFECTS = 0x00800000,
wxTEXT_ATTR_OUTLINE_LEVEL = 0x01000000,
/**
- Character and paragraph combined styles
+ Combines the styles @c wxTEXT_ATTR_FONT, @c wxTEXT_ATTR_EFFECTS, @c wxTEXT_ATTR_BACKGROUND_COLOUR,
+ @c wxTEXT_ATTR_TEXT_COLOUR, @c wxTEXT_ATTR_CHARACTER_STYLE_NAME, @c wxTEXT_ATTR_URL.
*/
wxTEXT_ATTR_CHARACTER = \
(wxTEXT_ATTR_FONT|wxTEXT_ATTR_EFFECTS| \
wxTEXT_ATTR_BACKGROUND_COLOUR|wxTEXT_ATTR_TEXT_COLOUR|wxTEXT_ATTR_CHARACTER_STYLE_NAME|wxTEXT_ATTR_URL),
+ /**
+ Combines all the styles regarding text paragraphs.
+ */
wxTEXT_ATTR_PARAGRAPH = \
(wxTEXT_ATTR_ALIGNMENT|wxTEXT_ATTR_LEFT_INDENT|wxTEXT_ATTR_RIGHT_INDENT|wxTEXT_ATTR_TABS|\
wxTEXT_ATTR_PARA_SPACING_BEFORE|wxTEXT_ATTR_PARA_SPACING_AFTER|wxTEXT_ATTR_LINE_SPACING|\
- wxTEXT_ATTR_BULLET_STYLE|wxTEXT_ATTR_BULLET_NUMBER|wxTEXT_ATTR_BULLET_TEXT|wxTEXT_ATTR_BULLET_NAME|\
- wxTEXT_ATTR_PARAGRAPH_STYLE_NAME|wxTEXT_ATTR_LIST_STYLE_NAME|wxTEXT_ATTR_OUTLINE_LEVEL),
+ wxTEXT_ATTR_BULLET|wxTEXT_ATTR_PARAGRAPH_STYLE_NAME|wxTEXT_ATTR_LIST_STYLE_NAME|wxTEXT_ATTR_OUTLINE_LEVEL),
+ /**
+ Combines all previous values.
+ */
wxTEXT_ATTR_ALL = (wxTEXT_ATTR_CHARACTER|wxTEXT_ATTR_PARAGRAPH)
};
/**
- Styles for wxTextAttr::SetBulletStyle
+ Styles for wxTextAttr::SetBulletStyle. They can be combined together as a bitlist.
*/
enum wxTextAttrBulletStyle
{
};
/**
- Styles for wxTextAttr::SetTextEffects().
+ Styles for wxTextAttr::SetTextEffects(). They can be combined together as a bitlist.
Of these, only wxTEXT_ATTR_EFFECT_CAPITALS and wxTEXT_ATTR_EFFECT_STRIKETHROUGH are implemented.
*/
};
/**
- Line spacing values; see wxTextAttr::SetLineSpacing().
+ Convenience line spacing values; see wxTextAttr::SetLineSpacing().
*/
enum wxTextAttrLineSpacing
{
*/
wxFont CreateFont() const;
+ /**
+ Copies all defined/valid properties from overlay to current object.
+ */
+ void Merge(const wxTextAttr& overlay);
+
+ /**
+ Creates a new @c wxTextAttr which is a merge of @a base and @a overlay.
+
+ Properties defined in @a overlay take precedence over those in @a base.
+ Properties undefined/invalid in both are undefined in the result.
+ */
+ static wxTextAttr Merge(const wxTextAttr& base,
+ const wxTextAttr& overlay);
+
+
+ /**
+ @name GetXXX functions
+ */
+
+ //@{
+
/**
Returns the alignment flags.
See ::wxTextAttrAlignment for a list of available styles.
/**
Returns the font family.
*/
- int GetFontFamily() const;
+ wxFontFamily GetFontFamily() const;
/**
Returns the font size in points.
/**
Returns the font style.
*/
- int GetFontStyle() const;
+ wxFontStyle GetFontStyle() const;
/**
Returns @true if the font is underlined.
/**
Returns the font weight.
*/
- int GetFontWeight() const;
+ wxFontWeight GetFontWeight() const;
/**
Returns the left indent in tenths of a millimetre.
*/
const wxString& GetURL() const;
+ //@}
+
+
+
+ /**
+ @name HasXXX and IsXXX functions
+ */
+
+ //@{
+
/**
Returns @true if the attribute object specifies alignment.
*/
*/
bool IsParagraphStyle() const;
- /**
- Copies all defined/valid properties from overlay to current object.
- */
- void Merge(const wxTextAttr& overlay);
+ //@}
+
/**
- Creates a new @c wxTextAttr which is a merge of @a base and @a overlay.
+ @name SetXXX functions
+ */
- Properties defined in @a overlay take precedence over those in @a base.
- Properties undefined/invalid in both are undefined in the result.
- */
- static wxTextAttr Merge(const wxTextAttr& base,
- const wxTextAttr& overlay);
+ //@{
/**
Sets the paragraph alignment. See ::wxTextAttrAlignment enumeration values.
/**
Sets the font family.
*/
- void SetFontFamily(int family);
+ void SetFontFamily(wxFontFamily family);
/**
Sets the font size in points.
/**
Sets the font style (normal, italic or slanted).
*/
- void SetFontStyle(int fontStyle);
+ void SetFontStyle(wxFontStyle fontStyle);
/**
Sets the font underlining.
/**
Sets the font weight.
*/
- void SetFontWeight(int fontWeight);
+ void SetFontWeight(wxFontWeight fontWeight);
/**
Sets the left indent and left subindent in tenths of a millimetre.
*/
void SetURL(const wxString& url);
+ //@}
+
+
/**
Assignment from a wxTextAttr object.
*/
m_rightIndent = 0;
m_fontSize = 12;
- m_fontStyle = wxNORMAL;
- m_fontWeight = wxNORMAL;
+ m_fontStyle = wxFONTSTYLE_NORMAL;
+ m_fontWeight = wxFONTWEIGHT_NORMAL;
m_fontUnderlined = false;
m_fontEncoding = wxFONTENCODING_DEFAULT;
m_fontFamily = wxFONTFAMILY_DEFAULT;
bool wxRichTextBuffer::BeginBold()
{
wxTextAttr attr;
- attr.SetFontWeight(wxBOLD);
+ attr.SetFontWeight(wxFONTWEIGHT_BOLD);
return BeginStyle(attr);
}
bool wxRichTextBuffer::BeginItalic()
{
wxTextAttr attr;
- attr.SetFontStyle(wxITALIC);
+ attr.SetFontStyle(wxFONTSTYLE_ITALIC);
return BeginStyle(attr);
}
wxTextAttr attr;
wxRichTextRange range = GetSelectionRange();
attr.SetFlags(wxTEXT_ATTR_FONT_WEIGHT);
- attr.SetFontWeight(wxBOLD);
+ attr.SetFontWeight(wxFONTWEIGHT_BOLD);
return HasCharacterAttributes(range, attr);
}
{
if (IsDefaultStyleShowing())
wxRichTextApplyStyle(attr, GetDefaultStyleEx());
- return attr.GetFontWeight() == wxBOLD;
+ return attr.GetFontWeight() == wxFONTWEIGHT_BOLD;
}
}
return false;
wxRichTextRange range = GetSelectionRange();
wxTextAttr attr;
attr.SetFlags(wxTEXT_ATTR_FONT_ITALIC);
- attr.SetFontStyle(wxITALIC);
+ attr.SetFontStyle(wxFONTSTYLE_ITALIC);
return HasCharacterAttributes(range, attr);
}
{
if (IsDefaultStyleShowing())
wxRichTextApplyStyle(attr, GetDefaultStyleEx());
- return attr.GetFontStyle() == wxITALIC;
+ return attr.GetFontStyle() == wxFONTSTYLE_ITALIC;
}
}
return false;
{
wxTextAttr attr;
attr.SetFlags(wxTEXT_ATTR_FONT_WEIGHT);
- attr.SetFontWeight(IsSelectionBold() ? wxNORMAL : wxBOLD);
+ attr.SetFontWeight(IsSelectionBold() ? wxFONTWEIGHT_NORMAL : wxFONTWEIGHT_BOLD);
if (HasSelection())
return SetStyleEx(GetSelectionRange(), attr, wxRICHTEXT_SETSTYLE_WITH_UNDO|wxRICHTEXT_SETSTYLE_OPTIMIZE|wxRICHTEXT_SETSTYLE_CHARACTERS_ONLY);
{
wxTextAttr attr;
attr.SetFlags(wxTEXT_ATTR_FONT_ITALIC);
- attr.SetFontStyle(IsSelectionItalics() ? wxNORMAL : wxITALIC);
+ attr.SetFontStyle(IsSelectionItalics() ? wxFONTSTYLE_NORMAL : wxFONTSTYLE_ITALIC);
if (HasSelection())
return SetStyleEx(GetSelectionRange(), attr, wxRICHTEXT_SETSTYLE_WITH_UNDO|wxRICHTEXT_SETSTYLE_OPTIMIZE|wxRICHTEXT_SETSTYLE_CHARACTERS_ONLY);
if (m_styleCtrl->GetSelection() != wxNOT_FOUND)
{
- int style;
+ wxFontStyle style;
if (m_styleCtrl->GetStringSelection() == _("Italic"))
- style = wxITALIC;
+ style = wxFONTSTYLE_ITALIC;
else
- style = wxNORMAL;
+ style = wxFONTSTYLE_NORMAL;
attr->SetFontStyle(style);
}
if (m_weightCtrl->GetSelection() != wxNOT_FOUND)
{
- int weight;
+ wxFontWeight weight;
if (m_weightCtrl->GetStringSelection() == _("Bold"))
- weight = wxBOLD;
+ weight = wxFONTWEIGHT_BOLD;
else
- weight = wxNORMAL;
+ weight = wxFONTWEIGHT_NORMAL;
attr->SetFontWeight(weight);
}
{
wxString fontFacename;
int fontSize = 12;
- int fontFamily = wxFONTFAMILY_DEFAULT;
- int fontWeight = wxNORMAL;
- int fontStyle = wxNORMAL;
+ wxFontFamily fontFamily = wxFONTFAMILY_DEFAULT;
+ wxFontWeight fontWeight = wxFONTWEIGHT_NORMAL;
+ wxFontStyle fontStyle = wxFONTSTYLE_NORMAL;
bool fontUnderlined = false;
// int fontFlags = 0;
value = node->GetAttribute(wxT("fontfamily"), wxEmptyString);
if (!value.empty())
{
- fontFamily = wxAtoi(value);
+ fontFamily = (wxFontFamily)wxAtoi(value);
attr.SetFontFamily(fontFamily);
}
value = node->GetAttribute(wxT("fontstyle"), wxEmptyString);
if (!value.empty())
{
- fontStyle = wxAtoi(value);
+ fontStyle = (wxFontStyle)wxAtoi(value);
attr.SetFontStyle(fontStyle);
}
value = node->GetAttribute(wxT("fontweight"), wxEmptyString);
if (!value.empty())
{
- fontWeight = wxAtoi(value);
+ fontWeight = (wxFontWeight)wxAtoi(value);
attr.SetFontWeight(fontWeight);
}