# HG changeset patch # User Cristi Magherusan # Date 1186786166 -10800 # Node ID c8d0d7bf26d4f3dac6ed871a2fadff8ef7eb3565 # Parent b01c8d41d35b59cefc5811965d5959ad44090101# Parent a6a76ab7ce0a84924f8cdee6a80590f7fe5c5e17 merge again diff -r b01c8d41d35b -r c8d0d7bf26d4 src/audacious/ui/playlist.ui --- a/src/audacious/ui/playlist.ui Fri Aug 10 23:06:35 2007 +0300 +++ b/src/audacious/ui/playlist.ui Sat Aug 11 01:49:26 2007 +0300 @@ -10,6 +10,10 @@ + + + + @@ -83,7 +87,6 @@ - diff -r b01c8d41d35b -r c8d0d7bf26d4 src/audacious/ui_manager.c --- a/src/audacious/ui_manager.c Fri Aug 10 23:06:35 2007 +0300 +++ b/src/audacious/ui_manager.c Sat Aug 11 01:49:26 2007 +0300 @@ -699,6 +699,7 @@ /* initialize plugins-menu for playlist-menus */ ui_manager_create_menus_init_pmenu( "/playlist-menus/playlist-menu/plugins-menu" ); + ui_manager_create_menus_init_pmenu( "/playlist-menus/playlist-rightclick-menu/plugins-menu" ); gtk_ui_manager_add_ui_from_file( ui_manager , DATA_DIR "/ui/equalizer.ui" , &gerr ); @@ -777,31 +778,44 @@ { if ( menu_created ) { + GtkWidget *plugins_menu = NULL; + GtkWidget *plugins_menu_item = NULL; + switch (menu_id) { case AUDACIOUS_MENU_MAIN: - { - GtkWidget *plugins_menu_item = gtk_ui_manager_get_widget( ui_manager , + plugins_menu_item = gtk_ui_manager_get_widget( ui_manager , "/mainwin-menus/main-menu/plugins-menu" ); - GtkWidget *plugins_menu = gtk_menu_item_get_submenu( GTK_MENU_ITEM(plugins_menu_item) ); - gtk_menu_shell_append( GTK_MENU_SHELL(plugins_menu) , item ); - gtk_widget_show( plugins_menu_item ); - return 0; - } + break; case AUDACIOUS_MENU_PLAYLIST: - { - GtkWidget *plugins_menu_item = gtk_ui_manager_get_widget( ui_manager , + plugins_menu_item = gtk_ui_manager_get_widget( ui_manager , "/playlist-menus/playlist-menu/plugins-menu" ); - GtkWidget *plugins_menu = gtk_menu_item_get_submenu( GTK_MENU_ITEM(plugins_menu_item) ); - gtk_menu_shell_append( GTK_MENU_SHELL(plugins_menu) , item ); - gtk_widget_show( plugins_menu_item ); - return 0; - } + break; + + case AUDACIOUS_MENU_PLAYLIST_RCLICK: + plugins_menu_item = gtk_ui_manager_get_widget( ui_manager , + "/playlist-menus/playlist-rightclick-menu/plugins-menu" ); + break; default: return -1; } + + if ( plugins_menu_item ) + { + plugins_menu = gtk_menu_item_get_submenu( GTK_MENU_ITEM(plugins_menu_item) ); + if ( plugins_menu ) + { + gtk_menu_shell_append( GTK_MENU_SHELL(plugins_menu) , item ); + gtk_widget_show( plugins_menu_item ); + return 0; /* success */ + } + else + return -1; + } + else + return -1; } else return -1; @@ -820,37 +834,42 @@ switch (menu_id) { case AUDACIOUS_MENU_MAIN: - { plugins_menu_item = gtk_ui_manager_get_widget( ui_manager , "/mainwin-menus/main-menu/plugins-menu" ); - plugins_menu = gtk_menu_item_get_submenu( GTK_MENU_ITEM(plugins_menu_item) ); - gtk_container_remove( GTK_CONTAINER(plugins_menu) , item ); break; - } case AUDACIOUS_MENU_PLAYLIST: - { plugins_menu_item = gtk_ui_manager_get_widget( ui_manager , "/playlist-menus/playlist-menu/plugins-menu" ); - plugins_menu = gtk_menu_item_get_submenu( GTK_MENU_ITEM(plugins_menu_item) ); - gtk_container_remove( GTK_CONTAINER(plugins_menu) , item ); break; - } + + case AUDACIOUS_MENU_PLAYLIST_RCLICK: + plugins_menu_item = gtk_ui_manager_get_widget( ui_manager , + "/playlist-menus/playlist-rightclick-menu/plugins-menu" ); + break; default: return -1; } - if ( plugins_menu ) + if ( plugins_menu_item ) { - /* check the current number of items in plugins-menu against its initial count - of items; if these are equal, it means that the menu is "empty", so hide it */ - gint ic = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(plugins_menu),"ic")); - plugins_menu_children = gtk_container_get_children( GTK_CONTAINER(plugins_menu) ); - if ( ic == g_list_length(plugins_menu_children) ) - gtk_widget_hide( plugins_menu_item ); - g_list_free( plugins_menu_children ); - return 0; + plugins_menu = gtk_menu_item_get_submenu( GTK_MENU_ITEM(plugins_menu_item) ); + if ( plugins_menu ) + { + /* remove the plugin-added entry */ + gtk_container_remove( GTK_CONTAINER(plugins_menu) , item ); + /* check the current number of items in plugins-menu against its initial count + of items; if these are equal, it means that the menu is "empty", so hide it */ + gint ic = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(plugins_menu),"ic")); + plugins_menu_children = gtk_container_get_children( GTK_CONTAINER(plugins_menu) ); + if ( ic == g_list_length(plugins_menu_children) ) + gtk_widget_hide( plugins_menu_item ); + g_list_free( plugins_menu_children ); + return 0; /* success */ + } + else + return -1; } else return -1; diff -r b01c8d41d35b -r c8d0d7bf26d4 src/audacious/ui_plugin_menu.h --- a/src/audacious/ui_plugin_menu.h Fri Aug 10 23:06:35 2007 +0300 +++ b/src/audacious/ui_plugin_menu.h Sat Aug 11 01:49:26 2007 +0300 @@ -28,8 +28,9 @@ #include -#define AUDACIOUS_MENU_MAIN 0 -#define AUDACIOUS_MENU_PLAYLIST 1 +#define AUDACIOUS_MENU_MAIN 0 +#define AUDACIOUS_MENU_PLAYLIST 1 +#define AUDACIOUS_MENU_PLAYLIST_RCLICK 2 gint audacious_menu_plugin_item_add( gint , GtkWidget * ); gint audacious_menu_plugin_item_remove( gint , GtkWidget * );