Added flag for removing attributes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@44399 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -814,6 +814,7 @@ and not the content. This allows content styling to be preserved independently f
|
|||||||
\item wxRICHTEXT\_SETSTYLE\_CHARACTERS\_ONLY: specifies that the style should only be applied to characters,
|
\item wxRICHTEXT\_SETSTYLE\_CHARACTERS\_ONLY: specifies that the style should only be applied to characters,
|
||||||
and not the paragraph. This allows content styling to be preserved independently from that of e.g. a named paragraph style.
|
and not the paragraph. This allows content styling to be preserved independently from that of e.g. a named paragraph style.
|
||||||
\item wxRICHTEXT\_SETSTYLE\_RESET: resets (clears) the existing style before applying the new style.
|
\item wxRICHTEXT\_SETSTYLE\_RESET: resets (clears) the existing style before applying the new style.
|
||||||
|
\item wxRICHTEXT\_SETSTYLE\_REMOVE: removes the specified style. Only the style flags are used in this operation.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\membersection{wxRichTextBuffer::SetStyleSheet}\label{wxrichtextbuffersetstylesheet}
|
\membersection{wxRichTextBuffer::SetStyleSheet}\label{wxrichtextbuffersetstylesheet}
|
||||||
|
@@ -1407,6 +1407,7 @@ and not the content. This allows content styling to be preserved independently f
|
|||||||
\item wxRICHTEXT\_SETSTYLE\_CHARACTERS\_ONLY: specifies that the style should only be applied to characters,
|
\item wxRICHTEXT\_SETSTYLE\_CHARACTERS\_ONLY: specifies that the style should only be applied to characters,
|
||||||
and not the paragraph. This allows content styling to be preserved independently from that of e.g. a named paragraph style.
|
and not the paragraph. This allows content styling to be preserved independently from that of e.g. a named paragraph style.
|
||||||
\item wxRICHTEXT\_SETSTYLE\_RESET: resets (clears) the existing style before applying the new style.
|
\item wxRICHTEXT\_SETSTYLE\_RESET: resets (clears) the existing style before applying the new style.
|
||||||
|
\item wxRICHTEXT\_SETSTYLE\_REMOVE: removes the specified style. Only the style flags are used in this operation.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\membersection{wxRichTextCtrl::SetStyleSheet}\label{wxrichtextctrlsetstylesheet}
|
\membersection{wxRichTextCtrl::SetStyleSheet}\label{wxrichtextctrlsetstylesheet}
|
||||||
|
@@ -183,6 +183,9 @@ class WXDLLIMPEXP_RICHTEXT wxRichTextBuffer;
|
|||||||
// Resets the existing style before applying the new style
|
// Resets the existing style before applying the new style
|
||||||
#define wxRICHTEXT_SETSTYLE_RESET 0x40
|
#define wxRICHTEXT_SETSTYLE_RESET 0x40
|
||||||
|
|
||||||
|
// Removes the given style instead of applying it
|
||||||
|
#define wxRICHTEXT_SETSTYLE_REMOVE 0x80
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Flags for text insertion
|
* Flags for text insertion
|
||||||
*/
|
*/
|
||||||
@@ -2319,6 +2322,9 @@ WXDLLIMPEXP_RICHTEXT bool wxRichTextApplyStyle(wxRichTextAttr& destStyle, const
|
|||||||
WXDLLIMPEXP_RICHTEXT bool wxRichTextApplyStyle(wxTextAttrEx& destStyle, const wxRichTextAttr& style, wxRichTextAttr* compareWith = NULL);
|
WXDLLIMPEXP_RICHTEXT bool wxRichTextApplyStyle(wxTextAttrEx& destStyle, const wxRichTextAttr& style, wxRichTextAttr* compareWith = NULL);
|
||||||
WXDLLIMPEXP_RICHTEXT bool wxRichTextApplyStyle(wxRichTextAttr& destStyle, const wxRichTextAttr& style, wxRichTextAttr* compareWith = NULL);
|
WXDLLIMPEXP_RICHTEXT bool wxRichTextApplyStyle(wxRichTextAttr& destStyle, const wxRichTextAttr& style, wxRichTextAttr* compareWith = NULL);
|
||||||
|
|
||||||
|
// Remove attributes
|
||||||
|
WXDLLIMPEXP_RICHTEXT bool wxRichTextRemoveStyle(wxTextAttrEx& destStyle, const wxRichTextAttr& style);
|
||||||
|
|
||||||
/// Combine two bitlists
|
/// Combine two bitlists
|
||||||
WXDLLIMPEXP_RICHTEXT bool wxRichTextCombineBitlists(int& valueA, int valueB, int& flagsA, int flagsB);
|
WXDLLIMPEXP_RICHTEXT bool wxRichTextCombineBitlists(int& valueA, int valueB, int& flagsA, int flagsB);
|
||||||
|
|
||||||
|
@@ -1561,11 +1561,12 @@ bool wxRichTextParagraphLayoutBox::SetStyle(const wxRichTextRange& range, const
|
|||||||
bool parasOnly = ((flags & wxRICHTEXT_SETSTYLE_PARAGRAPHS_ONLY) != 0);
|
bool parasOnly = ((flags & wxRICHTEXT_SETSTYLE_PARAGRAPHS_ONLY) != 0);
|
||||||
bool charactersOnly = ((flags & wxRICHTEXT_SETSTYLE_CHARACTERS_ONLY) != 0);
|
bool charactersOnly = ((flags & wxRICHTEXT_SETSTYLE_CHARACTERS_ONLY) != 0);
|
||||||
bool resetExistingStyle = ((flags & wxRICHTEXT_SETSTYLE_RESET) != 0);
|
bool resetExistingStyle = ((flags & wxRICHTEXT_SETSTYLE_RESET) != 0);
|
||||||
|
bool removeStyle = ((flags & wxRICHTEXT_SETSTYLE_REMOVE) != 0);
|
||||||
|
|
||||||
// Apply paragraph style first, if any
|
// Apply paragraph style first, if any
|
||||||
wxRichTextAttr wholeStyle(style);
|
wxRichTextAttr wholeStyle(style);
|
||||||
|
|
||||||
if (wholeStyle.HasParagraphStyleName() && GetStyleSheet())
|
if (!removeStyle && wholeStyle.HasParagraphStyleName() && GetStyleSheet())
|
||||||
{
|
{
|
||||||
wxRichTextParagraphStyleDefinition* def = GetStyleSheet()->FindParagraphStyle(wholeStyle.GetParagraphStyleName());
|
wxRichTextParagraphStyleDefinition* def = GetStyleSheet()->FindParagraphStyle(wholeStyle.GetParagraphStyleName());
|
||||||
if (def)
|
if (def)
|
||||||
@@ -1576,7 +1577,7 @@ bool wxRichTextParagraphLayoutBox::SetStyle(const wxRichTextRange& range, const
|
|||||||
wxRichTextAttr characterAttributes(wholeStyle);
|
wxRichTextAttr characterAttributes(wholeStyle);
|
||||||
characterAttributes.SetFlags(characterAttributes.GetFlags() & (wxTEXT_ATTR_CHARACTER));
|
characterAttributes.SetFlags(characterAttributes.GetFlags() & (wxTEXT_ATTR_CHARACTER));
|
||||||
|
|
||||||
if (characterAttributes.HasCharacterStyleName() && GetStyleSheet())
|
if (!removeStyle && characterAttributes.HasCharacterStyleName() && GetStyleSheet())
|
||||||
{
|
{
|
||||||
wxRichTextCharacterStyleDefinition* def = GetStyleSheet()->FindCharacterStyle(characterAttributes.GetCharacterStyleName());
|
wxRichTextCharacterStyleDefinition* def = GetStyleSheet()->FindCharacterStyle(characterAttributes.GetCharacterStyleName());
|
||||||
if (def)
|
if (def)
|
||||||
@@ -1630,6 +1631,11 @@ bool wxRichTextParagraphLayoutBox::SetStyle(const wxRichTextRange& range, const
|
|||||||
// to be included in the paragraph style
|
// to be included in the paragraph style
|
||||||
if ((paragraphStyle || parasOnly) && !charactersOnly)
|
if ((paragraphStyle || parasOnly) && !charactersOnly)
|
||||||
{
|
{
|
||||||
|
if (removeStyle)
|
||||||
|
{
|
||||||
|
// Removes the given style from the paragraph
|
||||||
|
wxRichTextRemoveStyle(newPara->GetAttributes(), style);
|
||||||
|
}
|
||||||
if (resetExistingStyle)
|
if (resetExistingStyle)
|
||||||
newPara->GetAttributes() = wholeStyle;
|
newPara->GetAttributes() = wholeStyle;
|
||||||
else
|
else
|
||||||
@@ -1705,6 +1711,11 @@ bool wxRichTextParagraphLayoutBox::SetStyle(const wxRichTextRange& range, const
|
|||||||
{
|
{
|
||||||
wxRichTextObject* child = node2->GetData();
|
wxRichTextObject* child = node2->GetData();
|
||||||
|
|
||||||
|
if (removeStyle)
|
||||||
|
{
|
||||||
|
// Removes the given style from the paragraph
|
||||||
|
wxRichTextRemoveStyle(child->GetAttributes(), style);
|
||||||
|
}
|
||||||
if (resetExistingStyle)
|
if (resetExistingStyle)
|
||||||
child->GetAttributes() = characterAttributes;
|
child->GetAttributes() = characterAttributes;
|
||||||
else
|
else
|
||||||
@@ -7099,6 +7110,17 @@ bool wxRichTextApplyStyle(wxTextAttrEx& destStyle, const wxRichTextAttr& style,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Remove attributes
|
||||||
|
bool wxRichTextRemoveStyle(wxTextAttrEx& destStyle, const wxRichTextAttr& style)
|
||||||
|
{
|
||||||
|
int flags = style.GetFlags();
|
||||||
|
int destFlags = destStyle.GetFlags();
|
||||||
|
|
||||||
|
destStyle.SetFlags(destFlags & ~flags);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/// Combine two bitlists, specifying the bits of interest with separate flags.
|
/// Combine two bitlists, specifying the bits of interest with separate flags.
|
||||||
bool wxRichTextCombineBitlists(int& valueA, int valueB, int& flagsA, int flagsB)
|
bool wxRichTextCombineBitlists(int& valueA, int valueB, int& flagsA, int flagsB)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user