Change default icon color in Windows and allow toggling
This commit is contained in:
+35
-7
@@ -83,6 +83,17 @@ IconMenu::IconMenu() : INDEX_EDIT(1000000), INDEX_BYPASS(2000000), INDEX_DELETE(
|
||||
activePluginList.recreateFromXml(*savedPluginListActive);
|
||||
loadActivePlugins();
|
||||
activePluginList.addChangeListener(this);
|
||||
setIcon();
|
||||
setIconTooltip(JUCEApplication::getInstance()->getApplicationName());
|
||||
};
|
||||
|
||||
IconMenu::~IconMenu()
|
||||
{
|
||||
savePluginStates();
|
||||
}
|
||||
|
||||
void IconMenu::setIcon()
|
||||
{
|
||||
// Set menu icon
|
||||
#if JUCE_MAC
|
||||
if (exec("defaults read -g AppleInterfaceStyle").compare("Dark") == 1)
|
||||
@@ -90,14 +101,22 @@ IconMenu::IconMenu() : INDEX_EDIT(1000000), INDEX_BYPASS(2000000), INDEX_DELETE(
|
||||
else
|
||||
setIconImage(ImageFileFormat::loadFrom(BinaryData::menu_icon_png, BinaryData::menu_icon_pngSize));
|
||||
#else
|
||||
setIconImage(ImageFileFormat::loadFrom(BinaryData::menu_icon_png, BinaryData::menu_icon_pngSize));
|
||||
String defaultColor;
|
||||
#if JUCE_WINDOWS
|
||||
defaultColor = "white";
|
||||
#elif JUCE_LINUX
|
||||
defaultColor = "black";
|
||||
#endif
|
||||
if (!getAppProperties().getUserSettings()->containsKey("icon"))
|
||||
getAppProperties().getUserSettings()->setValue("icon", defaultColor);
|
||||
String color = getAppProperties().getUserSettings()->getValue("icon");
|
||||
Image icon;
|
||||
if (color.equalsIgnoreCase("white"))
|
||||
icon = ImageFileFormat::loadFrom(BinaryData::menu_icon_white_png, BinaryData::menu_icon_white_pngSize);
|
||||
else if (color.equalsIgnoreCase("black"))
|
||||
icon = ImageFileFormat::loadFrom(BinaryData::menu_icon_png, BinaryData::menu_icon_pngSize);
|
||||
setIconImage(icon);
|
||||
#endif
|
||||
setIconTooltip(JUCEApplication::getInstance()->getApplicationName());
|
||||
};
|
||||
|
||||
IconMenu::~IconMenu()
|
||||
{
|
||||
savePluginStates();
|
||||
}
|
||||
|
||||
void IconMenu::loadActivePlugins()
|
||||
@@ -253,6 +272,9 @@ void IconMenu::timerCallback()
|
||||
menu.addItem(1, "Quit");
|
||||
menu.addSeparator();
|
||||
menu.addItem(2, "Delete Plugin States");
|
||||
#if !JUCE_MAC
|
||||
menu.addItem(3, "Invert Icon Color");
|
||||
#endif
|
||||
}
|
||||
#if JUCE_MAC || JUCE_LINUX
|
||||
menu.showMenuAsync(PopupMenu::Options().withTargetComponent(this), ModalCallbackFunction::forComponent(menuInvocationCallback, this));
|
||||
@@ -296,6 +318,12 @@ void IconMenu::menuInvocationCallback(int id, IconMenu* im)
|
||||
im->deletePluginStates();
|
||||
return im->loadActivePlugins();
|
||||
}
|
||||
if (id == 3)
|
||||
{
|
||||
String color = getAppProperties().getUserSettings()->getValue("icon");
|
||||
getAppProperties().getUserSettings()->setValue("icon", color.equalsIgnoreCase("black") ? "white" : "black");
|
||||
return im->setIcon();
|
||||
}
|
||||
}
|
||||
#if JUCE_MAC
|
||||
// Click elsewhere
|
||||
|
||||
@@ -35,6 +35,7 @@ private:
|
||||
PluginDescription getNextPluginOlderThanTime(int &time);
|
||||
void removePluginsLackingInputOutput();
|
||||
std::vector<PluginDescription> getTimeSortedList();
|
||||
void setIcon();
|
||||
|
||||
AudioDeviceManager deviceManager;
|
||||
AudioPluginFormatManager formatManager;
|
||||
|
||||
Reference in New Issue
Block a user