diff --git a/XeRelease_Gtkmm4/CMakeLists.txt b/XeRelease_Gtkmm4/CMakeLists.txt index 8eec3d9..d793842 100644 --- a/XeRelease_Gtkmm4/CMakeLists.txt +++ b/XeRelease_Gtkmm4/CMakeLists.txt @@ -27,6 +27,7 @@ set(SOURCES src/main.cc src/MyWin.cc src/MyPrefs.cc #Compile resources with GCR_CMake set(RESOURCE_LIST style.css + style_dark.css STRIPBLANKS menubar.xml STRIPBLANKS prefs.ui icons/16x16/actions/open-menu.png diff --git a/XeRelease_Gtkmm4/res/style_dark.css b/XeRelease_Gtkmm4/res/style_dark.css new file mode 100644 index 0000000..456986e --- /dev/null +++ b/XeRelease_Gtkmm4/res/style_dark.css @@ -0,0 +1,10 @@ +/* +您可以在这里输入任何 GTK+ 可识别的 CSS 规则。 +您可以点击上面的“暂停”按钮来暂时停用这个自定义 CSS。 + +变更会立即应用到全局,影响整个应用程序。 +*/ + +box{ + background-color:rgba(34, 34, 35, 0.5); +} \ No newline at end of file diff --git a/XeRelease_Gtkmm4/src/MyWin.cc b/XeRelease_Gtkmm4/src/MyWin.cc index 9e911da..8c4d9ad 100644 --- a/XeRelease_Gtkmm4/src/MyWin.cc +++ b/XeRelease_Gtkmm4/src/MyWin.cc @@ -17,7 +17,8 @@ MyWin::MyWin() : btn_box(Gtk::Orientation::VERTICAL, 5), btn_ver("Xe-Ver"), cfg_box(Gtk::Orientation::VERTICAL, 5), - msg_dialog(*this) + msg_dialog(*this), + dark_mode(true) { // Initalize window set_icon_name("Xe-Release"); @@ -78,7 +79,11 @@ MyWin::MyWin() // Create Style for widgets provider = Gtk::CssProvider::create(); - provider->load_from_resource("/org/gtk/daleclack/style.css"); + if(dark_mode){ + provider->load_from_resource("/org/gtk/daleclack/style_dark.css"); + }else{ + provider->load_from_resource("/org/gtk/daleclack/style.css"); + } auto style1 = btn_box.get_style_context(); style1->add_provider(provider, 1); auto style2 = prefs->get_style_context(); diff --git a/XeRelease_Gtkmm4/src/MyWin.hh b/XeRelease_Gtkmm4/src/MyWin.hh index 95704d3..59c4870 100644 --- a/XeRelease_Gtkmm4/src/MyWin.hh +++ b/XeRelease_Gtkmm4/src/MyWin.hh @@ -29,6 +29,7 @@ private: void titlebar_init(); // Css Style + bool dark_mode; Glib::RefPtr provider; // Config Page diff --git a/XeRelease_Gtkmm4/src/os_detector.hh b/XeRelease_Gtkmm4/src/os_detector.hh new file mode 100644 index 0000000..c687d78 --- /dev/null +++ b/XeRelease_Gtkmm4/src/os_detector.hh @@ -0,0 +1,19 @@ +// Defining the OS +enum class OS_Type{ + Linux, + macOS, + Windows +}; + +static inline OS_Type os_detector(){ +#if defined(__linux__) || defined(__linux) || defined(linux) || defined(__gnu_linux__) + // #define COMPILED_IN_LINUX + return OS_Type::Linux; +#elif defined(__APPLE__) && defined(__MACH__) + // #define COMPILED_IN_MACOS + return OS_Type::macOS; +#elif defined(_WIN32) || defined(_WIN64) + // #define COMPILED_IN_WINDOWS + return OS_Type::Windows; +#endif +} \ No newline at end of file