#include "wx/settings.h"
#include "wx/brush.h"
#include "wx/utils.h"
+ #include "wx/intl.h"
#include "wx/log.h"
+ #include "wx/app.h"
#endif
#if wxUSE_CLIPBOARD
- #include "wx/app.h"
#include "wx/clipbrd.h"
#endif
# include <fstream>
#endif
-#if wxUSE_RICHEDIT && (!defined(__GNUWIN32__) || defined(wxUSE_NORLANDER_HEADERS))
+#if wxUSE_RICHEDIT
#include <richedit.h>
#endif
if ( !CreateBase(parent, id, pos, size, style, validator, name) )
return FALSE;
- // Validator was set in CreateBase
- //SetValidator(validator);
if ( parent )
parent->AddChild(this);
{
wxASSERT_MSG( !(m_windowStyle & wxTE_PROCESS_ENTER),
wxT("wxTE_PROCESS_ENTER style is ignored for multiline "
- "text controls (they always process it)") );
+ "text controls (they always process it)") );
msStyle |= ES_MULTILINE | ES_WANTRETURN;
if ((m_windowStyle & wxTE_NO_VSCROLL) == 0)
#if wxUSE_RICHEDIT
if ( m_windowStyle & wxTE_RICH )
{
- msStyle |= ES_AUTOVSCROLL;
- m_isRich = TRUE;
- windowClass = wxT("RICHEDIT");
+ static bool s_errorGiven = FALSE; // MT-FIXME
+
+ // only give the error msg once if the DLL can't be loaded
+ if ( !s_errorGiven )
+ {
+ // first try to load the RichEdit DLL (will do nothing if already
+ // done)
+ if ( !wxTheApp->InitRichEdit() )
+ {
+ wxLogError(_("Impossible to create a rich edit control, "
+ "using simple text control instead."));
+
+ s_errorGiven = TRUE;
+ }
+ }
+
+ if ( s_errorGiven )
+ {
+ m_isRich = FALSE;
+ }
+ else
+ {
+ msStyle |= ES_AUTOVSCROLL;
+ m_isRich = TRUE;
+ windowClass = wxT("RICHEDIT");
+ }
}
else
m_isRich = FALSE;
}
}
-WXHBRUSH wxTextCtrl::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
- WXUINT message, WXWPARAM wParam,
- WXLPARAM lParam)
-{
-#if wxUSE_CTL3D
- if ( m_useCtl3D )
- {
- HBRUSH hbrush = Ctl3dCtlColorEx(message, wParam, lParam);
- return (WXHBRUSH) hbrush;
- }
-#endif
-
- HDC hdc = (HDC)pDC;
- SetBkMode(hdc, GetParent()->GetTransparentBackground() ? TRANSPARENT
- : OPAQUE);
-
- ::SetBkColor(hdc, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue()));
- ::SetTextColor(hdc, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue()));
-
- wxBrush *backgroundBrush = wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID);
-
- return (WXHBRUSH) backgroundBrush->GetResourceHandle();
-}
-
void wxTextCtrl::OnChar(wxKeyEvent& event)
{
switch ( event.KeyCode() )