#include "gm-tray.h" #include "eggtrayicon.h" #define GM_TRAY_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), GM_TYPE_TRAY, GmTrayPrivate)) typedef enum _tray_type { TRAY_ICON_DEFAULT, TRAY_ICON_ACTIVE, TRAY_ICON_NOTIFY } tray_type; struct _GmTrayPrivate { GtkWidget *event_box; GtkWidget *image; GtkTooltips *tooltips; GtkWidget *popup_menu; GtkWidget *show_popup_item; GtkWidget *hide_popup_item; guint flash_timeout; tray_type iconnr; }; /* Signals */ enum { NUM_SIGNALS }; static guint tray_signals[NUM_SIGNALS] = {0}; G_DEFINE_TYPE(GmTray, gm_tray, EGG_TYPE_TRAY_ICON) static void gm_tray_finalize(GObject *object) { GmTray *view = GM_TRAY(object); G_OBJECT_CLASS(gm_tray_parent_class)->finalize(object); } static void gm_tray_class_init(GmTrayClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); object_class->finalize = gm_tray_finalize; g_type_class_add_private(object_class, sizeof(GmTrayPrivate)); } static void gm_tray_init(GmTray *tray) { tray->private = GM_TRAY_GET_PRIVATE(tray); }