commit 73b20185d13d259e0b4fe032a37cb5edda256404
parent 97bfedeebf928b55310a550ed4531b81d77c7606
Author: cfillion <cfillion@users.noreply.github.com>
Date: Fri, 4 Dec 2015 22:07:20 -0800
fix the menu on windows
Diffstat:
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/menu.cpp b/src/menu.cpp
@@ -3,15 +3,16 @@
Menu::Menu(HMENU handle)
: m_handle(handle)
{
- m_index = GetMenuItemCount(m_handle);
+ m_size = GetMenuItemCount(m_handle);
- if(m_index)
+ if(!empty())
addSeparator();
}
void Menu::addAction(const char *label, const int commandId)
{
MENUITEMINFO mii{};
+ mii.cbSize = sizeof(MENUITEMINFO);
mii.fMask |= MIIM_TYPE;
mii.fType = MFT_STRING;
@@ -26,6 +27,8 @@ void Menu::addAction(const char *label, const int commandId)
void Menu::addSeparator()
{
MENUITEMINFO mii{};
+ mii.cbSize = sizeof(MENUITEMINFO);
+
mii.fMask = MIIM_TYPE;
mii.fType = MFT_SEPARATOR;
@@ -35,6 +38,7 @@ void Menu::addSeparator()
Menu Menu::addMenu(const char *label)
{
MENUITEMINFO mii{};
+ mii.cbSize = sizeof(MENUITEMINFO);
mii.fMask |= MIIM_TYPE;
mii.fType = MFT_STRING;
@@ -50,5 +54,5 @@ Menu Menu::addMenu(const char *label)
void Menu::append(MENUITEMINFO &mii)
{
- InsertMenuItem(m_handle, m_index++, true, &mii);
+ InsertMenuItem(m_handle, m_size++, true, &mii);
}
diff --git a/src/menu.hpp b/src/menu.hpp
@@ -11,6 +11,9 @@ class Menu {
public:
Menu(HMENU handle);
+ unsigned int size() { return m_size; }
+ bool empty() const { return m_size == 0; }
+
void addAction(const char *label, const int commandId);
void addSeparator();
Menu addMenu(const char *label);
@@ -19,7 +22,7 @@ private:
void append(MENUITEMINFO &);
HMENU m_handle;
- unsigned int m_index;
+ unsigned int m_size;
};
#endif