Add menu item for dark mode
This commit is contained in:
parent
d0cdfe02d7
commit
fb16495ec7
|
@ -21,6 +21,9 @@
|
||||||
<attribute name='action'>win.back3</attribute>
|
<attribute name='action'>win.back3</attribute>
|
||||||
</item>
|
</item>
|
||||||
</submenu>
|
</submenu>
|
||||||
|
<item>
|
||||||
|
<attribute name='custom'>check_dark</attribute>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<attribute name='label'>About</attribute>
|
<attribute name='label'>About</attribute>
|
||||||
<attribute name='action'>win.about</attribute>
|
<attribute name='action'>win.about</attribute>
|
||||||
|
|
|
@ -181,6 +181,16 @@ void MyPrefs::set_parent_win(Gtk::Window *parent)
|
||||||
msg_dialog1.set_transient_for(*parent);
|
msg_dialog1.set_transient_for(*parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MyPrefs::set_dark_mode(bool dark_mode_enabled){
|
||||||
|
// Put the config of dark mode to the class
|
||||||
|
dark_mode = dark_mode_enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyPrefs::save_config_now(){
|
||||||
|
// Save config when the dark mode config is modified
|
||||||
|
btnok_clicked();
|
||||||
|
}
|
||||||
|
|
||||||
void MyPrefs::btnpath_clicked()
|
void MyPrefs::btnpath_clicked()
|
||||||
{
|
{
|
||||||
// Create a Dialog
|
// Create a Dialog
|
||||||
|
|
|
@ -32,6 +32,8 @@ public:
|
||||||
static MyPrefs *create();
|
static MyPrefs *create();
|
||||||
void set_parent_win(Gtk::Window *parent);
|
void set_parent_win(Gtk::Window *parent);
|
||||||
void init_json_data(json &data1);
|
void init_json_data(json &data1);
|
||||||
|
void save_config_now();
|
||||||
|
void set_dark_mode(bool dark_mode_enabled);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Glib::RefPtr<Gtk::Builder> ref_Glade;
|
Glib::RefPtr<Gtk::Builder> ref_Glade;
|
||||||
|
|
|
@ -18,7 +18,7 @@ MyWin::MyWin()
|
||||||
btn_ver("Xe-Ver"),
|
btn_ver("Xe-Ver"),
|
||||||
cfg_box(Gtk::Orientation::VERTICAL, 5),
|
cfg_box(Gtk::Orientation::VERTICAL, 5),
|
||||||
msg_dialog(*this),
|
msg_dialog(*this),
|
||||||
dark_mode(true)
|
check_dark("Enable dark mode")
|
||||||
{
|
{
|
||||||
// Initalize window
|
// Initalize window
|
||||||
set_icon_name("Xe-Release");
|
set_icon_name("Xe-Release");
|
||||||
|
@ -58,7 +58,6 @@ MyWin::MyWin()
|
||||||
btn_box.append(btn_ver);
|
btn_box.append(btn_ver);
|
||||||
btn_box.set_opacity(0.7);
|
btn_box.set_opacity(0.7);
|
||||||
overlay.add_overlay(btn_box);
|
overlay.add_overlay(btn_box);
|
||||||
btn_ver.signal_clicked().connect(sigc::mem_fun(*this, &MyWin::main_releases));
|
|
||||||
|
|
||||||
// Show everything
|
// Show everything
|
||||||
set_child(back_overlay);
|
set_child(back_overlay);
|
||||||
|
@ -79,7 +78,7 @@ MyWin::MyWin()
|
||||||
|
|
||||||
// Create Style for widgets
|
// Create Style for widgets
|
||||||
provider = Gtk::CssProvider::create();
|
provider = Gtk::CssProvider::create();
|
||||||
if(dark_mode){
|
if(check_dark.get_active()){
|
||||||
provider->load_from_resource("/org/gtk/daleclack/style_dark.css");
|
provider->load_from_resource("/org/gtk/daleclack/style_dark.css");
|
||||||
}else{
|
}else{
|
||||||
provider->load_from_resource("/org/gtk/daleclack/style.css");
|
provider->load_from_resource("/org/gtk/daleclack/style.css");
|
||||||
|
@ -92,6 +91,10 @@ MyWin::MyWin()
|
||||||
switcher.set_stack(stack1);
|
switcher.set_stack(stack1);
|
||||||
// show_all_children();
|
// show_all_children();
|
||||||
|
|
||||||
|
// Connect Signals
|
||||||
|
btn_ver.signal_clicked().connect(sigc::mem_fun(*this, &MyWin::main_releases));
|
||||||
|
check_dark.signal_toggled().connect(sigc::mem_fun(*this, &MyWin::check_toggled));
|
||||||
|
|
||||||
// Free Memory
|
// Free Memory
|
||||||
pixbuf.reset();
|
pixbuf.reset();
|
||||||
sized.reset();
|
sized.reset();
|
||||||
|
@ -114,6 +117,9 @@ void MyWin::titlebar_init()
|
||||||
auto object = menu_builder->get_object<Gio::MenuModel>("app-menu");
|
auto object = menu_builder->get_object<Gio::MenuModel>("app-menu");
|
||||||
popover.set_menu_model(object);
|
popover.set_menu_model(object);
|
||||||
|
|
||||||
|
// Add a check button for dark mode
|
||||||
|
popover.add_child(check_dark, "check_dark");
|
||||||
|
|
||||||
// Add Menu Actions
|
// Add Menu Actions
|
||||||
add_action("configs", sigc::mem_fun(*this, &MyWin::config_dialog));
|
add_action("configs", sigc::mem_fun(*this, &MyWin::config_dialog));
|
||||||
add_action("back1", sigc::mem_fun(*this, &MyWin::background1));
|
add_action("back1", sigc::mem_fun(*this, &MyWin::background1));
|
||||||
|
@ -186,6 +192,7 @@ void MyWin::load_config(){
|
||||||
config_longterm = data["Longterm"];
|
config_longterm = data["Longterm"];
|
||||||
config_stable = data["Stable"];
|
config_stable = data["Stable"];
|
||||||
config_devel = data["Develop"];
|
config_devel = data["Develop"];
|
||||||
|
check_dark.set_active(data["dark_mode"]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -229,6 +236,12 @@ void MyWin::main_releases()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MyWin::check_toggled(){
|
||||||
|
// Get the state of check button and set the config to json file
|
||||||
|
prefs->set_dark_mode(check_dark.get_active());
|
||||||
|
prefs->save_config_now();
|
||||||
|
}
|
||||||
|
|
||||||
void MyWin::about_dialog()
|
void MyWin::about_dialog()
|
||||||
{
|
{
|
||||||
char *version, *copyright;
|
char *version, *copyright;
|
||||||
|
|
|
@ -29,7 +29,8 @@ private:
|
||||||
void titlebar_init();
|
void titlebar_init();
|
||||||
|
|
||||||
// Css Style
|
// Css Style
|
||||||
bool dark_mode;
|
// bool dark_mode;
|
||||||
|
Gtk::CheckButton check_dark;
|
||||||
Glib::RefPtr<Gtk::CssProvider> provider;
|
Glib::RefPtr<Gtk::CssProvider> provider;
|
||||||
|
|
||||||
// Config Page
|
// Config Page
|
||||||
|
@ -55,4 +56,5 @@ private:
|
||||||
void on_window_hide(Gtk::Window *window);
|
void on_window_hide(Gtk::Window *window);
|
||||||
void about_dialog();
|
void about_dialog();
|
||||||
void main_releases();
|
void main_releases();
|
||||||
|
void check_toggled();
|
||||||
};
|
};
|
Loading…
Reference in New Issue