2 Copyright (C) 2010-2011 jeanfi@gmail.com
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
26 #include "ui_sensorlist.h"
27 #include "ui_sensorpref.h"
30 void ui_sensorpref_dialog_run(struct psensor *sensor, struct ui_psensor *ui)
36 GtkLabel *w_id, *w_type;
38 GtkToggleButton *w_draw, *w_alarm;
39 GtkColorButton *w_color;
40 GtkSpinButton *w_temp_limit;
44 builder = gtk_builder_new();
46 ok = gtk_builder_add_from_file
48 PACKAGE_DATA_DIR G_DIR_SEPARATOR_S "sensor-edit.glade",
52 g_warning("%s", error->message);
57 w_id = GTK_LABEL(gtk_builder_get_object(builder, "sensor_id"));
58 gtk_label_set_text(w_id, sensor->id);
60 w_type = GTK_LABEL(gtk_builder_get_object(builder, "sensor_type"));
61 gtk_label_set_text(w_type, psensor_type_to_str(sensor->type));
63 w_name = GTK_ENTRY(gtk_builder_get_object(builder, "sensor_name"));
64 gtk_entry_set_text(w_name, sensor->name);
66 w_draw = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder,
68 gtk_toggle_button_set_active(w_draw, sensor->enabled);
70 color = color_to_gdkcolor(sensor->color);
71 w_color = GTK_COLOR_BUTTON(gtk_builder_get_object(builder,
73 gtk_color_button_set_color(w_color, color);
75 w_alarm = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder,
78 = GTK_SPIN_BUTTON(gtk_builder_get_object(builder,
79 "sensor_temp_limit"));
81 if (is_temp_type(sensor->type)) {
82 gtk_toggle_button_set_active(w_alarm, sensor->alarm_enabled);
83 gtk_spin_button_set_value(w_temp_limit, sensor->alarm_limit);
85 gtk_widget_set_sensitive(GTK_WIDGET(w_alarm), FALSE);
86 gtk_widget_set_sensitive(GTK_WIDGET(w_temp_limit), FALSE);
89 diag = GTK_DIALOG(gtk_builder_get_object(builder, "dialog1"));
90 result = gtk_dialog_run(diag);
92 if (result == GTK_RESPONSE_ACCEPT) {
95 sensor->name = strdup(gtk_entry_get_text(w_name));
96 config_set_sensor_name(sensor->id, sensor->name);
98 sensor->enabled = gtk_toggle_button_get_active(w_draw);
99 config_set_sensor_enabled(sensor->id, sensor->enabled);
101 sensor->alarm_limit = gtk_spin_button_get_value(w_temp_limit);
102 config_set_sensor_alarm_limit(sensor->id, sensor->alarm_limit);
104 sensor->alarm_enabled = gtk_toggle_button_get_active(w_alarm);
105 config_set_sensor_alarm_enabled(sensor->id,
106 sensor->alarm_enabled);
108 gtk_color_button_get_color(w_color, color);
109 color_set(sensor->color, color->red, color->green, color->blue);
110 config_set_sensor_color(sensor->id, sensor->color);
112 ui_sensorlist_update_sensors_preferences(ui);
115 g_object_unref(G_OBJECT(builder));
117 gtk_widget_destroy(GTK_WIDGET(diag));