X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bc00e7155e50add264599856a39e0ceb2db19541..aba4387c4c71fb812c6a07a7abb495606c5ef4af:/src/msw/textctrl.cpp diff --git a/src/msw/textctrl.cpp b/src/msw/textctrl.cpp index 0676f10f0d..96ff0f3edd 100644 --- a/src/msw/textctrl.cpp +++ b/src/msw/textctrl.cpp @@ -28,6 +28,8 @@ #pragma hdrstop #endif +#if wxUSE_TEXTCTRL + #ifndef WX_PRECOMP #include "wx/textctrl.h" #include "wx/settings.h" @@ -54,12 +56,6 @@ #include #include -#if wxUSE_IOSTREAMH -# include -#else -# include -#endif - #if wxUSE_RICHEDIT && (!defined(__GNUWIN32_OLD__) || defined(__CYGWIN10__)) #include #endif @@ -69,6 +65,10 @@ #define CFM_CHARSET 0x08000000 #endif // CFM_CHARSET +#ifndef CFM_BACKCOLOR + #define CFM_BACKCOLOR 0x04000000 +#endif + // ---------------------------------------------------------------------------- // private classes // ---------------------------------------------------------------------------- @@ -1271,7 +1271,8 @@ bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style) if ( style.HasFont() ) { - cf.dwMask |= CFM_FACE | CFM_SIZE | CFM_CHARSET; + cf.dwMask |= CFM_FACE | CFM_SIZE | CFM_CHARSET | + CFM_ITALIC | CFM_BOLD | CFM_UNDERLINE; // fill in data from LOGFONT but recalculate lfHeight because we need // the real height in twips and not the negative number which @@ -1284,22 +1285,21 @@ bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style) cf.bPitchAndFamily = lf.lfPitchAndFamily; wxStrncpy( cf.szFaceName, lf.lfFaceName, WXSIZEOF(cf.szFaceName) ); - // also deal with underline/italic/bold attributes + // also deal with underline/italic/bold attributes: note that we must + // always set CFM_ITALIC &c bits in dwMask, even if we don't set the + // style to allow clearing it if ( lf.lfItalic ) { - cf.dwMask |= CFM_ITALIC; cf.dwEffects |= CFE_ITALIC; } if ( lf.lfWeight == FW_BOLD ) { - cf.dwMask |= CFM_BOLD; cf.dwEffects |= CFE_BOLD; } if ( lf.lfUnderline ) { - cf.dwMask |= CFM_UNDERLINE; cf.dwEffects |= CFE_UNDERLINE; } @@ -1313,16 +1313,13 @@ bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style) } #if wxUSE_RICHEDIT2 -#ifndef CFM_BACKCOLOR -#define CFM_BACKCOLOR 0x04000000 -#endif - if ( wxRichEditModule::GetLoadedVersion() > 1 && style.HasBackgroundColour() ) { cf.dwMask |= CFM_BACKCOLOR; cf.crBackColor = wxColourToRGB(style.GetBackgroundColour()); } -#endif +#endif // wxUSE_RICHEDIT2 + // do format the selection bool ok = ::SendMessage(GetHwnd(), EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf) != 0; @@ -1403,3 +1400,4 @@ bool wxRichEditModule::Load(int version) #endif // wxUSE_RICHEDIT +#endif // wxUSE_TEXTCTRL