X-Git-Url: http://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fui.c;h=640a865783cf8b285aaef3c2d5f1fa0acf88d3ef;hb=88bdf7fed0d4f2c891cf6aedebe230a03a1eaf20;hp=dcb3ea080f3a18e9e53300a329daa2acd2765c28;hpb=9cbed896abcdbd9e00064b86bb4db1981ff37eb2;p=psensor.git diff --git a/src/ui.c b/src/ui.c index dcb3ea0..640a865 100644 --- a/src/ui.c +++ b/src/ui.c @@ -18,15 +18,54 @@ */ #include -#include "cfg.h" -#include "slog.h" -#include "ui.h" -#include "ui_graph.h" -#include "ui_pref.h" -#include "ui_sensorpref.h" -#include "ui_sensorlist.h" -#include "ui_status.h" -#include "ui_appindicator.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static void set_decoration(GtkWindow *win) +{ + gtk_window_set_decorated(win, config_is_window_decoration_enabled()); +} + +static void set_keep_below(GtkWindow *win) +{ + gtk_window_set_keep_below(win, config_is_window_keep_below_enabled()); +} + +static void +decoration_changed_cbk(GSettings *settings, gchar *key, gpointer data) +{ + set_decoration((GtkWindow *)data); +} + +static void +keep_below_changed_cbk(GSettings *settings, gchar *key, gpointer data) +{ + set_keep_below((GtkWindow *)data); +} + +static void connect_cbks(GtkWindow *win) +{ + log_fct_enter(); + + g_signal_connect_after(config_get_GSettings(), + "changed::interface-window-decoration-disabled", + G_CALLBACK(decoration_changed_cbk), + win); + + g_signal_connect_after(config_get_GSettings(), + "changed::interface-window-keep-below-enabled", + G_CALLBACK(keep_below_changed_cbk), + win); + + log_fct_exit(); +} static void save_window_pos(struct ui_psensor *ui) { @@ -76,7 +115,7 @@ on_delete_event_cb(GtkWidget *widget, GdkEvent *event, gpointer data) return TRUE; } -void ui_show_about_dialog() +void ui_show_about_dialog(void) { static const char *const authors[] = { "jeanfi@gmail.com", NULL }; @@ -225,11 +264,8 @@ void ui_window_create(struct ui_psensor *ui) g_signal_connect(window, "delete_event", G_CALLBACK(on_delete_event_cb), ui); - gtk_window_set_decorated(GTK_WINDOW(window), - cfg->window_decoration_enabled); - - gtk_window_set_keep_below(GTK_WINDOW(window), - cfg->window_keep_below_enabled); + set_decoration(GTK_WINDOW(window)); + set_keep_below(GTK_WINDOW(window)); ui->menu_bar = GTK_WIDGET(gtk_builder_get_object(builder, "menu_bar")); ui->main_box = GTK_WIDGET(gtk_builder_get_object(builder, "main_box")); @@ -253,6 +289,8 @@ void ui_window_create(struct ui_psensor *ui) ui_sensorlist_create(ui); + connect_cbks(GTK_WINDOW(window)); + log_debug("ui_window_create(): show_all"); gtk_widget_show_all(ui->main_box); @@ -349,11 +387,11 @@ static int cmp_sensors(const void *p1, const void *p2) return pos1 - pos2; } -struct psensor **ui_get_sensors_ordered_by_position(const struct ui_psensor *ui) +struct psensor **ui_get_sensors_ordered_by_position(struct psensor **sensors) { struct psensor **result; - result = psensor_list_copy(ui->sensors); + result = psensor_list_copy(sensors); qsort(result, psensor_list_size(result), sizeof(struct psensor *),