// translate wxWin style flags to MSW ones, checking for consistency while
// doing it
- long msStyle = ES_LEFT | WS_VISIBLE | WS_CHILD | WS_TABSTOP;
+ long msStyle = ES_LEFT | WS_TABSTOP;
if ( m_windowStyle & wxCLIP_SIBLINGS )
msStyle |= WS_CLIPSIBLINGS;
msStyle |= WS_VSCROLL;
m_windowStyle |= wxTE_PROCESS_ENTER;
}
- else
+ else // !multiline
+ {
+ // there is really no reason to not have this style for single line
+ // text controls
msStyle |= ES_AUTOHSCROLL;
+ }
- if (m_windowStyle & wxHSCROLL)
- msStyle |= (WS_HSCROLL | ES_AUTOHSCROLL);
+ if ( m_windowStyle & wxHSCROLL )
+ msStyle |= WS_HSCROLL | ES_AUTOHSCROLL;
- if (m_windowStyle & wxTE_READONLY)
+ if ( m_windowStyle & wxTE_READONLY )
msStyle |= ES_READONLY;
- if (m_windowStyle & wxTE_PASSWORD) // hidden input
+ if ( m_windowStyle & wxTE_PASSWORD )
msStyle |= ES_PASSWORD;
- if (m_windowStyle & wxTE_AUTO_SCROLL)
- msStyle |= ES_AUTOHSCROLL;
+ if ( m_windowStyle & wxTE_AUTO_SCROLL )
+ msStyle |= ES_AUTOHSCROLL;
+ if ( m_windowStyle & wxTE_NOHIDESEL )
+ msStyle |= ES_NOHIDESEL;
// we always want the characters and the arrows
m_lDlgCode = DLGC_WANTCHARS | DLGC_WANTARROWS;
m_isRich = FALSE;
#endif // wxUSE_RICHEDIT
- bool want3D;
- WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D);
-
- // Even with extended styles, need to combine with WS_BORDER for them to
- // look right.
- if ( want3D || wxStyleHasBorder(m_windowStyle) )
- msStyle |= WS_BORDER;
-
- // NB: don't use pos and size as CreateWindowEx arguments because they
- // might be -1 in which case we should use the default values (and
- // SetSize called below takes care of it)
- m_hWnd = (WXHWND)::CreateWindowEx(exStyle,
- windowClass.c_str(),
- NULL,
- msStyle,
- 0, 0, 0, 0,
- GetHwndOf(parent),
- (HMENU)m_windowId,
- wxGetInstance(),
- NULL);
-
- wxCHECK_MSG( m_hWnd, FALSE, wxT("Failed to create text ctrl") );
+ if ( !MSWCreateControl(windowClass, msStyle, pos, size, value) )
+ return FALSE;
-#if wxUSE_CTL3D
- if ( want3D )
- {
- Ctl3dSubclassCtl(GetHwnd());
- m_useCtl3D = TRUE;
- }
-#endif
+ SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW));
#if wxUSE_RICHEDIT
if (m_isRich)
}
#endif // wxUSE_RICHEDIT
- SubclassWin(GetHWND());
-
- // set font, position, size and initial value
- wxFont& fontParent = parent->GetFont();
- if ( fontParent.Ok() )
- {
- SetFont(fontParent);
- }
- else
- {
- SetFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT));
- }
-
- // Causes a crash for Symantec C++ and WIN32 for some reason
-#if !(defined(__SC__) && defined(__WIN32__))
- if ( !value.IsEmpty() )
- {
- SetValue(value);
- }
-#endif
-
- // set colours
- SetupColours();
-
- SetSize(pos.x, pos.y, size.x, size.y);
-
return TRUE;
}
m_windowStyle |= wxTE_PROCESS_ENTER;
}
-void wxTextCtrl::SetupColours()
-{
- wxColour bkgndColour;
-// if (IsEditable() || (m_windowStyle & wxTE_MULTILINE))
- bkgndColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW);
-// else
-// bkgndColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE);
-
- SetBackgroundColour(bkgndColour);
- SetForegroundColour(GetParent()->GetForegroundColour());
-}
-
// ----------------------------------------------------------------------------
// set/get the controls text
// ----------------------------------------------------------------------------