reapack

Package manager for REAPER
Log | Files | Refs | Submodules | README | LICENSE

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:
Msrc/menu.cpp | 10+++++++---
Msrc/menu.hpp | 5++++-
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