static void on_tray_popup_menu(GtkStatusIcon *status_icon, guint button, guint activate_time, gpointer data) { XmrTrayIcon *tray = XMR_TRAY_ICON(status_icon); if (tray->priv->popup_menu != NULL) gtk_menu_popup(GTK_MENU(tray->priv->popup_menu), NULL, NULL, NULL, data, button, activate_time); }
static void track_changed(XmrWindow *window, SongInfo *new_track, XmrIndicatorPlugin *plugin) { gchar *tooltips; tooltips = g_strdup_printf("%s - %s", new_track->artist_name, new_track->song_name); #ifdef HAVE_APP_INDICATOR // app_indicator_set_title(APP_INDICATOR(plugin->indicator), tooltips); #else xmr_tray_icon_set_tooltips(XMR_TRAY_ICON(plugin->indicator), tooltips); #endif g_free(tooltips); }
static void xmr_tray_icon_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { XmrTrayIcon *tray = XMR_TRAY_ICON(object); XmrTrayIconPrivate *priv = tray->priv; switch(prop_id) { case PROP_MAIN_WINDOW: priv->main_window = g_value_get_object(value); break; case PROP_POPUP_MENU: priv->popup_menu = g_value_get_object(value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; } }
static gboolean on_tray_activate(GtkStatusIcon *status_icon, gpointer data) { XmrTrayIcon *tray = XMR_TRAY_ICON(status_icon); XmrTrayIconPrivate *priv = tray->priv; if (priv->main_window == NULL) { return FALSE; } if (gtk_widget_get_visible(priv->main_window)) { gtk_widget_hide(priv->main_window); } else { gtk_widget_show(priv->main_window); gtk_window_present(GTK_WINDOW(priv->main_window)); } return FALSE; }