Fix menu position on Windows

This commit is contained in:
Rolando Islas
2015-12-31 18:55:03 -07:00
parent 33af87aaf2
commit 3094d15f8f
2 changed files with 26 additions and 1 deletions
+22
View File
@@ -10,6 +10,9 @@
#include "IconMenu.hpp"
#include "PluginWindow.h"
#include <ctime>
#if JUCE_WINDOWS
#include "Windows.h"
#endif
#if !JUCE_MAC
class IconMenu::PluginListWindow : public DocumentWindow
@@ -58,6 +61,9 @@ IconMenu::IconMenu()
{
// Initiialization
formatManager.addDefaultFormats();
#if JUCE_WINDOWS
x = y = 0;
#endif
// Audio device
ScopedPointer<XmlElement> savedAudioState (getAppProperties().getUserSettings()->getXmlValue("audioDeviceState"));
deviceManager.initialise(256, 256, savedAudioState, true);
@@ -84,6 +90,7 @@ IconMenu::IconMenu()
#else
setIconImage(ImageFileFormat::loadFrom(BinaryData::menu_icon_png, BinaryData::menu_icon_pngSize));
#endif
setIconTooltip(JUCEApplication::getInstance()->getApplicationName());
};
IconMenu::~IconMenu()
@@ -222,7 +229,22 @@ void IconMenu::timerCallback()
{
menu.addItem(1, "Quit");
}
#if JUCE_MAC || JUCE_LINUX
menu.showMenuAsync(PopupMenu::Options().withTargetComponent(this), ModalCallbackFunction::forComponent(menuInvocationCallback, this));
#else
if (x == 0 || y == 0)
{
POINT iconLocation;
iconLocation.x = 0;
iconLocation.y = 0;
GetCursorPos(&iconLocation);
std::cout << "";
x = iconLocation.x;
y = iconLocation.y;
}
juce::Rectangle<int> rect(x, y, 1, 1);
menu.showMenuAsync(PopupMenu::Options().withTargetScreenArea(rect), ModalCallbackFunction::forComponent(menuInvocationCallback, this));
#endif
}
void IconMenu::mouseDown(const MouseEvent& e)
+4 -1
View File
@@ -18,7 +18,6 @@ public:
~IconMenu();
void mouseDown(const MouseEvent&);
static void menuInvocationCallback(int id, IconMenu*);
static void doReloadWithDefaultLocations(int id, IconMenu*);
void changeListenerCallback(ChangeBroadcaster* changed);
private:
#if JUCE_MAC
@@ -45,6 +44,10 @@ private:
AudioProcessorPlayer player;
AudioProcessorGraph::Node *inputNode;
AudioProcessorGraph::Node *outputNode;
#if JUCE_WINDOWS
int x, y;
#endif
#if !JUCE_MAC
class PluginListWindow;
ScopedPointer<PluginListWindow> pluginListWindow;