#if wxUSE_TEXTCTRL && !(defined(__SMARTPHONE__) && defined(__WXWINCE__))
#ifndef WX_PRECOMP
+ #include "wx/msw/missing.h"
#include "wx/textctrl.h"
#include "wx/settings.h"
#include "wx/brush.h"
#include "wx/app.h"
#include "wx/menu.h"
#include "wx/math.h"
+ #include "wx/module.h"
#endif
-#include "wx/module.h"
#include "wx/sysopt.h"
#if wxUSE_CLIPBOARD
#include <windowsx.h>
#include "wx/msw/private.h"
-#include "wx/msw/wrapshl.h"
+#include "wx/msw/winundef.h"
#include <string.h>
#include <stdlib.h>
#include <richedit.h>
#endif
-#include "wx/msw/missing.h"
-
#endif // wxUSE_RICHEDIT
// ----------------------------------------------------------------------------
WPARAM wParam,
LPARAM lParam)
{
- wxWindow *win = wxFindWinFromHandle((WXHWND)hWnd);
-
switch ( message )
{
case WM_CUT:
case WM_COPY:
case WM_PASTE:
- if( win->HandleClipboardEvent( message ) )
- return 0;
- break;
+ {
+ wxWindow *win = wxFindWinFromHandle((WXHWND)hWnd);
+ if( win->HandleClipboardEvent( message ) )
+ return 0;
+ break;
+ }
}
return ::CallWindowProc(CASTWNDPROC gs_wndprocEdit, hWnd, message, wParam, lParam);
}
}
#endif // wxUSE_RICHEDIT
- if ( style & wxTE_FILENAME )
- wxEnableFileNameAutoComplete(GetHwnd());
-
gs_wndprocEdit = wxSetWindowProc((HWND)GetHwnd(),
wxTextCtrlWndProc);
// if it doesn't actually move the caret anywhere and so the simple fact of
// doing it results in horrible flicker when appending big amounts of text
// to the control in a few chunks (see DoAddText() test in the text sample)
- if ( GetInsertionPoint() == GetLastPosition() )
+ const wxTextPos lastPosition = GetLastPosition();
+ if ( GetInsertionPoint() == lastPosition )
{
return;
}
else // !RichEdit 1.0
#endif // wxUSE_RICHEDIT
{
- pos = GetLastPosition();
+ pos = lastPosition;
}
SetInsertionPoint(pos);
// fall through
case 0:
- if ( vkey == VK_RETURN )
+ if ( IsMultiLine() && vkey == VK_RETURN )
return false;
// fall through
case 2:
}
}
- if (pf.dwMask != 0)
+#if wxUSE_RICHEDIT2
+ if ( m_verRichEdit > 1 )
+ {
+ if ( wxTheApp->GetLayoutDirection() == wxLayout_RightToLeft )
+ {
+ // Use RTL paragraphs in RTL mode to get proper layout
+ pf.dwMask |= PFM_RTLPARA;
+ pf.wEffects |= PFE_RTLPARA;
+ }
+ }
+#endif // wxUSE_RICHEDIT2
+
+ if ( pf.dwMask )
{
// do format the selection
bool ok = ::SendMessage(GetHwnd(), EM_SETPARAFORMAT,
- 0, (LPARAM) &pf) != 0;
+ 0, (LPARAM) &pf) != 0;
if ( !ok )
{
wxLogDebug(_T("SendMessage(EM_SETPARAFORMAT, 0) failed"));