+ if (flags & wxTEXT_ATTR_FONT_FAMILY)
+ {
+ // wxFont might not know its family, avoid setting m_fontFamily to an
+ // invalid value and rather pretend that we don't have any font family
+ // information at all in this case
+ const wxFontFamily fontFamily = font.GetFamily();
+ if ( fontFamily == wxFONTFAMILY_UNKNOWN )
+ flags &= ~wxTEXT_ATTR_FONT_FAMILY;
+ else
+ m_fontFamily = fontFamily;
+ }
+
+ m_flags |= flags;
+
+ return true;
+}
+
+// Resets bits in destination so new attributes aren't merged with mutually exclusive ones
+static bool wxResetIncompatibleBits(const int mask, const int srcFlags, int& destFlags, int& destBits)
+{
+ if ((srcFlags & mask) && (destFlags & mask))
+ {
+ destBits &= ~mask;
+ destFlags &= ~mask;
+ }
+