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);
|
activePluginList.recreateFromXml(*savedPluginListActive);
|
||||||
loadActivePlugins();
|
loadActivePlugins();
|
||||||
activePluginList.addChangeListener(this);
|
activePluginList.addChangeListener(this);
|
||||||
|
setIcon();
|
||||||
|
setIconTooltip(JUCEApplication::getInstance()->getApplicationName());
|
||||||
|
};
|
||||||
|
|
||||||
|
IconMenu::~IconMenu()
|
||||||
|
{
|
||||||
|
savePluginStates();
|
||||||
|
}
|
||||||
|
|
||||||
|
void IconMenu::setIcon()
|
||||||
|
{
|
||||||
// Set menu icon
|
// Set menu icon
|
||||||
#if JUCE_MAC
|
#if JUCE_MAC
|
||||||
if (exec("defaults read -g AppleInterfaceStyle").compare("Dark") == 1)
|
if (exec("defaults read -g AppleInterfaceStyle").compare("Dark") == 1)
|
||||||
@@ -90,14 +101,22 @@ IconMenu::IconMenu() : INDEX_EDIT(1000000), INDEX_BYPASS(2000000), INDEX_DELETE(
|
|||||||
else
|
else
|
||||||
setIconImage(ImageFileFormat::loadFrom(BinaryData::menu_icon_png, BinaryData::menu_icon_pngSize));
|
setIconImage(ImageFileFormat::loadFrom(BinaryData::menu_icon_png, BinaryData::menu_icon_pngSize));
|
||||||
#else
|
#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
|
#endif
|
||||||
setIconTooltip(JUCEApplication::getInstance()->getApplicationName());
|
|
||||||
};
|
|
||||||
|
|
||||||
IconMenu::~IconMenu()
|
|
||||||
{
|
|
||||||
savePluginStates();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void IconMenu::loadActivePlugins()
|
void IconMenu::loadActivePlugins()
|
||||||
@@ -253,6 +272,9 @@ void IconMenu::timerCallback()
|
|||||||
menu.addItem(1, "Quit");
|
menu.addItem(1, "Quit");
|
||||||
menu.addSeparator();
|
menu.addSeparator();
|
||||||
menu.addItem(2, "Delete Plugin States");
|
menu.addItem(2, "Delete Plugin States");
|
||||||
|
#if !JUCE_MAC
|
||||||
|
menu.addItem(3, "Invert Icon Color");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#if JUCE_MAC || JUCE_LINUX
|
#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));
|
||||||
@@ -296,6 +318,12 @@ void IconMenu::menuInvocationCallback(int id, IconMenu* im)
|
|||||||
im->deletePluginStates();
|
im->deletePluginStates();
|
||||||
return im->loadActivePlugins();
|
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
|
#if JUCE_MAC
|
||||||
// Click elsewhere
|
// Click elsewhere
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ private:
|
|||||||
PluginDescription getNextPluginOlderThanTime(int &time);
|
PluginDescription getNextPluginOlderThanTime(int &time);
|
||||||
void removePluginsLackingInputOutput();
|
void removePluginsLackingInputOutput();
|
||||||
std::vector<PluginDescription> getTimeSortedList();
|
std::vector<PluginDescription> getTimeSortedList();
|
||||||
|
void setIcon();
|
||||||
|
|
||||||
AudioDeviceManager deviceManager;
|
AudioDeviceManager deviceManager;
|
||||||
AudioPluginFormatManager formatManager;
|
AudioPluginFormatManager formatManager;
|
||||||
|
|||||||
Reference in New Issue
Block a user