WXDWORD wxTextCtrl::MSWGetStyle(long style, WXDWORD *exstyle) const
{
+ // default border for the text controls is the sunken one
+ if ( (style & wxBORDER_MASK) == wxBORDER_DEFAULT )
+ {
+ style |= wxBORDER_SUNKEN;
+ }
+
long msStyle = wxControl::MSWGetStyle(style, exstyle);
// default styles
- msStyle |= ES_LEFT | WS_TABSTOP;
+ msStyle |= ES_LEFT;
if ( style & wxTE_MULTILINE )
{
#if wxUSE_UNICODE_MSLU
// RichEdit doesn't have Unicode version of EM_REPLACESEL on Win9x,
// but EM_STREAMIN works
- if ( wxGetOsVersion() == wxWIN95 && GetRichVersion() > 1 )
+ if ( wxUsingUnicowsDll() && GetRichVersion() > 1 )
{
done = StreamIn(valueDos, wxFONTENCODING_SYSTEM, selectionOnly);
}
::SetWindowText(GetHwnd(), wxT(""));
}
+#ifdef __WIN32__
+
+bool wxTextCtrl::EmulateKeyPress(const wxKeyEvent& event)
+{
+ SetFocus();
+
+ size_t lenOld = GetValue().length();
+
+ wxUint32 code = event.GetRawKeyCode();
+ ::keybd_event(code, 0, 0 /* key press */, NULL);
+ ::keybd_event(code, 0, KEYEVENTF_KEYUP, NULL);
+
+ // assume that any alphanumeric key changes the total number of characters
+ // in the control - this should work in 99% of cases
+ return GetValue().length() != lenOld;
+}
+
+#endif // __WIN32__
+
// ----------------------------------------------------------------------------
// Clipboard operations
// ----------------------------------------------------------------------------
bool wxTextCtrl::IsEditable() const
{
+ // strangely enough, we may be called before the control is created: our
+ // own Create() calls MSWGetStyle() which calls AcceptsFocus() which calls
+ // us
+ if ( !m_hWnd )
+ return TRUE;
+
long style = ::GetWindowLong(GetHwnd(), GWL_STYLE);
return (style & ES_READONLY) == 0;
::SetCursor(GetHcursorOf(wxCursor(wxCURSOR_HAND)));
*result = TRUE;
break;
-
case WM_MOUSEMOVE:
case WM_LBUTTONDOWN:
case WM_LBUTTONUP:
void wxRichEditModule::OnExit()
{
- for ( int i = 0; i < WXSIZEOF(ms_hRichEdit); i++ )
+ for ( size_t i = 0; i < WXSIZEOF(ms_hRichEdit); i++ )
{
if ( ms_hRichEdit[i] )
{