diff options
| author | info-cppsp <[email protected]> | 2017-11-18 16:24:13 +0100 | 
|---|---|---|
| committer | raveit65 <[email protected]> | 2017-11-26 20:41:43 +0100 | 
| commit | e493e98f479c5559adfe2451b6c80bf87318149a (patch) | |
| tree | 203746167797b3010e6ddc2f8dc3d2a918a1db9e | |
| parent | 287eeb06149861d8a56de73b2c897ebac95e48b0 (diff) | |
| download | mate-sensors-applet-e493e98f479c5559adfe2451b6c80bf87318149a.tar.bz2 mate-sensors-applet-e493e98f479c5559adfe2451b6c80bf87318149a.tar.xz | |
Fix indents 06
| -rw-r--r-- | sensors-applet/about-dialog.c | 2 | ||||
| -rw-r--r-- | sensors-applet/active-sensor-libnotify.c | 116 | ||||
| -rw-r--r-- | sensors-applet/active-sensor-libnotify.h | 1 | ||||
| -rw-r--r-- | sensors-applet/active-sensor.c | 1303 | ||||
| -rw-r--r-- | sensors-applet/active-sensor.h | 51 | ||||
| -rw-r--r-- | sensors-applet/main.c | 28 | 
6 files changed, 740 insertions, 761 deletions
| diff --git a/sensors-applet/about-dialog.c b/sensors-applet/about-dialog.c index ef21ff2..9ffe856 100644 --- a/sensors-applet/about-dialog.c +++ b/sensors-applet/about-dialog.c @@ -35,7 +35,7 @@ void about_dialog_open(SensorsApplet *sensors_applet) {      /* Construct the about dialog */      gtk_show_about_dialog(NULL,                    "icon-name", "mate-sensors-applet", -                  "program-name", PACKAGE_NAME,  +                  "program-name", PACKAGE_NAME,                    "version", PACKAGE_VERSION,                    "copyright", "(C) 2005-2009, Alex Murray <[email protected]>\n(C) 2011, Stefano Karapetsas <[email protected]>\n(C) 2012-2017, MATE developers",                    "authors", authors, diff --git a/sensors-applet/active-sensor-libnotify.c b/sensors-applet/active-sensor-libnotify.c index a0a5981..ce0d07c 100644 --- a/sensors-applet/active-sensor-libnotify.c +++ b/sensors-applet/active-sensor-libnotify.c @@ -27,37 +27,36 @@  #include "active-sensor-libnotify.h"  static void notif_closed_cb(NotifyNotification *notification, -                            ActiveSensor *active_sensor)  -{ -        g_assert(notification != NULL && active_sensor != NULL); -         -        int i; -         -        g_debug("Notification was closed.. setting reference to NULL so we can show again if needed."); -         -        // set notif reference to NULL -        for (i = 0; i < NUM_NOTIFS; i++) { -                if (active_sensor->notification[i] == notification) { -                        active_sensor->notification[i] = NULL; -                        break; -                } +                            ActiveSensor *active_sensor) { + +    g_assert(notification != NULL && active_sensor != NULL); + +    int i; + +    g_debug("Notification was closed.. setting reference to NULL so we can show again if needed."); + +    // set notif reference to NULL +    for (i = 0; i < NUM_NOTIFS; i++) { +        if (active_sensor->notification[i] == notification) { +            active_sensor->notification[i] = NULL; +            break;          } +    }  } -                  void active_sensor_libnotify_notify_end(ActiveSensor *active_sensor,                                          NotifType notif_type) { -        GError *error = NULL; -        if (active_sensor->notification[notif_type]) { -                g_debug("Closing notification"); -                if(!notify_notification_close(active_sensor->notification[notif_type], -                                              &error)) { -                        g_warning("Error closing notification: %s", error->message); -                        g_error_free(error); -                } -                g_object_unref(active_sensor->notification[notif_type]); -                active_sensor->notification[notif_type] = NULL; + +    GError *error = NULL; +    if (active_sensor->notification[notif_type]) { +        g_debug("Closing notification"); +        if(!notify_notification_close(active_sensor->notification[notif_type], &error)) { +            g_warning("Error closing notification: %s", error->message); +            g_error_free(error);          } +        g_object_unref(active_sensor->notification[notif_type]); +        active_sensor->notification[notif_type] = NULL; +    }  }  void active_sensor_libnotify_notify(ActiveSensor *active_sensor, @@ -66,46 +65,39 @@ void active_sensor_libnotify_notify(ActiveSensor *active_sensor,                                      const gchar *message,                                      const gchar *icon_filename,                                      gint timeout_msecs) { -        GError *error = NULL; -        if (!notify_is_initted()) { -                if (!notify_init(PACKAGE)) { -                        return; -                } -        } -        g_debug("Doing notification %s: %s: %s", (notif_type == SENSOR_INTERFACE_ERROR ? "interface-error" : "other") ,summary, message); +    GError *error = NULL; -        /* leave any existing notification since most likely hasn't changed */ -        if (active_sensor->notification[notif_type] != NULL) { -                return; -/*                 active_sensor_libnotify_notify_end(active_sensor, notif_type); */ +    if (!notify_is_initted()) { +        if (!notify_init(PACKAGE)) { +            return;          } - -        /* now create a new one */ -        g_debug("Creating new notification"); -        active_sensor->notification[notif_type] = notify_notification_new(summary, -                                                                          message, -                                                                          icon_filename); -        g_signal_connect(active_sensor->notification[notif_type], "closed", -                         G_CALLBACK(notif_closed_cb), -                         active_sensor); - -        notify_notification_set_urgency(active_sensor->notification[notif_type], -                                        NOTIFY_URGENCY_CRITICAL); -         - -        /* timeout may have changed so update it */ -        notify_notification_set_timeout(active_sensor->notification[notif_type], -                                        timeout_msecs); - - -        g_debug("showing notification"); -        if (!notify_notification_show(active_sensor->notification[notif_type], &error)) { -                g_debug("Error showing notification: %s", error->message); -                g_error_free(error); -        }  -         - +    } +    g_debug("Doing notification %s: %s: %s", (notif_type == SENSOR_INTERFACE_ERROR ? "interface-error" : "other") ,summary, message); + +    /* leave any existing notification since most likely hasn't changed */ +    if (active_sensor->notification[notif_type] != NULL) { +        return; +        /* active_sensor_libnotify_notify_end(active_sensor, notif_type); */ +    } + +    /* now create a new one */ +    g_debug("Creating new notification"); +    active_sensor->notification[notif_type] = notify_notification_new(summary, message, icon_filename); +    g_signal_connect(active_sensor->notification[notif_type], "closed", +                     G_CALLBACK(notif_closed_cb), +                     active_sensor); + +    notify_notification_set_urgency(active_sensor->notification[notif_type], NOTIFY_URGENCY_CRITICAL); + +    /* timeout may have changed so update it */ +    notify_notification_set_timeout(active_sensor->notification[notif_type], timeout_msecs); + +    g_debug("showing notification"); +    if (!notify_notification_show(active_sensor->notification[notif_type], &error)) { +        g_debug("Error showing notification: %s", error->message); +        g_error_free(error); +    }  } diff --git a/sensors-applet/active-sensor-libnotify.h b/sensors-applet/active-sensor-libnotify.h index ceba9ae..b50117f 100644 --- a/sensors-applet/active-sensor-libnotify.h +++ b/sensors-applet/active-sensor-libnotify.h @@ -28,6 +28,7 @@ void active_sensor_libnotify_notify(ActiveSensor *active_sensor,                                      const gchar *message,                                      const gchar *icon_filename,                                      gint timeout_msecs); +  void active_sensor_libnotify_notify_end(ActiveSensor *active_sensor,                                          NotifType notif_type); diff --git a/sensors-applet/active-sensor.c b/sensors-applet/active-sensor.c index f4097a3..cf53dd2 100644 --- a/sensors-applet/active-sensor.c +++ b/sensors-applet/active-sensor.c @@ -34,11 +34,11 @@  #include "sensors-applet-settings.h"  typedef enum { -        VERY_LOW_SENSOR_VALUE = 0, -        LOW_SENSOR_VALUE, -        NORMAL_SENSOR_VALUE, -        HIGH_SENSOR_VALUE, -        VERY_HIGH_SENSOR_VALUE +    VERY_LOW_SENSOR_VALUE = 0, +    LOW_SENSOR_VALUE, +    NORMAL_SENSOR_VALUE, +    HIGH_SENSOR_VALUE, +    VERY_HIGH_SENSOR_VALUE  } SensorValueRange;  /* Cast a given value to a valid SensorValueRange */ @@ -47,140 +47,142 @@ typedef enum {  #define CAIRO_GRAPH_COLOR_GRADIENT 0.4  static const gchar * const temp_overlay_icons[] = { -        PIXMAPS_DIR "very-low-temp-icon.png", -        PIXMAPS_DIR "low-temp-icon.png", -        PIXMAPS_DIR "normal-temp-icon.png", -        PIXMAPS_DIR "high-temp-icon.png", -        PIXMAPS_DIR "very-high-temp-icon.png" +    PIXMAPS_DIR "very-low-temp-icon.png", +    PIXMAPS_DIR "low-temp-icon.png", +    PIXMAPS_DIR "normal-temp-icon.png", +    PIXMAPS_DIR "high-temp-icon.png", +    PIXMAPS_DIR "very-high-temp-icon.png"  }; +  static gdouble sensor_value_range_normalised(gdouble value,                                            gdouble low_value,                                            gdouble high_value) { -        return ((value - low_value)/(high_value - low_value)); + +    return ((value - low_value)/(high_value - low_value));  }  static SensorValueRange sensor_value_range(gdouble sensor_value, -                                                            gdouble low_value, -                                                            gdouble high_value) { -        gdouble range; -        range = sensor_value_range_normalised(sensor_value, low_value, high_value)*(gdouble)(VERY_HIGH_SENSOR_VALUE); - -        /* check if need to round up, otherwise let int conversion -         * round down for us and make sure it is a valid range -         * value */ -        return SENSOR_VALUE_RANGE(((gint)range + ((range - ((gint)range)) >= 0.5))); -} +                                            gdouble low_value, +                                            gdouble high_value) { +    gdouble range; +    range = sensor_value_range_normalised(sensor_value, low_value, high_value)*(gdouble)(VERY_HIGH_SENSOR_VALUE); + +    /* check if need to round up, otherwise let int conversion +     * round down for us and make sure it is a valid range +     * value */ +    return SENSOR_VALUE_RANGE(((gint)range + ((range - ((gint)range)) >= 0.5))); +}  static gboolean active_sensor_execute_alarm(ActiveSensor *active_sensor,                                              NotifType notif_type) { -        gboolean ret; -	GError *error = NULL; -        sensors_applet_notify_active_sensor(active_sensor, notif_type); -        g_debug("EXECUTING %s ALARM: %s",  -                (notif_type == LOW_ALARM ?  -                 "LOW" : "HIGH"), -                active_sensor->alarm_command[notif_type]); -	ret = g_spawn_command_line_async (active_sensor->alarm_command[notif_type], &error); -        g_debug("Command executed in shell"); +    gboolean ret; +    GError *error = NULL; -	if (error) -		g_error_free (error); +    sensors_applet_notify_active_sensor(active_sensor, notif_type); +    g_debug("EXECUTING %s ALARM: %s", +            (notif_type == LOW_ALARM ? +             "LOW" : "HIGH"), +            active_sensor->alarm_command[notif_type]); +    ret = g_spawn_command_line_async (active_sensor->alarm_command[notif_type], &error); +    g_debug("Command executed in shell"); -        return ret; +    if (error) +        g_error_free (error); + +    return ret;  }  static gboolean active_sensor_execute_low_alarm(ActiveSensor *active_sensor) { -        return active_sensor_execute_alarm(active_sensor, LOW_ALARM); +    return active_sensor_execute_alarm(active_sensor, LOW_ALARM);  }  static gboolean active_sensor_execute_high_alarm(ActiveSensor *active_sensor) { -        return active_sensor_execute_alarm(active_sensor, HIGH_ALARM); +    return active_sensor_execute_alarm(active_sensor, HIGH_ALARM);  } -/* needs to be able to be called by the config dialog when the alarm - * command changes */ +/* needs to be able to be called by the config dialog when the alarm command changes */  void active_sensor_alarm_off(ActiveSensor *active_sensor,                               NotifType notif_type) { -	g_assert(active_sensor); - -	if (active_sensor->alarm_timeout_id[notif_type] != -1) { -		g_debug("Disabling %s alarm.",  -                        (notif_type == LOW_ALARM ? "LOW" : "HIGH")); -		if (!g_source_remove(active_sensor->alarm_timeout_id[notif_type])) { -			g_debug("Error removing alarm source"); -		} -		g_free(active_sensor->alarm_command[notif_type]); -		active_sensor->alarm_timeout_id[notif_type] = -1; - -	} -        sensors_applet_notify_end(active_sensor, notif_type); + +    g_assert(active_sensor); + +    if (active_sensor->alarm_timeout_id[notif_type] != -1) { +        g_debug("Disabling %s alarm.", (notif_type == LOW_ALARM ? "LOW" : "HIGH")); +        if (!g_source_remove(active_sensor->alarm_timeout_id[notif_type])) { +            g_debug("Error removing alarm source"); +        } +        g_free(active_sensor->alarm_command[notif_type]); +        active_sensor->alarm_timeout_id[notif_type] = -1; + +    } +    sensors_applet_notify_end(active_sensor, notif_type);  }  static void active_sensor_all_alarms_off(ActiveSensor *active_sensor) { -        /* turn off any alarms */ -        int i; -        for (i = 0; i < NUM_ALARMS; i++) { -                if (active_sensor->alarm_timeout_id[i] >= 0) { -                        g_debug("-- turning off notif with type %d ---", i); -                        active_sensor_alarm_off(active_sensor, i); -                } +    /* turn off any alarms */ +    int i; +    for (i = 0; i < NUM_ALARMS; i++) { +        if (active_sensor->alarm_timeout_id[i] >= 0) { +            g_debug("-- turning off notif with type %d ---", i); +            active_sensor_alarm_off(active_sensor, i);          } +    }  }  static void active_sensor_alarm_on(ActiveSensor *active_sensor,                                     NotifType notif_type) { -	GtkTreeModel *model; -	GtkTreePath *tree_path; -	GtkTreeIter iter; -         -	g_assert(active_sensor); - -	model = gtk_tree_row_reference_get_model(active_sensor->sensor_row); -	tree_path = gtk_tree_row_reference_get_path(active_sensor->sensor_row); - -	if (gtk_tree_model_get_iter(model, &iter, tree_path)) { - -		if (active_sensor->alarm_timeout_id[notif_type] == -1) { -			/* alarm is not currently on */			 -			gtk_tree_model_get(model, -					   &iter, -					   (notif_type == LOW_ALARM ?  -                                            LOW_ALARM_COMMAND_COLUMN : -                                            HIGH_ALARM_COMMAND_COLUMN),  -                                           &(active_sensor->alarm_command[notif_type]), -					   ALARM_TIMEOUT_COLUMN, &(active_sensor->alarm_timeout), -					   -1); -                        g_debug("Activating alarm to repeat every %d seconds", active_sensor->alarm_timeout); -                         -			/* execute alarm once, then add to time to -			   keep repeating it */ -			active_sensor_execute_alarm(active_sensor, notif_type); -                        int timeout = (active_sensor->alarm_timeout <= 0 ?  -                                       G_MAXINT :  -                                       active_sensor->alarm_timeout); -                        switch (notif_type) { -                        case LOW_ALARM: -                                active_sensor->alarm_timeout_id[notif_type] = g_timeout_add_seconds(timeout, -                                                                                                    (GSourceFunc)active_sensor_execute_low_alarm, -                                                                                                    active_sensor); -                                break; -                        case HIGH_ALARM: -                                active_sensor->alarm_timeout_id[notif_type] = g_timeout_add_seconds(timeout, -                                                                                                    (GSourceFunc)active_sensor_execute_high_alarm, -                                                                                                    active_sensor); -                                break; -                        default: -                                g_debug("Unknown notif type: %d", notif_type); -                        } -                         -                         -                } -	} -	gtk_tree_path_free(tree_path); -         + +    GtkTreeModel *model; +    GtkTreePath *tree_path; +    GtkTreeIter iter; + +    g_assert(active_sensor); + +    model = gtk_tree_row_reference_get_model(active_sensor->sensor_row); +    tree_path = gtk_tree_row_reference_get_path(active_sensor->sensor_row); + +    if (gtk_tree_model_get_iter(model, &iter, tree_path)) { + +        if (active_sensor->alarm_timeout_id[notif_type] == -1) { +            /* alarm is not currently on */ +            gtk_tree_model_get(model, +                       &iter, +                       (notif_type == LOW_ALARM ? +                            LOW_ALARM_COMMAND_COLUMN : +                            HIGH_ALARM_COMMAND_COLUMN), +                       &(active_sensor->alarm_command[notif_type]), +                       ALARM_TIMEOUT_COLUMN, &(active_sensor->alarm_timeout), +                       -1); + +            g_debug("Activating alarm to repeat every %d seconds", active_sensor->alarm_timeout); + +            /* execute alarm once, then add to time to keep repeating it */ +            active_sensor_execute_alarm(active_sensor, notif_type); +            int timeout = (active_sensor->alarm_timeout <= 0 ? G_MAXINT : active_sensor->alarm_timeout); +            switch (notif_type) { +                case LOW_ALARM: +                    active_sensor->alarm_timeout_id[notif_type] = g_timeout_add_seconds(timeout, +                                                                                        (GSourceFunc)active_sensor_execute_low_alarm, +                                                                                        active_sensor); +                    break; + +                case HIGH_ALARM: +                    active_sensor->alarm_timeout_id[notif_type] = g_timeout_add_seconds(timeout, +                                                                                        (GSourceFunc)active_sensor_execute_high_alarm, +                                                                                        active_sensor); +                    break; + +                default: +                    g_debug("Unknown notif type: %d", notif_type); +            } + +        } +    } + +    gtk_tree_path_free(tree_path);  }  /** @@ -188,625 +190,608 @@ static void active_sensor_alarm_on(ActiveSensor *active_sensor,   * 0 if refer to same row, 1 if b comes before a   */  gint active_sensor_compare(ActiveSensor *a, ActiveSensor *b) { -	GtkTreePath *a_tree_path, *b_tree_path; -	gint ret_val; +    GtkTreePath *a_tree_path, *b_tree_path; +    gint ret_val; -	g_assert(a); -	g_assert(b); +    g_assert(a); +    g_assert(b); -	a_tree_path = gtk_tree_row_reference_get_path(a->sensor_row); -	b_tree_path = gtk_tree_row_reference_get_path(b->sensor_row); +    a_tree_path = gtk_tree_row_reference_get_path(a->sensor_row); +    b_tree_path = gtk_tree_row_reference_get_path(b->sensor_row); -	ret_val = gtk_tree_path_compare(a_tree_path, b_tree_path); +    ret_val = gtk_tree_path_compare(a_tree_path, b_tree_path); -	gtk_tree_path_free(a_tree_path); -	gtk_tree_path_free(b_tree_path); +    gtk_tree_path_free(a_tree_path); +    gtk_tree_path_free(b_tree_path); -	return ret_val; +    return ret_val;  } -static void active_sensor_update_icon(ActiveSensor *active_sensor,  -                                      GdkPixbuf *base_icon,  +static void active_sensor_update_icon(ActiveSensor *active_sensor, +                                      GdkPixbuf *base_icon,                                        SensorType sensor_type) { -	GdkPixbuf *overlay_icon, *new_icon; -	const gchar *overlay_icon_filename = NULL; -        SensorValueRange value_range; - -	g_assert(active_sensor); - -	/* select overlay icon -	 * depending on sensor -	 * value */ -        value_range = sensor_value_range(active_sensor->sensor_values[0], -                                         active_sensor->sensor_low_value, -                                         active_sensor->sensor_high_value); - -        if (sensor_type == TEMP_SENSOR) { -                overlay_icon_filename = temp_overlay_icons[value_range]; -        }  - -	/* load base icon */ -	new_icon = gdk_pixbuf_copy(base_icon); - -	/* only load overlay if required */ -	if (overlay_icon_filename) { -		overlay_icon = gdk_pixbuf_new_from_file_at_size(overlay_icon_filename, -								DEFAULT_ICON_SIZE,  -								DEFAULT_ICON_SIZE, -								NULL); -		if (overlay_icon) { -			gdk_pixbuf_composite(overlay_icon, new_icon, -					     0, 0, -					     DEFAULT_ICON_SIZE, DEFAULT_ICON_SIZE, -					     0, 0, -					     1.0, 1.0, -					     GDK_INTERP_BILINEAR, -					     255); -			 -			g_object_unref(overlay_icon); -		} -	} -        gtk_image_set_from_pixbuf(GTK_IMAGE(active_sensor->icon), -                                  new_icon); -	g_object_unref(new_icon); -	 +    GdkPixbuf *overlay_icon, *new_icon; +    const gchar *overlay_icon_filename = NULL; +    SensorValueRange value_range; + +    g_assert(active_sensor); + +    /* select overlay icon depending on sensor value */ +    value_range = sensor_value_range(active_sensor->sensor_values[0], +                                     active_sensor->sensor_low_value, +                                     active_sensor->sensor_high_value); + +    if (sensor_type == TEMP_SENSOR) { +        overlay_icon_filename = temp_overlay_icons[value_range]; +    } + +    /* load base icon */ +    new_icon = gdk_pixbuf_copy(base_icon); + +    /* only load overlay if required */ +    if (overlay_icon_filename) { +        overlay_icon = gdk_pixbuf_new_from_file_at_size(overlay_icon_filename, +                                DEFAULT_ICON_SIZE, +                                DEFAULT_ICON_SIZE, +                                NULL); + +        if (overlay_icon) { +            gdk_pixbuf_composite(overlay_icon, new_icon, +                                 0, 0, +                                 DEFAULT_ICON_SIZE, DEFAULT_ICON_SIZE, +                                 0, 0, +                                 1.0, 1.0, +                                 GDK_INTERP_BILINEAR, +                                 255); + +            g_object_unref(overlay_icon); +        } +    } + +    gtk_image_set_from_pixbuf(GTK_IMAGE(active_sensor->icon), +                              new_icon); +    g_object_unref(new_icon); +  }  static void active_sensor_update_graph(ActiveSensor *as, cairo_t *cr) { -        GtkAllocation allocation; -        gdouble line_height; -        gdouble width, height; -        gdouble x, y; -        cairo_pattern_t *pattern; -        gint i; - -        gtk_widget_get_allocation (as->graph, &allocation); -        width = allocation.width; -        height = allocation.height; - -        /* so we can set a clipping area, as well as fill the -         * back of the graph black */ -        cairo_rectangle(cr, -                        0, 0, -                        width, -                        height); -        /* clip to rectangle and keep it as a path so can be -         * filled below */ -        cairo_clip_preserve(cr); - -        /* use black for bg color of graphs */ -        cairo_set_source_rgb(cr, 0.0, 0.0, 0.0); -        cairo_fill(cr); -         - -        /* determine height to scale line at for each value - -         * only do as many as will fit or the number of -         * samples that we have */ -        for (i = 0; i < MIN(as->num_samples, width); i++) { -                /* need to remove one more to make it line up -                 * properly  when drawing */ -                x = width - i - 1; -                y = height; - -                line_height = sensor_value_range_normalised(as->sensor_values[i], -                                                            as->sensor_low_value, -                                                            as->sensor_high_value) * height; -                 -                 -                 -                if (line_height > 0) {  -                        cairo_move_to(cr, -                                      x,  -                                      y); -                        cairo_line_to(cr, x,  -                                      y - line_height); -                } - +    GtkAllocation allocation; +    gdouble line_height; +    gdouble width, height; +    gdouble x, y; +    cairo_pattern_t *pattern; +    gint i; + +    gtk_widget_get_allocation (as->graph, &allocation); +    width = allocation.width; +    height = allocation.height; + +    /* so we can set a clipping area, as well as fill the * back of the graph black */ +    cairo_rectangle(cr, +                    0, 0, +                    width, +                    height); +    /* clip to rectangle and keep it as a path so can be +     * filled below */ +    cairo_clip_preserve(cr); + +    /* use black for bg color of graphs */ +    cairo_set_source_rgb(cr, 0.0, 0.0, 0.0); +    cairo_fill(cr); + +    /* determine height to scale line at for each value - +     * only do as many as will fit or the number of +     * samples that we have */ +    for (i = 0; i < MIN(as->num_samples, width); i++) { +        /* need to remove one more to make it line up +         * properly  when drawing */ +        x = width - i - 1; +        y = height; + +        line_height = sensor_value_range_normalised(as->sensor_values[i], +                                                    as->sensor_low_value, +                                                    as->sensor_high_value) * height; + +        if (line_height > 0) { +            cairo_move_to(cr, x, y); +            cairo_line_to(cr, x, y - line_height);          } -        /* make lines a gradient from slightly darker than -         * chosen color at bottom of graph, to slightly -         * lighter than chosen color at top of graph */ -        pattern = cairo_pattern_create_linear(x, y, -                                              x, 0); -        cairo_pattern_add_color_stop_rgb(pattern, -                                         0, -                                         as->graph_color.red - CAIRO_GRAPH_COLOR_GRADIENT,  -                                         as->graph_color.green - CAIRO_GRAPH_COLOR_GRADIENT,  -                                         as->graph_color.blue - CAIRO_GRAPH_COLOR_GRADIENT); - -        cairo_pattern_add_color_stop_rgb(pattern, -                                         height, -                                         as->graph_color.red + CAIRO_GRAPH_COLOR_GRADIENT,  -                                         as->graph_color.green + CAIRO_GRAPH_COLOR_GRADIENT,  -                                         as->graph_color.blue + CAIRO_GRAPH_COLOR_GRADIENT); - -        cairo_set_source(cr, pattern); -        cairo_stroke(cr); -        cairo_pattern_destroy(pattern); +    } + +    /* make lines a gradient from slightly darker than +     * chosen color at bottom of graph, to slightly +     * lighter than chosen color at top of graph */ +    pattern = cairo_pattern_create_linear(x, y, x, 0); +    cairo_pattern_add_color_stop_rgb(pattern, +                                     0, +                                     as->graph_color.red - CAIRO_GRAPH_COLOR_GRADIENT, +                                     as->graph_color.green - CAIRO_GRAPH_COLOR_GRADIENT, +                                     as->graph_color.blue - CAIRO_GRAPH_COLOR_GRADIENT); + +    cairo_pattern_add_color_stop_rgb(pattern, +                                     height, +                                     as->graph_color.red + CAIRO_GRAPH_COLOR_GRADIENT, +                                     as->graph_color.green + CAIRO_GRAPH_COLOR_GRADIENT, +                                     as->graph_color.blue + CAIRO_GRAPH_COLOR_GRADIENT); + +    cairo_set_source(cr, pattern); +    cairo_stroke(cr); +    cairo_pattern_destroy(pattern);  }  void active_sensor_destroy(ActiveSensor *active_sensor) { -        g_debug("-- destroying active sensor label..."); -        gtk_widget_destroy(active_sensor->label); +    g_debug("-- destroying active sensor label..."); +    gtk_widget_destroy(active_sensor->label); -        g_debug("-- destroying active sensor icon.."); -        gtk_widget_destroy(active_sensor->icon); +    g_debug("-- destroying active sensor icon.."); +    gtk_widget_destroy(active_sensor->icon); -        g_debug("-- destroying active sensor value..."); -        gtk_widget_destroy(active_sensor->value); +    g_debug("-- destroying active sensor value..."); +    gtk_widget_destroy(active_sensor->value); -        g_debug("-- destroying active sensor graph and frame..."); -        gtk_widget_destroy(active_sensor->graph); -        gtk_widget_destroy(active_sensor->graph_frame); +    g_debug("-- destroying active sensor graph and frame..."); +    gtk_widget_destroy(active_sensor->graph); +    gtk_widget_destroy(active_sensor->graph_frame); -        g_debug("-- destroying active sensor values..."); -        g_free(active_sensor->sensor_values); +    g_debug("-- destroying active sensor values..."); +    g_free(active_sensor->sensor_values); -        active_sensor_all_alarms_off(active_sensor); +    active_sensor_all_alarms_off(active_sensor); -        g_free(active_sensor); +    g_free(active_sensor);  }  gboolean graph_draw_cb(GtkWidget *graph,                         cairo_t *cr,                         gpointer data) { -        ActiveSensor *as; -        as = (ActiveSensor *)data; +    ActiveSensor *as; + +    as = (ActiveSensor *)data; -        active_sensor_update_graph(as, cr); -        /* propagate event onwards */ +    active_sensor_update_graph(as, cr); +    /* propagate event onwards */ -        return FALSE; +    return FALSE;  }  static void active_sensor_set_graph_dimensions(ActiveSensor *as,                                                 gint width,                                                 gint height) { -        gdouble *old_values; -        gint num_samples, old_num_samples; -        gint graph_width, graph_height; - -        /* dimensions are really for graph frame, so need to remove -         * extra width added by graph frame - make sure not less than -         * 1 - always need atleast 1 sample */ -        graph_width = CLAMP(width - GRAPH_FRAME_EXTRA_WIDTH, 1, width - GRAPH_FRAME_EXTRA_WIDTH); -        graph_height = CLAMP(height - GRAPH_FRAME_EXTRA_WIDTH, 1 , height - GRAPH_FRAME_EXTRA_WIDTH); - -        g_debug("setting graph dimensions to %d x %d", graph_width, graph_height); -        num_samples = graph_width; - -        if (as->sensor_values) { -                old_values = as->sensor_values; -                old_num_samples = as->num_samples; -                 -                as->num_samples = num_samples; -                as->sensor_values = g_malloc0(sizeof(gdouble)*as->num_samples); -                memcpy(as->sensor_values, -                       old_values, -                       MIN(old_num_samples, as->num_samples)*sizeof(gdouble)); - -                g_free(old_values); -        } else { -                as->sensor_values = g_malloc0(sizeof(gdouble)*num_samples); -                as->num_samples = num_samples; -        }                 - -        /* update graph frame size request */ -        gtk_widget_set_size_request(as->graph, -                                    graph_width,  -                                    graph_height); + +    gdouble *old_values; +    gint num_samples, old_num_samples; +    gint graph_width, graph_height; + +    /* dimensions are really for graph frame, so need to remove +     * extra width added by graph frame - make sure not less than +     * 1 - always need atleast 1 sample */ +    graph_width = CLAMP(width - GRAPH_FRAME_EXTRA_WIDTH, 1, width - GRAPH_FRAME_EXTRA_WIDTH); +    graph_height = CLAMP(height - GRAPH_FRAME_EXTRA_WIDTH, 1 , height - GRAPH_FRAME_EXTRA_WIDTH); + +    g_debug("setting graph dimensions to %d x %d", graph_width, graph_height); +    num_samples = graph_width; + +    if (as->sensor_values) { +        old_values = as->sensor_values; +        old_num_samples = as->num_samples; + +        as->num_samples = num_samples; +        as->sensor_values = g_malloc0(sizeof(gdouble)*as->num_samples); +        memcpy(as->sensor_values, +               old_values, +               MIN(old_num_samples, as->num_samples)*sizeof(gdouble)); + +        g_free(old_values); +    } else { +        as->sensor_values = g_malloc0(sizeof(gdouble)*num_samples); +        as->num_samples = num_samples; +    } + +    /* update graph frame size request */ +    gtk_widget_set_size_request(as->graph, +                                graph_width, +                                graph_height);  }  void active_sensor_update_graph_dimensions(ActiveSensor *as,                                       gint sizes[2]) { -        active_sensor_set_graph_dimensions(as, sizes[0], sizes[1]); -        gtk_widget_queue_draw (as->graph); + +    active_sensor_set_graph_dimensions(as, sizes[0], sizes[1]); +    gtk_widget_queue_draw (as->graph);  }  ActiveSensor *active_sensor_new(SensorsApplet *sensors_applet,                                  GtkTreeRowReference *sensor_row) { -        ActiveSensor *active_sensor; -        MatePanelAppletOrient orient; -        gint graph_size; -        gboolean horizontal; -        g_assert(sensors_applet); -        g_assert(sensor_row); +    ActiveSensor *active_sensor; +    MatePanelAppletOrient orient; +    gint graph_size; +    gboolean horizontal; -        g_debug("creating new active sensor"); +    g_assert(sensors_applet); +    g_assert(sensor_row); -	active_sensor = g_new0(ActiveSensor, 1); -        active_sensor->sensors_applet = sensors_applet; +    g_debug("creating new active sensor"); -	active_sensor->sensor_row = sensor_row; +    active_sensor = g_new0(ActiveSensor, 1); +    active_sensor->sensors_applet = sensors_applet; -        int i; -        for (i = 0; i < NUM_NOTIFS; i++) { -                active_sensor->alarm_timeout_id[i] = -1; -        } +    active_sensor->sensor_row = sensor_row; + +    int i; +    for (i = 0; i < NUM_NOTIFS; i++) { +        active_sensor->alarm_timeout_id[i] = -1; +    } -        active_sensor->label = gtk_label_new(""); -        active_sensor->value = gtk_label_new(""); -        active_sensor->icon = gtk_image_new(); - -        active_sensor->graph = gtk_drawing_area_new(); -        active_sensor->graph_frame = gtk_frame_new(NULL); -        gtk_frame_set_shadow_type(GTK_FRAME(active_sensor->graph_frame), -                                  GTK_SHADOW_IN); -        gtk_container_add(GTK_CONTAINER(active_sensor->graph_frame), -                          active_sensor->graph); -        gtk_widget_add_events(active_sensor->graph_frame, -                              GDK_ALL_EVENTS_MASK); - -        /* need to set size according to orientation */ -        orient = mate_panel_applet_get_orient(active_sensor->sensors_applet->applet); -        graph_size = g_settings_get_int(active_sensor->sensors_applet->settings, GRAPH_SIZE); - -        horizontal = ((orient == MATE_PANEL_APPLET_ORIENT_UP) || -                      (orient == MATE_PANEL_APPLET_ORIENT_DOWN)); - -        active_sensor_set_graph_dimensions(active_sensor, -                                           (horizontal ? graph_size : sensors_applet->size), -                                           (horizontal ? sensors_applet->size : graph_size)); - -        g_signal_connect(G_OBJECT(active_sensor->graph), -                         "draw", -                         G_CALLBACK(graph_draw_cb), -                         active_sensor); - -        active_sensor->updated = FALSE; -        return active_sensor; +    active_sensor->label = gtk_label_new(""); +    active_sensor->value = gtk_label_new(""); +    active_sensor->icon = gtk_image_new(); + +    active_sensor->graph = gtk_drawing_area_new(); +    active_sensor->graph_frame = gtk_frame_new(NULL); +    gtk_frame_set_shadow_type(GTK_FRAME(active_sensor->graph_frame), +                              GTK_SHADOW_IN); +    gtk_container_add(GTK_CONTAINER(active_sensor->graph_frame), +                      active_sensor->graph); +    gtk_widget_add_events(active_sensor->graph_frame, +                          GDK_ALL_EVENTS_MASK); + +    /* need to set size according to orientation */ +    orient = mate_panel_applet_get_orient(active_sensor->sensors_applet->applet); +    graph_size = g_settings_get_int(active_sensor->sensors_applet->settings, GRAPH_SIZE); + +    horizontal = ((orient == MATE_PANEL_APPLET_ORIENT_UP) || +                  (orient == MATE_PANEL_APPLET_ORIENT_DOWN)); + +    active_sensor_set_graph_dimensions(active_sensor, +                                       (horizontal ? graph_size : sensors_applet->size), +                                       (horizontal ? sensors_applet->size : graph_size)); + +    g_signal_connect(G_OBJECT(active_sensor->graph), +                     "draw", +                     G_CALLBACK(graph_draw_cb), +                     active_sensor); + +    active_sensor->updated = FALSE; +    return active_sensor;  }  static void active_sensor_update_sensor_value(ActiveSensor *as,                                                gdouble sensor_value) { -        /* only if have more than 1 sample stored */ -        if (as->num_samples > 1) { -                memmove(&(as->sensor_values[1]), -                        as->sensor_values, -                        (as->num_samples - 1)*sizeof(gdouble)); -        } -         -        as->sensor_values[0] = sensor_value; +    /* only if have more than 1 sample stored */ +    if (as->num_samples > 1) { +        memmove(&(as->sensor_values[1]), +                as->sensor_values, +                (as->num_samples - 1)*sizeof(gdouble)); +    } + +    as->sensor_values[0] = sensor_value;  } -void active_sensor_update(ActiveSensor *active_sensor,  +void active_sensor_update(ActiveSensor *active_sensor,                            SensorsApplet *sensors_applet) { -        GtkTreeModel *model; -	GtkTreeIter iter; -	GtkTreePath *path; - -	/* instance data from the tree for this sensor */ -	gchar *sensor_path = NULL; -	gchar *sensor_id = NULL; -	gchar *sensor_label = NULL; -	SensorType sensor_type; -	gchar *sensor_interface; -	gboolean sensor_enabled; -	gdouble sensor_low_value; -	gdouble sensor_high_value; -	gboolean sensor_alarm_enabled; -	gdouble sensor_multiplier; -	gdouble sensor_offset; -	gdouble sensor_value; -	GdkPixbuf *icon_pixbuf; -	gchar *graph_color; -	gint label_min_width; -	gint label_width; -	GtkRequisition  req; - -	/* to build the list of labels as we go */ -	gchar *value_text = NULL; -	gchar *old_value_text; - -        TemperatureScale scale; -        DisplayMode display_mode; - -	GError *error = NULL; - -        gchar *tooltip = NULL; -        gchar *value_tooltip = NULL; - -        /* hidden gsettings options */ -        gint font_size = 0; -        gboolean hide_units = FALSE; -        gboolean hide_units_old = FALSE; - -	g_assert(active_sensor); -	g_assert(active_sensor->sensor_row); -        g_assert(sensors_applet); - -	model = gtk_tree_row_reference_get_model(active_sensor->sensor_row); -	path = gtk_tree_row_reference_get_path(active_sensor->sensor_row); - -	/* if can successfully get iter can proceed */ -	if (gtk_tree_model_get_iter(model, &iter, path)) { -		gtk_tree_path_free(path); -		gtk_tree_model_get(GTK_TREE_MODEL(sensors_applet->sensors),  -				   &iter, -				   PATH_COLUMN, &sensor_path, -				   ID_COLUMN, &sensor_id, -				   LABEL_COLUMN, &sensor_label, -				   INTERFACE_COLUMN, &sensor_interface, -				   SENSOR_TYPE_COLUMN, &sensor_type, -				   ENABLE_COLUMN, &sensor_enabled, -				   LOW_VALUE_COLUMN, &sensor_low_value, -				   HIGH_VALUE_COLUMN, &sensor_high_value, -				   ALARM_ENABLE_COLUMN, &sensor_alarm_enabled, -				   MULTIPLIER_COLUMN, &sensor_multiplier, -				   OFFSET_COLUMN, &sensor_offset, -                                   ICON_PIXBUF_COLUMN, &icon_pixbuf, -                                   GRAPH_COLOR_COLUMN, &graph_color, -				   -1); -			 - -                SensorsAppletPluginGetSensorValue get_sensor_value; -		/* only call function if is in hash table for plugin */ -                if ((get_sensor_value = sensors_applet_plugins_get_sensor_value_func(sensors_applet, sensor_interface)) != NULL) { -                        sensor_value = get_sensor_value(sensor_path, -                                                        sensor_id, -                                                        sensor_type, -                                                        &error); -				 - -                        if (error) { -                                g_debug("Error updating active sensor: %s", error->message); -                                sensors_applet_notify_active_sensor(active_sensor,  -                                                                    SENSOR_INTERFACE_ERROR); -                                 -                                /* hard code text as ERROR */ -				value_text = g_strdup(_("ERROR")); -                                value_tooltip = g_strdup_printf("- %s", error->message); -				g_error_free(error); -				error = NULL; - -                                /* set sensor value to an error code - -                                 * note this is not unique */ -                                sensor_value = -1; -			} else {  -                                /* use hidden gsettings key for hide_units */ -				hide_units_old = hide_units; -				hide_units = g_settings_get_boolean(sensors_applet->settings, HIDE_UNITS); - -                                /* scale value and set text using this -                                 * value */ -				switch (sensor_type) { -				case TEMP_SENSOR: - -                                        scale = (TemperatureScale) g_settings_get_int(sensors_applet->settings, TEMPERATURE_SCALE); -                                        /* scale value */ -					sensor_value = sensors_applet_convert_temperature(sensor_value,  -                                                                                          CELSIUS, -                                                                                          scale);  -                                         -                                        sensor_value = (sensor_value * sensor_multiplier) + sensor_offset; -                                        switch (scale) { -                                        case FAHRENHEIT: -                                                value_text = g_strdup_printf("%2.0f %s", sensor_value, (hide_units ? "" : UNITS_FAHRENHEIT)); -                                                /* tooltip should -                                                 * always display -                                                 * units */ -                                                value_tooltip = g_strdup_printf("%2.0f %s", sensor_value, UNITS_FAHRENHEIT); -                                                 -                                                break; -                                        case CELSIUS: -                                                value_text = g_strdup_printf("%2.0f %s", sensor_value, (hide_units ? "" : UNITS_CELSIUS)); -                                                value_tooltip = g_strdup_printf("%2.0f %s", sensor_value, UNITS_CELSIUS); -                                                break; -                                        case KELVIN: -                                                value_text = g_strdup_printf("%2.0f", sensor_value); -                                                value_tooltip = g_strdup(value_text); -                                                break; -                                        } -                                        break; -				 -                                case FAN_SENSOR: -                                        sensor_value = (sensor_value * sensor_multiplier) + sensor_offset; -                                        value_text = g_strdup_printf("%4.0f %s", sensor_value, (hide_units ? "" : UNITS_RPM)); -                                        value_tooltip = g_strdup_printf("%4.0f %s", sensor_value, UNITS_RPM); - -					break; -                                         -				case VOLTAGE_SENSOR: -					sensor_value = (sensor_value * sensor_multiplier) + sensor_offset; -					value_text = g_strdup_printf("%4.2f %s", sensor_value, (hide_units ? "" : UNITS_VOLTAGE)); -					value_tooltip = g_strdup_printf("%4.2f %s", sensor_value, UNITS_VOLTAGE); - -					break; -				 -				case CURRENT_SENSOR: -					sensor_value = (sensor_value * sensor_multiplier) + sensor_offset; -					value_text = g_strdup_printf("%4.2f %s", sensor_value, (hide_units ? "" : UNITS_CURRENT)); -					value_tooltip = g_strdup_printf("%4.2f %s", sensor_value, UNITS_CURRENT); -					break; -				 -                                } /* end switch(sensor_type) */ -                        } /* end else on error */ - -                        /* setup for tooltips */ -                        if (sensors_applet->show_tooltip) -                                tooltip = g_strdup_printf("%s %s", sensor_label, value_tooltip); -                        g_free(value_tooltip); - -                        /* only do icons and labels / graphs if needed */ -                        display_mode = g_settings_get_int (sensors_applet->settings, DISPLAY_MODE); -                         -                        /* most users wont have a font size set */ -                        font_size = g_settings_get_int (sensors_applet->settings, FONT_SIZE); - -                                                 -                        /* do icon if needed */ -                        if (display_mode == DISPLAY_ICON || -                            display_mode == DISPLAY_ICON_WITH_VALUE) { -                                /* update icon if icon range has changed if no -                                 * update has been done before */ -                                if ((sensor_value_range(sensor_value, sensor_low_value, sensor_high_value) != sensor_value_range(active_sensor->sensor_values[0], active_sensor->sensor_low_value, active_sensor->sensor_high_value)) || !(active_sensor->updated)) { -                                        active_sensor_update_sensor_value(active_sensor, -                                                                          sensor_value); -                                        active_sensor->sensor_low_value = sensor_low_value; -                                        active_sensor->sensor_high_value = sensor_high_value;                                 -                                        active_sensor_update_icon(active_sensor, icon_pixbuf, sensor_type); -                                } -                                if (tooltip) { -                                        gtk_widget_set_tooltip_text(active_sensor->icon, -                                                                    tooltip); -                                } -                        } -                        active_sensor_update_sensor_value(active_sensor, -                                                          sensor_value); -                        active_sensor->sensor_low_value = sensor_low_value; -                        active_sensor->sensor_high_value = sensor_high_value; -                 -                        /* do graph if needed */ -                        if (display_mode == DISPLAY_GRAPH) { -                                /* update graph color in case has changed */ -                                gdk_rgba_parse(&(active_sensor->graph_color), -                                               graph_color); -                                 -                                gtk_widget_queue_draw (active_sensor->graph); -                                if (tooltip) { -                                        gtk_widget_set_tooltip_text(active_sensor->graph, -                                                                    tooltip); -                                } -                                 +    GtkTreeModel *model; +    GtkTreeIter iter; +    GtkTreePath *path; + +    /* instance data from the tree for this sensor */ +    gchar *sensor_path = NULL; +    gchar *sensor_id = NULL; +    gchar *sensor_label = NULL; +    SensorType sensor_type; +    gchar *sensor_interface; +    gboolean sensor_enabled; +    gdouble sensor_low_value; +    gdouble sensor_high_value; +    gboolean sensor_alarm_enabled; +    gdouble sensor_multiplier; +    gdouble sensor_offset; +    gdouble sensor_value; +    GdkPixbuf *icon_pixbuf; +    gchar *graph_color; +    gint label_min_width; +    gint label_width; +    GtkRequisition  req; + +    /* to build the list of labels as we go */ +    gchar *value_text = NULL; +    gchar *old_value_text; + +    TemperatureScale scale; +    DisplayMode display_mode; + +    GError *error = NULL; + +    gchar *tooltip = NULL; +    gchar *value_tooltip = NULL; + +    /* hidden gsettings options */ +    gint font_size = 0; +    gboolean hide_units = FALSE; +    gboolean hide_units_old = FALSE; + +    g_assert(active_sensor); +    g_assert(active_sensor->sensor_row); +    g_assert(sensors_applet); + +    model = gtk_tree_row_reference_get_model(active_sensor->sensor_row); +    path = gtk_tree_row_reference_get_path(active_sensor->sensor_row); + +    /* if can successfully get iter can proceed */ +    if (gtk_tree_model_get_iter(model, &iter, path)) { +        gtk_tree_path_free(path); +        gtk_tree_model_get(GTK_TREE_MODEL(sensors_applet->sensors), +                   &iter, +                   PATH_COLUMN, &sensor_path, +                   ID_COLUMN, &sensor_id, +                   LABEL_COLUMN, &sensor_label, +                   INTERFACE_COLUMN, &sensor_interface, +                   SENSOR_TYPE_COLUMN, &sensor_type, +                   ENABLE_COLUMN, &sensor_enabled, +                   LOW_VALUE_COLUMN, &sensor_low_value, +                   HIGH_VALUE_COLUMN, &sensor_high_value, +                   ALARM_ENABLE_COLUMN, &sensor_alarm_enabled, +                   MULTIPLIER_COLUMN, &sensor_multiplier, +                   OFFSET_COLUMN, &sensor_offset, +                   ICON_PIXBUF_COLUMN, &icon_pixbuf, +                   GRAPH_COLOR_COLUMN, &graph_color, +                   -1); + +        SensorsAppletPluginGetSensorValue get_sensor_value; +        /* only call function if is in hash table for plugin */ +        if ((get_sensor_value = sensors_applet_plugins_get_sensor_value_func(sensors_applet, sensor_interface)) != NULL) { +            sensor_value = get_sensor_value(sensor_path, +                                            sensor_id, +                                            sensor_type, +                                            &error); + +            if (error) { +                g_debug("Error updating active sensor: %s", error->message); +                sensors_applet_notify_active_sensor(active_sensor, +                                                    SENSOR_INTERFACE_ERROR); + +                /* hard code text as ERROR */ +                value_text = g_strdup(_("ERROR")); +                value_tooltip = g_strdup_printf("- %s", error->message); +                g_error_free(error); +                error = NULL; + +                /* set sensor value to an error code - +                 * note this is not unique */ +                sensor_value = -1; +            } else { +                /* use hidden gsettings key for hide_units */ +                hide_units_old = hide_units; +                hide_units = g_settings_get_boolean(sensors_applet->settings, HIDE_UNITS); + +                /* scale value and set text using this value */ +                switch (sensor_type) { +                    case TEMP_SENSOR: +                        scale = (TemperatureScale) g_settings_get_int(sensors_applet->settings, TEMPERATURE_SCALE); +                        /* scale value */ +                        sensor_value = sensors_applet_convert_temperature(sensor_value, CELSIUS, scale); + +                        sensor_value = (sensor_value * sensor_multiplier) + sensor_offset; +                        switch (scale) { +                            case FAHRENHEIT: +                                value_text = g_strdup_printf("%2.0f %s", sensor_value, (hide_units ? "" : UNITS_FAHRENHEIT)); +                                /* tooltip should +                                 * always display +                                 * units */ +                                value_tooltip = g_strdup_printf("%2.0f %s", sensor_value, UNITS_FAHRENHEIT); +                                +                                break; +                            case CELSIUS: +                                value_text = g_strdup_printf("%2.0f %s", sensor_value, (hide_units ? "" : UNITS_CELSIUS)); +                                value_tooltip = g_strdup_printf("%2.0f %s", sensor_value, UNITS_CELSIUS); +                                break; +                            case KELVIN: +                                value_text = g_strdup_printf("%2.0f", sensor_value); +                                value_tooltip = g_strdup(value_text); +                                break;                          } +                        break; + +                    case FAN_SENSOR: +                        sensor_value = (sensor_value * sensor_multiplier) + sensor_offset; +                        value_text = g_strdup_printf("%4.0f %s", sensor_value, (hide_units ? "" : UNITS_RPM)); +                        value_tooltip = g_strdup_printf("%4.0f %s", sensor_value, UNITS_RPM); +                        break; + +                    case VOLTAGE_SENSOR: +                        sensor_value = (sensor_value * sensor_multiplier) + sensor_offset; +                        value_text = g_strdup_printf("%4.2f %s", sensor_value, (hide_units ? "" : UNITS_VOLTAGE)); +                        value_tooltip = g_strdup_printf("%4.2f %s", sensor_value, UNITS_VOLTAGE); +                        break; + +                    case CURRENT_SENSOR: +                        sensor_value = (sensor_value * sensor_multiplier) + sensor_offset; +                        value_text = g_strdup_printf("%4.2f %s", sensor_value, (hide_units ? "" : UNITS_CURRENT)); +                        value_tooltip = g_strdup_printf("%4.2f %s", sensor_value, UNITS_CURRENT); +                        break; + +                } /* end switch(sensor_type) */ +            } /* end else on error */ + +            /* setup for tooltips */ +            if (sensors_applet->show_tooltip) +                    tooltip = g_strdup_printf("%s %s", sensor_label, value_tooltip); +            g_free(value_tooltip); + +            /* only do icons and labels / graphs if needed */ +            display_mode = g_settings_get_int (sensors_applet->settings, DISPLAY_MODE); +            +            /* most users wont have a font size set */ +            font_size = g_settings_get_int (sensors_applet->settings, FONT_SIZE); + +            /* do icon if needed */ +            if (display_mode == DISPLAY_ICON || +                display_mode == DISPLAY_ICON_WITH_VALUE) { + +                /* update icon if icon range has changed if no +                 * update has been done before */ +                if ((sensor_value_range(sensor_value, sensor_low_value, sensor_high_value) != sensor_value_range(active_sensor->sensor_values[0], active_sensor->sensor_low_value, active_sensor->sensor_high_value)) || +                    !(active_sensor->updated)) { + +                    active_sensor_update_sensor_value(active_sensor, sensor_value); +                    active_sensor->sensor_low_value = sensor_low_value; +                    active_sensor->sensor_high_value = sensor_high_value; +                    active_sensor_update_icon(active_sensor, icon_pixbuf, sensor_type); +                } -                        old_value_text = value_text; - -                        if (sensor_alarm_enabled) { -                                if (sensor_value >= sensor_high_value ||  -                                    sensor_value <= sensor_low_value) { -                                        /* make value text red and -                                         * activate alarm */ -                                        if (display_mode == DISPLAY_LABEL_WITH_VALUE || -                                            display_mode == DISPLAY_ICON_WITH_VALUE || -                                            display_mode == DISPLAY_VALUE) { -                                                value_text = g_markup_printf_escaped("<span foreground=\"#FF0000\">%s</span>", old_value_text); -                                                 -                                                g_free(old_value_text); -                                        } -                                        /* could have both coditions at once */ -                                        if (sensor_value >= sensor_high_value) { -                                                active_sensor_alarm_on(active_sensor, HIGH_ALARM); -                                        } - -                                        if (sensor_value <= sensor_low_value) { -                                                active_sensor_alarm_on(active_sensor, LOW_ALARM); -                                        } -                                         -                                } else { -                                        /* make sure alarms are off */ -                                        active_sensor_all_alarms_off(active_sensor); -                                }				 -                        } else { /* else for if alarm enabled */ -                                /* make sure all alarms are off */ -                                active_sensor_all_alarms_off(active_sensor); -                        } -			 -                        /* do value label */ -                        if (display_mode == DISPLAY_LABEL_WITH_VALUE || -                            display_mode == DISPLAY_ICON_WITH_VALUE || -                            display_mode == DISPLAY_VALUE) { -                                if (font_size) { -                                        old_value_text = value_text; - -                                        value_text = g_strdup_printf("<span font_desc=\"%d\">%s</span>", font_size, old_value_text); -                                        g_free(old_value_text); -                                } -                                /*Keep the label as large as previous size unless hide_units has changed */ -                                gtk_widget_get_preferred_size (GTK_WIDGET (active_sensor->value), -                                                                                         &req, NULL); -                                if (!(hide_units_old == hide_units)){ -                                    label_min_width = 0; -                                } -                                else{ -                                    label_min_width = req.width; -                                } -                                gtk_label_set_markup(GTK_LABEL(active_sensor->value), -                                                     value_text); -                                gtk_widget_get_preferred_size (GTK_WIDGET (active_sensor->value), -                                                                                          &req, NULL); -                                label_width = MAX(req.width, label_min_width); -                                gtk_widget_set_size_request (GTK_WIDGET (active_sensor->value), -                                                                       label_min_width, req.height); -                                if (tooltip) { -                                        gtk_widget_set_tooltip_text(active_sensor->value, -                                                                    tooltip); -                                } -                        } -                        /* finished with value text */ -                        g_free(value_text); - -                        /* do label label */ -                        if (display_mode == DISPLAY_LABEL_WITH_VALUE) { -                                if (font_size) { -                                        old_value_text = sensor_label; -                                        sensor_label = g_strdup_printf("<span font_desc=\"%d\">%s</span>", font_size, old_value_text); -                                        g_free(old_value_text); -                                } -                                gtk_label_set_markup(GTK_LABEL(active_sensor->label), -                                                     sensor_label); -                                if (tooltip) { -                                        gtk_widget_set_tooltip_text(active_sensor->label, -                                                                    tooltip); -                                } +                if (tooltip) { +                    gtk_widget_set_tooltip_text(active_sensor->icon, tooltip); +                } +            } -                        } +            active_sensor_update_sensor_value(active_sensor, sensor_value); +            active_sensor->sensor_low_value = sensor_low_value; +            active_sensor->sensor_high_value = sensor_high_value; + +            /* do graph if needed */ +            if (display_mode == DISPLAY_GRAPH) { +                /* update graph color in case has changed */ +                gdk_rgba_parse(&(active_sensor->graph_color), graph_color); + +                gtk_widget_queue_draw (active_sensor->graph); +                if (tooltip) { +                    gtk_widget_set_tooltip_text(active_sensor->graph, tooltip); +                } +            } -                        g_free(tooltip); -		} else { -                        g_debug("no get_sensor_value function yet installed for interface %s.", sensor_interface); -		} -		g_free(sensor_path); -		g_free(sensor_id); -		g_free(sensor_label); -        	g_free(sensor_interface); -	        g_free(graph_color); -		g_object_unref(icon_pixbuf); -		 -	} else { -		g_debug("Error getting iter when updating sensor..."); -		 -	} -        active_sensor->updated = TRUE; +            old_value_text = value_text; + +            if (sensor_alarm_enabled) { +                if (sensor_value >= sensor_high_value || sensor_value <= sensor_low_value) { + +                    /* make value text red and +                     * activate alarm */ +                    if (display_mode == DISPLAY_LABEL_WITH_VALUE || +                        display_mode == DISPLAY_ICON_WITH_VALUE || +                        display_mode == DISPLAY_VALUE) { + +                        value_text = g_markup_printf_escaped("<span foreground=\"#FF0000\">%s</span>", old_value_text); +                        g_free(old_value_text); +                    } + +                    /* could have both coditions at once */ +                    if (sensor_value >= sensor_high_value) { +                        active_sensor_alarm_on(active_sensor, HIGH_ALARM); +                    } + +                    if (sensor_value <= sensor_low_value) { +                        active_sensor_alarm_on(active_sensor, LOW_ALARM); +                    } + +                } else { +                    /* make sure alarms are off */ +                    active_sensor_all_alarms_off(active_sensor); +                } +            } else { +                /* else for if alarm enabled */ +                /* make sure all alarms are off */ +                active_sensor_all_alarms_off(active_sensor); +            } + +            /* do value label */ +            if (display_mode == DISPLAY_LABEL_WITH_VALUE || +                display_mode == DISPLAY_ICON_WITH_VALUE || +                display_mode == DISPLAY_VALUE) { + +                if (font_size) { +                    old_value_text = value_text; + +                    value_text = g_strdup_printf("<span font_desc=\"%d\">%s</span>", font_size, old_value_text); +                    g_free(old_value_text); +                } + +                /*Keep the label as large as previous size unless hide_units has changed */ +                gtk_widget_get_preferred_size (GTK_WIDGET (active_sensor->value), &req, NULL); +                if (!(hide_units_old == hide_units)) { +                    label_min_width = 0; +                } else { +                    label_min_width = req.width; +                } + +                gtk_label_set_markup(GTK_LABEL(active_sensor->value), value_text); + +                gtk_widget_get_preferred_size (GTK_WIDGET (active_sensor->value), &req, NULL); +                label_width = MAX(req.width, label_min_width); +                gtk_widget_set_size_request (GTK_WIDGET (active_sensor->value), label_min_width, req.height); + +                if (tooltip) { +                    gtk_widget_set_tooltip_text(active_sensor->value, tooltip); +                } +            } +            /* finished with value text */ +            g_free(value_text); + +            /* do label label */ +            if (display_mode == DISPLAY_LABEL_WITH_VALUE) { +                if (font_size) { +                    old_value_text = sensor_label; +                    sensor_label = g_strdup_printf("<span font_desc=\"%d\">%s</span>", font_size, old_value_text); +                    g_free(old_value_text); +                } + +                gtk_label_set_markup(GTK_LABEL(active_sensor->label), sensor_label); +                if (tooltip) { +                        gtk_widget_set_tooltip_text(active_sensor->label, tooltip); +                } +            } + +            g_free(tooltip); +        } else { +            g_debug("no get_sensor_value function yet installed for interface %s.", sensor_interface); +        } + +        g_free(sensor_path); +        g_free(sensor_id); +        g_free(sensor_label); +        g_free(sensor_interface); +        g_free(graph_color); +        g_object_unref(icon_pixbuf); + +    } else { +        g_debug("Error getting iter when updating sensor..."); +    } + +    active_sensor->updated = TRUE;  }  /* to be called when the icon within the GtkRowReference that this   * sensor references is changed - updates icon based upon value in the   * ActiveSensor */ -void active_sensor_icon_changed(ActiveSensor *active_sensor, -				SensorsApplet *sensors_applet) { -	 -	GtkTreeModel *model; -	GtkTreePath *path; -	GtkTreeIter iter; -	 -	SensorType sensor_type; -        GdkPixbuf *icon_pixbuf; - -	g_assert(active_sensor); -	g_assert(sensors_applet); - -	model = gtk_tree_row_reference_get_model(active_sensor->sensor_row); -	path = gtk_tree_row_reference_get_path(active_sensor->sensor_row); - -	/* if can successfully get iter can proceed */ -	if (gtk_tree_model_get_iter(model, &iter, path)) { -		gtk_tree_model_get(GTK_TREE_MODEL(sensors_applet->sensors), -				   &iter, -				   SENSOR_TYPE_COLUMN, &sensor_type, -				   ICON_PIXBUF_COLUMN, &icon_pixbuf, -				   -1); - -		active_sensor_update_icon(active_sensor, -                                          icon_pixbuf, -                                          sensor_type); -		g_object_unref(icon_pixbuf); -	} -	gtk_tree_path_free(path); +void active_sensor_icon_changed(ActiveSensor *active_sensor, SensorsApplet *sensors_applet) { + +    GtkTreeModel *model; +    GtkTreePath *path; +    GtkTreeIter iter; + +    SensorType sensor_type; +    GdkPixbuf *icon_pixbuf; + +    g_assert(active_sensor); +    g_assert(sensors_applet); + +    model = gtk_tree_row_reference_get_model(active_sensor->sensor_row); +    path = gtk_tree_row_reference_get_path(active_sensor->sensor_row); + +    /* if can successfully get iter can proceed */ +    if (gtk_tree_model_get_iter(model, &iter, path)) { +        gtk_tree_model_get(GTK_TREE_MODEL(sensors_applet->sensors), +                                           &iter, +                                           SENSOR_TYPE_COLUMN, &sensor_type, +                                           ICON_PIXBUF_COLUMN, &icon_pixbuf, +                                           -1); + +        active_sensor_update_icon(active_sensor, icon_pixbuf, sensor_type); +        g_object_unref(icon_pixbuf); +    } +    gtk_tree_path_free(path);  } diff --git a/sensors-applet/active-sensor.h b/sensors-applet/active-sensor.h index 375fa75..6db381e 100644 --- a/sensors-applet/active-sensor.h +++ b/sensors-applet/active-sensor.h @@ -27,47 +27,46 @@  #include "sensors-applet.h"  struct _ActiveSensor { -        SensorsApplet *sensors_applet; +    SensorsApplet *sensors_applet; -	/* widgets to render to display the sensor */ -	GtkWidget *label; -	GtkWidget *icon; -	GtkWidget *value; -        GtkWidget *graph; -        GtkWidget *graph_frame; +    /* widgets to render to display the sensor */ +    GtkWidget *label; +    GtkWidget *icon; +    GtkWidget *value; +    GtkWidget *graph; +    GtkWidget *graph_frame; -        GdkRGBA graph_color; +    GdkRGBA graph_color; -	GtkTreeRowReference *sensor_row; +    GtkTreeRowReference *sensor_row;  #ifdef HAVE_LIBNOTIFY -        NotifyNotification *notification[NUM_NOTIFS]; +    NotifyNotification *notification[NUM_NOTIFS];  #endif -        gboolean updated; +    gboolean updated; -	/* alarm related stuff */ -	gint alarm_timeout_id[NUM_ALARMS]; -	gchar *alarm_command[NUM_ALARMS]; -        gint alarm_timeout; +    /* alarm related stuff */ +    gint alarm_timeout_id[NUM_ALARMS]; +    gchar *alarm_command[NUM_ALARMS]; +    gint alarm_timeout; -	/* buffer of sensor values */ -        gdouble *sensor_values; +    /* buffer of sensor values */ +    gdouble *sensor_values; -        /* length of sensor_values buffer */ -        gint num_samples; -         -	gdouble sensor_low_value; -	gdouble sensor_high_value;	 +    /* length of sensor_values buffer */ +    gint num_samples; + +    gdouble sensor_low_value; +    gdouble sensor_high_value;  }; -ActiveSensor *active_sensor_new(SensorsApplet *sensors_applet, -                                GtkTreeRowReference *sensor_row); +ActiveSensor *active_sensor_new(SensorsApplet *sensors_applet, GtkTreeRowReference *sensor_row);  void active_sensor_destroy(ActiveSensor *active_sensor);  gint active_sensor_compare(ActiveSensor *a, ActiveSensor *b);  void active_sensor_update(ActiveSensor *sensor, SensorsApplet *sensors_applet);  void active_sensor_icon_changed(ActiveSensor *sensor, SensorsApplet *sensors_applet); -void active_sensor_update_graph_dimensions(ActiveSensor *as, -                                           gint dimensions[2]); +void active_sensor_update_graph_dimensions(ActiveSensor *as, gint dimensions[2]);  void active_sensor_alarm_off(ActiveSensor *active_sensor, NotifType notif_type); +  #endif /* ACTIVE_SENSOR_H */ diff --git a/sensors-applet/main.c b/sensors-applet/main.c index dc3a2ed..4b820ca 100644 --- a/sensors-applet/main.c +++ b/sensors-applet/main.c @@ -27,19 +27,21 @@  static gboolean sensors_applet_fill(MatePanelApplet *applet,                                      const gchar *iid,                                      gpointer data) { -	SensorsApplet *sensors_applet; -	gboolean retval = FALSE; -        if (strcmp(iid, "SensorsApplet") == 0) { -		sensors_applet = g_new0(SensorsApplet, 1); -		sensors_applet->applet = applet; -		sensors_applet_init(sensors_applet); -		retval = TRUE; -	} -	return retval; + +    SensorsApplet *sensors_applet; +    gboolean retval = FALSE; + +    if (strcmp(iid, "SensorsApplet") == 0) { +        sensors_applet = g_new0(SensorsApplet, 1); +        sensors_applet->applet = applet; +        sensors_applet_init(sensors_applet); +        retval = TRUE; +    } +    return retval;  }  MATE_PANEL_APPLET_OUT_PROCESS_FACTORY ("SensorsAppletFactory", -									   PANEL_TYPE_APPLET, -									   "SensorsApplet", -									   sensors_applet_fill, -									   NULL); +                                       PANEL_TYPE_APPLET, +                                       "SensorsApplet", +                                       sensors_applet_fill, +                                       NULL); | 
