[Goodies-commits] r5528 - in xfce4-sensors-plugin/trunk: include lib panel-plugin

Fabian Nowak timystery at xfce.org
Tue Oct 7 00:29:47 CEST 2008


Author: timystery
Date: 2008-10-06 22:29:46 +0000 (Mon, 06 Oct 2008)
New Revision: 5528

Added:
   xfce4-sensors-plugin/trunk/include/configuration.h
   xfce4-sensors-plugin/trunk/lib/configuration.c
Removed:
   xfce4-sensors-plugin/trunk/panel-plugin/configuration.c
   xfce4-sensors-plugin/trunk/panel-plugin/configuration.h
Modified:
   xfce4-sensors-plugin/trunk/include/sensors-interface-common.h
   xfce4-sensors-plugin/trunk/include/sensors-interface.h
   xfce4-sensors-plugin/trunk/lib/Makefile.am
   xfce4-sensors-plugin/trunk/lib/sensors-interface-common.c
   xfce4-sensors-plugin/trunk/lib/sensors-interface.c
   xfce4-sensors-plugin/trunk/panel-plugin/Makefile.am
   xfce4-sensors-plugin/trunk/panel-plugin/sensors-plugin.c
Log:
- moved configuration stuff to library as well; might also want to change the configuration from the sensors-viewer application.
- continued in migration process


Copied: xfce4-sensors-plugin/trunk/include/configuration.h (from rev 5517, xfce4-sensors-plugin/trunk/panel-plugin/configuration.h)
===================================================================
--- xfce4-sensors-plugin/trunk/include/configuration.h	                        (rev 0)
+++ xfce4-sensors-plugin/trunk/include/configuration.h	2008-10-06 22:29:46 UTC (rev 5528)
@@ -0,0 +1,37 @@
+/* File configuration.h
+ *
+ *  Copyright 2004-2007 Fabian Nowak (timystery at arcor.de)
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/* Note for programmers and editors: Try to use 4 spaces instead of Tab! */
+
+#ifndef XFCE4_SENSORS_CONFIGURATION_H
+ #define XFCE4_SENSORS_CONFIGURATION_H
+
+#include "sensors-interface-common.h"
+
+gint get_Id_from_address (gint chipnumber, gint addr, t_sensors *sensors);
+
+void sensors_write_config (XfcePanelPlugin *plugin, t_sensors *sensors);
+
+void sensors_read_general_config (XfceRc *rc, t_sensors *sensors);
+
+void sensors_read_config (XfcePanelPlugin *plugin, t_sensors *sensors);
+
+void sensors_read_preliminary_config (XfcePanelPlugin *plugin, t_sensors *sensors);
+
+#endif  /* define XFCE4_SENSORS_CONFIGURATION_H */


Property changes on: xfce4-sensors-plugin/trunk/include/configuration.h
___________________________________________________________________
Name: svn:mergeinfo
   + 

Modified: xfce4-sensors-plugin/trunk/include/sensors-interface-common.h
===================================================================
--- xfce4-sensors-plugin/trunk/include/sensors-interface-common.h	2008-10-06 20:58:24 UTC (rev 5527)
+++ xfce4-sensors-plugin/trunk/include/sensors-interface-common.h	2008-10-06 22:29:46 UTC (rev 5528)
@@ -36,8 +36,6 @@
 /* Package includes */
 #include <types.h>
 
-#include "craph.h"
-
 /* Definitions */
 #define BORDER 8
 #define OUTER_BORDER 4
@@ -227,4 +225,6 @@
 
 t_sensors * sensors_new (XfcePanelPlugin *plugin);
 
+void sensors_init_default_values  (t_sensors *sensors, XfcePanelPlugin *plugin);
+
 #endif /* XFCE4_SENSORS_INTERFACE_COMMON_H */

Modified: xfce4-sensors-plugin/trunk/include/sensors-interface.h
===================================================================
--- xfce4-sensors-plugin/trunk/include/sensors-interface.h	2008-10-06 20:58:24 UTC (rev 5527)
+++ xfce4-sensors-plugin/trunk/include/sensors-interface.h	2008-10-06 22:29:46 UTC (rev 5528)
@@ -26,10 +26,14 @@
 /* Local includes */
 #include "sensors-interface-common.h"
 
-extern void
-add_sensors_frame (GtkWidget * notebook, t_sensors_dialog * sd);
+extern void add_sensors_frame (GtkWidget * notebook, t_sensors_dialog * sd);
 
-void
-init_widgets (t_sensors_dialog *sd);
+void init_widgets (t_sensors_dialog *sd);
 
+void add_sensor_settings_box ( GtkWidget * vbox, t_sensors_dialog * sd);
+
+void add_type_box (GtkWidget * vbox, t_sensors_dialog * sd);
+
+void add_temperature_unit_box (GtkWidget *vbox, t_sensors_dialog *sd);
+
 #endif /* XFCE4_SENSORS_INTERFACE_H */

Modified: xfce4-sensors-plugin/trunk/lib/Makefile.am
===================================================================
--- xfce4-sensors-plugin/trunk/lib/Makefile.am	2008-10-06 20:58:24 UTC (rev 5527)
+++ xfce4-sensors-plugin/trunk/lib/Makefile.am	2008-10-06 22:29:46 UTC (rev 5528)
@@ -19,6 +19,7 @@
 
 libxfce4sensors_la_SOURCES =									   \
 	middlelayer.c													\
+	configuration.c													\
 	sensors-interface-common.c						\
 	sensors-interface.c										\
 	$(SENSORS_SOURCES)												\

Copied: xfce4-sensors-plugin/trunk/lib/configuration.c (from rev 5517, xfce4-sensors-plugin/trunk/panel-plugin/configuration.c)
===================================================================
--- xfce4-sensors-plugin/trunk/lib/configuration.c	                        (rev 0)
+++ xfce4-sensors-plugin/trunk/lib/configuration.c	2008-10-06 22:29:46 UTC (rev 5528)
@@ -0,0 +1,392 @@
+/* File configuration.c
+ *
+ *  Copyright 2004-2007 Fabian Nowak (timystery at arcor.de)
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/* Note for programmers and editors: Try to use 4 spaces instead of Tab! */
+
+/* Global includes */
+#include <stdlib.h>
+#include <unistd.h>
+
+/* Package includes */
+#include <configuration.h>
+
+
+gint
+get_Id_from_address (gint chipnumber, gint addr, t_sensors *sensors)
+{
+    gint feature;
+    t_chip *chip;
+    t_chipfeature *chipfeature;
+
+    TRACE ("enters get_Id_from_address");
+
+    chip = (t_chip *) g_ptr_array_index (sensors->chips, chipnumber);
+
+    for (feature=0; feature<chip->num_features; feature++) {
+        chipfeature = g_ptr_array_index(chip->chip_features, feature);
+        if (addr == chipfeature->address) {
+            TRACE ("leaves get_Id_from_address with %d", feature);
+            return feature;
+        }
+    }
+
+    TRACE ("leaves get_Id_from_address with -1");
+
+    return (gint) -1;
+}
+
+
+/* Write the configuration at exit */
+void
+sensors_write_config (XfcePanelPlugin *plugin, t_sensors *sensors)
+{
+    XfceRc *rc;
+    char *file, *tmp, rc_chip[8], feature[20];
+    int i, j;
+    t_chip *chip;
+    t_chipfeature *chipfeature;
+
+    TRACE ("enters sensors_write_config");
+
+    if (!(file = xfce_panel_plugin_save_location (plugin, TRUE))) {
+        TRACE ("leaves sensors_write_config: No file location specified.");
+        return;
+    }
+
+    unlink (file);
+
+    rc = xfce_rc_simple_open (file, FALSE);
+    g_free (file);
+
+    if (!rc) {
+        TRACE ("leaves sensors_write_config: No rc file opened");
+        return;
+    }
+
+    xfce_rc_set_group (rc, "General");
+
+    xfce_rc_write_bool_entry (rc, "Show_Title", sensors->show_title);
+
+    xfce_rc_write_bool_entry (rc, "Show_Labels", sensors->show_labels);
+
+    xfce_rc_write_bool_entry (rc, "Use_Bar_UI", sensors->display_values_graphically);
+
+    xfce_rc_write_bool_entry (rc, "Show_Colored_Bars", sensors->show_colored_bars);
+
+    xfce_rc_write_int_entry (rc, "Scale", sensors->scale);
+
+    xfce_rc_write_entry (rc, "Font_Size", sensors->font_size);
+
+    xfce_rc_write_int_entry (rc, "Font_Size_Numerical",
+                                sensors->font_size_numerical);
+
+    xfce_rc_write_int_entry (rc, "Update_Interval", sensors->sensors_refresh_time);
+
+    xfce_rc_write_bool_entry (rc, "Exec_Command", sensors->exec_command);
+
+    xfce_rc_write_bool_entry (rc, "Show_Units", sensors->show_units);
+
+    xfce_rc_write_bool_entry(rc, "Small_Spacings", sensors->show_smallspacings);
+
+    xfce_rc_write_entry (rc, "Command_Name", sensors->command_name);
+
+    xfce_rc_write_int_entry (rc, "Number_Chips", sensors->num_sensorchips);
+
+    xfce_rc_write_bool_entry (rc, "Suppress_Hddtemp_Message", sensors->suppressmessage);
+
+
+    for (i=0; i<sensors->num_sensorchips; i++) {
+
+        chip = (t_chip *) g_ptr_array_index(sensors->chips, i);
+        g_assert (chip!=NULL);
+
+        g_snprintf (rc_chip, 8, "Chip%d", i);
+
+        xfce_rc_set_group (rc, rc_chip);
+
+        xfce_rc_write_entry (rc, "Name", chip->sensorId);
+
+        /* number of sensors is still limited */
+        xfce_rc_write_int_entry (rc, "Number", i);
+
+        for (j=0; j<chip->num_features; j++) {
+            chipfeature = g_ptr_array_index(chip->chip_features, j);
+            g_assert (chipfeature!=NULL);
+
+            if (chipfeature->show == TRUE) {
+
+               g_snprintf (feature, 20, "%s_Feature%d", rc_chip, j);
+
+               xfce_rc_set_group (rc, feature);
+
+               xfce_rc_write_int_entry (rc, "Id", get_Id_from_address(i, j, sensors));
+
+               /* only use this if no hddtemp sensor */
+               /* or do only use this , if it is an lmsensors device. whatever. */
+               if ( strcmp(chip->sensorId, _("Hard disks")) != 0 ) /* chip->name? */
+                    xfce_rc_write_int_entry (rc, "Address", j);
+                else
+                    xfce_rc_write_entry (rc, "DeviceName", chipfeature->devicename);
+
+               xfce_rc_write_entry (rc, "Name", chipfeature->name);
+
+               xfce_rc_write_entry (rc, "Color", chipfeature->color);
+
+               xfce_rc_write_bool_entry (rc, "Show", chipfeature->show);
+
+               tmp = g_strdup_printf("%.2f", chipfeature->min_value);
+               xfce_rc_write_entry (rc, "Min", tmp);
+               g_free (tmp);
+
+               tmp = g_strdup_printf("%.2f", chipfeature->max_value);
+               xfce_rc_write_entry (rc, "Max", tmp);
+               g_free (tmp);
+            } /* end if */
+
+        } /* end for j */
+
+    } /* end for i */
+
+    xfce_rc_close (rc);
+
+    TRACE ("leaves sensors_write_config");
+}
+
+
+void
+sensors_read_general_config (XfceRc *rc, t_sensors *sensors)
+{
+    const char *value;
+    gint num_chips;
+
+    TRACE ("enters sensors_read_general_config");
+
+    if (xfce_rc_has_group (rc, "General") ) {
+
+        xfce_rc_set_group (rc, "General");
+
+        sensors->show_title = xfce_rc_read_bool_entry (rc, "Show_Title", TRUE);
+
+        sensors->show_labels = xfce_rc_read_bool_entry (rc, "Show_Labels", TRUE);
+
+        sensors->display_values_graphically = xfce_rc_read_bool_entry (rc, "Use_Bar_UI", FALSE);
+
+        sensors->show_colored_bars = xfce_rc_read_bool_entry (rc, "Show_Colored_Bars", FALSE);
+
+        sensors->scale = xfce_rc_read_int_entry (rc, "Scale", 0);
+
+        if ((value = xfce_rc_read_entry (rc, "Font_Size", NULL)) && *value) {
+            sensors->font_size = g_strdup(value);
+        }
+
+        sensors->font_size_numerical = xfce_rc_read_int_entry (rc,
+                                                 "Font_Size_Numerical", 2);
+
+        sensors->sensors_refresh_time = xfce_rc_read_int_entry (rc, "Update_Interval",
+                                                  60);
+
+        sensors->exec_command = xfce_rc_read_bool_entry (rc, "Exec_Command", TRUE);
+
+        sensors->show_units= xfce_rc_read_bool_entry (rc, "Show_Units", TRUE);
+
+        sensors->show_smallspacings= xfce_rc_read_bool_entry (rc, "Small_Spacings", FALSE);
+
+        if ((value = xfce_rc_read_entry (rc, "Command_Name", NULL)) && *value) {
+            sensors->command_name = g_strdup (value);
+        }
+
+        if (!sensors->suppressmessage)
+            sensors->suppressmessage = xfce_rc_read_bool_entry (rc, "Suppress_Hddtemp_Message", FALSE);
+
+        num_chips = xfce_rc_read_int_entry (rc, "Number_Chips", 0);
+        /* or could use 1 or the always existent dummy entry */
+    }
+
+    TRACE ("leaves sensors_read_general_config");
+}
+
+void
+sensors_read_preliminary_config (XfcePanelPlugin *plugin, t_sensors *sensors)
+{
+    char *file;
+    XfceRc *rc;
+
+    TRACE ("enters sensors_read_preliminary_config");
+
+    if (plugin==NULL)
+        return;
+
+    if (!(file = xfce_panel_plugin_lookup_rc_file (plugin)))
+        return;
+
+    rc = xfce_rc_simple_open (file, TRUE);
+    g_free (file);
+
+    if (!rc)
+        return;
+
+    if (xfce_rc_has_group (rc, "General") ) {
+        xfce_rc_set_group (rc, "General");
+        sensors->suppressmessage = xfce_rc_read_bool_entry (rc, "Suppress_Hddtemp_Message", FALSE);
+    }
+
+    TRACE ("leaves sensors_read_preliminary_config");
+}
+
+/* Read the configuration file at init */
+void
+sensors_read_config (XfcePanelPlugin *plugin, t_sensors *sensors)
+{
+    const char *value;
+    char *file;
+    XfceRc *rc;
+    int i, j;
+    char rc_chip[8], feature[20];
+    gchar* sensorName=NULL;
+    gint num_sensorchip, id, address;
+    t_chip *chip;
+    t_chipfeature *chipfeature;
+
+    TRACE ("enters sensors_read_config");
+
+    if (!(file = xfce_panel_plugin_lookup_rc_file (plugin)))
+        return;
+
+    rc = xfce_rc_simple_open (file, TRUE);
+    g_free (file);
+
+    if (!rc)
+        return;
+
+    sensors_read_general_config (rc, sensors);
+
+    for (i = 0; i<sensors->num_sensorchips; i++) {
+        chip = (t_chip *) g_ptr_array_index (sensors->chips, i);
+        if (chip==NULL)
+            break;
+
+        g_snprintf (rc_chip, 8, "Chip%d", i);
+
+        if (xfce_rc_has_group (rc, rc_chip)) {
+
+            xfce_rc_set_group (rc, rc_chip);
+
+            num_sensorchip=0;
+
+            if ((value = xfce_rc_read_entry (rc, "Name", NULL)) && *value) {
+                sensorName = g_strdup (value);
+            }
+
+            num_sensorchip = (gint) xfce_rc_read_int_entry (rc, "Number", 0);
+
+            /* assert that file does not contain more information
+              than does exist on system */
+              /* ??? At least, it works. */
+            g_return_if_fail (num_sensorchip < sensors->num_sensorchips);
+
+            /* now featuring enhanced string comparison */
+            g_assert (chip!=NULL);
+            if ( strcmp(chip->sensorId, sensorName)==0 ) {
+
+                for (j=0; j<chip->num_features; j++) {
+                    chipfeature = (t_chipfeature *) g_ptr_array_index (
+                                                        chip->chip_features,
+                                                        j);
+                    g_assert (chipfeature!=NULL);
+
+                    g_snprintf (feature, 20, "%s_Feature%d", rc_chip, j);
+
+                    if (xfce_rc_has_group (rc, feature)) {
+                        xfce_rc_set_group (rc, feature);
+
+                        id=0; address=0;
+
+                        id = (gint) xfce_rc_read_int_entry (rc, "Id", 0);
+
+                        if ( strcmp(chip->sensorId, _("Hard disks")) != 0 )
+                            address = (gint) xfce_rc_read_int_entry (rc, "Address", 0);
+                        else
+
+                         /* FIXME: compare strings, or also have hddtmep and acpi store numeric values */
+
+                        /* assert correctly saved file */
+                        if (strcmp(chip->sensorId, _("Hard disks")) != 0) { /* chip->name? */
+                            chipfeature = g_ptr_array_index(chip->chip_features, id);
+                            /* FIXME: it might be necessary to use sensors->addresses here */
+                            /* g_return_if_fail
+                                (chipfeature->address == address); */
+                            if (chipfeature->address != address)
+                                continue;
+                        }
+                        else if ((value = xfce_rc_read_entry (rc, "DeviceName", NULL))
+                            && *value) {
+                            if (chipfeature->devicename)
+                                free (chipfeature->devicename);
+                            chipfeature->devicename = g_strdup(value);
+                            /* g_free (value); */
+                        }
+
+                        if ((value = xfce_rc_read_entry (rc, "Name", NULL))
+                                && *value) {
+                            if (chipfeature->name)
+                                free (chipfeature->name);
+                            chipfeature->name = g_strdup (value);
+                            /* g_free (value); */
+                        }
+
+                        if ((value = xfce_rc_read_entry (rc, "Color", NULL))
+                                && *value) {
+                            if (chipfeature->color)
+                                free (chipfeature->color);
+                            chipfeature->color = g_strdup (value);
+                            /* g_free (value); */
+                        }
+
+                        chipfeature->show =
+                            xfce_rc_read_bool_entry (rc, "Show", FALSE);
+
+                        if ((value = xfce_rc_read_entry (rc, "Min", NULL))
+                                && *value)
+                            chipfeature->min_value = atof (value);
+
+                        if ((value = xfce_rc_read_entry (rc, "Max", NULL))
+                                && *value)
+                            chipfeature->max_value = atof (value);
+
+
+                    } /* end if */
+
+                } /* end for */
+
+            } /* end if */
+
+            g_free (sensorName);
+
+        } /* end if */
+
+    } /* end for */
+
+    xfce_rc_close (rc);
+
+    if (!sensors->exec_command) {
+        g_signal_handler_block ( G_OBJECT(sensors->eventbox), sensors->doubleclick_id );
+    }
+
+    TRACE ("leaves sensors_read_config");
+}


Property changes on: xfce4-sensors-plugin/trunk/lib/configuration.c
___________________________________________________________________
Name: svn:mergeinfo
   + 

Modified: xfce4-sensors-plugin/trunk/lib/sensors-interface-common.c
===================================================================
--- xfce4-sensors-plugin/trunk/lib/sensors-interface-common.c	2008-10-06 20:58:24 UTC (rev 5527)
+++ xfce4-sensors-plugin/trunk/lib/sensors-interface-common.c	2008-10-06 22:29:46 UTC (rev 5528)
@@ -21,10 +21,12 @@
 #include <libxfce4panel/xfce-panel-plugin.h>
 
 /* Local/package includes */
-#include <y.h>
+#include <configuration.h>
 #include <sensors-interface-common.h>
+#include <middlelayer.h>
 
-t_sensors * sensors_new (XfcePanelPlugin *plugin)
+t_sensors *
+sensors_new (XfcePanelPlugin *plugin)
 {
     t_sensors *sensors;
     gint result;
@@ -73,26 +75,46 @@
         g_ptr_array_add (chip->chip_features, chipfeature);
     }
 
+    TRACE ("leaves sensors_new");
 
-    /* Add tooltip to show extended current sensors status */
-    sensors_create_tooltip ((gpointer) sensors);
+    return sensors;
+}
 
-    /* fill panel widget with boxes, strings, values, ... */
-    create_panel_widget (sensors);
 
-    /* finally add panel "sensors" to eventbox */
-    gtk_container_add (GTK_CONTAINER (sensors->eventbox),
-                       sensors->widget_sensors);
 
+void
+sensors_init_default_values  (t_sensors *sensors, XfcePanelPlugin *plugin)
+{
+    TRACE ("enters sensors_init_default_values");
 
-    /* #if GTK_VERSION >= 2.11
-     * g_signal_connect(G_OBJECT(sensors->eventbox),
-                                    "query-tooltip",
-                                    G_CALLBACK(handle_tooltip_query),
-                                    (gpointer) sensors); */
+    sensors->show_title = TRUE;
+    sensors->show_labels = TRUE;
+    sensors->display_values_graphically = FALSE;
+    sensors->bars_created = FALSE;
+    sensors->font_size = "medium";
+    sensors->font_size_numerical = 2;
+    if (plugin!=NULL)
+        sensors->panel_size = xfce_panel_plugin_get_size (plugin);
+    sensors->show_colored_bars = TRUE;
+    sensors->sensors_refresh_time = 60;
+    sensors->scale = CELSIUS;
 
+    sensors->plugin = plugin; // we prefer storing NULL in here in case it is NULL.
+    if (plugin!=NULL)
+        sensors->orientation = xfce_panel_plugin_get_orientation (plugin);
 
-    TRACE ("leaves sensors_new");
+    /* double-click improvement */
+    sensors->exec_command = TRUE;
+    sensors->command_name = g_strdup("xsensors");
+    sensors->doubleclick_id = 0;
 
-    return sensors;
+    /* show units */
+    sensors->show_units = TRUE;
+
+    sensors->suppressmessage = FALSE;
+
+    sensors->show_smallspacings = FALSE;
+
+    TRACE ("leaves sensors_init_default_values");
 }
+

Modified: xfce4-sensors-plugin/trunk/lib/sensors-interface.c
===================================================================
--- xfce4-sensors-plugin/trunk/lib/sensors-interface.c	2008-10-06 20:58:24 UTC (rev 5527)
+++ xfce4-sensors-plugin/trunk/lib/sensors-interface.c	2008-10-06 22:29:46 UTC (rev 5528)
@@ -120,3 +120,183 @@
     }
     TRACE ("leaves init_widgets");
 }
+
+
+void
+add_type_box (GtkWidget * vbox, t_sensors_dialog * sd)
+{
+    GtkWidget *hbox, *label;
+    t_chip *chip;
+    gint gtk_combo_box_active;
+
+    TRACE ("enters add_type_box");
+
+    hbox = gtk_hbox_new (FALSE, BORDER);
+    gtk_widget_show (hbox);
+    gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
+
+    label = gtk_label_new_with_mnemonic (_("Sensors t_ype:"));
+    gtk_widget_show (label);
+    gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+    gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+
+    gtk_widget_show (sd->myComboBox);
+    gtk_box_pack_start (GTK_BOX (hbox), sd->myComboBox, FALSE, FALSE, 0);
+
+    gtk_label_set_mnemonic_widget(GTK_LABEL(label), sd->myComboBox);
+
+    gtk_combo_box_active =
+        gtk_combo_box_get_active(GTK_COMBO_BOX(sd->myComboBox));
+
+    chip = g_ptr_array_index (sd->sensors->chips, gtk_combo_box_active);
+
+    /* if (sd->sensors->num_sensorchips > 0)
+        sd->mySensorLabel = gtk_label_new
+            ( sensors_get_adapter_name_wrapper
+                ( chip->chip_name->bus) );
+    else */
+
+    hbox = gtk_hbox_new (FALSE, BORDER);
+    gtk_widget_show (hbox);
+    gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
+
+    label = gtk_label_new_with_mnemonic (_("Description:"));
+    gtk_widget_show (label);
+    gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+    gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+
+    sd->mySensorLabel =
+            gtk_label_new (chip->description);
+
+    gtk_widget_show (sd->mySensorLabel);
+    gtk_box_pack_start (GTK_BOX (hbox), sd->mySensorLabel, FALSE, FALSE, 0);
+
+    g_signal_connect (G_OBJECT (sd->myComboBox), "changed",
+                      G_CALLBACK (sensor_entry_changed), sd );
+
+    TRACE ("leaves add_type_box");
+}
+
+
+void
+add_sensor_settings_box ( GtkWidget * vbox, t_sensors_dialog * sd)
+{
+    GtkTreeViewColumn *aTreeViewColumn;
+    GtkCellRenderer *myCellRendererText, *myCellRendererToggle;
+    GtkWidget *myScrolledWindow;
+    gint gtk_combo_box_active;
+
+    TRACE ("enters add_sensor_settings_box");
+
+    gtk_combo_box_active =
+        gtk_combo_box_get_active(GTK_COMBO_BOX(sd->myComboBox));
+
+    sd->myTreeView = gtk_tree_view_new_with_model
+        ( GTK_TREE_MODEL ( sd->myListStore[ gtk_combo_box_active ] ) );
+
+    myCellRendererText = gtk_cell_renderer_text_new ();
+    g_object_set ( (gpointer*) myCellRendererText, "editable", TRUE, NULL );
+
+    aTreeViewColumn = gtk_tree_view_column_new_with_attributes (_("Name"),
+                        myCellRendererText, "text", 0, NULL);
+    g_signal_connect    (G_OBJECT (myCellRendererText), "edited",
+                        G_CALLBACK (list_cell_text_edited), sd);
+    gtk_tree_view_column_set_expand (aTreeViewColumn, TRUE);
+    gtk_tree_view_append_column (GTK_TREE_VIEW (sd->myTreeView),
+                        GTK_TREE_VIEW_COLUMN (aTreeViewColumn));
+
+    myCellRendererText = gtk_cell_renderer_text_new ();
+    aTreeViewColumn = gtk_tree_view_column_new_with_attributes (_("Value"),
+                        myCellRendererText, "text", 1, NULL);
+    gtk_tree_view_append_column (GTK_TREE_VIEW (sd->myTreeView),
+                        GTK_TREE_VIEW_COLUMN (aTreeViewColumn));
+
+    myCellRendererToggle = gtk_cell_renderer_toggle_new();
+    aTreeViewColumn = gtk_tree_view_column_new_with_attributes (_("Show"),
+                        myCellRendererToggle, "active", 2, NULL);
+    g_signal_connect    (G_OBJECT (myCellRendererToggle), "toggled",
+                        G_CALLBACK (list_cell_toggle), sd );
+    gtk_tree_view_append_column (GTK_TREE_VIEW (sd->myTreeView),
+                        GTK_TREE_VIEW_COLUMN (aTreeViewColumn));
+
+    myCellRendererText = gtk_cell_renderer_text_new ();
+    g_object_set ( (gpointer*) myCellRendererText, "editable", TRUE, NULL );
+    aTreeViewColumn = gtk_tree_view_column_new_with_attributes (_("Color"),
+                        myCellRendererText, "text", 3, NULL);
+    g_signal_connect    (G_OBJECT (myCellRendererText), "edited",
+                        G_CALLBACK (list_cell_color_edited), sd);
+    gtk_tree_view_append_column (GTK_TREE_VIEW (sd->myTreeView),
+                        GTK_TREE_VIEW_COLUMN (aTreeViewColumn));
+
+    myCellRendererText = gtk_cell_renderer_text_new ();
+    g_object_set ( (gpointer*) myCellRendererText, "editable", TRUE, NULL );
+    aTreeViewColumn = gtk_tree_view_column_new_with_attributes
+                    (_("Min"), myCellRendererText, "text", 4, NULL);
+    g_signal_connect(G_OBJECT(myCellRendererText), "edited",
+                        G_CALLBACK(minimum_changed), sd);
+    gtk_tree_view_append_column(GTK_TREE_VIEW(sd->myTreeView),
+                        GTK_TREE_VIEW_COLUMN(aTreeViewColumn));
+
+    myCellRendererText = gtk_cell_renderer_text_new ();
+    g_object_set ( (gpointer*) myCellRendererText, "editable", TRUE, NULL );
+    aTreeViewColumn = gtk_tree_view_column_new_with_attributes
+                    (_("Max"), myCellRendererText, "text", 5, NULL);
+    g_signal_connect(G_OBJECT(myCellRendererText), "edited",
+                        G_CALLBACK(maximum_changed), sd);
+    gtk_tree_view_append_column(GTK_TREE_VIEW(sd->myTreeView),
+                        GTK_TREE_VIEW_COLUMN(aTreeViewColumn));
+
+    myScrolledWindow = gtk_scrolled_window_new (NULL, NULL);
+        gtk_scrolled_window_set_policy (
+            GTK_SCROLLED_WINDOW (myScrolledWindow), GTK_POLICY_AUTOMATIC,
+            GTK_POLICY_AUTOMATIC);
+        gtk_container_set_border_width (GTK_CONTAINER (myScrolledWindow), 0);
+        /* gtk_scrolled_window_add_with_viewport (
+            GTK_SCROLLED_WINDOW (myScrolledWindow), sd->myTreeView); */
+        gtk_container_add (GTK_CONTAINER (myScrolledWindow), sd->myTreeView);
+
+    gtk_box_pack_start (GTK_BOX (vbox), myScrolledWindow, TRUE, TRUE, BORDER);
+
+    gtk_widget_show (sd->myTreeView);
+    gtk_widget_show (myScrolledWindow);
+
+    TRACE ("leaves add_sensor_settings_box");
+}
+
+
+void
+add_temperature_unit_box (GtkWidget *vbox, t_sensors_dialog *sd)
+{
+    GtkWidget *hbox, *label, *radioCelsius, *radioFahrenheit;
+
+    TRACE ("enters add_temperature_unit_box");
+
+    hbox = gtk_hbox_new (FALSE, BORDER);
+    gtk_widget_show (hbox);
+
+    label = gtk_label_new ( _("Temperature scale:"));
+    radioCelsius = gtk_radio_button_new_with_mnemonic (NULL,
+                                                              _("_Celsius"));
+    radioFahrenheit = gtk_radio_button_new_with_mnemonic(
+      gtk_radio_button_get_group(GTK_RADIO_BUTTON(radioCelsius)), _("_Fahrenheit"));
+
+    gtk_widget_show(radioCelsius);
+    gtk_widget_show(radioFahrenheit);
+    gtk_widget_show(label);
+
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radioCelsius),
+                    sd->sensors->scale == CELSIUS);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radioFahrenheit),
+                    sd->sensors->scale == FAHRENHEIT);
+
+    gtk_box_pack_start(GTK_BOX (hbox), label, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX (hbox), radioCelsius, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX (hbox), radioFahrenheit, FALSE, FALSE, 0);
+
+    gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);
+
+    g_signal_connect (G_OBJECT (radioCelsius), "toggled",
+                      G_CALLBACK (temperature_unit_change), sd );
+
+    TRACE ("leaves add_temperature_unit_box");
+}

Modified: xfce4-sensors-plugin/trunk/panel-plugin/Makefile.am
===================================================================
--- xfce4-sensors-plugin/trunk/panel-plugin/Makefile.am	2008-10-06 20:58:24 UTC (rev 5527)
+++ xfce4-sensors-plugin/trunk/panel-plugin/Makefile.am	2008-10-06 22:29:46 UTC (rev 5528)
@@ -9,7 +9,6 @@
 #	-DPACKAGE_LOCALE_DIR=\"$(localedir)\"
 
 xfce4_sensors_plugin_SOURCES =									   \
-	configuration.c													\
 	sensors-plugin.c
 
 # types.h

Deleted: xfce4-sensors-plugin/trunk/panel-plugin/configuration.c

Deleted: xfce4-sensors-plugin/trunk/panel-plugin/configuration.h

Modified: xfce4-sensors-plugin/trunk/panel-plugin/sensors-plugin.c
===================================================================
--- xfce4-sensors-plugin/trunk/panel-plugin/sensors-plugin.c	2008-10-06 20:58:24 UTC (rev 5527)
+++ xfce4-sensors-plugin/trunk/panel-plugin/sensors-plugin.c	2008-10-06 22:29:46 UTC (rev 5528)
@@ -25,13 +25,17 @@
 /* Note for programmers and editors: Try to use 4 spaces instead of Tab! */
 
 
-#include "sensors-plugin.h"
-#include "configuration.h"
-
+/* Global includes */
 #include <math.h>
 #include <stdlib.h>
 
+/* Package includes */
+#include <configuration.h>
 
+/* Local includes */
+#include "sensors-plugin.h"
+
+
 /*
  * Tooltips to display for any part of this plugin
  */
@@ -837,43 +841,7 @@
 }
 
 
-static void
-sensors_init_default_values  (t_sensors *sensors, XfcePanelPlugin *plugin)
-{
-    TRACE ("enters sensors_init_default_values");
 
-    sensors->show_title = TRUE;
-    sensors->show_labels = TRUE;
-    sensors->display_values_graphically = FALSE;
-    sensors->bars_created = FALSE;
-    sensors->font_size = "medium";
-    sensors->font_size_numerical = 2;
-    if (plugin!=NULL)
-        sensors->panel_size = xfce_panel_plugin_get_size (plugin);
-    sensors->show_colored_bars = TRUE;
-    sensors->sensors_refresh_time = 60;
-    sensors->scale = CELSIUS;
-
-    sensors->plugin = plugin; // we prefer storing NULL in here in case it is NULL.
-    if (plugin!=NULL)
-        sensors->orientation = xfce_panel_plugin_get_orientation (plugin);
-
-    /* double-click improvement */
-    sensors->exec_command = TRUE;
-    sensors->command_name = g_strdup("xsensors");
-    sensors->doubleclick_id = 0;
-
-    /* show units */
-    sensors->show_units = TRUE;
-
-    sensors->suppressmessage = FALSE;
-
-    sensors->show_smallspacings = FALSE;
-
-    TRACE ("leaves sensors_init_default_values");
-}
-
-
 /* #if GTK_VERSION >= 2.11
  * static gboolean
 handle_tooltip_query (GtkWidget  *widget,
@@ -1606,149 +1574,9 @@
 }
 
 
-static void
-add_type_box (GtkWidget * vbox, t_sensors_dialog * sd)
-{
-    GtkWidget *hbox, *label;
-    t_chip *chip;
-    gint gtk_combo_box_active;
 
-    TRACE ("enters add_type_box");
 
-    hbox = gtk_hbox_new (FALSE, BORDER);
-    gtk_widget_show (hbox);
-    gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
-
-    label = gtk_label_new_with_mnemonic (_("Sensors t_ype:"));
-    gtk_widget_show (label);
-    gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
-    gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
-
-    gtk_widget_show (sd->myComboBox);
-    gtk_box_pack_start (GTK_BOX (hbox), sd->myComboBox, FALSE, FALSE, 0);
-
-    gtk_label_set_mnemonic_widget(GTK_LABEL(label), sd->myComboBox);
-
-    gtk_combo_box_active =
-        gtk_combo_box_get_active(GTK_COMBO_BOX(sd->myComboBox));
-
-    chip = g_ptr_array_index (sd->sensors->chips, gtk_combo_box_active);
-
-    /* if (sd->sensors->num_sensorchips > 0)
-        sd->mySensorLabel = gtk_label_new
-            ( sensors_get_adapter_name_wrapper
-                ( chip->chip_name->bus) );
-    else */
-
-    hbox = gtk_hbox_new (FALSE, BORDER);
-    gtk_widget_show (hbox);
-    gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
-
-    label = gtk_label_new_with_mnemonic (_("Description:"));
-    gtk_widget_show (label);
-    gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
-    gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
-
-    sd->mySensorLabel =
-            gtk_label_new (chip->description);
-
-    gtk_widget_show (sd->mySensorLabel);
-    gtk_box_pack_start (GTK_BOX (hbox), sd->mySensorLabel, FALSE, FALSE, 0);
-
-    g_signal_connect (G_OBJECT (sd->myComboBox), "changed",
-                      G_CALLBACK (sensor_entry_changed), sd );
-
-    TRACE ("leaves add_type_box");
-}
-
-
 static void
-add_sensor_settings_box ( GtkWidget * vbox, t_sensors_dialog * sd)
-{
-    GtkTreeViewColumn *aTreeViewColumn;
-    GtkCellRenderer *myCellRendererText, *myCellRendererToggle;
-    GtkWidget *myScrolledWindow;
-    gint gtk_combo_box_active;
-
-    TRACE ("enters add_sensor_settings_box");
-
-    gtk_combo_box_active =
-        gtk_combo_box_get_active(GTK_COMBO_BOX(sd->myComboBox));
-
-    sd->myTreeView = gtk_tree_view_new_with_model
-        ( GTK_TREE_MODEL ( sd->myListStore[ gtk_combo_box_active ] ) );
-
-    myCellRendererText = gtk_cell_renderer_text_new ();
-    g_object_set ( (gpointer*) myCellRendererText, "editable", TRUE, NULL );
-
-    aTreeViewColumn = gtk_tree_view_column_new_with_attributes (_("Name"),
-                        myCellRendererText, "text", 0, NULL);
-    g_signal_connect    (G_OBJECT (myCellRendererText), "edited",
-                        G_CALLBACK (list_cell_text_edited), sd);
-    gtk_tree_view_column_set_expand (aTreeViewColumn, TRUE);
-    gtk_tree_view_append_column (GTK_TREE_VIEW (sd->myTreeView),
-                        GTK_TREE_VIEW_COLUMN (aTreeViewColumn));
-
-    myCellRendererText = gtk_cell_renderer_text_new ();
-    aTreeViewColumn = gtk_tree_view_column_new_with_attributes (_("Value"),
-                        myCellRendererText, "text", 1, NULL);
-    gtk_tree_view_append_column (GTK_TREE_VIEW (sd->myTreeView),
-                        GTK_TREE_VIEW_COLUMN (aTreeViewColumn));
-
-    myCellRendererToggle = gtk_cell_renderer_toggle_new();
-    aTreeViewColumn = gtk_tree_view_column_new_with_attributes (_("Show"),
-                        myCellRendererToggle, "active", 2, NULL);
-    g_signal_connect    (G_OBJECT (myCellRendererToggle), "toggled",
-                        G_CALLBACK (list_cell_toggle), sd );
-    gtk_tree_view_append_column (GTK_TREE_VIEW (sd->myTreeView),
-                        GTK_TREE_VIEW_COLUMN (aTreeViewColumn));
-
-    myCellRendererText = gtk_cell_renderer_text_new ();
-    g_object_set ( (gpointer*) myCellRendererText, "editable", TRUE, NULL );
-    aTreeViewColumn = gtk_tree_view_column_new_with_attributes (_("Color"),
-                        myCellRendererText, "text", 3, NULL);
-    g_signal_connect    (G_OBJECT (myCellRendererText), "edited",
-                        G_CALLBACK (list_cell_color_edited), sd);
-    gtk_tree_view_append_column (GTK_TREE_VIEW (sd->myTreeView),
-                        GTK_TREE_VIEW_COLUMN (aTreeViewColumn));
-
-    myCellRendererText = gtk_cell_renderer_text_new ();
-    g_object_set ( (gpointer*) myCellRendererText, "editable", TRUE, NULL );
-    aTreeViewColumn = gtk_tree_view_column_new_with_attributes
-                    (_("Min"), myCellRendererText, "text", 4, NULL);
-    g_signal_connect(G_OBJECT(myCellRendererText), "edited",
-                        G_CALLBACK(minimum_changed), sd);
-    gtk_tree_view_append_column(GTK_TREE_VIEW(sd->myTreeView),
-                        GTK_TREE_VIEW_COLUMN(aTreeViewColumn));
-
-    myCellRendererText = gtk_cell_renderer_text_new ();
-    g_object_set ( (gpointer*) myCellRendererText, "editable", TRUE, NULL );
-    aTreeViewColumn = gtk_tree_view_column_new_with_attributes
-                    (_("Max"), myCellRendererText, "text", 5, NULL);
-    g_signal_connect(G_OBJECT(myCellRendererText), "edited",
-                        G_CALLBACK(maximum_changed), sd);
-    gtk_tree_view_append_column(GTK_TREE_VIEW(sd->myTreeView),
-                        GTK_TREE_VIEW_COLUMN(aTreeViewColumn));
-
-    myScrolledWindow = gtk_scrolled_window_new (NULL, NULL);
-        gtk_scrolled_window_set_policy (
-            GTK_SCROLLED_WINDOW (myScrolledWindow), GTK_POLICY_AUTOMATIC,
-            GTK_POLICY_AUTOMATIC);
-        gtk_container_set_border_width (GTK_CONTAINER (myScrolledWindow), 0);
-        /* gtk_scrolled_window_add_with_viewport (
-            GTK_SCROLLED_WINDOW (myScrolledWindow), sd->myTreeView); */
-        gtk_container_add (GTK_CONTAINER (myScrolledWindow), sd->myTreeView);
-
-    gtk_box_pack_start (GTK_BOX (vbox), myScrolledWindow, TRUE, TRUE, BORDER);
-
-    gtk_widget_show (sd->myTreeView);
-    gtk_widget_show (myScrolledWindow);
-
-    TRACE ("leaves add_sensor_settings_box");
-}
-
-
-static void
 add_font_size_box (GtkWidget * vbox, t_sensors_dialog * sd)
 {
     GtkWidget *myFontLabel;
@@ -1790,44 +1618,7 @@
     TRACE ("leaves add_font_size_box");
 }
 
-static void
-add_temperature_unit_box (GtkWidget *vbox, t_sensors_dialog *sd)
-{
-    GtkWidget *hbox, *label, *radioCelsius, *radioFahrenheit;
 
-    TRACE ("enters add_temperature_unit_box");
-
-    hbox = gtk_hbox_new (FALSE, BORDER);
-    gtk_widget_show (hbox);
-
-    label = gtk_label_new ( _("Temperature scale:"));
-    radioCelsius = gtk_radio_button_new_with_mnemonic (NULL,
-                                                              _("_Celsius"));
-    radioFahrenheit = gtk_radio_button_new_with_mnemonic(
-      gtk_radio_button_get_group(GTK_RADIO_BUTTON(radioCelsius)), _("_Fahrenheit"));
-
-    gtk_widget_show(radioCelsius);
-    gtk_widget_show(radioFahrenheit);
-    gtk_widget_show(label);
-
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radioCelsius),
-                    sd->sensors->scale == CELSIUS);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radioFahrenheit),
-                    sd->sensors->scale == FAHRENHEIT);
-
-    gtk_box_pack_start(GTK_BOX (hbox), label, FALSE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX (hbox), radioCelsius, FALSE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX (hbox), radioFahrenheit, FALSE, FALSE, 0);
-
-    gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);
-
-    g_signal_connect (G_OBJECT (radioCelsius), "toggled",
-                      G_CALLBACK (temperature_unit_change), sd );
-
-    TRACE ("leaves add_temperature_unit_box");
-}
-
-
 static void
 add_units_box (GtkWidget * vbox, t_sensors_dialog * sd)
 {
@@ -2107,6 +1898,9 @@
     gtk_widget_show(notebook);
 
     add_sensors_frame (notebook, sd);
+    /* g_signal_connect (G_OBJECT (sd->myComboBox), "changed",
+                      //G_CALLBACK (sensor_entry_changed), sd ); */
+
     add_view_frame (notebook, sd);
     add_miscellaneous_frame (notebook, sd);
 
@@ -2156,6 +1950,22 @@
 
     add_event_box (sensors);
 
+        /* Add tooltip to show extended current sensors status */
+    sensors_create_tooltip ((gpointer) sensors);
+
+    /* fill panel widget with boxes, strings, values, ... */
+    create_panel_widget (sensors);
+
+    /* finally add panel "sensors" to eventbox */
+    gtk_container_add (GTK_CONTAINER (sensors->eventbox),
+                       sensors->widget_sensors);
+
+    /* #if GTK_VERSION >= 2.11
+     * g_signal_connect(G_OBJECT(sensors->eventbox),
+                                    "query-tooltip",
+                                    G_CALLBACK(handle_tooltip_query),
+                                    (gpointer) sensors); */
+
     /* sensors_set_size (control, settings.size); */
 
     TRACE ("leaves create_sensors_control");




More information about the Goodies-commits mailing list