ocarina: Improve right click menu

I can now create new playlists at either the front or back of the
playlist deck.

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
This commit is contained in:
Bryan Schumaker 2012-04-12 08:06:39 -04:00
parent 97427af922
commit 900cac7e45
1 changed files with 23 additions and 7 deletions

View File

@ -28,12 +28,22 @@ static void new_playlist(ocarina::Playlist *plist, PlaylistType type, bool front
plist->on_show();
}
static void new_queue(GtkMenuItem *menu, gpointer data)
static void new_queue_front(GtkMenuItem *menu, gpointer data)
{
new_playlist((ocarina::Playlist *)data, PLIST_QUEUE, true);
}
static void new_queue_back(GtkMenuItem *menu, gpointer data)
{
new_playlist((ocarina::Playlist *)data, PLIST_QUEUE, false);
}
static void new_set(GtkMenuItem *menu, gpointer data)
static void new_set_front(GtkMenuItem *menu, gpointer data)
{
new_playlist((ocarina::Playlist *)data, PLIST_SET, true);
}
static void new_set_back(GtkMenuItem *menu, gpointer data)
{
new_playlist((ocarina::Playlist *)data, PLIST_SET, false);
}
@ -102,12 +112,18 @@ namespace ocarina
void Playlist::right_click(guint button, guint64 time)
{
GtkWidget *menu = gtk_menu_new();
GtkWidget *queue = menu_item("Add to new queue", new_queue, this);
GtkWidget *set = menu_item("Add to new set", new_set, this);
GtkWidget *menu = gtk_menu_new();
GtkWidget *queue1 = menu_item("New queue (front)", new_queue_front, this);
GtkWidget *set1 = menu_item("New set (front)", new_set_front, this);
GtkWidget *sep = gtk_separator_menu_item_new();
GtkWidget *queue2 = menu_item("New queue (back)", new_queue_back, this);
GtkWidget *set2 = menu_item("New set (back)", new_set_back, this);
gtk_menu_append(GTK_MENU(menu), queue);
gtk_menu_append(GTK_MENU(menu), set);
gtk_menu_append(GTK_MENU(menu), queue1);
gtk_menu_append(GTK_MENU(menu), set1);
gtk_menu_append(GTK_MENU(menu), sep);
gtk_menu_append(GTK_MENU(menu), queue2);
gtk_menu_append(GTK_MENU(menu), set2);
gtk_widget_show_all(menu);
gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, button, time);