+/// Does all of the selection, or the current caret position, have this wxTextAttrEffects flag(s)?
+bool wxRichTextCtrl::DoesSelectionHaveTextEffectFlag(int flag)
+{
+ wxRichTextAttr attr;
+ attr.SetFlags(wxTEXT_ATTR_EFFECTS);
+ attr.SetTextEffectFlags(flag);
+ attr.SetTextEffects(flag);
+
+ if (HasSelection())
+ {
+ return HasCharacterAttributes(GetSelectionRange(), attr);
+ }
+ else
+ {
+ // If no selection, then we need to combine current style with default style
+ // to see what the effect would be if we started typing.
+ long pos = GetAdjustedCaretPosition(GetCaretPosition());
+ if (GetStyle(pos, attr))
+ {
+ if (IsDefaultStyleShowing())
+ wxRichTextApplyStyle(attr, GetDefaultStyleEx());
+ return (attr.GetTextEffectFlags() & flag) != 0;
+ }
+ }
+ return false;
+}
+