From 28a322138d7b8a1f6cf0b80fa4866bbd8b7cffc8 Mon Sep 17 00:00:00 2001 From: jules Date: Wed, 3 Feb 2016 11:30:55 +0000 Subject: [PATCH] Added method Desktop::isOSXDarkModeActive() --- modules/juce_core/files/juce_File.cpp | 2 +- modules/juce_gui_basics/components/juce_Desktop.h | 5 +++++ modules/juce_gui_basics/native/juce_ios_Windowing.mm | 5 +---- modules/juce_gui_basics/native/juce_mac_Windowing.mm | 11 +++++++---- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/modules/juce_core/files/juce_File.cpp b/modules/juce_core/files/juce_File.cpp index d8fdc081da..4463a04fdf 100644 --- a/modules/juce_core/files/juce_File.cpp +++ b/modules/juce_core/files/juce_File.cpp @@ -1048,7 +1048,7 @@ public: expect (! tempFile.withFileExtension ("h").hasFileExtension ("bar;foo;xx")); expect (tempFile.getSiblingFile ("foo").isAChildOf (temp)); expect (tempFile.hasWriteAccess()); - + expect (home.getChildFile (".") == home); expect (home.getChildFile ("..") == home.getParentDirectory()); expect (home.getChildFile (".xyz").getFileName() == ".xyz"); diff --git a/modules/juce_gui_basics/components/juce_Desktop.h b/modules/juce_gui_basics/components/juce_Desktop.h index 29a8380b40..02657b63c5 100644 --- a/modules/juce_gui_basics/components/juce_Desktop.h +++ b/modules/juce_gui_basics/components/juce_Desktop.h @@ -394,6 +394,11 @@ public: /** True if the OS supports semitransparent windows */ static bool canUseSemiTransparentWindows() noexcept; + #if JUCE_MAC + /** OSX-specific function to check for the "dark" title-bar and menu mode. */ + static bool isOSXDarkModeActive(); + #endif + private: //============================================================================== static Desktop* instance; diff --git a/modules/juce_gui_basics/native/juce_ios_Windowing.mm b/modules/juce_gui_basics/native/juce_ios_Windowing.mm index 3e57985168..07bdc3f9b9 100644 --- a/modules/juce_gui_basics/native/juce_ios_Windowing.mm +++ b/modules/juce_gui_basics/native/juce_ios_Windowing.mm @@ -363,10 +363,7 @@ void SystemClipboard::copyTextToClipboard (const String& text) String SystemClipboard::getTextFromClipboard() { - if (NSString* text = [[UIPasteboard generalPasteboard] valueForPasteboardType: @"public.text"]) - return nsStringToJuce (text); - - return String(); + return nsStringToJuce ([[UIPasteboard generalPasteboard] valueForPasteboardType: @"public.text"]); } //============================================================================== diff --git a/modules/juce_gui_basics/native/juce_mac_Windowing.mm b/modules/juce_gui_basics/native/juce_mac_Windowing.mm index ced9b0f7a5..8cf57e312f 100644 --- a/modules/juce_gui_basics/native/juce_mac_Windowing.mm +++ b/modules/juce_gui_basics/native/juce_mac_Windowing.mm @@ -431,10 +431,7 @@ void SystemClipboard::copyTextToClipboard (const String& text) String SystemClipboard::getTextFromClipboard() { - NSString* text = [[NSPasteboard generalPasteboard] stringForType: NSStringPboardType]; - - return text == nil ? String() - : nsStringToJuce (text); + return nsStringToJuce ([[NSPasteboard generalPasteboard] stringForType: NSStringPboardType]); } void Process::setDockIconVisible (bool isVisible) @@ -447,3 +444,9 @@ void Process::setDockIconVisible (bool isVisible) jassertfalse; // sorry, not available in 10.5! #endif } + +bool Desktop::isOSXDarkModeActive() +{ + return [[[NSUserDefaults standardUserDefaults] stringForKey: nsStringLiteral ("AppleInterfaceStyle")] + isEqualToString: nsStringLiteral ("Dark")]; +}