mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	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) | ||||
|     list(APPEND SLIC3R_GUI_SOURCES Utils/RetinaHelperImpl.mm) | ||||
|     list(APPEND SLIC3R_GUI_SOURCES | ||||
|             Utils/RetinaHelperImpl.mm | ||||
|             Utils/MacDarkMode.mm | ||||
|         ) | ||||
| endif () | ||||
| 
 | ||||
| add_library(libslic3r_gui STATIC ${SLIC3R_GUI_SOURCES}) | ||||
|  |  | |||
|  | @ -34,6 +34,7 @@ | |||
| 
 | ||||
| #include "../Utils/PresetUpdater.hpp" | ||||
| #include "../Utils/PrintHost.hpp" | ||||
| #include "../Utils/MacDarkMode.hpp" | ||||
| #include "ConfigWizard.hpp" | ||||
| #include "slic3r/Config/Snapshot.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() | ||||
| { | ||||
|     auto luma = get_colour_approx_luma(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW)); | ||||
|     if (luma >= 128) { | ||||
|     if (dark_mode()) { | ||||
|         m_color_label_modified = wxColour(252, 77, 1); | ||||
|         m_color_label_sys = wxColour(26, 132, 57); | ||||
|     } | ||||
|  |  | |||
|  | @ -94,7 +94,9 @@ public: | |||
| 
 | ||||
|     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            update_label_colours_from_appconfig(); | ||||
|     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
		Add a link
		
	
		Reference in a new issue
	
	 Vojtech Kral
						Vojtech Kral