#ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "eggtrayicon.h" #include #include #include #include "menu.h" extern GeneralPlugin docklet_plugin; static GtkWidget *docklet_menu; static void docklet_menu_play_cb (GtkAction * action) { xmms_remote_play (docklet_plugin.xmms_session); } static void docklet_menu_pause_cb (GtkAction * action) { xmms_remote_pause (docklet_plugin.xmms_session); } static void docklet_menu_stop_cb (GtkAction * action) { xmms_remote_stop (docklet_plugin.xmms_session); } static void docklet_menu_previous_cb (GtkAction * action) { xmms_remote_playlist_prev (docklet_plugin.xmms_session); } static void docklet_menu_next_cb (GtkAction * action) { xmms_remote_playlist_next (docklet_plugin.xmms_session); } static void docklet_menu_preferences_cb (GtkAction * action) { xmms_remote_show_prefs_box (docklet_plugin.xmms_session); } static void docklet_menu_quit_cb (GtkAction * action) { xmms_remote_quit (docklet_plugin.xmms_session); } static GtkActionEntry action_entries[] = { {"Play", GTK_STOCK_MEDIA_PLAY, N_("Play"), "X", N_("Play"), G_CALLBACK (docklet_menu_play_cb)}, {"Pause", GTK_STOCK_MEDIA_PAUSE, N_("Pause"), "C", N_("Pause"), G_CALLBACK (docklet_menu_pause_cb)}, {"Stop", GTK_STOCK_MEDIA_STOP, N_("Stop"), "V", N_("Stop"), G_CALLBACK (docklet_menu_stop_cb)}, {"Previous", GTK_STOCK_MEDIA_PREVIOUS, N_("Previous"), "Z", N_("Previous"), G_CALLBACK (docklet_menu_previous_cb)}, {"Next", GTK_STOCK_MEDIA_NEXT, N_("Next"), "B", N_("Next"), G_CALLBACK (docklet_menu_next_cb)}, {"Preferences", GTK_STOCK_PREFERENCES, N_("Preferences"), "P", N_("Preferences"), G_CALLBACK (docklet_menu_preferences_cb)}, {"Quit", GTK_STOCK_QUIT, N_("Quit"), "Q", N_("Quit"), G_CALLBACK (docklet_menu_quit_cb)} }; static gchar *ui_info = "" " " " " " " " " " " " " " " " " " " " " " " " " ""; static void docklet_menu_init (void) { GtkUIManager *ui_manager; GtkActionGroup *action_group; ui_manager = gtk_ui_manager_new (); action_group = gtk_action_group_new ("DockletActions"); #ifdef ENABLE_NLS gtk_action_group_set_translation_domain (action_group, PACKAGE); #endif gtk_action_group_add_actions (action_group, action_entries, G_N_ELEMENTS (action_entries), NULL); gtk_ui_manager_insert_action_group (ui_manager, action_group, 0); gtk_ui_manager_add_ui_from_string (ui_manager, ui_info, -1, NULL); docklet_menu = gtk_ui_manager_get_widget (ui_manager, "/Docklet"); } void docklet_menu_cleanup (void) { if (docklet_menu == NULL) return; gtk_widget_destroy (GTK_WIDGET (docklet_menu)); docklet_menu = NULL; } void docklet_menu_show (GdkEventButton * event) { if (docklet_menu == NULL) docklet_menu_init (); gtk_menu_popup (GTK_MENU (docklet_menu), NULL, NULL, NULL, NULL, event->button, event->time); }