X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/272be120472bbb858fab11b7691dd92577144ebd..777469ca936965a1ed15f70f3fe81f665833bf6a:/src/msw/wince/tbarwce.cpp diff --git a/src/msw/wince/tbarwce.cpp b/src/msw/wince/tbarwce.cpp index af64b582b7..bb0f99f380 100644 --- a/src/msw/wince/tbarwce.cpp +++ b/src/msw/wince/tbarwce.cpp @@ -4,7 +4,6 @@ // Author: Julian Smart // Modified by: // Created: 2003-07-12 -// RCS-ID: $Id$ // Copyright: (c) Julian Smart // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -42,7 +41,7 @@ #include "wx/control.h" #endif -#if !defined(__GNUWIN32__) && !defined(__SALFORDC__) +#if !defined(__GNUWIN32__) #include "malloc.h" #endif @@ -54,6 +53,7 @@ #include #if defined(WINCE_WITHOUT_COMMANDBAR) #include + #include "wx/msw/wince/resources.h" #endif #include "wx/msw/wince/missing.h" @@ -201,24 +201,19 @@ bool wxToolMenuBar::MSWCreateToolbar(const wxPoint& WXUNUSED(pos), m_menuBar->SetToolBar(this); HWND hwndParent = GetHwndOf(GetParent()); - wxCHECK_MSG( hwndParent, false, _T("should have valid parent HWND") ); + wxCHECK_MSG( hwndParent, false, wxT("should have valid parent HWND") ); #if defined(WINCE_WITHOUT_COMMANDBAR) - // Create the menubar. + // create the menubar. WinStruct mbi; mbi.hwndParent = hwndParent; -#ifdef __SMARTPHONE__ - mbi.nToolBarId = 5002; -#else - mbi.nToolBarId = 5000; -#endif - mbi.dwFlags = SHCMBF_EMPTYBAR; + mbi.nToolBarId = wxIDM_SHMENU; mbi.hInstRes = wxGetInstance(); - if (!SHCreateMenuBar(&mbi)) + if ( !SHCreateMenuBar(&mbi) ) { - wxFAIL_MSG( _T("SHCreateMenuBar failed") ); + wxFAIL_MSG( wxT("SHCreateMenuBar failed") ); return false; } @@ -251,16 +246,14 @@ wxToolMenuBar::~wxToolMenuBar() // Return HMENU for the menu associated with the commandbar WXHMENU wxToolMenuBar::GetHMenu() { -#if defined(__HANDHELDPC__) - return 0; -#else +#if !defined(__HANDHELDPC__) if (GetHWND()) { - return (WXHMENU) (HMENU)::SendMessage((HWND) GetHWND(), SHCMBM_GETMENU, (WPARAM)0, (LPARAM)0); + return (WXHMENU)::SendMessage(GetHwnd(), SHCMBM_GETMENU, 0, 0); } - else - return 0; #endif + + return NULL; } // ---------------------------------------------------------------------------- @@ -278,6 +271,10 @@ bool wxToolMenuBar::DoInsertTool(size_t WXUNUSED(pos), wxToolBarToolBase *tool) bool wxToolMenuBar::DoDeleteTool(size_t pos, wxToolBarToolBase *tool) { + // Skip over the menus + if (GetMenuBar()) + pos += GetMenuBar()->GetMenuCount(); + // the main difficulty we have here is with the controls in the toolbars: // as we (sometimes) use several separators to cover up the space used by // them, the indices are not the same for us and the toolbar @@ -310,7 +307,7 @@ bool wxToolMenuBar::DoDeleteTool(size_t pos, wxToolBarToolBase *tool) RECT r; if ( !::SendMessage(GetHwnd(), TB_GETITEMRECT, pos, (LPARAM)&r) ) { - wxLogLastError(_T("TB_GETITEMRECT")); + wxLogLastError(wxT("TB_GETITEMRECT")); } int width = r.right - r.left; @@ -374,7 +371,7 @@ bool wxToolMenuBar::Realize() #endif // 0 bool lastWasRadio = false; - wxToolBarToolsList::Node* node; + wxToolBarToolsList::compatibility_iterator node; for ( node = m_tools.GetFirst(); node; node = node->GetNext() ) { wxToolMenuBarTool *tool = (wxToolMenuBarTool*) node->GetData(); @@ -405,7 +402,7 @@ bool wxToolMenuBar::Realize() const wxString& label = tool->GetLabel(); if ( !label.empty() ) { - button.iString = (int)label.wx_str(); + button.iString = (int) wxMSW_CONV_LPCTSTR(label); } } @@ -431,7 +428,7 @@ bool wxToolMenuBar::Realize() } int n = 0; - if ( bmpToUse.Ok() ) + if ( bmpToUse.IsOk() ) { n = ::CommandBar_AddBitmap( (HWND) GetHWND(), NULL, (int) (HBITMAP) bmpToUse.GetHBITMAP(), 1, 16, 16 ); @@ -468,7 +465,7 @@ bool wxToolMenuBar::Realize() break; default: - wxFAIL_MSG( _T("unexpected toolbar button kind") ); + wxFAIL_MSG( wxT("unexpected toolbar button kind") ); // fall through case wxITEM_NORMAL: @@ -488,9 +485,11 @@ bool wxToolMenuBar::Realize() return true; } -bool wxToolMenuBar::MSWCommand(WXUINT WXUNUSED(cmd), WXWORD id) +bool wxToolMenuBar::MSWCommand(WXUINT WXUNUSED(cmd), WXWORD id_) { - wxToolBarToolBase *tool = FindById((int)id); + const int id = (signed short)id_; + + wxToolBarToolBase *tool = FindById(id); if ( !tool ) { bool checked = false; @@ -504,7 +503,7 @@ bool wxToolMenuBar::MSWCommand(WXUINT WXUNUSED(cmd), WXWORD id) } } - wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED); + wxCommandEvent event(wxEVT_MENU); event.SetEventObject(this); event.SetId(id); event.SetInt(checked); @@ -525,7 +524,7 @@ bool wxToolMenuBar::MSWCommand(WXUINT WXUNUSED(cmd), WXWORD id) if ( !tool->CanBeToggled() || tool->GetKind() != wxITEM_RADIO || toggled ) { // OnLeftClick() can veto the button state change - for buttons which - // may be toggled only, of couse + // may be toggled only, of course. if ( !OnLeftClick((int)id, toggled) && tool->CanBeToggled() ) { // revert back @@ -644,7 +643,7 @@ void wxToolBar::DoToggleTool(wxToolBarToolBase *WXUNUSED(tool), bool WXUNUSED(to void wxToolBar::DoSetToggle(wxToolBarToolBase *WXUNUSED(tool), bool WXUNUSED(toggle)) { - wxFAIL_MSG( _T("not implemented") ); + wxFAIL_MSG( wxT("not implemented") ); } #endif