/////////////////////////////////////////////////////////////////////////////
-// Name: msw/wince/tbarwce.cpp
+// Name: src/msw/wince/tbarwce.cpp
// Purpose: wxToolBar for Windows CE
// Author: Julian Smart
// Modified by:
#pragma hdrstop
#endif
+// Use the WinCE-specific toolbar only if we're either compiling
+// with a WinCE earlier than 4, or we wish to emulate a PocketPC-style UI
+#if wxUSE_TOOLBAR && wxUSE_TOOLBAR_NATIVE && (_WIN32_WCE < 400 || defined(__POCKETPC__) || defined(__SMARTPHONE__))
+
+#include "wx/toolbar.h"
+
#ifndef WX_PRECOMP
+ #include "wx/msw/wrapcctl.h" // include <commctrl.h> "properly"
+ #include "wx/dynarray.h"
#include "wx/frame.h"
#include "wx/log.h"
#include "wx/intl.h"
- #include "wx/dynarray.h"
#include "wx/settings.h"
#include "wx/bitmap.h"
#include "wx/dcmemory.h"
#include "wx/control.h"
#endif
-// Use the WinCE-specific toolbar only if we're either compiling
-// with a WinCE earlier than 4, or we wish to emulate a PocketPC-style UI
-#if wxUSE_TOOLBAR && wxUSE_TOOLBAR_NATIVE && (_WIN32_WCE < 400 || defined(__POCKETPC__) || defined(__SMARTPHONE__))
-
-#include "wx/toolbar.h"
-
#if !defined(__GNUWIN32__) && !defined(__SALFORDC__)
#include "malloc.h"
#endif
#include <tchar.h>
#include <ole2.h>
#include <shellapi.h>
-#include <commctrl.h>
#if defined(WINCE_WITHOUT_COMMANDBAR)
#include <aygshell.h>
#endif
m_bitmapIndex = -1;
}
- wxToolMenuBarTool(wxToolBar *tbar, wxControl *control)
- : wxToolBarToolBase(tbar, control)
+ wxToolMenuBarTool(wxToolBar *tbar, wxControl *control, const wxString& label)
+ : wxToolBarToolBase(tbar, control, label)
{
m_nSepCount = 1;
m_bitmapIndex = -1;
// a control in the toolbar
void SetSeparatorsCount(size_t count) { m_nSepCount = count; }
size_t GetSeparatorsCount() const { return m_nSepCount; }
-
+
void SetBitmapIndex(int idx) { m_bitmapIndex = idx; }
int GetBitmapIndex() const { return m_bitmapIndex; }
clientData, shortHelp, longHelp);
}
-wxToolBarToolBase *wxToolMenuBar::CreateTool(wxControl *control)
+wxToolBarToolBase *
+wxToolMenuBar::CreateTool(wxControl *control, const wxString& label)
{
- return new wxToolMenuBarTool(this, control);
+ return new wxToolMenuBarTool(this, control, label);
}
// ----------------------------------------------------------------------------
void wxToolMenuBar::Init()
{
wxToolBar::Init();
-
- m_nButtons = 0;
+
+ m_nButtons = 0;
m_menuBar = NULL;
}
break;
case wxTOOL_STYLE_BUTTON:
-
+
if ( HasFlag(wxTB_TEXT) )
{
const wxString& label = tool->GetLabel();
wxToolBarToolBase *tool = FindById((int)id);
if ( !tool )
{
+ bool checked = false;
+ if ( m_menuBar )
+ {
+ wxMenuItem *item = m_menuBar->FindItem(id);
+ if ( item && item->IsCheckable() )
+ {
+ item->Toggle();
+ checked = item->IsChecked();
+ }
+ }
+
wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED);
event.SetEventObject(this);
event.SetId(id);
- event.SetInt(id);
+ event.SetInt(checked);
return GetEventHandler()->ProcessEvent(event);
}
break;
}
- return wxControl::MSWWindowProc(nMsg, wParam, lParam);
+ return MSWDefWindowProc(nMsg, wParam, lParam);
}
// satisfy other parts of wxWidgets.
parent->AddChild(this);
-
+
SetWindowStyle(style);
SetName(name);
-
+
return true;
}
#endif
// !__SMARTPHONE__
-
-
-#endif // wxUSE_TOOLBAR && Win95
-
+#endif // wxUSE_TOOLBAR