if ( m_windowStyle & wxTE_NOHIDESEL )
msStyle |= ES_NOHIDESEL;
- // we always want the characters and the arrows
- m_lDlgCode = DLGC_WANTCHARS | DLGC_WANTARROWS;
-
- // we may have several different cases:
- // 1. normal case: both TAB and ENTER are used for dialog navigation
- // 2. ctrl which wants TAB for itself: ENTER is used to pass to the next
- // control in the dialog
- // 3. ctrl which wants ENTER for itself: TAB is used for dialog navigation
- // 4. ctrl which wants both TAB and ENTER: Ctrl-ENTER is used to pass to
- // the next control
- if ( m_windowStyle & wxTE_PROCESS_ENTER )
- m_lDlgCode |= DLGC_WANTMESSAGE;
- if ( m_windowStyle & wxTE_PROCESS_TAB )
- m_lDlgCode |= DLGC_WANTTAB;
-
// do create the control - either an EDIT or RICHEDIT
wxString windowClass = wxT("EDIT");
return 0;
}
-extern long wxEncodingToCodepage(wxFontEncoding encoding); // from strconv.cpp
+extern long wxEncodingToCodepage(wxFontEncoding encoding); // from utils.cpp
#if wxUSE_UNICODE_MSLU
bool wxTextCtrl::StreamIn(const wxString& value,
// next translate to Unicode using this code page
int len = ::MultiByteToWideChar(codepage, 0, value, -1, NULL, 0);
+
+#if wxUSE_WCHAR_T
wxWCharBuffer wchBuf(len);
+#else
+ wchar_t *wchBuf = (wchar_t *)malloc((len + 1)*sizeof(wchar_t));
+#endif
+
if ( !::MultiByteToWideChar(codepage, 0, value, -1,
- (wchar_t *)wchBuf.data(), len) )
+ (wchar_t *)(const wchar_t *)wchBuf, len) )
{
wxLogLastError(_T("MultiByteToWideChar"));
}
(LPARAM)&eds) || eds.dwError )
{
wxLogLastError(_T("EM_STREAMIN"));
-
- return FALSE;
}
+#if !wxUSE_WCHAR_T
+ free(wchBuf);
+#endif // !wxUSE_WCHAR_T
+
return TRUE;
}
// usual preprocessing for them
if ( msg->message == WM_KEYDOWN )
{
- WORD vkey = msg->wParam;
+ WORD vkey = (WORD) msg->wParam;
if ( (HIWORD(msg->lParam) & KF_ALTDOWN) == KF_ALTDOWN )
{
if ( vkey == VK_BACK )
event.Skip();
}
+long wxTextCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
+{
+ // we always want the characters and the arrows
+ if ( nMsg == WM_GETDLGCODE )
+ {
+ // we always want the chars and the arrows
+ long lDlgCode = DLGC_WANTCHARS | DLGC_WANTARROWS;
+
+ // we may have several different cases:
+ // 1. normal case: both TAB and ENTER are used for dialog navigation
+ // 2. ctrl which wants TAB for itself: ENTER is used to pass to the next
+ // control in the dialog
+ // 3. ctrl which wants ENTER for itself: TAB is used for dialog navigation
+ // 4. ctrl which wants both TAB and ENTER: Ctrl-ENTER is used to pass to
+ // the next control
+ if ( m_windowStyle & wxTE_PROCESS_ENTER )
+ lDlgCode |= DLGC_WANTMESSAGE;
+ if ( m_windowStyle & wxTE_PROCESS_TAB )
+ lDlgCode |= DLGC_WANTTAB;
+
+ return lDlgCode;
+ }
+
+ return wxTextCtrlBase::MSWWindowProc(nMsg, wParam, lParam);
+}
+
bool wxTextCtrl::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
{
switch (param)
// EN_LINK processing
// ----------------------------------------------------------------------------
-bool wxTextCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
+bool wxTextCtrl::MSWOnNotify(int WXUNUSED(idCtrl), WXLPARAM lParam, WXLPARAM *result)
{
NMHDR *hdr = (NMHDR* )lParam;
if ( hdr->code == EN_LINK )
// make it the index in the array
version--;
- if ( ms_hRichEdit[version] )
- {
- // we've already got this one
- return TRUE;
- }
-
if ( ms_hRichEdit[version] == (HINSTANCE)-1 )
{
// we had already tried to load it and failed
return FALSE;
}
+ if ( ms_hRichEdit[version] )
+ {
+ // we've already got this one
+ return TRUE;
+ }
+
wxString dllname = version ? _T("riched20") : _T("riched32");
dllname += _T(".dll");