status
authorJean-Philippe Orsini <jeanfi@gmail.com>
Wed, 9 Nov 2011 21:50:06 +0000 (21:50 +0000)
committerJean-Philippe Orsini <jeanfi@gmail.com>
Wed, 9 Nov 2011 21:50:06 +0000 (21:50 +0000)
src/main.c
src/ui_appindicator.c
src/ui_appindicator.h
src/ui_status.c
src/ui_status.h

index a88e25e..f06ea5b 100644 (file)
@@ -40,6 +40,7 @@
 #include "lmsensor.h"
 #include "ui_pref.h"
 #include "ui_graph.h"
+#include "ui_status.h"
 
 #ifdef HAVE_UNITY
 #include "ui_unity.h"
@@ -59,8 +60,6 @@
 
 #if defined(HAVE_APPINDICATOR) || defined(HAVE_APPINDICATOR_029)
 #include "ui_appindicator.h"
-#else
-#include "ui_status.h"
 #endif
 
 #ifdef HAVE_LIBNOTIFY
@@ -448,7 +447,7 @@ int main(int argc, char **argv)
 #if defined(HAVE_APPINDICATOR) || defined(HAVE_APPINDICATOR_029)
        ui_appindicator_init(&ui);
 #else
-       ui_status_create();
+       ui_status_init();
 #endif
 
        gdk_notify_startup_complete();
@@ -473,6 +472,12 @@ int main(int argc, char **argv)
        psensor_list_free(ui.sensors);
        ui.sensors = NULL;
 
+#if defined(HAVE_APPINDICATOR) || defined(HAVE_APPINDICATOR_029)
+       ui_appindicator_cleanup();
+#else
+       ui_status_cleanup();
+#endif
+
        g_mutex_unlock(ui.sensors_mutex);
 
        config_cleanup();
index 45ed0fd..249d00d 100644 (file)
@@ -278,3 +278,8 @@ int is_appindicator_supported()
 {
        return appindicator_supported;
 }
+
+void ui_appindicator_cleanup()
+{
+       /* TODO: cleanup menu items. */
+}
index d1912b4..a756388 100644 (file)
@@ -25,5 +25,6 @@
 void ui_appindicator_init(struct ui_psensor *ui);
 void ui_appindicator_update(struct ui_psensor *ui);
 int is_appindicator_supported();
+void ui_appindicator_cleanup();
 
 #endif
index cbb783e..49137e0 100644 (file)
 #include "log.h"
 #include "ui_status.h"
 
-void ui_status_create()
-{
-       GtkStatusIcon *status;
+GtkStatusIcon *status;
 
+void ui_status_init()
+{
        log_printf(LOG_DEBUG, "ui_status_create()");
 
         status = gtk_status_icon_new();
@@ -34,3 +34,13 @@ void ui_status_create()
                                     "Psensor - Hardware Sensors Monitoring");
         gtk_status_icon_set_visible(status, TRUE);
 }
+
+int is_status_supported()
+{
+       return gtk_status_icon_is_embedded(status);
+}
+
+void ui_status_cleanup()
+{
+       g_object_unref(G_OBJECT(status));
+}
index 677d5ee..ec65075 100644 (file)
 #ifndef _PSENSOR_UI_STATUS_H_
 #define _PSENSOR_UI_STATUS_H_
 
-void ui_status_create();
+void ui_status_init();
+void ui_status_cleanup();
+
+/* Whether status icon is supported i.e. visible. */
+int is_status_supported();
 
 #endif