Added outline level

Removed unnecessary wxRichTextAttr::CopyTo


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43277 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart 2006-11-10 15:48:46 +00:00
parent 00ea969c97
commit 4d6d8bf4fb
8 changed files with 409 additions and 106 deletions

View File

@ -80,6 +80,7 @@ for a text control.
#define wxTEXT_ATTR_URL 0x00200000
#define wxTEXT_ATTR_PAGE_BREAK 0x00400000
#define wxTEXT_ATTR_EFFECTS 0x00800000
#define wxTEXT_ATTR_OUTLINE_LEVEL 0x01000000
\end{verbatim}
}
@ -297,6 +298,12 @@ wxTEXT\_ATTR\_LINE\_SPACING\_HALF, and wxTEXT\_ATTR\_LINE\_SPACING\_TWICE.
Returns the name of the list style.
\membersection{wxRichTextAttr::GetOutlineLevel}\label{wxrichtextattrgetoutlinelevel}
\constfunc{bool}{GetOutlineLevel}{\void}
Returns the outline level.
\membersection{wxRichTextAttr::GetParagraphSpacingAfter}\label{wxrichtextattrgetparagraphspacingafter}
\constfunc{int}{GetParagraphSpacingAfter}{\void}
@ -439,6 +446,12 @@ Returns \true if the attribute object specifies line spacing.
Returns \true if the attribute object specifies a list style name.
\membersection{wxRichTextAttr::HasOutlineLevel}\label{wxrichtextattrhasoutlinelevel}
\constfunc{bool}{HasOutlineLevel}{\void}
Returns \true if the attribute object specifies an outline level.
\membersection{wxRichTextAttr::HasPageBreak}\label{wxrichtextattrhaspagebreak}
\constfunc{bool}{HasPageBreak}{\void}
@ -487,12 +500,24 @@ Returns \true if the attribute object specifies tab stops.
Returns \true if the attribute object specifies a text foreground colour.
\membersection{wxRichTextAttr::HasTextEffects}\label{wxrichtextattrhastexteffects}
\constfunc{bool}{HasTextEffects}{\void}
Returns \true if the attribute object specifies text effects.
\membersection{wxRichTextAttr::HasUnderlined}\label{wxrichtextattrhasunderlined}
\constfunc{bool}{HasUnderlined}{\void}
Returns \true if the attribute object specifies either underlining or no underlining.
\membersection{wxRichTextAttr::HasURL}\label{wxrichtextattrhasurl}
\constfunc{bool}{HasURL}{\void}
Returns \true if the attribute object specifies a URL.
\membersection{wxRichTextAttr::HasWeight}\label{wxrichtextattrhasweight}
\constfunc{bool}{HasWeight}{\void}
@ -658,6 +683,7 @@ flags can be passed in a bitlist:
#define wxTEXT_ATTR_URL 0x00200000
#define wxTEXT_ATTR_PAGE_BREAK 0x00400000
#define wxTEXT_ATTR_EFFECTS 0x00800000
#define wxTEXT_ATTR_OUTLINE_LEVEL 0x01000000
\end{verbatim}
}
@ -729,6 +755,14 @@ defined for convenience:
Sets the list style name.
\membersection{wxRichTextAttr::SetOutlineLevel}\label{wxrichtextattrsetoutlinelevel}
\func{void}{SetOutlineLevel}{\param{int}{ level}}
Specifies the outline level. Zero represents normal text. At present, the outline level is
not used, but may be used in future for determining list levels and for applications
that need to store document structure information.
\membersection{wxRichTextAttr::SetPageBreak}\label{wxrichtextattrsetpagebreak}
\func{void}{SetPageBreak}{\param{bool}{ pageBreak = true}}

View File

@ -83,6 +83,7 @@ for a text control.
#define wxTEXT_ATTR_URL 0x00200000
#define wxTEXT_ATTR_PAGE_BREAK 0x00400000
#define wxTEXT_ATTR_EFFECTS 0x00800000
#define wxTEXT_ATTR_OUTLINE_LEVEL 0x01000000
\end{verbatim}
}
@ -220,6 +221,12 @@ wxTEXT\_ATTR\_LINE\_SPACING\_HALF, and wxTEXT\_ATTR\_LINE\_SPACING\_TWICE.
Returns the name of the list style.
\membersection{wxTextAttrEx::GetOutlineLevel}\label{wxtextattrexgetoutlinelevel}
\constfunc{bool}{GetOutlineLevel}{\void}
Returns the outline level.
\membersection{wxTextAttrEx::GetParagraphSpacingAfter}\label{wxtextattrexgetparagraphspacingafter}
\constfunc{int}{GetParagraphSpacingAfter}{\void}
@ -301,6 +308,12 @@ Returns \true if the attribute object specifies line spacing.
Returns \true if the attribute object specifies a list style name.
\membersection{wxTextAttrEx::HasOutlineLevel}\label{wxtextattrexhasoutlinelevel}
\constfunc{bool}{HasOutlineLevel}{\void}
Returns \true if the attribute object specifies an outline level.
\membersection{wxTextAttrEx::HasPageBreak}\label{wxtextattrexhaspagebreak}
\constfunc{bool}{HasPageBreak}{\void}
@ -325,6 +338,18 @@ Returns \true if the attribute object specifies spacing before a paragraph.
Returns \true if the attribute object specifies a paragraph style name.
\membersection{wxTextAttrEx::HasTextEffects}\label{wxtextattrexhastexteffects}
\constfunc{bool}{HasTextEffects}{\void}
Returns \true if the attribute object specifies text effects.
\membersection{wxTextAttrEx::HasURL}\label{wxtextattrexhasurl}
\constfunc{bool}{HasURL}{\void}
Returns \true if the attribute object specifies a URL.
\membersection{wxTextAttrEx::Init}\label{wxtextattrexinit}
\func{void}{Init}{\void}
@ -436,6 +461,14 @@ defined for convenience:
Sets the list style name.
\membersection{wxTextAttrEx::SetOutlineLevel}\label{wxtextattrexsetoutlinelevel}
\func{void}{SetOutlineLevel}{\param{int}{ level}}
Specifies the outline level. Zero represents normal text. At present, the outline level is
not used, but may be used in future for determining list levels and for applications
that need to store document structure information.
\membersection{wxTextAttrEx::SetPageBreak}\label{wxtextattrexsetpagebreak}
\func{void}{SetPageBreak}{\param{bool}{ pageBreak = true}}

View File

@ -200,6 +200,7 @@ class WXDLLIMPEXP_RICHTEXT wxRichTextBuffer;
#define wxTEXT_ATTR_URL 0x00200000
#define wxTEXT_ATTR_PAGE_BREAK 0x00400000
#define wxTEXT_ATTR_EFFECTS 0x00800000
#define wxTEXT_ATTR_OUTLINE_LEVEL 0x01000000
/*!
* Styles for wxTextAttrEx::SetBulletStyle
@ -256,7 +257,7 @@ class WXDLLIMPEXP_RICHTEXT wxRichTextBuffer;
#define 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_PARAGRAPH_STYLE_NAME|wxTEXT_ATTR_LIST_STYLE_NAME|wxTEXT_ATTR_OUTLINE_LEVEL)
#define wxTEXT_ATTR_ALL (wxTEXT_ATTR_CHARACTER|wxTEXT_ATTR_PARAGRAPH)
@ -367,6 +368,7 @@ public:
void SetPageBreak(bool pageBreak = true) { SetFlags(pageBreak ? (GetFlags() | wxTEXT_ATTR_PAGE_BREAK) : (GetFlags() & ~wxTEXT_ATTR_PAGE_BREAK)); }
void SetTextEffects(int effects) { m_textEffects = effects; SetFlags(GetFlags() | wxTEXT_ATTR_EFFECTS); }
void SetTextEffectFlags(int effects) { m_textEffectFlags = effects; }
void SetOutlineLevel(int level) { m_outlineLevel = level; SetFlags(GetFlags() | wxTEXT_ATTR_OUTLINE_LEVEL); }
const wxString& GetCharacterStyleName() const { return m_characterStyleName; }
const wxString& GetParagraphStyleName() const { return m_paragraphStyleName; }
@ -382,6 +384,7 @@ public:
const wxString& GetURL() const { return m_urlTarget; }
int GetTextEffects() const { return m_textEffects; }
int GetTextEffectFlags() const { return m_textEffectFlags; }
int GetOutlineLevel() const { return m_outlineLevel; }
bool HasWeight() const { return (GetFlags() & wxTEXT_ATTR_FONT_WEIGHT) != 0; }
bool HasSize() const { return (GetFlags() & wxTEXT_ATTR_FONT_SIZE) != 0; }
@ -403,6 +406,7 @@ public:
bool HasPageBreak() const { return HasFlag(wxTEXT_ATTR_PAGE_BREAK); }
bool HasTextEffects() const { return HasFlag(wxTEXT_ATTR_EFFECTS); }
bool HasTextEffect(int effect) const { return HasFlag(wxTEXT_ATTR_EFFECTS) && ((GetTextEffectFlags() & effect) != 0); }
bool HasOutlineLevel() const { return HasFlag(wxTEXT_ATTR_OUTLINE_LEVEL); }
// Is this a character style?
bool IsCharacterStyle() const { return (0 != (GetFlags() & wxTEXT_ATTR_CHARACTER)); }
@ -430,6 +434,7 @@ private:
int m_bulletNumber;
int m_textEffects;
int m_textEffectFlags;
int m_outlineLevel;
wxString m_bulletText;
wxString m_bulletFont;
wxString m_bulletName;
@ -479,9 +484,6 @@ public:
// Making a wxTextAttrEx object.
operator wxTextAttrEx () const ;
// Copy to a wxTextAttr
void CopyTo(wxTextAttrEx& attr) const;
// Create font from font attributes.
wxFont CreateFont() const;
@ -519,6 +521,7 @@ public:
void SetPageBreak(bool pageBreak = true) { SetFlags(pageBreak ? (GetFlags() | wxTEXT_ATTR_PAGE_BREAK) : (GetFlags() & ~wxTEXT_ATTR_PAGE_BREAK)); }
void SetTextEffects(int effects) { m_textEffects = effects; SetFlags(GetFlags() | wxTEXT_ATTR_EFFECTS); }
void SetTextEffectFlags(int effects) { m_textEffectFlags = effects; }
void SetOutlineLevel(int level) { m_outlineLevel = level; SetFlags(GetFlags() | wxTEXT_ATTR_OUTLINE_LEVEL); }
const wxColour& GetTextColour() const { return m_colText; }
const wxColour& GetBackgroundColour() const { return m_colBack; }
@ -549,6 +552,7 @@ public:
const wxString& GetURL() const { return m_urlTarget; }
int GetTextEffects() const { return m_textEffects; }
int GetTextEffectFlags() const { return m_textEffectFlags; }
int GetOutlineLevel() const { return m_outlineLevel; }
// accessors
bool HasTextColour() const { return m_colText.Ok() && HasFlag(wxTEXT_ATTR_TEXT_COLOUR) ; }
@ -578,6 +582,7 @@ public:
bool HasPageBreak() const { return HasFlag(wxTEXT_ATTR_PAGE_BREAK); }
bool HasTextEffects() const { return HasFlag(wxTEXT_ATTR_EFFECTS); }
bool HasTextEffect(int effect) const { return HasFlag(wxTEXT_ATTR_EFFECTS) && ((GetTextEffectFlags() & effect) != 0); }
bool HasOutlineLevel() const { return HasFlag(wxTEXT_ATTR_OUTLINE_LEVEL); }
bool HasFlag(long flag) const { return (m_flags & flag) != 0; }
@ -616,6 +621,7 @@ private:
int m_bulletNumber;
int m_textEffects;
int m_textEffectFlags;
int m_outlineLevel;
wxString m_bulletText;
wxString m_bulletFont;
wxString m_bulletName;
@ -1136,7 +1142,7 @@ public:
/// Set basic (overall) style
virtual void SetBasicStyle(const wxTextAttrEx& style) { m_attributes = style; }
virtual void SetBasicStyle(const wxRichTextAttr& style) { style.CopyTo(m_attributes); }
virtual void SetBasicStyle(const wxRichTextAttr& style) { m_attributes = style; }
/// Get basic (overall) style
virtual const wxTextAttrEx& GetBasicStyle() const { return m_attributes; }

View File

@ -99,6 +99,9 @@ public:
/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT
void OnIndentRightUpdated( wxCommandEvent& event );
/// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_OUTLINELEVEL
void OnRichtextOutlinelevelSelected( wxCommandEvent& event );
/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE
void OnSpacingBeforeUpdated( wxCommandEvent& event );
@ -131,6 +134,7 @@ public:
wxTextCtrl* m_indentLeft;
wxTextCtrl* m_indentLeftFirst;
wxTextCtrl* m_indentRight;
wxComboBox* m_outlineLevelCtrl;
wxTextCtrl* m_spacingBefore;
wxTextCtrl* m_spacingAfter;
wxComboBox* m_spacingLine;
@ -146,6 +150,7 @@ public:
ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT = 10103,
ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT_FIRST = 10104,
ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT = 10113,
ID_RICHTEXTINDENTSSPACINGPAGE_OUTLINELEVEL = 10105,
ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE = 10114,
ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_AFTER = 10116,
ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_LINE = 10115,

View File

@ -2261,6 +2261,21 @@ bool wxRichTextParagraphLayoutBox::CollectStyle(wxTextAttrEx& currentStyle, cons
}
}
if (style.HasOutlineLevel() && !wxHasStyle(multipleStyleAttributes, wxTEXT_ATTR_OUTLINE_LEVEL))
{
if (currentStyle.HasOutlineLevel())
{
if (currentStyle.GetOutlineLevel() != style.GetOutlineLevel())
{
// Clash of style - mark as such
multipleStyleAttributes |= wxTEXT_ATTR_OUTLINE_LEVEL;
currentStyle.SetFlags(currentStyle.GetFlags() & ~wxTEXT_ATTR_OUTLINE_LEVEL);
}
}
else
currentStyle.SetOutlineLevel(style.GetOutlineLevel());
}
return true;
}
@ -5185,8 +5200,7 @@ bool wxRichTextBuffer::BeginCharacterStyle(const wxString& characterStyle)
wxRichTextCharacterStyleDefinition* def = GetStyleSheet()->FindCharacterStyle(characterStyle);
if (def)
{
wxTextAttrEx attr;
def->GetStyle().CopyTo(attr);
wxTextAttrEx attr = def->GetStyle();
return BeginStyle(attr);
}
}
@ -5201,8 +5215,7 @@ bool wxRichTextBuffer::BeginParagraphStyle(const wxString& paragraphStyle)
wxRichTextParagraphStyleDefinition* def = GetStyleSheet()->FindParagraphStyle(paragraphStyle);
if (def)
{
wxTextAttrEx attr;
def->GetStyle().CopyTo(attr);
wxTextAttrEx attr = def->GetStyle();
return BeginStyle(attr);
}
}
@ -5237,7 +5250,7 @@ bool wxRichTextBuffer::BeginURL(const wxString& url, const wxString& characterSt
wxRichTextCharacterStyleDefinition* def = GetStyleSheet()->FindCharacterStyle(characterStyle);
if (def)
{
def->GetStyle().CopyTo(attr);
attr = def->GetStyle();
}
}
attr.SetURL(url);
@ -6400,6 +6413,7 @@ bool wxTextAttrEq(const wxTextAttrEx& attr1, const wxRichTextAttr& attr2)
attr1.GetBulletText() == attr2.GetBulletText() &&
attr1.GetBulletName() == attr2.GetBulletName() &&
attr1.GetBulletFont() == attr2.GetBulletFont() &&
attr1.GetOutlineLevel() == attr2.GetOutlineLevel() &&
attr1.GetCharacterStyleName() == attr2.GetCharacterStyleName() &&
attr1.GetParagraphStyleName() == attr2.GetParagraphStyleName() &&
attr1.GetListStyleName() == attr2.GetListStyleName() &&
@ -6504,6 +6518,10 @@ bool wxTextAttrEqPartial(const wxTextAttrEx& attr1, const wxTextAttrEx& attr2, i
return false;
}
if ((flags & wxTEXT_ATTR_OUTLINE_LEVEL) &&
(attr1.GetOutlineLevel() != attr2.GetOutlineLevel()))
return false;
return true;
}
@ -6606,6 +6624,10 @@ bool wxTextAttrEqPartial(const wxTextAttrEx& attr1, const wxRichTextAttr& attr2,
return false;
}
if ((flags & wxTEXT_ATTR_OUTLINE_LEVEL) &&
(attr1.GetOutlineLevel() != attr2.GetOutlineLevel()))
return false;
return true;
}
@ -6745,13 +6767,15 @@ bool wxRichTextApplyStyle(wxTextAttrEx& destStyle, const wxTextAttrEx& style)
destStyle.SetTextEffectFlags(destFlags);
}
if (style.HasOutlineLevel())
destStyle.SetOutlineLevel(style.GetOutlineLevel());
return true;
}
bool wxRichTextApplyStyle(wxRichTextAttr& destStyle, const wxTextAttrEx& style)
{
wxTextAttrEx destStyle2;
destStyle.CopyTo(destStyle2);
wxTextAttrEx destStyle2 = destStyle;
wxRichTextApplyStyle(destStyle2, style);
destStyle = destStyle2;
return true;
@ -6982,6 +7006,12 @@ bool wxRichTextApplyStyle(wxTextAttrEx& destStyle, const wxRichTextAttr& style,
}
}
if (style.HasOutlineLevel())
{
if (!(compareWith && compareWith->HasOutlineLevel() && compareWith->GetOutlineLevel() == style.GetOutlineLevel()))
destStyle.SetOutlineLevel(style.GetOutlineLevel());
}
return true;
}
@ -7137,6 +7167,7 @@ void wxRichTextAttr::Init()
m_bulletStyle = wxTEXT_ATTR_BULLET_STYLE_NONE;
m_textEffects = wxTEXT_ATTR_EFFECT_NONE;
m_textEffectFlags = wxTEXT_ATTR_EFFECT_NONE;
m_outlineLevel = 0;
m_bulletNumber = 0;
}
@ -7171,6 +7202,7 @@ void wxRichTextAttr::Copy(const wxRichTextAttr& attr)
m_bulletText = attr.m_bulletText;
m_bulletFont = attr.m_bulletFont;
m_bulletName = attr.m_bulletName;
m_outlineLevel = attr.m_outlineLevel;
m_urlTarget = attr.m_urlTarget;
}
@ -7207,6 +7239,7 @@ void wxRichTextAttr::operator= (const wxTextAttrEx& attr)
m_bulletText = attr.GetBulletText();
m_bulletName = attr.GetBulletName();
m_bulletFont = attr.GetBulletFont();
m_outlineLevel = attr.GetOutlineLevel();
m_urlTarget = attr.GetURL();
@ -7218,7 +7251,32 @@ void wxRichTextAttr::operator= (const wxTextAttrEx& attr)
wxRichTextAttr::operator wxTextAttrEx () const
{
wxTextAttrEx attr;
CopyTo(attr);
attr.SetTextColour(GetTextColour());
attr.SetBackgroundColour(GetBackgroundColour());
attr.SetAlignment(GetAlignment());
attr.SetTabs(GetTabs());
attr.SetLeftIndent(GetLeftIndent(), GetLeftSubIndent());
attr.SetRightIndent(GetRightIndent());
attr.SetFont(CreateFont());
attr.SetParagraphSpacingAfter(m_paragraphSpacingAfter);
attr.SetParagraphSpacingBefore(m_paragraphSpacingBefore);
attr.SetLineSpacing(m_lineSpacing);
attr.SetBulletStyle(m_bulletStyle);
attr.SetBulletNumber(m_bulletNumber);
attr.SetBulletText(m_bulletText);
attr.SetBulletName(m_bulletName);
attr.SetBulletFont(m_bulletFont);
attr.SetCharacterStyleName(m_characterStyleName);
attr.SetParagraphStyleName(m_paragraphStyleName);
attr.SetListStyleName(m_listStyleName);
attr.SetTextEffects(m_textEffects);
attr.SetTextEffectFlags(m_textEffectFlags);
attr.SetOutlineLevel(m_outlineLevel);
attr.SetURL(m_urlTarget);
attr.SetFlags(GetFlags()); // Important: set after SetFont and others, since they set flags
return attr;
}
@ -7252,43 +7310,15 @@ bool wxRichTextAttr::operator== (const wxRichTextAttr& attr) const
GetTextEffects() == attr.GetTextEffects() &&
GetTextEffectFlags() == attr.GetTextEffectFlags() &&
m_fontSize == attr.m_fontSize &&
m_fontStyle == attr.m_fontStyle &&
m_fontWeight == attr.m_fontWeight &&
m_fontUnderlined == attr.m_fontUnderlined &&
m_fontFaceName == attr.m_fontFaceName &&
GetOutlineLevel() == attr.GetOutlineLevel() &&
GetFontSize() == attr.GetFontSize() &&
GetFontStyle() == attr.GetFontStyle() &&
GetFontWeight() == attr.GetFontWeight() &&
GetFontUnderlined() == attr.GetFontUnderlined() &&
GetFontFaceName() == attr.GetFontFaceName() &&
m_urlTarget == attr.m_urlTarget;
}
// Copy to a wxTextAttr
void wxRichTextAttr::CopyTo(wxTextAttrEx& attr) const
{
attr.SetTextColour(GetTextColour());
attr.SetBackgroundColour(GetBackgroundColour());
attr.SetAlignment(GetAlignment());
attr.SetTabs(GetTabs());
attr.SetLeftIndent(GetLeftIndent(), GetLeftSubIndent());
attr.SetRightIndent(GetRightIndent());
attr.SetFont(CreateFont());
attr.SetParagraphSpacingAfter(m_paragraphSpacingAfter);
attr.SetParagraphSpacingBefore(m_paragraphSpacingBefore);
attr.SetLineSpacing(m_lineSpacing);
attr.SetBulletStyle(m_bulletStyle);
attr.SetBulletNumber(m_bulletNumber);
attr.SetBulletText(m_bulletText);
attr.SetBulletName(m_bulletName);
attr.SetBulletFont(m_bulletFont);
attr.SetCharacterStyleName(m_characterStyleName);
attr.SetParagraphStyleName(m_paragraphStyleName);
attr.SetListStyleName(m_listStyleName);
attr.SetTextEffects(m_textEffects);
attr.SetTextEffectFlags(m_textEffectFlags);
attr.SetURL(m_urlTarget);
attr.SetFlags(GetFlags()); // Important: set after SetFont and others, since they set flags
GetURL() == attr.GetURL();
}
// Create font from font attributes.
@ -7422,6 +7452,9 @@ wxRichTextAttr wxRichTextAttr::Combine(const wxRichTextAttr& attr,
newAttr.SetTextEffectFlags(attr.GetTextEffectFlags());
}
if (attr.HasOutlineLevel())
newAttr.SetOutlineLevel(attr.GetOutlineLevel());
return newAttr;
}
@ -7444,6 +7477,7 @@ void wxTextAttrEx::Init()
m_textEffects = wxTEXT_ATTR_EFFECT_NONE;
m_textEffectFlags = wxTEXT_ATTR_EFFECT_NONE;
m_bulletNumber = 0;
m_outlineLevel = 0;
}
// Copy
@ -7465,6 +7499,7 @@ void wxTextAttrEx::Copy(const wxTextAttrEx& attr)
m_urlTarget = attr.m_urlTarget;
m_textEffects = attr.m_textEffects;
m_textEffectFlags = attr.m_textEffectFlags;
m_outlineLevel = attr.m_outlineLevel;
}
// Assignment from a wxTextAttrEx object
@ -7483,10 +7518,12 @@ void wxTextAttrEx::operator= (const wxTextAttr& attr)
bool wxTextAttrEx::operator== (const wxTextAttrEx& attr) const
{
return (
GetFlags() == attr.GetFlags() &&
GetTextColour() == attr.GetTextColour() &&
GetBackgroundColour() == attr.GetBackgroundColour() &&
GetFont() == attr.GetFont() &&
GetTextEffects() == attr.GetTextEffects() &&
GetTextEffectFlags() == attr.GetTextEffectFlags() &&
GetAlignment() == attr.GetAlignment() &&
GetLeftIndent() == attr.GetLeftIndent() &&
GetRightIndent() == attr.GetRightIndent() &&
@ -7503,6 +7540,7 @@ bool wxTextAttrEx::operator== (const wxTextAttrEx& attr) const
GetCharacterStyleName() == attr.GetCharacterStyleName() &&
GetParagraphStyleName() == attr.GetParagraphStyleName() &&
GetListStyleName() == attr.GetListStyleName() &&
GetOutlineLevel() == attr.GetOutlineLevel() &&
GetURL() == attr.GetURL());
}
@ -7660,6 +7698,9 @@ wxTextAttrEx wxTextAttrEx::CombineEx(const wxTextAttrEx& attr,
newAttr.SetTextEffectFlags(attr.GetTextEffectFlags());
}
if (attr.HasOutlineLevel())
newAttr.SetOutlineLevel(attr.GetOutlineLevel());
return newAttr;
}

View File

@ -6,7 +6,7 @@
<string name="title">""</string>
<string name="author">""</string>
<string name="description">""</string>
<long name="doc_count">283</long>
<long name="doc_count">285</long>
<string name="xrc_filename">""</string>
<bool name="convert_images_to_xpm">0</bool>
<bool name="inline_images">0</bool>
@ -273,6 +273,14 @@
<string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Vertical"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
@ -1658,14 +1666,6 @@
<string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Vertical"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
@ -2481,7 +2481,7 @@
<string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Horizontal"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
@ -2552,7 +2552,7 @@
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
@ -2637,7 +2637,7 @@
<string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Horizontal"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
@ -2708,7 +2708,7 @@
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
@ -2793,7 +2793,7 @@
<string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Horizontal"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
@ -2864,7 +2864,7 @@
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
@ -2877,6 +2877,119 @@
<string name="proxy-Custom ctor arguments">""</string>
</document>
</document>
<document>
<string name="title">"wxStaticText: wxID_STATIC"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"statictext"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"10/11/2006"</string>
<string name="proxy-type">"wbStaticTextProxy"</string>
<string name="proxy-Id name">"wxID_STATIC"</string>
<long name="proxy-Id value">5105</long>
<string name="proxy-Class">"wxStaticText"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"&amp;Outline level:"</string>
<long name="proxy-Wrapping width">-1</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<bool name="proxy-wxALIGN_LEFT">0</bool>
<bool name="proxy-wxALIGN_RIGHT">0</bool>
<bool name="proxy-wxALIGN_CENTRE">0</bool>
<bool name="proxy-wxST_NO_AUTORESIZE">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">0</bool>
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
<bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">1</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
<document>
<string name="title">"wxComboBox: ID_RICHTEXTINDENTSSPACINGPAGE_OUTLINELEVEL"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"combobox"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="created">"10/11/2006"</string>
<string name="proxy-type">"wbComboBoxProxy"</string>
<string name="event-handler-0">"wxEVT_COMMAND_COMBOBOX_SELECTED|OnRichtextOutlinelevelSelected"</string>
<string name="proxy-Id name">"ID_RICHTEXTINDENTSSPACINGPAGE_OUTLINELEVEL"</string>
<long name="proxy-Id value">10105</long>
<string name="proxy-Class">"wxComboBox"</string>
<string name="proxy-Member variable name">"m_outlineLevelCtrl"</string>
<string name="proxy-Strings">"Normal|1|2|3|4|5|6|7|8|9"</string>
<string name="proxy-Initial value">"Normal"</string>
<string name="proxy-Help text">"The outline level."</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<bool name="proxy-wxCB_SIMPLE">0</bool>
<bool name="proxy-wxCB_DROPDOWN">0</bool>
<bool name="proxy-wxCB_READONLY">1</bool>
<bool name="proxy-wxCB_SORT">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
</document>
</document>
</document>
@ -3127,7 +3240,7 @@
<long name="locked">0</long>
<string name="created">"3/10/2006"</string>
<string name="proxy-type">"wbFlexGridSizerProxy"</string>
<string name="proxy-GrowableColumns">""</string>
<string name="proxy-GrowableColumns">"1"</string>
<string name="proxy-GrowableRows">""</string>
<long name="proxy-Columns">2</long>
<long name="proxy-Rows">2</long>
@ -3161,7 +3274,7 @@
<long name="proxy-Id value">5105</long>
<string name="proxy-Class">"wxStaticText"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"Before a paragraph:"</string>
<string name="proxy-Label">"&amp;Before a paragraph:"</string>
<long name="proxy-Wrapping width">-1</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
@ -3218,7 +3331,7 @@
<string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Horizontal"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
@ -3289,7 +3402,7 @@
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
@ -3317,7 +3430,7 @@
<long name="proxy-Id value">5105</long>
<string name="proxy-Class">"wxStaticText"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"After a paragraph:"</string>
<string name="proxy-Label">"&amp;After a paragraph:"</string>
<long name="proxy-Wrapping width">-1</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
@ -3374,9 +3487,9 @@
<string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Horizontal"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">0</bool>
<bool name="proxy-wxRIGHT">0</bool>
@ -3445,7 +3558,7 @@
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Stretch factor">1</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
@ -3473,7 +3586,7 @@
<long name="proxy-Id value">5105</long>
<string name="proxy-Class">"wxStaticText"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"Line spacing:"</string>
<string name="proxy-Label">"L&amp;ine spacing:"</string>
<long name="proxy-Wrapping width">-1</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
@ -3530,7 +3643,7 @@
<string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Horizontal"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignH">"Expand"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
@ -7621,6 +7734,14 @@
<string name="proxy-type">"wbBoxSizerProxy"</string>
<string name="proxy-Orientation">"Vertical"</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>

View File

@ -42,6 +42,8 @@ BEGIN_EVENT_TABLE( wxRichTextIndentsSpacingPage, wxPanel )
EVT_TEXT( ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT, wxRichTextIndentsSpacingPage::OnIndentRightUpdated )
EVT_COMBOBOX( ID_RICHTEXTINDENTSSPACINGPAGE_OUTLINELEVEL, wxRichTextIndentsSpacingPage::OnRichtextOutlinelevelSelected )
EVT_TEXT( ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE, wxRichTextIndentsSpacingPage::OnSpacingBeforeUpdated )
EVT_TEXT( ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_AFTER, wxRichTextIndentsSpacingPage::OnSpacingAfterUpdated )
@ -84,6 +86,7 @@ void wxRichTextIndentsSpacingPage::Init()
m_indentLeft = NULL;
m_indentLeftFirst = NULL;
m_indentRight = NULL;
m_outlineLevelCtrl = NULL;
m_spacingBefore = NULL;
m_spacingAfter = NULL;
m_spacingLine = NULL;
@ -203,87 +206,110 @@ void wxRichTextIndentsSpacingPage::CreateControls()
itemFlexGridSizer22->Add(itemStaticText23, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
wxBoxSizer* itemBoxSizer24 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer22->Add(itemBoxSizer24, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
itemFlexGridSizer22->Add(itemBoxSizer24, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_indentLeft = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT, _T(""), wxDefaultPosition, wxSize(50, -1), 0 );
m_indentLeft->SetHelpText(_("The left indent."));
if (ShowToolTips())
m_indentLeft->SetToolTip(_("The left indent."));
itemBoxSizer24->Add(m_indentLeft, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer24->Add(m_indentLeft, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText26 = new wxStaticText( itemPanel1, wxID_STATIC, _("Left (&first line):"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer22->Add(itemStaticText26, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
wxBoxSizer* itemBoxSizer27 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer22->Add(itemBoxSizer27, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
itemFlexGridSizer22->Add(itemBoxSizer27, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_indentLeftFirst = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT_FIRST, _T(""), wxDefaultPosition, wxSize(50, -1), 0 );
m_indentLeftFirst->SetHelpText(_("The first line indent."));
if (ShowToolTips())
m_indentLeftFirst->SetToolTip(_("The first line indent."));
itemBoxSizer27->Add(m_indentLeftFirst, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer27->Add(m_indentLeftFirst, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText29 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Right:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer22->Add(itemStaticText29, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
wxBoxSizer* itemBoxSizer30 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer22->Add(itemBoxSizer30, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
itemFlexGridSizer22->Add(itemBoxSizer30, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_indentRight = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT, _T(""), wxDefaultPosition, wxSize(50, -1), 0 );
m_indentRight->SetHelpText(_("The right indent."));
if (ShowToolTips())
m_indentRight->SetToolTip(_("The right indent."));
itemBoxSizer30->Add(m_indentRight, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer30->Add(m_indentRight, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText32 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Outline level:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer22->Add(itemStaticText32, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
wxString m_outlineLevelCtrlStrings[] = {
_("Normal"),
_("1"),
_("2"),
_("3"),
_("4"),
_("5"),
_("6"),
_("7"),
_("8"),
_("9")
};
m_outlineLevelCtrl = new wxComboBox( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_OUTLINELEVEL, _("Normal"), wxDefaultPosition, wxDefaultSize, 10, m_outlineLevelCtrlStrings, wxCB_READONLY );
m_outlineLevelCtrl->SetStringSelection(_("Normal"));
m_outlineLevelCtrl->SetHelpText(_("The outline level."));
if (ShowToolTips())
m_outlineLevelCtrl->SetToolTip(_("The outline level."));
itemFlexGridSizer22->Add(m_outlineLevelCtrl, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer4->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
wxStaticLine* itemStaticLine33 = new wxStaticLine( itemPanel1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
itemBoxSizer4->Add(itemStaticLine33, 0, wxGROW|wxTOP|wxBOTTOM, 5);
wxStaticLine* itemStaticLine35 = new wxStaticLine( itemPanel1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
itemBoxSizer4->Add(itemStaticLine35, 0, wxGROW|wxTOP|wxBOTTOM, 5);
itemBoxSizer4->Add(2, 1, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5);
wxBoxSizer* itemBoxSizer35 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer4->Add(itemBoxSizer35, 0, wxGROW, 5);
wxBoxSizer* itemBoxSizer37 = new wxBoxSizer(wxVERTICAL);
itemBoxSizer4->Add(itemBoxSizer37, 0, wxGROW, 5);
wxStaticText* itemStaticText36 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Spacing (tenths of a mm)"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer35->Add(itemStaticText36, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
wxStaticText* itemStaticText38 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Spacing (tenths of a mm)"), wxDefaultPosition, wxDefaultSize, 0 );
itemBoxSizer37->Add(itemStaticText38, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
wxBoxSizer* itemBoxSizer37 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer35->Add(itemBoxSizer37, 0, wxALIGN_LEFT|wxALL, 5);
wxBoxSizer* itemBoxSizer39 = new wxBoxSizer(wxHORIZONTAL);
itemBoxSizer37->Add(itemBoxSizer39, 0, wxALIGN_LEFT|wxALL, 5);
itemBoxSizer37->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL, 5);
itemBoxSizer39->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL, 5);
wxFlexGridSizer* itemFlexGridSizer39 = new wxFlexGridSizer(2, 2, 0, 0);
itemBoxSizer37->Add(itemFlexGridSizer39, 0, wxALIGN_CENTER_VERTICAL, 5);
wxFlexGridSizer* itemFlexGridSizer41 = new wxFlexGridSizer(2, 2, 0, 0);
itemFlexGridSizer41->AddGrowableCol(1);
itemBoxSizer39->Add(itemFlexGridSizer41, 0, wxALIGN_CENTER_VERTICAL, 5);
wxStaticText* itemStaticText40 = new wxStaticText( itemPanel1, wxID_STATIC, _("Before a paragraph:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer39->Add(itemStaticText40, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
wxStaticText* itemStaticText42 = new wxStaticText( itemPanel1, wxID_STATIC, _("&Before a paragraph:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer41->Add(itemStaticText42, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
wxBoxSizer* itemBoxSizer41 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer39->Add(itemBoxSizer41, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
wxBoxSizer* itemBoxSizer43 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer41->Add(itemBoxSizer43, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_spacingBefore = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE, _T(""), wxDefaultPosition, wxSize(50, -1), 0 );
m_spacingBefore->SetHelpText(_("The spacing before the paragraph."));
if (ShowToolTips())
m_spacingBefore->SetToolTip(_("The spacing before the paragraph."));
itemBoxSizer41->Add(m_spacingBefore, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer43->Add(m_spacingBefore, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText43 = new wxStaticText( itemPanel1, wxID_STATIC, _("After a paragraph:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer39->Add(itemStaticText43, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
wxStaticText* itemStaticText45 = new wxStaticText( itemPanel1, wxID_STATIC, _("&After a paragraph:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer41->Add(itemStaticText45, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
wxBoxSizer* itemBoxSizer44 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer39->Add(itemBoxSizer44, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
wxBoxSizer* itemBoxSizer46 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer41->Add(itemBoxSizer46, 1, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
m_spacingAfter = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_AFTER, _T(""), wxDefaultPosition, wxSize(50, -1), 0 );
if (ShowToolTips())
m_spacingAfter->SetToolTip(_("The spacing after the paragraph."));
itemBoxSizer44->Add(m_spacingAfter, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer46->Add(m_spacingAfter, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText46 = new wxStaticText( itemPanel1, wxID_STATIC, _("Line spacing:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer39->Add(itemStaticText46, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
wxStaticText* itemStaticText48 = new wxStaticText( itemPanel1, wxID_STATIC, _("L&ine spacing:"), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer41->Add(itemStaticText48, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE, 5);
wxBoxSizer* itemBoxSizer47 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer39->Add(itemBoxSizer47, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
wxBoxSizer* itemBoxSizer49 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer41->Add(itemBoxSizer49, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
wxString m_spacingLineStrings[] = {
_("Single"),
@ -295,7 +321,7 @@ void wxRichTextIndentsSpacingPage::CreateControls()
m_spacingLine->SetHelpText(_("The line spacing."));
if (ShowToolTips())
m_spacingLine->SetToolTip(_("The line spacing."));
itemBoxSizer47->Add(m_spacingLine, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer49->Add(m_spacingLine, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
itemBoxSizer3->Add(5, 5, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
@ -424,6 +450,10 @@ bool wxRichTextIndentsSpacingPage::TransferDataFromWindow()
attr->SetFlags(attr->GetFlags() & (~wxTEXT_ATTR_LINE_SPACING));
else
attr->SetLineSpacing(lineSpacing);
int outlineLevel = m_outlineLevelCtrl->GetSelection();
if (outlineLevel != wxNOT_FOUND)
attr->SetOutlineLevel(outlineLevel);
return true;
}
@ -512,6 +542,19 @@ bool wxRichTextIndentsSpacingPage::TransferDataToWindow()
else
m_spacingLine->SetSelection(-1);
if (attr->HasOutlineLevel())
{
int outlineLevel = attr->GetOutlineLevel();
if (outlineLevel < 0)
outlineLevel = 0;
if (outlineLevel > 9)
outlineLevel = 9;
m_outlineLevelCtrl->SetSelection(outlineLevel);
}
else
m_outlineLevelCtrl->SetSelection(-1);
UpdatePreview();
m_dontUpdate = false;
@ -673,4 +716,14 @@ void wxRichTextIndentsSpacingPage::OnSpacingLineSelected( wxCommandEvent& WXUNUS
UpdatePreview();
}
/*!
* wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_OUTLINELEVEL
*/
void wxRichTextIndentsSpacingPage::OnRichtextOutlinelevelSelected( wxCommandEvent& WXUNUSED(event) )
{
if (!m_dontUpdate)
UpdatePreview();
}
#endif // wxUSE_RICHTEXT

View File

@ -996,6 +996,10 @@ wxString wxRichTextXMLHandler::CreateStyle(const wxTextAttrEx& attr, bool isPara
{
str << wxT(" pagebreak=\"1\"");
}
if (attr.HasOutlineLevel())
str << wxT(" outlinelevel=\"") << (int) attr.GetOutlineLevel() << wxT("\"");
}
return str;
@ -1195,6 +1199,12 @@ bool wxRichTextXMLHandler::GetStyle(wxTextAttrEx& attr, wxXmlNode* node, bool is
{
attr.SetPageBreak(wxAtoi(value) != 0);
}
value = node->GetPropVal(wxT("outlinelevel"), wxEmptyString);
if (!value.IsEmpty())
{
attr.SetOutlineLevel(wxAtoi(value) != 0);
}
}
return true;