projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
don't use static box as a parent
[wxWidgets.git]
/
src
/
msw
/
textctrl.cpp
diff --git
a/src/msw/textctrl.cpp
b/src/msw/textctrl.cpp
index eb624126c273fd0c8e88c217265f3c8cb1962473..96ff0f3edd29711a668c67bd5e095b2c34ce6be8 100644
(file)
--- a/
src/msw/textctrl.cpp
+++ b/
src/msw/textctrl.cpp
@@
-28,6
+28,8
@@
#pragma hdrstop
#endif
#pragma hdrstop
#endif
+#if wxUSE_TEXTCTRL
+
#ifndef WX_PRECOMP
#include "wx/textctrl.h"
#include "wx/settings.h"
#ifndef WX_PRECOMP
#include "wx/textctrl.h"
#include "wx/settings.h"
@@
-54,13
+56,7
@@
#include <stdlib.h>
#include <sys/types.h>
#include <stdlib.h>
#include <sys/types.h>
-#if wxUSE_IOSTREAMH
-# include <fstream.h>
-#else
-# include <fstream>
-#endif
-
-#if wxUSE_RICHEDIT && !defined(__GNUWIN32_OLD__)
+#if wxUSE_RICHEDIT && (!defined(__GNUWIN32_OLD__) || defined(__CYGWIN10__))
#include <richedit.h>
#endif
#include <richedit.h>
#endif
@@
-69,6
+65,10
@@
#define CFM_CHARSET 0x08000000
#endif // CFM_CHARSET
#define CFM_CHARSET 0x08000000
#endif // CFM_CHARSET
+#ifndef CFM_BACKCOLOR
+ #define CFM_BACKCOLOR 0x04000000
+#endif
+
// ----------------------------------------------------------------------------
// private classes
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// private classes
// ----------------------------------------------------------------------------
@@
-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
// 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();
}
return !style.HasBackgroundColour();
}
@@
-1260,13
+1261,18
@@
bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
SendMessage(GetHwnd(), EM_SETSEL, (WPARAM) start, (LPARAM) end);
// initialize CHARFORMAT struct
SendMessage(GetHwnd(), EM_SETSEL, (WPARAM) start, (LPARAM) end);
// initialize CHARFORMAT struct
+#if wxUSE_RICHEDIT2
+ CHARFORMAT2 cf;
+#else
CHARFORMAT cf;
CHARFORMAT cf;
+#endif
wxZeroMemory(cf);
cf.cbSize = sizeof(cf);
if ( style.HasFont() )
{
wxZeroMemory(cf);
cf.cbSize = sizeof(cf);
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
// fill in data from LOGFONT but recalculate lfHeight because we need
// the real height in twips and not the negative number which
@@
-1279,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) );
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 )
{
if ( lf.lfItalic )
{
- cf.dwMask |= CFM_ITALIC;
cf.dwEffects |= CFE_ITALIC;
}
if ( lf.lfWeight == FW_BOLD )
{
cf.dwEffects |= CFE_ITALIC;
}
if ( lf.lfWeight == FW_BOLD )
{
- cf.dwMask |= CFM_BOLD;
cf.dwEffects |= CFE_BOLD;
}
if ( lf.lfUnderline )
{
cf.dwEffects |= CFE_BOLD;
}
if ( lf.lfUnderline )
{
- cf.dwMask |= CFM_UNDERLINE;
cf.dwEffects |= CFE_UNDERLINE;
}
cf.dwEffects |= CFE_UNDERLINE;
}
@@
-1307,6
+1312,14
@@
bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
cf.crTextColor = wxColourToRGB(style.GetTextColour());
}
cf.crTextColor = wxColourToRGB(style.GetTextColour());
}
+#if wxUSE_RICHEDIT2
+ if ( wxRichEditModule::GetLoadedVersion() > 1 && style.HasBackgroundColour() )
+ {
+ cf.dwMask |= CFM_BACKCOLOR;
+ cf.crBackColor = wxColourToRGB(style.GetBackgroundColour());
+ }
+#endif // wxUSE_RICHEDIT2
+
// do format the selection
bool ok = ::SendMessage(GetHwnd(), EM_SETCHARFORMAT,
SCF_SELECTION, (LPARAM)&cf) != 0;
// do format the selection
bool ok = ::SendMessage(GetHwnd(), EM_SETCHARFORMAT,
SCF_SELECTION, (LPARAM)&cf) != 0;
@@
-1387,3
+1400,4
@@
bool wxRichEditModule::Load(int version)
#endif // wxUSE_RICHEDIT
#endif // wxUSE_RICHEDIT
+#endif // wxUSE_TEXTCTRL