diff --git a/extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj b/extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj
index f622e1fa5e..b7792bd872 100644
--- a/extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj
+++ b/extras/Introjucer/Builds/MacOSX/The Introjucer.xcodeproj/project.pbxproj
@@ -322,6 +322,7 @@
6367309B2092121B86FE3AA0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_posix_NamedPipe.cpp"; path = "../../../../modules/juce_core/native/juce_posix_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; };
63B72B34BC9AC448422EF1A0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DocumentWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.cpp"; sourceTree = "SOURCE_ROOT"; };
63B74F9D9F43393F6427501C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebBrowserComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; };
+ 645DD595F5E5F46F69A0BF03 = { isa = PBXFileReference; lastKnownFileType = file.xml; name = "dark_scheme.xml"; path = "../../Source/BinaryData/dark_scheme.xml"; sourceTree = "SOURCE_ROOT"; };
64CF8D7D0C97323C1B4F16F2 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.h"; sourceTree = "SOURCE_ROOT"; };
65F4749184C84C2FDBB4C305 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "jucer_AudioPluginFilterTemplate.cpp"; path = "../../Source/BinaryData/jucer_AudioPluginFilterTemplate.cpp"; sourceTree = "SOURCE_ROOT"; };
6658BF44509F89120F6C6F8C = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp"; sourceTree = "SOURCE_ROOT"; };
@@ -818,6 +819,7 @@
88DFD62CB6545EE8CA5C485B = { isa = PBXGroup; children = (
5F4F4EAB042F2730F94A1CEA,
7074AEDE4B0416BC898DD27A,
+ 645DD595F5E5F46F69A0BF03,
B483D960309FAFC193F9CDA2,
0075C5208947159AF2802F3B,
AFF72BA2B130F3F9AC029080,
diff --git a/extras/Introjucer/Builds/VisualStudio2005/The Introjucer.vcproj b/extras/Introjucer/Builds/VisualStudio2005/The Introjucer.vcproj
index c4dfe83c8a..5205d0c4de 100644
--- a/extras/Introjucer/Builds/VisualStudio2005/The Introjucer.vcproj
+++ b/extras/Introjucer/Builds/VisualStudio2005/The Introjucer.vcproj
@@ -224,7 +224,7 @@
-
+
@@ -234,6 +234,7 @@
+
diff --git a/extras/Introjucer/Builds/VisualStudio2008/The Introjucer.vcproj b/extras/Introjucer/Builds/VisualStudio2008/The Introjucer.vcproj
index c17f9aa092..9df7f30bc5 100644
--- a/extras/Introjucer/Builds/VisualStudio2008/The Introjucer.vcproj
+++ b/extras/Introjucer/Builds/VisualStudio2008/The Introjucer.vcproj
@@ -224,7 +224,7 @@
-
+
@@ -234,6 +234,7 @@
+
diff --git a/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj b/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj
index 73fc44aed4..85f47f5c65 100644
--- a/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj
+++ b/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj
@@ -1332,6 +1332,7 @@
+
diff --git a/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj.filters b/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj.filters
index 47d49e5450..c59aab341e 100644
--- a/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj.filters
+++ b/extras/Introjucer/Builds/VisualStudio2010/The Introjucer.vcxproj.filters
@@ -2291,6 +2291,9 @@
The Introjucer\BinaryData
+
+ The Introjucer\BinaryData
+
The Introjucer\BinaryData
diff --git a/extras/Introjucer/Introjucer.jucer b/extras/Introjucer/Introjucer.jucer
index 52e7de8ee6..cbeab22e58 100644
--- a/extras/Introjucer/Introjucer.jucer
+++ b/extras/Introjucer/Introjucer.jucer
@@ -205,7 +205,8 @@
file="Source/BinaryData/AudioPluginXCodeScript.txt"/>
-
+
+
\r\n"
+"\r\n"
+"\r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+" \r\n"
+"\r\n";
-const char* juce_icon_png = (const char*) temp_ee6f0c0f;
+const char* dark_scheme_xml = (const char*) temp_b8a2e640;
//================== jucer_AudioPluginEditorTemplate.cpp ==================
static const unsigned char temp_6eda5614[] =
@@ -1151,8 +898,8 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw
case 0x2981a553: numBytes = 2112; return AudioPluginXCodeScript_txt;
case 0x950fd7dd:
case 0xa6cfe0e2: numBytes = 14724; return brushed_aluminium_png;
- case 0x154a7275:
- case 0xcd05ca61: numBytes = 19826; return juce_icon_png;
+ case 0x42b71ae6:
+ case 0xfbf631c1: numBytes = 1045; return dark_scheme_xml;
case 0x27c5a93a:
case 0xb6575890: numBytes = 1008; return jucer_AudioPluginEditorTemplate_cpp;
case 0x4d0721bf:
diff --git a/extras/Introjucer/JuceLibraryCode/BinaryData.h b/extras/Introjucer/JuceLibraryCode/BinaryData.h
index 5bc86feeaa..70e8dbea55 100644
--- a/extras/Introjucer/JuceLibraryCode/BinaryData.h
+++ b/extras/Introjucer/JuceLibraryCode/BinaryData.h
@@ -13,8 +13,8 @@ namespace BinaryData
extern const char* brushed_aluminium_png;
const int brushed_aluminium_pngSize = 14724;
- extern const char* juce_icon_png;
- const int juce_icon_pngSize = 19826;
+ extern const char* dark_scheme_xml;
+ const int dark_scheme_xmlSize = 1045;
extern const char* jucer_AudioPluginEditorTemplate_cpp;
const int jucer_AudioPluginEditorTemplate_cppSize = 1008;
diff --git a/extras/Introjucer/Source/Application/jucer_AppearanceSettings.cpp b/extras/Introjucer/Source/Application/jucer_AppearanceSettings.cpp
index c6029f81f4..5c36f850e0 100644
--- a/extras/Introjucer/Source/Application/jucer_AppearanceSettings.cpp
+++ b/extras/Introjucer/Source/Application/jucer_AppearanceSettings.cpp
@@ -70,26 +70,38 @@ AppearanceSettings::AppearanceSettings()
getColourValue (t.name) = t.colour.toString();
}
- Font f (editor.getFont());
- f.setTypefaceName (f.getTypeface()->getName());
- getCodeFontValue() = f.toString();
+ getCodeFontValue() = getDefaultCodeFont().toString();
settings.addListener (this);
}
File AppearanceSettings::getSchemesFolder()
{
- File f (getAppProperties().getFile().getSiblingFile ("Colour Schemes"));
+ File f (getAppProperties().getFile().getSiblingFile ("Schemes"));
f.createDirectory();
return f;
}
+void AppearanceSettings::writeDefaultSchemeFile (const String& xmlString, const String& name)
+{
+ const File file (getSchemesFolder().getChildFile (name).withFileExtension (getSchemeFileSuffix()));
+
+ if (! file.exists())
+ {
+ AppearanceSettings settings;
+
+ ScopedPointer xml (XmlDocument::parse (xmlString));
+ if (xml != nullptr)
+ settings.readFromXML (*xml);
+
+ settings.writeToFile (file);
+ }
+}
+
void AppearanceSettings::refreshPresetSchemeList()
{
- const File defaultSchemeFile (getSchemesFolder().getChildFile ("Default").withFileExtension (getSchemeFileSuffix()));
-
- if (! defaultSchemeFile.exists())
- AppearanceSettings().writeToFile (defaultSchemeFile);
+ writeDefaultSchemeFile (String::empty, "Default (Light)");
+ writeDefaultSchemeFile (BinaryData::dark_scheme_xml, "Default (Dark)");
Array newSchemes;
getSchemesFolder().findChildFiles (newSchemes, File::findFiles, false, String ("*") + getSchemeFileSuffix());
@@ -153,6 +165,11 @@ bool AppearanceSettings::writeToFile (const File& file) const
return xml != nullptr && xml->writeToFile (file, String::empty);
}
+Font AppearanceSettings::getDefaultCodeFont()
+{
+ return Font (Font::getDefaultMonospacedFontName(), Font::getDefaultStyle(), 13.0f);
+}
+
StringArray AppearanceSettings::getColourNames() const
{
StringArray s;
@@ -214,17 +231,7 @@ Font AppearanceSettings::getCodeFont() const
const String fontString (settings [Ids::font].toString());
if (fontString.isEmpty())
- {
- #if JUCE_MAC
- Font font (13.0f);
- font.setTypefaceName ("Menlo");
- #else
- Font font (10.0f);
- font.setTypefaceName (Font::getDefaultMonospacedFontName());
- #endif
-
- return font;
- }
+ return Font (Font::getDefaultMonospacedFontName(), 13.0f);
return Font::fromString (fontString);
}
@@ -272,7 +279,7 @@ struct AppearanceEditor
class Window : public DialogWindow
{
public:
- Window() : DialogWindow ("Appearance Settings", Colours::black, true, true)
+ Window() : DialogWindow ("Appearance Settings", Colours::darkgrey, true, true)
{
setUsingNativeTitleBar (true);
setContentOwned (new EditorPanel(), false);
@@ -316,13 +323,13 @@ struct AppearanceEditor
: loadButton ("Load Scheme..."),
saveButton ("Save Scheme...")
{
- setOpaque (true);
-
rebuildProperties();
addAndMakeVisible (&panel);
- loadButton.setColour (TextButton::buttonColourId, Colours::grey);
- saveButton.setColour (TextButton::buttonColourId, Colours::grey);
+ loadButton.setColour (TextButton::buttonColourId, Colours::darkgrey.withAlpha (0.5f));
+ saveButton.setColour (TextButton::buttonColourId, Colours::darkgrey.withAlpha (0.5f));
+ loadButton.setColour (TextButton::textColourOffId, Colours::white);
+ saveButton.setColour (TextButton::textColourOffId, Colours::white);
addAndMakeVisible (&loadButton);
addAndMakeVisible (&saveButton);
@@ -351,16 +358,11 @@ struct AppearanceEditor
panel.addProperties (props);
}
- void paint (Graphics& g)
- {
- g.fillAll (Colours::black);
- }
-
void resized()
{
Rectangle r (getLocalBounds());
- panel.setBounds (r.removeFromTop (getHeight() - 26).reduced (4, 3));
- loadButton.setBounds (r.removeFromLeft (getWidth() / 2).reduced (10, 3));
+ panel.setBounds (r.removeFromTop (getHeight() - 28).reduced (4, 2));
+ loadButton.setBounds (r.removeFromLeft (getWidth() / 2).reduced (10, 4));
saveButton.setBounds (r.reduced (10, 3));
}
@@ -379,12 +381,13 @@ struct AppearanceEditor
void saveScheme()
{
FileChooser fc ("Select a file in which to save this colour-scheme...",
- getAppSettings().appearance.getSchemesFolder().getNonexistentChildFile ("Scheme", ".editorscheme"),
- "*.editorscheme");
+ getAppSettings().appearance.getSchemesFolder()
+ .getNonexistentChildFile ("Scheme", AppearanceSettings::getSchemeFileSuffix()),
+ AppearanceSettings::getSchemeFileWildCard());
if (fc.browseForFileToSave (true))
{
- File file (fc.getResult().withFileExtension (".editorscheme"));
+ File file (fc.getResult().withFileExtension (AppearanceSettings::getSchemeFileSuffix()));
getAppSettings().appearance.writeToFile (file);
getAppSettings().appearance.refreshPresetSchemeList();
}
@@ -394,7 +397,7 @@ struct AppearanceEditor
{
FileChooser fc ("Please select a colour-scheme file to load...",
getAppSettings().appearance.getSchemesFolder(),
- "*.editorscheme");
+ AppearanceSettings::getSchemeFileWildCard());
if (fc.browseForFileToOpen())
{
@@ -426,14 +429,22 @@ struct AppearanceEditor
static ChoicePropertyComponent* createProperty (const String& title, const Value& value)
{
- const StringArray& fontNames = getAppSettings().getFontNames();
+ StringArray fontNames = getAppSettings().getFontNames();
Array values;
+ values.add (Font::getDefaultMonospacedFontName());
+ values.add (var());
+
for (int i = 0; i < fontNames.size(); ++i)
values.add (fontNames[i]);
+ StringArray names;
+ names.add ("");
+ names.add (String::empty);
+ names.addArray (getAppSettings().getFontNames());
+
return new ChoicePropertyComponent (Value (new FontNameValueSource (value)),
- title, fontNames, values);
+ title, names, values);
}
};
@@ -497,7 +508,7 @@ void IntrojucerLookAndFeel::createTabTextLayout (const TabBarButton& button, con
Colour IntrojucerLookAndFeel::getTabBackgroundColour (TabBarButton& button)
{
- Colour normalBkg (button.getTabBackgroundColour());
+ const Colour normalBkg (button.getTabBackgroundColour());
Colour bkg (normalBkg.contrasting (0.15f));
if (button.isFrontTab())
bkg = bkg.overlaidWith (Colours::yellow.withAlpha (0.5f));
@@ -509,7 +520,7 @@ void IntrojucerLookAndFeel::drawTabButton (TabBarButton& button, Graphics& g, bo
{
const Rectangle activeArea (button.getActiveArea());
- Colour bkg (getTabBackgroundColour (button));
+ const Colour bkg (getTabBackgroundColour (button));
g.setGradientFill (ColourGradient (bkg.brighter (0.1f), 0, (float) activeArea.getY(),
bkg.darker (0.1f), 0, (float) activeArea.getBottom(), false));
@@ -552,7 +563,7 @@ void IntrojucerLookAndFeel::drawScrollbar (Graphics& g, ScrollBar& scrollbar, in
if (thumbSize > 0)
{
- const float thumbIndent = jmin (width, height) * 0.25f;
+ const float thumbIndent = (isScrollbarVertical ? width : height) * 0.25f;
const float thumbIndentx2 = thumbIndent * 2.0f;
if (isScrollbarVertical)
diff --git a/extras/Introjucer/Source/Application/jucer_AppearanceSettings.h b/extras/Introjucer/Source/Application/jucer_AppearanceSettings.h
index 62f23a9585..568372e6bf 100644
--- a/extras/Introjucer/Source/Application/jucer_AppearanceSettings.h
+++ b/extras/Introjucer/Source/Application/jucer_AppearanceSettings.h
@@ -48,20 +48,25 @@ public:
ValueTree settings;
- File getSchemesFolder();
+ static File getSchemesFolder();
StringArray getPresetSchemes();
void refreshPresetSchemeList();
void selectPresetScheme (int index);
+ static Font getDefaultCodeFont();
static Colour getScrollbarColourForBackground (const Colour& background);
static Component* createEditorWindow();
+ static const char* getSchemeFileSuffix() { return ".scheme"; }
+ static const char* getSchemeFileWildCard() { return "*.scheme"; }
+
private:
- static const char* getSchemeFileSuffix() { return ".editorscheme"; }
Array presetSchemeFiles;
+ static void writeDefaultSchemeFile (const String& xml, const String& name);
+
void applyToLookAndFeel (LookAndFeel&) const;
void valueTreePropertyChanged (ValueTree&, const Identifier&) { updateColourScheme(); }
diff --git a/extras/Introjucer/Source/BinaryData/dark_scheme.xml b/extras/Introjucer/Source/BinaryData/dark_scheme.xml
new file mode 100644
index 0000000000..9db2982280
--- /dev/null
+++ b/extras/Introjucer/Source/BinaryData/dark_scheme.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp b/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp
index 61cc207b9f..c2a1f5c8e8 100644
--- a/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp
+++ b/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp
@@ -126,15 +126,7 @@ void SourceCodeEditor::setEditor (CodeEditorComponent* newEditor)
{
addAndMakeVisible (editor = newEditor);
- #if JUCE_MAC
- Font font (13.0f);
- font.setTypefaceName ("Menlo");
- #else
- Font font (12.0f);
- font.setTypefaceName (Font::getDefaultMonospacedFontName());
- #endif
- editor->setFont (font);
-
+ editor->setFont (AppearanceSettings::getDefaultCodeFont());
editor->setTabSize (4, true);
updateColourScheme();
diff --git a/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp b/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp
index 189d39fbb2..e99ff69c84 100644
--- a/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp
+++ b/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp
@@ -61,10 +61,12 @@ public:
addAndMakeVisible (&openProjectButton);
openProjectButton.setCommandToTrigger (commandManager, CommandIDs::openInIDE, true);
openProjectButton.setButtonText (commandManager->getNameOfCommand (CommandIDs::openInIDE));
+ openProjectButton.setColour (TextButton::buttonColourId, Colours::white.withAlpha (0.5f));
addAndMakeVisible (&saveAndOpenButton);
saveAndOpenButton.setCommandToTrigger (commandManager, CommandIDs::saveAndOpenInIDE, true);
saveAndOpenButton.setButtonText (commandManager->getNameOfCommand (CommandIDs::saveAndOpenInIDE));
+ saveAndOpenButton.setColour (TextButton::buttonColourId, Colours::white.withAlpha (0.5f));
#endif
}
diff --git a/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj b/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj
index d976fb8b46..6739cd5433 100644
--- a/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj
+++ b/extras/JuceDemo/Builds/VisualStudio2010/Juce Demo.vcxproj
@@ -93,7 +93,7 @@
- MaxSpeed
+ MinSpace
..\..\JuceLibraryCode;%(AdditionalIncludeDirectories)
WIN32;_WINDOWS;NDEBUG;JUCE_UNIT_TESTS=1;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions)
MultiThreaded
diff --git a/extras/static library/Builds/VisualStudio2010/juce.vcxproj b/extras/static library/Builds/VisualStudio2010/juce.vcxproj
index a938f7c132..df593b6675 100644
--- a/extras/static library/Builds/VisualStudio2010/juce.vcxproj
+++ b/extras/static library/Builds/VisualStudio2010/juce.vcxproj
@@ -93,7 +93,7 @@
- MaxSpeed
+ MinSpace
..\..\JuceLibraryCode;%(AdditionalIncludeDirectories)
_LIB;WIN32;_WINDOWS;NDEBUG;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions)
MultiThreaded
diff --git a/extras/the jucer/Builds/VisualStudio2010/Jucer.vcxproj b/extras/the jucer/Builds/VisualStudio2010/Jucer.vcxproj
index 26023cccab..daf99e8247 100644
--- a/extras/the jucer/Builds/VisualStudio2010/Jucer.vcxproj
+++ b/extras/the jucer/Builds/VisualStudio2010/Jucer.vcxproj
@@ -93,7 +93,7 @@
- MaxSpeed
+ MinSpace
..\..\JuceLibraryCode;%(AdditionalIncludeDirectories)
WIN32;_WINDOWS;NDEBUG;JUCER_VS2010_78A501D=1;%(PreprocessorDefinitions)
MultiThreaded