separate glade for appindicator to avoid attempt to bind callback which are not avail...
[psensor.git] / src / ui_appindicator.c
index c25e270..f9f1a59 100644 (file)
@@ -36,42 +36,26 @@ static const char *ATTENTION_ICON = "psensor_hot";
 
 static struct psensor **sensors;
 static GtkMenuItem **menu_items;
-static int appindicator_supported = 1;
+static bool appindicator_supported = true;
 static AppIndicator *indicator;
 static struct ui_psensor *ui_psensor;
 
-void cb_menu_show(GtkMenuItem *mi, gpointer data)
+void ui_appindicator_menu_show_cb(GtkMenuItem *mi, gpointer data)
 {
        ui_window_show((struct ui_psensor *)data);
 }
 
 void ui_appindicator_cb_preferences(GtkMenuItem *mi, gpointer data)
 {
-#ifdef HAVE_APPINDICATOR_029
-       gdk_threads_enter();
-#endif
-
        ui_pref_dialog_run((struct ui_psensor *)data);
-
-#ifdef HAVE_APPINDICATOR_029
-       gdk_threads_leave();
-#endif
 }
 
 void ui_appindicator_cb_sensor_preferences(GtkMenuItem *mi, gpointer data)
 {
        struct ui_psensor *ui = data;
 
-#ifdef HAVE_APPINDICATOR_029
-       gdk_threads_enter();
-#endif
-
        if (ui->sensors && *ui->sensors)
                ui_sensorpref_dialog_run(*ui->sensors, ui);
-
-#ifdef HAVE_APPINDICATOR_029
-       gdk_threads_leave();
-#endif
 }
 
 static void
@@ -147,16 +131,20 @@ static GtkWidget *get_menu(struct ui_psensor *ui)
        guint ok;
        GtkBuilder *builder;
 
+       log_fct_enter();
+
        builder = gtk_builder_new();
 
        error = NULL;
        ok = gtk_builder_add_from_file
-               (builder,
-                PACKAGE_DATA_DIR G_DIR_SEPARATOR_S "psensor.glade",
-                &error);
+       (builder,
+        PACKAGE_DATA_DIR G_DIR_SEPARATOR_S "psensor-appindicator.glade",
+        &error);
 
        if (!ok) {
-               log_printf(LOG_ERR, error->message);
+               log_err(_("Failed to load glade file %s: %s"),
+                       PACKAGE_DATA_DIR G_DIR_SEPARATOR_S "psensor-appindicator.glade",
+                       error->message);
                g_error_free(error);
                return NULL;
        }
@@ -168,6 +156,8 @@ static GtkWidget *get_menu(struct ui_psensor *ui)
        g_object_ref(G_OBJECT(menu));
        g_object_unref(G_OBJECT(builder));
 
+       log_fct_exit();
+
        return GTK_WIDGET(menu);
 }
 
@@ -251,7 +241,7 @@ static GtkStatusIcon *unity_fallback(AppIndicator *indicator)
 
        log_debug("ui_appindicator.unity_fallback()");
 
-       appindicator_supported = 0;
+       appindicator_supported = false;
 
        ico = ui_status_get_icon(ui_psensor);
 
@@ -267,7 +257,7 @@ unity_unfallback(AppIndicator *indicator, GtkStatusIcon *status_icon)
 
        ui_status_set_visible(0);
 
-       appindicator_supported = 1;
+       appindicator_supported = true;
 }
 
 void ui_appindicator_update_menu(struct ui_psensor *ui)
@@ -298,12 +288,12 @@ void ui_appindicator_init(struct ui_psensor *ui)
        ui_appindicator_update_menu(ui);
 }
 
-int is_appindicator_supported()
+bool is_appindicator_supported(void)
 {
        return appindicator_supported;
 }
 
-void ui_appindicator_cleanup()
+void ui_appindicator_cleanup(void)
 {
        free(sensors);
 }