ocarina: Created add-to-playlist menu items
For people who don't like keyboard shortcuts... Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
This commit is contained in:
parent
55cfdc5dba
commit
42c6bdff0e
|
@ -28,6 +28,7 @@ namespace libsaria
|
|||
Playlist *new_playlist(list<Track *> &, PlaylistType, bool);
|
||||
void delete_playlist(Playlist *);
|
||||
unsigned int move_playlist(Playlist *, unsigned int);
|
||||
unsigned int num_playlists();
|
||||
|
||||
Playlist *get_playlist(unsigned int);
|
||||
int get_playlist_index(Playlist *);
|
||||
|
|
|
@ -161,6 +161,11 @@ namespace libsaria
|
|||
return index;
|
||||
}
|
||||
|
||||
unsigned int deck::num_playlists()
|
||||
{
|
||||
return playlist_deck.size();
|
||||
}
|
||||
|
||||
void deck::init()
|
||||
{
|
||||
app::mkdir("playlist");
|
||||
|
|
|
@ -304,6 +304,26 @@ static void on_menu_item(GtkWidget *item, gpointer data)
|
|||
new_playlist("S", widgets->treeview, true);
|
||||
else if (item == get_widget("MenuSetBack"))
|
||||
new_playlist("s", widgets->treeview, false);
|
||||
else if (item == get_widget("AddPlaylist0"))
|
||||
add_to_playlist(widgets->treeview, 0);
|
||||
else if (item == get_widget("AddPlaylist1"))
|
||||
add_to_playlist(widgets->treeview, 1);
|
||||
else if (item == get_widget("AddPlaylist2"))
|
||||
add_to_playlist(widgets->treeview, 2);
|
||||
else if (item == get_widget("AddPlaylist3"))
|
||||
add_to_playlist(widgets->treeview, 3);
|
||||
else if (item == get_widget("AddPlaylist4"))
|
||||
add_to_playlist(widgets->treeview, 4);
|
||||
else if (item == get_widget("AddPlaylist5"))
|
||||
add_to_playlist(widgets->treeview, 5);
|
||||
else if (item == get_widget("AddPlaylist6"))
|
||||
add_to_playlist(widgets->treeview, 6);
|
||||
else if (item == get_widget("AddPlaylist7"))
|
||||
add_to_playlist(widgets->treeview, 7);
|
||||
else if (item == get_widget("AddPlaylist8"))
|
||||
add_to_playlist(widgets->treeview, 8);
|
||||
else if (item == get_widget("AddPlaylist9"))
|
||||
add_to_playlist(widgets->treeview, 9);
|
||||
}
|
||||
|
||||
static gboolean entry_keypress(GtkEntry *entry, GdkEvent *event, gpointer data)
|
||||
|
@ -316,10 +336,44 @@ static gboolean entry_keypress(GtkEntry *entry, GdkEvent *event, gpointer data)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
static void show_menu_widget(const string &name, unsigned int plist_num,
|
||||
unsigned int deck_size)
|
||||
{
|
||||
if (plist_num < deck_size)
|
||||
gtk_widget_show(get_widget(name));
|
||||
else
|
||||
gtk_widget_hide(get_widget(name));
|
||||
}
|
||||
|
||||
static void on_click(GtkTreeView *treeview, GdkEvent *event, gpointer data)
|
||||
{
|
||||
unsigned int deck_size = libsaria::deck::num_playlists();
|
||||
|
||||
if (event->button.button != 3)
|
||||
return;
|
||||
|
||||
show_menu_widget("MenuQueueBack", deck_size, 10);
|
||||
show_menu_widget("MenuQueueFront", deck_size, 10);
|
||||
show_menu_widget("MenuSetBack", deck_size, 10);
|
||||
show_menu_widget("MenuSetFront", deck_size, 10);
|
||||
show_menu_widget("MenuNewSep", deck_size, 10);
|
||||
|
||||
if (deck_size > 0 && deck_size < 10)
|
||||
gtk_widget_show(get_widget("MenuAddSep"));
|
||||
else
|
||||
gtk_widget_hide(get_widget("MenuAddSep"));
|
||||
|
||||
show_menu_widget("AddPlaylist0", 0, deck_size);
|
||||
show_menu_widget("AddPlaylist1", 1, deck_size);
|
||||
show_menu_widget("AddPlaylist2", 2, deck_size);
|
||||
show_menu_widget("AddPlaylist3", 3, deck_size);
|
||||
show_menu_widget("AddPlaylist4", 4, deck_size);
|
||||
show_menu_widget("AddPlaylist5", 5, deck_size);
|
||||
show_menu_widget("AddPlaylist6", 6, deck_size);
|
||||
show_menu_widget("AddPlaylist7", 7, deck_size);
|
||||
show_menu_widget("AddPlaylist8", 8, deck_size);
|
||||
show_menu_widget("AddPlaylist9", 9, deck_size);
|
||||
|
||||
gtk_menu_popup(GTK_MENU(get_widget("PlaylistMenu")), NULL, NULL, NULL, NULL, event->button.button, event->button.time);
|
||||
}
|
||||
|
||||
|
@ -443,4 +497,14 @@ void init_playlist()
|
|||
connect_signal("MenuSetFront", "activate", G_CALLBACK(on_menu_item), NULL);
|
||||
connect_signal("MenuQueueBack", "activate", G_CALLBACK(on_menu_item), NULL);
|
||||
connect_signal("MenuSetBack", "activate", G_CALLBACK(on_menu_item), NULL);
|
||||
connect_signal("AddPlaylist0", "activate", G_CALLBACK(on_menu_item), NULL);
|
||||
connect_signal("AddPlaylist1", "activate", G_CALLBACK(on_menu_item), NULL);
|
||||
connect_signal("AddPlaylist2", "activate", G_CALLBACK(on_menu_item), NULL);
|
||||
connect_signal("AddPlaylist3", "activate", G_CALLBACK(on_menu_item), NULL);
|
||||
connect_signal("AddPlaylist4", "activate", G_CALLBACK(on_menu_item), NULL);
|
||||
connect_signal("AddPlaylist5", "activate", G_CALLBACK(on_menu_item), NULL);
|
||||
connect_signal("AddPlaylist6", "activate", G_CALLBACK(on_menu_item), NULL);
|
||||
connect_signal("AddPlaylist7", "activate", G_CALLBACK(on_menu_item), NULL);
|
||||
connect_signal("AddPlaylist8", "activate", G_CALLBACK(on_menu_item), NULL);
|
||||
connect_signal("AddPlaylist9", "activate", G_CALLBACK(on_menu_item), NULL);
|
||||
}
|
||||
|
|
101
xml/ocarina.xml
101
xml/ocarina.xml
|
@ -2,6 +2,7 @@
|
|||
<interface>
|
||||
<!-- interface-requires gtk+ 3.0 -->
|
||||
<!-- interface-naming-policy toplevel-contextual -->
|
||||
<object class="GtkAction" id="action1"/>
|
||||
<object class="GtkFileChooserDialog" id="DirectoryChooser">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">5</property>
|
||||
|
@ -144,7 +145,6 @@
|
|||
<column type="guint"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkAction" id="action1"/>
|
||||
<object class="GtkWindow" id="MainWindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
|
@ -745,7 +745,7 @@
|
|||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparatorMenuItem" id="menuitem3">
|
||||
<object class="GtkSeparatorMenuItem" id="MenuNewSep">
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
|
@ -769,5 +769,102 @@
|
|||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparatorMenuItem" id="MenuAddSep">
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="AddPlaylist0">
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Add to playlist 0</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="AddPlaylist1">
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Add to playlist 1</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="AddPlaylist2">
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Add to playlist 2</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="AddPlaylist3">
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Add to playlist 3</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="AddPlaylist4">
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Add to playlist 4</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="AddPlaylist5">
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Add to playlist 5</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="AddPlaylist6">
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Add to playlist 6</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="AddPlaylist7">
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Add to playlist 7</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="AddPlaylist8">
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Add to playlist 8</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="AddPlaylist9">
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Add to playlist 9</property>
|
||||
<property name="use_underline">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
|
|
Loading…
Reference in New Issue