ui_psensor_quit(data);
}
-static void
-cb_menu_preferences(GtkMenuItem *mi, gpointer data)
+static void cb_menu_preferences(GtkMenuItem *mi, gpointer data)
{
#ifdef HAVE_APPINDICATOR_029
gdk_threads_enter();
return GTK_WIDGET(menu);
}
-
-void ui_appindicator_update(struct ui_psensor *ui)
+void ui_appindicator_update(struct ui_psensor *ui,
+ unsigned int attention)
{
- struct psensor **sensor_cur = ui->sensors;
AppIndicatorStatus status;
- int attention = 0;
if (!ui->indicator)
return;
- while (*sensor_cur) {
- struct psensor *s = *sensor_cur;
-
- if (s->alarm_enabled && s->alarm_raised) {
- attention = 1;
- break;
- }
-
- sensor_cur++;
- }
-
status = app_indicator_get_status(ui->indicator);
if (!attention && status == APP_INDICATOR_STATUS_ATTENTION)
static GtkStatusIcon *unity_fallback(AppIndicator *indicator)
{
- log_puts(LOG_DEBUG, "ui_appindicator#unity_fallback");
+ log_printf(LOG_DEBUG, "ui_appindicator#unity_fallback");
gtk_widget_show_all(main_window);
static void unity_unfallback(AppIndicator *indicator,
GtkStatusIcon *status_icon)
{
- log_puts(LOG_DEBUG, "ui_appindicator#unity_unfallback");
+ log_printf(LOG_DEBUG, "ui_appindicator#unity_unfallback");
appindicator_supported = 1;
}
-
void ui_appindicator_init(struct ui_psensor *ui)
{
- GtkWidget *indicatormenu;
+ GtkWidget *menu;
+ AppIndicator *indicator;
main_window = ui->main_window;
- ui->indicator
- = app_indicator_new("psensor",
- "psensor_normal",
- APP_INDICATOR_CATEGORY_APPLICATION_STATUS);
+ indicator = app_indicator_new
+ ("psensor",
+ "psensor_normal",
+ APP_INDICATOR_CATEGORY_APPLICATION_STATUS);
- APP_INDICATOR_GET_CLASS(ui->indicator)->fallback = unity_fallback;
- APP_INDICATOR_GET_CLASS(ui->indicator)->unfallback = unity_unfallback;
+ APP_INDICATOR_GET_CLASS(indicator)->fallback = unity_fallback;
+ APP_INDICATOR_GET_CLASS(indicator)->unfallback = unity_unfallback;
- app_indicator_set_status(ui->indicator, APP_INDICATOR_STATUS_ACTIVE);
- app_indicator_set_attention_icon(ui->indicator, "psensor_hot");
+ app_indicator_set_status(indicator, APP_INDICATOR_STATUS_ACTIVE);
+ app_indicator_set_attention_icon(indicator, "psensor_hot");
- indicatormenu = get_menu(ui);
+ menu = get_menu(ui);
+ app_indicator_set_menu(indicator, GTK_MENU(menu));
- gtk_widget_show_all(indicatormenu);
+ ui->indicator = indicator;
- app_indicator_set_menu(ui->indicator, GTK_MENU(indicatormenu));
+ gtk_widget_show_all(menu);
}
int is_appindicator_supported()
{
return appindicator_supported;
}
+
+void ui_appindicator_cleanup()
+{
+ /* TODO: cleanup menu items. */
+}