graph.h graph.c \
main.c \
ui.h ui.c \
+ ui_appindicator.h \
ui_color.h ui_color.c \
ui_graph.h ui_graph.c \
ui_pref.h ui_pref.c \
endif
if APPINDICATOR
-psensor_SOURCES += ui_appindicator.h ui_appindicator.c
+psensor_SOURCES += ui_appindicator.c
LIBS += $(APPINDICATOR_LIBS)
AM_CPPFLAGS += $(APPINDICATOR_CFLAGS)
endif
@LIBNOTIFY_TRUE@am__append_4 = ui_notify.h ui_notify.c
@LIBNOTIFY_TRUE@am__append_5 = $(LIBNOTIFY_LIBS)
@LIBNOTIFY_TRUE@am__append_6 = $(LIBNOTIFY_CFLAGS)
-@APPINDICATOR_TRUE@am__append_7 = ui_appindicator.h ui_appindicator.c
+@APPINDICATOR_TRUE@am__append_7 = ui_appindicator.c
@APPINDICATOR_TRUE@am__append_8 = $(APPINDICATOR_LIBS)
@APPINDICATOR_TRUE@am__append_9 = $(APPINDICATOR_CFLAGS)
@NVIDIA_TRUE@am__append_10 = $(NVIDIA_CFLAGS)
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
PROGRAMS = $(bin_PROGRAMS)
am__psensor_SOURCES_DIST = compat.h cfg.h cfg.c graph.h graph.c main.c \
- ui.h ui.c ui_color.h ui_color.c ui_graph.h ui_graph.c \
- ui_pref.h ui_pref.c ui_sensorlist.h ui_sensorlist.c \
+ ui.h ui.c ui_appindicator.h ui_color.h ui_color.c ui_graph.h \
+ ui_graph.c ui_pref.h ui_pref.c ui_sensorlist.h ui_sensorlist.c \
ui_sensorpref.h ui_sensorpref.c ui_status.h ui_status.c \
- ui_notify.h ui_notify.c ui_appindicator.h ui_appindicator.c \
- ui_unity.h ui_unity.c rsensor.h rsensor.c
+ ui_notify.h ui_notify.c ui_appindicator.c ui_unity.h \
+ ui_unity.c rsensor.h rsensor.c
@LIBNOTIFY_TRUE@am__objects_1 = ui_notify.$(OBJEXT)
@APPINDICATOR_TRUE@am__objects_2 = ui_appindicator.$(OBJEXT)
@UNITY_TRUE@am__objects_3 = ui_unity.$(OBJEXT)
$(am__append_10) $(am__append_12) $(am__append_15) \
$(am__append_19)
psensor_SOURCES = compat.h cfg.h cfg.c graph.h graph.c main.c ui.h \
- ui.c ui_color.h ui_color.c ui_graph.h ui_graph.c ui_pref.h \
- ui_pref.c ui_sensorlist.h ui_sensorlist.c ui_sensorpref.h \
- ui_sensorpref.c ui_status.h ui_status.c $(am__append_4) \
- $(am__append_7) $(am__append_14) $(am__append_17)
+ ui.c ui_appindicator.h ui_color.h ui_color.c ui_graph.h \
+ ui_graph.c ui_pref.h ui_pref.c ui_sensorlist.h ui_sensorlist.c \
+ ui_sensorpref.h ui_sensorpref.c ui_status.h ui_status.c \
+ $(am__append_4) $(am__append_7) $(am__append_14) \
+ $(am__append_17)
dist_man_MANS = psensor.1
EXTRA_DIST = description.txt
all: all-recursive
#include "rsensor.h"
#endif
-#if defined(HAVE_APPINDICATOR) || defined(HAVE_APPINDICATOR_029)
#include "ui_appindicator.h"
-#endif
#ifdef HAVE_LIBNOTIFY
#include "ui_notify.h"
associate_colors(ui.sensors);
associate_cb_alarm_raised(ui.sensors, &ui);
+ ui_status_init(&ui);
+
/* main window */
ui_window_create(&ui);
ui.sensor_box = NULL;
ui_appindicator_init(&ui);
#endif
- ui_status_init();
-
gdk_notify_startup_complete();
/* main loop */
#include "ui_pref.h"
#include "ui_sensorpref.h"
#include "ui_sensorlist.h"
+#include "ui_status.h"
#include "ui_appindicator.h"
static void save_window_pos(struct ui_psensor *ui)
save_window_pos(ui);
-#if defined(HAVE_APPINDICATOR) || defined(HAVE_APPINDICATOR_029)
- if (is_appindicator_supported()) {
- log_printf(LOG_DEBUG, "hiding, WM is supporting appindicator");
+ log_printf(LOG_DEBUG,
+ "is_status_supported: %d\n", is_status_supported());
+
+ if (is_appindicator_supported() || is_status_supported())
gtk_widget_hide(ui->main_window);
- } else {
- log_printf(LOG_DEBUG,
- "quitting, WM not supporting appindicator");
+ else
ui_psensor_quit(ui);
- }
-#else
- ui_psensor_quit(ui);
-#endif
return TRUE;
}
ui->main_window = window;
ui->menu_bar = menubar;
-#if defined(HAVE_APPINDICATOR) || defined(HAVE_APPINDICATOR_029)
- if (ui->config->hide_on_startup)
+ log_printf(LOG_DEBUG,
+ "is_status_supported: %d\n", is_status_supported());
+
+ if (ui->config->hide_on_startup
+ && (is_appindicator_supported() || is_status_supported()))
gtk_widget_show_all(ui->main_box);
else
ui_window_show(ui);
-#else
- ui_window_show(ui);
-#endif
}
static void menu_bar_show(unsigned int show, struct ui_psensor *ui)
#ifndef _PSENSOR_UI_APPINDICATOR_H_
#define _PSENSOR_UI_APPINDICATOR_H_
+#include "config.h"
#include "ui.h"
+#if defined(HAVE_APPINDICATOR) || defined(HAVE_APPINDICATOR_029)
void ui_appindicator_init(struct ui_psensor *ui);
void ui_appindicator_update(struct ui_psensor *ui);
int is_appindicator_supported();
void ui_appindicator_cleanup();
+#else
+#define is_appindicator_supported() 0
+#endif
#endif
GtkStatusIcon *status;
-void ui_status_init()
+static void cb_activate(GtkStatusIcon *icon,
+ gpointer data)
+{
+ struct ui_psensor *ui;
+
+ log_printf(LOG_DEBUG, "cb_activate()");
+
+ ui = (struct ui_psensor *)data;
+ gtk_window_present(GTK_WINDOW(ui->main_window));
+}
+
+static void cb_popup_menu(GtkStatusIcon *icon,
+ guint button,
+ guint activate_time,
+ gpointer data)
+{
+ log_printf(LOG_DEBUG, "cb_popup_menu()");
+}
+
+void ui_status_init(struct ui_psensor *ui)
{
log_printf(LOG_DEBUG, "ui_status_create()");
- status = gtk_status_icon_new();
- gtk_status_icon_set_from_icon_name(status, "psensor");
- gtk_status_icon_set_visible(status, TRUE);
+ status = gtk_status_icon_new();
+ gtk_status_icon_set_from_icon_name(status, "psensor");
+ gtk_status_icon_set_visible(status, TRUE);
+
+ g_signal_connect(G_OBJECT(status),
+ "popup-menu",
+ G_CALLBACK(cb_popup_menu),
+ NULL);
+
+ g_signal_connect(G_OBJECT(status),
+ "activate",
+ G_CALLBACK(cb_activate),
+ ui);
}
int is_status_supported()
#ifndef _PSENSOR_UI_STATUS_H_
#define _PSENSOR_UI_STATUS_H_
-void ui_status_init();
+#include <ui.h>
+
+void ui_status_init(struct ui_psensor *ui);
void ui_status_cleanup();
/* Whether status icon is supported i.e. visible. */