////@begin control identifiers
#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_STYLE wxRESIZE_BORDER|wxTAB_TRAVERSAL
+#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_TITLE _("wxRichTextFontPage")
#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_IDNAME ID_RICHTEXTINDENTSSPACINGPAGE
#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_SIZE wxSize(400, 300)
#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_POSITION wxDefaultPosition
wxTEXT_ATTR_FONT_ITALIC = 0x00000020,
wxTEXT_ATTR_FONT_UNDERLINE = 0x00000040,
wxTEXT_ATTR_FONT_ENCODING = 0x02000000,
+ wxTEXT_ATTR_FONT_FAMILY = 0x04000000,
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_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE | wxTEXT_ATTR_FONT_ENCODING | wxTEXT_ATTR_FONT_FAMILY ),
wxTEXT_ATTR_ALIGNMENT = 0x00000080,
wxTEXT_ATTR_LEFT_INDENT = 0x00000100,
*/
wxTEXT_ATTR_CHARACTER = \
- (wxTEXT_ATTR_FONT|wxTEXT_ATTR_FONT_ENCODING|wxTEXT_ATTR_EFFECTS| \
+ (wxTEXT_ATTR_FONT|wxTEXT_ATTR_EFFECTS| \
wxTEXT_ATTR_BACKGROUND_COLOUR|wxTEXT_ATTR_TEXT_COLOUR|wxTEXT_ATTR_CHARACTER_STYLE_NAME|wxTEXT_ATTR_URL),
wxTEXT_ATTR_PARAGRAPH = \
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; }
// Set font
void SetFont(const wxFont& font, int flags = wxTEXT_ATTR_FONT) { GetFontAttributes(font, flags); }
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; }
wxFont GetFont() const;
bool HasFontUnderlined() const { return HasFlag(wxTEXT_ATTR_FONT_UNDERLINE); }
bool HasFontFaceName() const { return HasFlag(wxTEXT_ATTR_FONT_FACE); }
bool HasFontEncoding() const { return HasFlag(wxTEXT_ATTR_FONT_ENCODING); }
+ bool HasFontFamily() const { return HasFlag(wxTEXT_ATTR_FONT_FAMILY); }
bool HasFont() const { return HasFlag(wxTEXT_ATTR_FONT); }
bool HasParagraphSpacingAfter() const { return HasFlag(wxTEXT_ATTR_PARA_SPACING_AFTER); }
int m_fontSize;
int m_fontStyle;
int m_fontWeight;
+ int m_fontFamily;
bool m_fontUnderlined;
wxString m_fontFaceName;
wxTEXT_ATTR_FONT_ITALIC = 0x00000020,
wxTEXT_ATTR_FONT_UNDERLINE = 0x00000040,
wxTEXT_ATTR_FONT_ENCODING = 0x02000000,
+ wxTEXT_ATTR_FONT_FAMILY = 0x04000000,
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_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE | wxTEXT_ATTR_FONT_ENCODING | wxTEXT_ATTR_FONT_FAMILY ),
wxTEXT_ATTR_ALIGNMENT = 0x00000080,
wxTEXT_ATTR_LEFT_INDENT = 0x00000100,
*/
wxTEXT_ATTR_CHARACTER = \
- (wxTEXT_ATTR_FONT|wxTEXT_ATTR_FONT_ENCODING|wxTEXT_ATTR_EFFECTS| \
+ (wxTEXT_ATTR_FONT|wxTEXT_ATTR_EFFECTS| \
wxTEXT_ATTR_BACKGROUND_COLOUR|wxTEXT_ATTR_TEXT_COLOUR|wxTEXT_ATTR_CHARACTER_STYLE_NAME|wxTEXT_ATTR_URL),
wxTEXT_ATTR_PARAGRAPH = \
*/
const wxString& GetFontFaceName() const;
+ /**
+ Returns the font family.
+ */
+ int GetFontFamily() const;
+
/**
Returns the font size in points.
*/
*/
bool HasFontFaceName() const;
+ /**
+ Returns @true if the attribute object specifies a font family.
+ */
+ bool HasFontFamily() const;
+
/**
Returns @true if the attribute object specifies italic style.
*/
void SetFontEncoding(wxFontEncoding encoding);
/**
- Sets the paragraph alignment.
+ Sets the font face name.
*/
void SetFontFaceName(const wxString& faceName);
+ /**
+ Sets the font family.
+ */
+ void SetFontFamily(int family);
+
/**
Sets the font size in points.
*/
m_fontWeight = wxNORMAL;
m_fontUnderlined = false;
m_fontEncoding = wxFONTENCODING_DEFAULT;
+ m_fontFamily = wxFONTFAMILY_DEFAULT;
m_paragraphSpacingAfter = 0;
m_paragraphSpacingBefore = 0;
m_fontUnderlined = attr.m_fontUnderlined;
m_fontFaceName = attr.m_fontFaceName;
m_fontEncoding = attr.m_fontEncoding;
+ m_fontFamily = attr.m_fontFamily;
m_textEffects = attr.m_textEffects;
m_textEffectFlags = attr.m_textEffectFlags;
GetFontUnderlined() == attr.GetFontUnderlined() &&
GetFontFaceName() == attr.GetFontFaceName() &&
GetFontEncoding() == attr.GetFontEncoding() &&
+ GetFontFamily() == attr.GetFontFamily() &&
GetURL() == attr.GetURL();
}
GetFontEncoding() != attr.GetFontEncoding())
return false;
+ if ((flags & wxTEXT_ATTR_FONT_FAMILY) &&
+ GetFontFamily() != attr.GetFontFamily())
+ return false;
+
if ((flags & wxTEXT_ATTR_URL) && GetURL() != attr.GetURL())
return false;
if (HasFontEncoding())
encoding = GetFontEncoding();
- wxFont font(fontSize, wxDEFAULT, fontStyle, fontWeight, underlined, fontFaceName, encoding);
+ int fontFamily = wxFONTFAMILY_DEFAULT;
+ if (HasFontFamily())
+ fontFamily = GetFontFamily();
+
+ wxFont font(fontSize, fontFamily, fontStyle, fontWeight, underlined, fontFaceName, encoding);
#ifdef __WXMAC__
font.SetNoAntiAliasing(true);
#endif
if (flags & wxTEXT_ATTR_FONT_ENCODING)
m_fontEncoding = font.GetEncoding();
+ if (flags & wxTEXT_ATTR_FONT_FAMILY)
+ m_fontFamily = font.GetFamily();
+
m_flags |= flags;
return true;
destStyle.SetFontEncoding(style.GetFontEncoding());
}
+ if (style.HasFontFamily())
+ {
+ if (!(compareWith && compareWith->HasFontFamily() && compareWith->GetFontFamily() == style.GetFontFamily()))
+ destStyle.SetFontFamily(style.GetFontFamily());
+ }
+
if (style.GetTextColour().Ok() && style.HasTextColour())
{
if (!(compareWith && compareWith->HasTextColour() && compareWith->GetTextColour() == style.GetTextColour()))
font1.GetStyle() == font.GetStyle() &&
font1.GetWeight() == font.GetWeight() &&
font1.GetUnderlined() == font.GetUnderlined() &&
+ font1.GetFamily() == font.GetFamily() &&
font1.GetFaceName() == font.GetFaceName())
return;
}
}
}
+ if (style.HasFontFamily() && !wxHasStyle(multipleStyleAttributes|absentStyleAttributes, wxTEXT_ATTR_FONT_FAMILY))
+ {
+ if (currentStyle.HasFontFamily())
+ {
+ if (currentStyle.GetFontFamily() != style.GetFontFamily())
+ {
+ // Clash of style - mark as such
+ multipleStyleAttributes |= wxTEXT_ATTR_FONT_FAMILY;
+ currentStyle.SetFlags(currentStyle.GetFlags() & ~wxTEXT_ATTR_FONT_FAMILY);
+ }
+ }
+ else
+ {
+ currentStyle.SetFontFamily(style.GetFontFamily());
+ }
+ }
+
if (style.HasFontWeight() && !wxHasStyle(multipleStyleAttributes|absentStyleAttributes, wxTEXT_ATTR_FONT_WEIGHT))
{
if (currentStyle.HasFontWeight())
if (attr.HasFontSize())
str << wxT(" fontsize=\"") << attr.GetFontSize() << wxT("\"");
- //if (attr.HasFontFamily())
- // str << wxT(" fontfamily=\"") << attr.GetFont().GetFamily() << wxT("\"");
+ if (attr.HasFontFamily())
+ str << wxT(" fontfamily=\"") << attr.GetFont().GetFamily() << wxT("\"");
if (attr.HasFontItalic())
str << wxT(" fontstyle=\"") << attr.GetFontStyle() << wxT("\"");
{
wxString fontFacename;
int fontSize = 12;
- // int fontFamily = wxDEFAULT;
+ int fontFamily = wxFONTFAMILY_DEFAULT;
int fontWeight = wxNORMAL;
int fontStyle = wxNORMAL;
bool fontUnderlined = false;
wxRichTextFixFaceName(fontFacename);
}
-
wxString value;
- //value = node->GetAttribute(wxT("fontfamily"), wxEmptyString);
- //if (!value.empty())
- // fontFamily = wxAtoi(value);
+ value = node->GetAttribute(wxT("fontfamily"), wxEmptyString);
+ if (!value.empty())
+ {
+ fontFamily = wxAtoi(value);
+ attr.SetFontFamily(fontFamily);
+ }
value = node->GetAttribute(wxT("fontstyle"), wxEmptyString);
if (!value.empty())