// Created: 28.05.2004
// RCS-ID: $Id$
// Copyright: (c) Wlodzimierz Skiba
-// License: wxWindows licence
+// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// headers
// ----------------------------------------------------------------------------
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma implementation "menuce"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#pragma hdrstop
#endif
-#ifndef WX_PRECOMP
- #include "wx/wx.h"
-#endif
+#if defined(__SMARTPHONE__) && defined(__WXWINCE__)
#ifndef WX_PRECOMP
#include "wx/app.h"
#include "wx/menu.h"
#endif //WX_PRECOMP
-#if defined(__SMARTPHONE__) && defined(__WXWINCE__)
-
#include <windows.h>
#include <ole2.h>
#include <shellapi.h>
#include <aygshell.h>
+#include <tpcshell.h>
+#include <tpcuser.h>
#include "wx/msw/wince/missing.h"
#include "wx/msw/wince/resources.h"
wxTopLevelWindowMSW::ButtonMenu::~ButtonMenu()
{
- if(m_menu)
- {
- delete m_menu;
- m_menu = NULL;
- };
+ wxDELETE(m_menu);
}
void wxTopLevelWindowMSW::SetLeftMenu(int id, const wxString& label, wxMenu *subMenu)
m_assigned = true;
m_id = id;
if(label.empty() && wxIsStockID(id))
- m_label = wxGetStockLabel(id);
+ m_label = wxGetStockLabel(id, wxSTOCK_NOFLAGS);
else
m_label = label;
m_menu = subMenu;
if (!SHCreateMenuBar(&menu_bar))
{
- wxFAIL_MSG( _T("SHCreateMenuBar failed") );
+ wxFAIL_MSG( wxT("SHCreateMenuBar failed") );
return;
}
::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))
if ( id == IDM_LEFT || id == IDM_RIGHT )
{
int menuId = id == IDM_LEFT ? m_LeftButton.GetId() : m_RightButton.GetId() ;
- wxCommandEvent commandEvent(wxEVT_COMMAND_MENU_SELECTED, menuId);
+ wxCommandEvent commandEvent(wxEVT_MENU, menuId);
commandEvent.SetEventObject(this);
GetEventHandler()->ProcessEvent(commandEvent);
return true;
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__