Detect dank mode on Mac OS
This commit is contained in:
parent
fb0836b0b2
commit
b158598393
5 changed files with 61 additions and 4 deletions
|
@ -149,7 +149,10 @@ set(SLIC3R_GUI_SOURCES
|
||||||
)
|
)
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
list(APPEND SLIC3R_GUI_SOURCES Utils/RetinaHelperImpl.mm)
|
list(APPEND SLIC3R_GUI_SOURCES
|
||||||
|
Utils/RetinaHelperImpl.mm
|
||||||
|
Utils/MacDarkMode.mm
|
||||||
|
)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
add_library(libslic3r_gui STATIC ${SLIC3R_GUI_SOURCES})
|
add_library(libslic3r_gui STATIC ${SLIC3R_GUI_SOURCES})
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
|
|
||||||
#include "../Utils/PresetUpdater.hpp"
|
#include "../Utils/PresetUpdater.hpp"
|
||||||
#include "../Utils/PrintHost.hpp"
|
#include "../Utils/PrintHost.hpp"
|
||||||
|
#include "../Utils/MacDarkMode.hpp"
|
||||||
#include "ConfigWizard.hpp"
|
#include "ConfigWizard.hpp"
|
||||||
#include "slic3r/Config/Snapshot.hpp"
|
#include "slic3r/Config/Snapshot.hpp"
|
||||||
#include "ConfigSnapshotDialog.hpp"
|
#include "ConfigSnapshotDialog.hpp"
|
||||||
|
@ -284,10 +285,24 @@ unsigned GUI_App::get_colour_approx_luma(const wxColour &colour)
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GUI_App::dark_mode()
|
||||||
|
{
|
||||||
|
const unsigned luma = get_colour_approx_luma(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
|
||||||
|
return luma < 128;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GUI_App::dark_mode_menus()
|
||||||
|
{
|
||||||
|
#if __APPLE__
|
||||||
|
return mac_dark_mode();
|
||||||
|
#else
|
||||||
|
return dark_mode();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void GUI_App::init_label_colours()
|
void GUI_App::init_label_colours()
|
||||||
{
|
{
|
||||||
auto luma = get_colour_approx_luma(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
|
if (dark_mode()) {
|
||||||
if (luma >= 128) {
|
|
||||||
m_color_label_modified = wxColour(252, 77, 1);
|
m_color_label_modified = wxColour(252, 77, 1);
|
||||||
m_color_label_sys = wxColour(26, 132, 57);
|
m_color_label_sys = wxColour(26, 132, 57);
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,7 +94,9 @@ public:
|
||||||
|
|
||||||
GUI_App();
|
GUI_App();
|
||||||
|
|
||||||
unsigned get_colour_approx_luma(const wxColour &colour);
|
static unsigned get_colour_approx_luma(const wxColour &colour);
|
||||||
|
static bool dark_mode();
|
||||||
|
static bool dark_mode_menus();
|
||||||
void init_label_colours();
|
void init_label_colours();
|
||||||
void update_label_colours_from_appconfig();
|
void update_label_colours_from_appconfig();
|
||||||
void init_fonts();
|
void init_fonts();
|
||||||
|
|
15
src/slic3r/Utils/MacDarkMode.hpp
Normal file
15
src/slic3r/Utils/MacDarkMode.hpp
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#ifndef slic3r_MacDarkMode_hpp_
|
||||||
|
#define slic3r_MacDarkMode_hpp_
|
||||||
|
|
||||||
|
namespace Slic3r {
|
||||||
|
namespace GUI {
|
||||||
|
|
||||||
|
#if __APPLE__
|
||||||
|
extern bool mac_dark_mode();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
} // namespace GUI
|
||||||
|
} // namespace Slic3r
|
||||||
|
|
||||||
|
#endif // MacDarkMode_h
|
22
src/slic3r/Utils/MacDarkMode.mm
Normal file
22
src/slic3r/Utils/MacDarkMode.mm
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
#import "MacDarkMode.hpp"
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
|
||||||
|
@implementation MacDarkMode
|
||||||
|
|
||||||
|
namespace Slic3r {
|
||||||
|
namespace GUI {
|
||||||
|
|
||||||
|
bool mac_dark_mode()
|
||||||
|
{
|
||||||
|
NSString *style = [[NSUserDefaults standardUserDefaults] stringForKey:@"AppleInterfaceStyle"];
|
||||||
|
return style && [style isEqualToString:@"Dark"];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
Loading…
Add table
Reference in a new issue