From: Włodzimierz Skiba Date: Tue, 31 Jan 2006 21:37:32 +0000 (+0000) Subject: [ 1420190 ] Enable backspace key on smartphone X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/96dcd41a121908339af548ea4026012e7c73746d?ds=inline [ 1420190 ] Enable backspace key on smartphone git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37251 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/changes.txt b/docs/changes.txt index bea540b67d..abc5d2e84c 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -179,6 +179,7 @@ wxWinCE: - Checkable items in wxToolMenuBarTool supported. - Fixed date formatting and mktime. - Fixed getting standard folder paths on WinCE. +- Support for backspace key on smartphone. wxX11: diff --git a/include/wx/msw/toplevel.h b/include/wx/msw/toplevel.h index 56c99693b4..fb63cda2d9 100644 --- a/include/wx/msw/toplevel.h +++ b/include/wx/msw/toplevel.h @@ -84,6 +84,7 @@ public: virtual void SetLeftMenu(int id = wxID_ANY, const wxString& label = wxEmptyString, wxMenu *subMenu = NULL); virtual void SetRightMenu(int id = wxID_ANY, const wxString& label = wxEmptyString, wxMenu *subMenu = NULL); bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control); + virtual bool MSWShouldPreProcessMessage(WXMSG* pMsg); #endif // __SMARTPHONE__ && __WXWINCE__ #if defined(__SMARTPHONE__) || defined(__POCKETPC__) diff --git a/src/msw/wince/menuce.cpp b/src/msw/wince/menuce.cpp index 673d364855..18db390404 100644 --- a/src/msw/wince/menuce.cpp +++ b/src/msw/wince/menuce.cpp @@ -24,9 +24,7 @@ #pragma hdrstop #endif -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif +#if defined(__SMARTPHONE__) && defined(__WXWINCE__) #ifndef WX_PRECOMP #include "wx/app.h" @@ -34,12 +32,11 @@ #include "wx/menu.h" #endif //WX_PRECOMP -#if defined(__SMARTPHONE__) && defined(__WXWINCE__) - #include #include #include #include +#include #include "wx/msw/wince/missing.h" #include "wx/msw/wince/resources.h" @@ -242,6 +239,10 @@ void wxTopLevelWindowMSW::ReloadAllButtons() ::ShowWindow( prev_MenuBar, SW_HIDE ); ::ShowWindow( m_MenuBarHWND, SW_SHOW ); + // Setup backspace key handling + SendMessage(m_MenuBarHWND, SHCMBM_OVERRIDEKEY, VK_TBACK, + MAKELPARAM( SHMBOF_NODEFAULT | SHMBOF_NOTIFY, + SHMBOF_NODEFAULT | SHMBOF_NOTIFY )); } bool wxTopLevelWindowMSW::HandleCommand(WXWORD id, WXWORD WXUNUSED(cmd), WXHWND WXUNUSED(control)) @@ -258,5 +259,18 @@ bool wxTopLevelWindowMSW::HandleCommand(WXWORD id, WXWORD WXUNUSED(cmd), WXHWND return false; } -#endif // __SMARTPHONE__ && __WXWINCE__ +bool wxTopLevelWindowMSW::MSWShouldPreProcessMessage(WXMSG* pMsg) +{ + MSG *msg = (MSG *)pMsg; + // Process back key to be like backspace. + if (msg->message == WM_HOTKEY) + { + if (HIWORD(msg->lParam) == VK_TBACK) + SHSendBackToFocusWindow(msg->message, msg->wParam, msg->lParam); + } + + return wxTopLevelWindowBase::MSWShouldPreProcessMessage(pMsg); +} + +#endif // __SMARTPHONE__ && __WXWINCE__