updated copyright end date to 2013
[psensor.git] / src / ui_status.c
index 06dbbe0..ddaf75c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010-2011 jeanfi@gmail.com
+ * Copyright (C) 2010-2014 jeanfi@gmail.com
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -19,6 +19,9 @@
 #include "log.h"
 #include "ui_status.h"
 
+static const char *ICON = "psensor_normal";
+static const char *ATTENTION_ICON = "psensor_hot";
+
 static GtkStatusIcon *status;
 static unsigned status_attention;
 
@@ -26,7 +29,6 @@ static void cb_activate(GtkStatusIcon *icon,
                        gpointer data)
 {
        log_debug("cb_activate()");
-
        ui_window_show((struct ui_psensor *)data);
 }
 
@@ -46,8 +48,8 @@ void ui_status_init(struct ui_psensor *ui)
        log_debug("ui_status_create()");
 
        status = gtk_status_icon_new();
-       gtk_status_icon_set_from_icon_name(status, "psensor_normal");
-       gtk_status_icon_set_visible(status, TRUE);
+       gtk_status_icon_set_from_icon_name(status, ICON);
+       ui_status_set_visible(0);
 
        g_signal_connect(G_OBJECT(status),
                         "popup-menu",
@@ -80,9 +82,9 @@ void ui_status_update(struct ui_psensor *ui, unsigned int attention)
        log_debug("ui_status_update()");
 
        if (status_attention && !attention)
-               gtk_status_icon_set_from_icon_name(status, "psensor_normal");
+               gtk_status_icon_set_from_icon_name(status, ICON);
        else if (!status_attention && attention)
-               gtk_status_icon_set_from_icon_name(status, "psensor_hot");
+               gtk_status_icon_set_from_icon_name(status, ATTENTION_ICON);
 
        status_attention = attention;
 }
@@ -94,3 +96,15 @@ GtkStatusIcon *ui_status_get_icon(struct ui_psensor *ui)
 
        return status;
 }
+
+void ui_status_set_visible(unsigned int visible)
+{
+       log_debug("ui_status_set_visible(%d)", visible);
+
+       if (status) {
+               if (visible)
+                       gtk_status_icon_set_visible(status, TRUE);
+               else
+                       gtk_status_icon_set_visible(status, FALSE);
+       }
+}