Allowed MSW wxTrextCtrl styling to also set the background colour,
added wxUSE_RICHEDIT2 so this can be disabled for compilers that don't have the right structures. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10407 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
4ceb1196bb
commit
be329a3de3
@ -682,9 +682,15 @@
|
||||
// Recommended setting: 1, only set it to 0 if your compiler doesn't have
|
||||
// or can't compile <richedit.h>
|
||||
#if defined(__WIN95__) && !defined(__TWIN32__) && !defined(__GNUWIN32_OLD__)
|
||||
#define wxUSE_RICHEDIT 1
|
||||
#define wxUSE_RICHEDIT 1
|
||||
|
||||
// TODO: This should be ifdef'ed for any compilers that don't support
|
||||
// RichEdit 2.0 but do have RichEdit 1.0...
|
||||
#define wxUSE_RICHEDIT2 1
|
||||
|
||||
#else
|
||||
#define wxUSE_RICHEDIT 0
|
||||
#define wxUSE_RICHEDIT 0
|
||||
#define wxUSE_RICHEDIT2 0
|
||||
#endif
|
||||
|
||||
// Set this to 1 to enable support for the owner-drawn menu and listboxes. This
|
||||
|
@ -1233,10 +1233,11 @@ bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
|
||||
|
||||
// the rich text control doesn't handle setting background colour, so don't
|
||||
// even try if it's the only thing we want to change
|
||||
if ( !style.HasFont() && !style.HasTextColour() )
|
||||
if ( wxRichEditModule::GetLoadedVersion() < 2 &&
|
||||
!style.HasFont() && !style.HasTextColour() )
|
||||
{
|
||||
// nothing to do: return TRUE if there was really nothing to doand
|
||||
// FALSE fi we failed to set bg colour
|
||||
// nothing to do: return TRUE if there was really nothing to do and
|
||||
// FALSE if we failed to set bg colour
|
||||
return !style.HasBackgroundColour();
|
||||
}
|
||||
|
||||
@ -1260,7 +1261,11 @@ bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
|
||||
SendMessage(GetHwnd(), EM_SETSEL, (WPARAM) start, (LPARAM) end);
|
||||
|
||||
// initialize CHARFORMAT struct
|
||||
#if wxUSE_RICHEDIT2
|
||||
CHARFORMAT2 cf;
|
||||
#else
|
||||
CHARFORMAT cf;
|
||||
#endif
|
||||
wxZeroMemory(cf);
|
||||
cf.cbSize = sizeof(cf);
|
||||
|
||||
@ -1307,6 +1312,13 @@ bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
|
||||
cf.crTextColor = wxColourToRGB(style.GetTextColour());
|
||||
}
|
||||
|
||||
#if wxUSE_RICHEDIT2
|
||||
if ( wxRichEditModule::GetLoadedVersion() > 1 && style.HasBackgroundColour() )
|
||||
{
|
||||
cf.dwMask |= CFM_BACKCOLOR;
|
||||
cf.crBackColor = wxColourToRGB(style.GetBackgroundColour());
|
||||
}
|
||||
#endif
|
||||
// do format the selection
|
||||
bool ok = ::SendMessage(GetHwnd(), EM_SETCHARFORMAT,
|
||||
SCF_SELECTION, (LPARAM)&cf) != 0;
|
||||
|
Loading…
Reference in New Issue
Block a user