#define CFM_BACKCOLOR 0x04000000
#endif
+// cygwin does not have these defined for richedit
+#ifndef ENM_LINK
+ #define ENM_LINK 0x04000000
+#endif
+
+#ifndef EM_AUTOURLDETECT
+ #define EM_AUTOURLDETECT (WM_USER + 91)
+#endif
+
+#ifndef EN_LINK
+ #define EN_LINK 0x070b
+
+ typedef struct _enlink
+ {
+ NMHDR nmhdr;
+ UINT msg;
+ WPARAM wParam;
+ LPARAM lParam;
+ CHARRANGE chrg;
+ } ENLINK;
+#endif // ENLINK
+
// ----------------------------------------------------------------------------
// private classes
// ----------------------------------------------------------------------------
}
}
+// ----------------------------------------------------------------------------
+// kbd input processing
+// ----------------------------------------------------------------------------
+
+bool wxTextCtrl::MSWShouldPreProcessMessage(WXMSG* pMsg)
+{
+ MSG *msg = (MSG *)pMsg;
+
+ // check for our special keys here: if we don't do it and the parent frame
+ // uses them as accelerators, they wouldn't work at all, so we disable
+ // usual preprocessing for them
+ if ( msg->message == WM_KEYDOWN )
+ {
+ WORD vkey = msg->wParam;
+ if ( (HIWORD(msg->lParam) & KF_ALTDOWN) == KF_ALTDOWN )
+ {
+ if ( vkey == VK_BACK )
+ return FALSE;
+ }
+ else // no Alt
+ {
+ if ( wxIsCtrlDown() )
+ {
+ switch ( vkey )
+ {
+ case 'C':
+ case 'V':
+ case 'X':
+ case VK_INSERT:
+ case VK_DELETE:
+ case VK_HOME:
+ case VK_END:
+ return FALSE;
+ }
+ }
+ else if ( wxIsShiftDown() )
+ {
+ if ( vkey == VK_INSERT || vkey == VK_DELETE )
+ return FALSE;
+ }
+ }
+ }
+
+ return wxControl::MSWShouldPreProcessMessage(pMsg);
+}
+
void wxTextCtrl::OnChar(wxKeyEvent& event)
{
switch ( event.KeyCode() )