/*
- * Copyright (C) 2010-2014 jeanfi@gmail.com
+ * Copyright (C) 2010-2016 jeanfi@gmail.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
#include <cfg.h>
#include <temperature.h>
#include <ui_appindicator.h>
+#include <ui_color.h>
#include <ui_pref.h>
#include <ui_sensorlist.h>
#include <ui_sensorpref.h>
-#include <ui_color.h>
enum {
COL_NAME = 0,
static GtkLabel *w_sensor_id;
static GtkLabel *w_sensor_type;
static GtkLabel *w_sensor_chipname;
+static GtkLabel *w_sensor_min;
+static GtkLabel *w_sensor_max;
static GtkLabel *w_sensor_low_threshold_unit;
static GtkLabel *w_sensor_high_threshold_unit;
static GtkEntry *w_sensor_name;
static GtkSpinButton *w_sensor_low_threshold;
static GtkListStore *store;
-
/* 'true' when the notifications of field changes are due to the change
- * of the selected sensor. */
+ * of the selected sensor.
+ */
static bool ignore_changes;
static struct psensor *get_selected_sensor(void)
return;
v = gtk_spin_button_get_value(btn);
- if (config_get_sensor_unit() == FAHRENHEIT)
+ if (config_get_temperature_unit() == FAHRENHEIT)
v = fahrenheit_to_celsius(v);
config_set_sensor_alarm_high_threshold(s->id, v);
return;
v = gtk_spin_button_get_value(btn);
- if (config_get_sensor_unit() == FAHRENHEIT)
+ if (config_get_temperature_unit() == FAHRENHEIT)
v = fahrenheit_to_celsius(v);
config_set_sensor_alarm_low_threshold(s->id, v);
int use_celsius, threshold;
GdkRGBA *color;
const char *chip;
+ char *smin, *smax;
if (!s)
return;
chip = _("Unknown");
gtk_label_set_text(w_sensor_chipname, chip);
+ use_celsius = config_get_temperature_unit() == CELSIUS ? 1 : 0;
+
+ if (s->min == UNKNOWN_DBL_VALUE)
+ smin = strdup(_("Unknown"));
+ else
+ smin = psensor_value_to_str(s->type, s->min, use_celsius);
+
+ gtk_label_set_text(w_sensor_min, smin);
+ free(smin);
+
+ if (s->max == UNKNOWN_DBL_VALUE)
+ smax = strdup(_("Unknown"));
+ else
+ smax = psensor_value_to_str(s->type, s->max, use_celsius);
+ gtk_label_set_text(w_sensor_max, smax);
+ free(smax);
+
gtk_toggle_button_set_active(w_sensor_draw,
config_is_sensor_graph_enabled(s->id));
gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(w_sensor_color), color);
gdk_rgba_free(color);
- use_celsius = config_get_sensor_unit() == CELSIUS ? 1 : 0;
gtk_label_set_text(w_sensor_high_threshold_unit,
psensor_type_to_unit_str(s->type, use_celsius));
gtk_label_set_text(w_sensor_low_threshold_unit,
gtk_toggle_button_set_active(w_sensor_alarm,
config_get_sensor_alarm_enabled(s->id));
- threshold = config_get_sensor_alarm_high_threshold(s->id);
+ threshold = s->alarm_high_threshold;
if (!use_celsius)
threshold = celsius_to_fahrenheit(threshold);
gtk_spin_button_set_value(w_sensor_high_threshold, threshold);
- threshold = config_get_sensor_alarm_low_threshold(s->id);
+ threshold = s->alarm_low_threshold;
if (!use_celsius)
threshold = celsius_to_fahrenheit(threshold);
gtk_spin_button_set_value(w_sensor_low_threshold, threshold);
void ui_sensorpref_close_clicked_cb(GtkButton *btn, gpointer data)
{
quit();
- return TRUE;
}
static GtkBuilder *load_ui(struct ui_psensor *ui)
(gtk_builder_get_object(builder, "sensor_name"));
w_sensor_chipname = GTK_LABEL
(gtk_builder_get_object(builder, "chip_name"));
+ w_sensor_min = GTK_LABEL
+ (gtk_builder_get_object(builder, "sensor_min"));
+ w_sensor_max = GTK_LABEL
+ (gtk_builder_get_object(builder, "sensor_max"));
w_sensor_draw = GTK_TOGGLE_BUTTON
(gtk_builder_get_object(builder, "sensor_draw"));
w_sensor_display = GTK_TOGGLE_BUTTON
store = GTK_LIST_STORE(gtk_builder_get_object(builder,
"sensors_liststore"));
+ gtk_window_set_transient_for(GTK_WINDOW(w_dialog),
+ GTK_WINDOW(ui->main_window));
gtk_builder_connect_signals(builder, ui);
g_signal_connect(w_dialog,