Fix menu position on Windows
This commit is contained in:
@@ -10,6 +10,9 @@
|
|||||||
#include "IconMenu.hpp"
|
#include "IconMenu.hpp"
|
||||||
#include "PluginWindow.h"
|
#include "PluginWindow.h"
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
|
#if JUCE_WINDOWS
|
||||||
|
#include "Windows.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !JUCE_MAC
|
#if !JUCE_MAC
|
||||||
class IconMenu::PluginListWindow : public DocumentWindow
|
class IconMenu::PluginListWindow : public DocumentWindow
|
||||||
@@ -58,6 +61,9 @@ IconMenu::IconMenu()
|
|||||||
{
|
{
|
||||||
// Initiialization
|
// Initiialization
|
||||||
formatManager.addDefaultFormats();
|
formatManager.addDefaultFormats();
|
||||||
|
#if JUCE_WINDOWS
|
||||||
|
x = y = 0;
|
||||||
|
#endif
|
||||||
// Audio device
|
// Audio device
|
||||||
ScopedPointer<XmlElement> savedAudioState (getAppProperties().getUserSettings()->getXmlValue("audioDeviceState"));
|
ScopedPointer<XmlElement> savedAudioState (getAppProperties().getUserSettings()->getXmlValue("audioDeviceState"));
|
||||||
deviceManager.initialise(256, 256, savedAudioState, true);
|
deviceManager.initialise(256, 256, savedAudioState, true);
|
||||||
@@ -84,6 +90,7 @@ IconMenu::IconMenu()
|
|||||||
#else
|
#else
|
||||||
setIconImage(ImageFileFormat::loadFrom(BinaryData::menu_icon_png, BinaryData::menu_icon_pngSize));
|
setIconImage(ImageFileFormat::loadFrom(BinaryData::menu_icon_png, BinaryData::menu_icon_pngSize));
|
||||||
#endif
|
#endif
|
||||||
|
setIconTooltip(JUCEApplication::getInstance()->getApplicationName());
|
||||||
};
|
};
|
||||||
|
|
||||||
IconMenu::~IconMenu()
|
IconMenu::~IconMenu()
|
||||||
@@ -222,7 +229,22 @@ void IconMenu::timerCallback()
|
|||||||
{
|
{
|
||||||
menu.addItem(1, "Quit");
|
menu.addItem(1, "Quit");
|
||||||
}
|
}
|
||||||
|
#if JUCE_MAC || JUCE_LINUX
|
||||||
menu.showMenuAsync(PopupMenu::Options().withTargetComponent(this), ModalCallbackFunction::forComponent(menuInvocationCallback, this));
|
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)
|
void IconMenu::mouseDown(const MouseEvent& e)
|
||||||
|
|||||||
+4
-1
@@ -18,7 +18,6 @@ public:
|
|||||||
~IconMenu();
|
~IconMenu();
|
||||||
void mouseDown(const MouseEvent&);
|
void mouseDown(const MouseEvent&);
|
||||||
static void menuInvocationCallback(int id, IconMenu*);
|
static void menuInvocationCallback(int id, IconMenu*);
|
||||||
static void doReloadWithDefaultLocations(int id, IconMenu*);
|
|
||||||
void changeListenerCallback(ChangeBroadcaster* changed);
|
void changeListenerCallback(ChangeBroadcaster* changed);
|
||||||
private:
|
private:
|
||||||
#if JUCE_MAC
|
#if JUCE_MAC
|
||||||
@@ -45,6 +44,10 @@ private:
|
|||||||
AudioProcessorPlayer player;
|
AudioProcessorPlayer player;
|
||||||
AudioProcessorGraph::Node *inputNode;
|
AudioProcessorGraph::Node *inputNode;
|
||||||
AudioProcessorGraph::Node *outputNode;
|
AudioProcessorGraph::Node *outputNode;
|
||||||
|
#if JUCE_WINDOWS
|
||||||
|
int x, y;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !JUCE_MAC
|
#if !JUCE_MAC
|
||||||
class PluginListWindow;
|
class PluginListWindow;
|
||||||
ScopedPointer<PluginListWindow> pluginListWindow;
|
ScopedPointer<PluginListWindow> pluginListWindow;
|
||||||
|
|||||||
Reference in New Issue
Block a user