📄 browsermenu.cpp
字号:
}
static void move_up(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->MoveUpEvent();
}
static void move_down(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->MoveDownEvent();
}
static void clear_list(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->DeleteListEvent();
}
static void catalog_tog(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->ExpandCollapseEvent();
}
static void play_menu(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->PlayMenu();
}
static void stop_menu(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->StopMenu();
}
static void next_menu(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->NextMenu();
}
static void prev_menu(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->PrevMenu();
}
static void repeat_none(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->SetRepeat(0);
}
static void repeat_one(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->SetRepeat(1);
}
static void repeat_all(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->SetRepeat(2);
}
static void sort_artist(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->SortPlaylistEvent(kPlaylistSortKey_Artist, kPlaylistSortType_Ascending);
}
static void sort_album(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->SortPlaylistEvent(kPlaylistSortKey_Album, kPlaylistSortType_Ascending);
}
static void sort_title(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->SortPlaylistEvent(kPlaylistSortKey_Title, kPlaylistSortType_Ascending);
}
static void sort_year(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->SortPlaylistEvent(kPlaylistSortKey_Year, kPlaylistSortType_Ascending);
}
static void sort_track(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->SortPlaylistEvent(kPlaylistSortKey_Track, kPlaylistSortType_Ascending);
}
static void sort_comment(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->SortPlaylistEvent(kPlaylistSortKey_Comment, kPlaylistSortType_Ascending);
}
static void sort_genre(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->SortPlaylistEvent(kPlaylistSortKey_Genre, kPlaylistSortType_Ascending);
}
static void sort_time(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->SortPlaylistEvent(kPlaylistSortKey_Time, kPlaylistSortType_Ascending);
}
static void sort_location(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->SortPlaylistEvent(kPlaylistSortKey_Location, kPlaylistSortType_Ascending);
}
static void sort_filename(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->SortPlaylistEvent(kPlaylistSortKey_FileName, kPlaylistSortType_Ascending);
}
static void sort_normal(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->iSetShuffleMode = true;
p->SortPlaylistEvent(kPlaylistSortKey_LastKey, kPlaylistSortType_Descending);
}
static void sort_random2(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->iSetShuffleMode = true;
p->SortPlaylistEvent(kPlaylistSortKey_LastKey, kPlaylistSortType_Ascending);
}
static void sort_random(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->SortPlaylistEvent(kPlaylistSortKey_Random, kPlaylistSortType_Ascending);
}
static void show_help(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
if (!::ShowHelp(p->GetContext(), Music_Browser))
{
GTKMessageDialog oBox;
string oMessage("Cannot find the help files. Please make sure that the help files are properly installed, and you are not running "the_BRANDING" from the build directory.");
oBox.Show(oMessage.c_str(), string(BRANDING), kMessageOk, true);
}
}
static void freeamp_web(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
LaunchBrowser("http://www.freeamp.org/");
}
static void emusic_web(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
LaunchBrowser("http://www.emusic.com/");
}
static void relatable_web(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
LaunchBrowser("http://www.relatable.com/");
}
static void show_about(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->ShowOptions(9);
}
static void options_show(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->ShowOptions();
}
static void create_cd(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->CreateNewEditor(NULL, true);
}
static void add_stream(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->AddStreamToFavs();
}
static void eject_cd(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->EjectCD();
}
static void genplaylist(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->GenPlaylist();
}
static void submitplaylist(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->SubmitPlaylist();
}
static void signature_func(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->HandleSignature();
}
static void genslplaylistnomax(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->GenSLPlaylist(-1.0);
}
static void profile_edit(GTKMusicBrowser *p, guint action, GtkWidget *w)
{
p->ShowOptions(7);
}
void GTKMusicBrowser::CreateMenu(GtkWidget *topbox)
{
GtkItemFactoryEntry menu_items[] = {
{"/_File", NULL, 0, 0, "<Branch>" },
{"/File/_New Playlist", "<control>N", (GtkItemFactoryCallback)new_plist, 0, 0 },
{"/File/_Open Playlist", "<control>O", (GtkItemFactoryCallback)open_list, 0, 0 },
{"/File/_Save Playlist", "<control>S", (GtkItemFactoryCallback)save_list, 0, 0 },
{"/File/Save Playlist _As","<control>A", (GtkItemFactoryCallback)saveas_list,0, 0 },
{"/File/sep1", NULL, 0, 0, "<Separator>" },
{"/File/_Import Tracks and Playlists","<control>I", (GtkItemFactoryCallback)import_list, 0, 0 },
{"/File/_Export Playlist", NULL, (GtkItemFactoryCallback)export_list, 0, 0 },
{"/File/sep0", NULL, 0, 0, "<Separator>" },
{"/File/Search Computer for Music", NULL, (GtkItemFactoryCallback)music_search, 0, 0 },
{"/File/sep2", NULL, 0, 0, "<Separator>" },
{"/File/_Close", "<control>Q", (GtkItemFactoryCallback)quit_menu, 0, 0 },
{"/_Edit", NULL, 0, 0, "<Branch>" },
{"/_Edit/_Add Items to Playlist", NULL, (GtkItemFactoryCallback)add_track_mb, 0, 0 },
{"/_Edit/Add _Tracks or Playlists from Disk", NULL, (GtkItemFactoryCallback)add_track, 0, 0 },
{"/_Edit/_Remove Items from My Music", NULL,(GtkItemFactoryCallback)delete_sel,0, 0 },
{"/_Edit/Add Stream to Favorites", NULL, (GtkItemFactoryCallback)add_stream, 0, 0 },
{"/_Edit/sep3", NULL, 0, 0, "<Separator>" },
{"/_Edit/Move _Up", NULL, (GtkItemFactoryCallback)move_up, 0, 0 },
{"/_Edit/Move _Down", NULL, (GtkItemFactoryCallback)move_down, 0, 0 },
{"/_Edit/sep4", NULL, 0, 0, "<Separator>" },
{"/_Edit/_Clear Playlist", NULL, (GtkItemFactoryCallback)clear_list, 0, 0 },
{"/_Edit/Edit _Info", NULL, (GtkItemFactoryCallback)infoedit, 0, 0 },
{"/_View", NULL, 0, 0, "<Branch>" },
{"/_View/View _Playlist Only",NULL, (GtkItemFactoryCallback)catalog_tog, 0, 0 },
{"/_View/_Options", NULL, (GtkItemFactoryCallback)options_show, 0, 0 },
{"/_Controls", NULL, 0, 0, "<Branch>" },
{"/_Controls/_Play", NULL, (GtkItemFactoryCallback)play_menu,0, 0 },
{"/_Controls/_Stop", NULL, (GtkItemFactoryCallback)stop_menu, 0, 0 },
{"/_Controls/sep6", NULL, 0, 0, "<Separator>" },
{"/_Controls/_Eject CD", NULL, (GtkItemFactoryCallback)eject_cd, 0, 0 },
{"/_Controls/sep65", NULL, 0, 0, "<Separator>" },
{"/_Controls/_Next Track", NULL, (GtkItemFactoryCallback)next_menu, 0, 0 },
{"/_Controls/Pre_vious Track", NULL, (GtkItemFactoryCallback)prev_menu, 0, 0 },
{"/_Controls/sep7", NULL, 0, 0, "<Separator>" },
{"/_Controls/Play Tracks in Nor_mal Order", NULL, (GtkItemFactoryCallback)sort_normal, 0, "<RadioItem>" },
{"/_Controls/Play Tracks in _Random Order", NULL, (GtkItemFactoryCallback)sort_random2, 0, "/Controls/Play Tracks in Normal Order" },
{"/_Controls/sep8", NULL, 0, 0, "<Separator>" },
{"/_Controls/Repeat N_o Tracks", NULL, (GtkItemFactoryCallback)repeat_none, 0, "<RadioItem>" },
{"/_Controls/Repeat _Current Track", NULL, (GtkItemFactoryCallback)repeat_one, 0, "/Controls/Repeat No Tracks" },
{"/_Controls/Repeat _All Tracks", NULL, (GtkItemFactoryCallback)repeat_all, 0, "/Controls/Repeat No Tracks" },
{"/_Sort Playlist", NULL, 0, 0, "<Branch>" },
{"/_Sort Playlist/by _Artist", NULL, (GtkItemFactoryCallback)sort_artist, 0, 0 },
{"/_Sort Playlist/by A_lbum", NULL, (GtkItemFactoryCallback)sort_album, 0, 0 },
{"/_Sort Playlist/by _Title", NULL, (GtkItemFactoryCallback)sort_title, 0, 0 },
{"/_Sort Playlist/by _Year", NULL, (GtkItemFactoryCallback)sort_year, 0, 0 },
{"/_Sort Playlist/by Trac_k Number", NULL, (GtkItemFactoryCallback)sort_track, 0, 0 },
{"/_Sort Playlist/by _Genre", NULL, (GtkItemFactoryCallback)sort_genre, 0, 0 },
{"/_Sort Playlist/by _Length", NULL, (GtkItemFactoryCallback)sort_time, 0, 0 },
{"/_Sort Playlist/by L_ocation", NULL, (GtkItemFactoryCallback)sort_location, 0, 0 },
{"/_Sort Playlist/by _Filename", NULL, (GtkItemFactoryCallback)sort_filename, 0, 0 },
{"/_Sort Playlist/by _Comment", NULL, (GtkItemFactoryCallback)sort_comment, 0, 0},
{"/_Sort Playlist/_Randomly", NULL, (GtkItemFactoryCallback)sort_random, 0, 0 },
{"/_Relatable", NULL, 0, 0, "<Branch>" },
{"/_Relatable/_Recommend Playlist", NULL, (GtkItemFactoryCallback)genplaylist, 0, 0 },
{"/_Relatable/SoundsLike Recommendation", NULL, (GtkItemFactoryCallback)genslplaylistnomax, 0, 0 },
{"/_Relatable/_Learn Playlist", NULL, (GtkItemFactoryCallback)submitplaylist, 0, 0 },
{"/_Relatable/sep", NULL, 0, 0, "<Separator>" },
{"/_Relatable/_Start Signaturing", NULL, (GtkItemFactoryCallback)signature_func, 0, 0 },
{"/_Relatable/sep2", NULL, 0, 0, "<Separator>" },
{"/_Relatable/_Edit Profile", NULL, (GtkItemFactoryCallback)profile_edit, 0, 0 },
{"/_Help", NULL, 0, 0, "<Branch>" },
{"/_Help/_Contents", NULL, (GtkItemFactoryCallback)show_help, 0, 0 },
{"/_Help/sep9", NULL, 0, 0, "<Separator>" },
{"/_Help/_FreeAmp Web Site", NULL, (GtkItemFactoryCallback)freeamp_web, 0, 0 },
{"/_Help/_EMusic.com Web Site", NULL, (GtkItemFactoryCallback)emusic_web, 0, 0 },
{"/_Help/_Relatable Web Site", NULL, (GtkItemFactoryCallback)relatable_web, 0, 0 },
{"/_Help/sep10", NULL, 0, 0, "<Separator>" },
{"/_Help/_About", NULL, (GtkItemFactoryCallback)show_about, 0, 0 }
};
int nmenu_items = sizeof(menu_items) / sizeof(menu_items[0]);
GtkAccelGroup *accel_group;
GtkWidget *separator;
accel_group = gtk_accel_group_new();
menuFactory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<blah>",
accel_group);
gtk_item_factory_create_items(menuFactory, nmenu_items, menu_items,
(void *)this);
gtk_accel_group_attach(accel_group, GTK_OBJECT(musicBrowser));
gtk_box_pack_start(GTK_BOX(topbox), gtk_item_factory_get_widget(
menuFactory, "<blah>"), FALSE, TRUE, 0);
gtk_widget_show(gtk_item_factory_get_widget(menuFactory, "<blah>"));
separator = gtk_hseparator_new();
gtk_box_pack_start(GTK_BOX(topbox), separator, FALSE, TRUE, 0);
gtk_widget_show(separator);
}
void GTKMusicBrowser::SetToolbarType(void)
{
bool useText, useImages;
m_context->prefs->GetPrefBoolean(kShowToolbarTextLabelsPref, &useText);
m_context->prefs->GetPrefBoolean(kShowToolbarImagesPref, &useImages);
if (useText && useImages)
gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_BOTH);
else if (useText)
gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_TEXT);
else if (useImages)
gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_ICONS);
}
void GTKMusicBrowser::CreateToolbar(GtkWidget *vbox)
{
toolbar = gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL,
GTK_TOOLBAR_BOTH);
gtk_toolbar_set_button_relief(GTK_TOOLBAR(toolbar), GTK_RELIEF_NONE);
gtk_toolbar_set_space_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_SPACE_LINE);
gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "New Playlist",
"Start Editing a new Playlist",
"Toolbar/New", NewPixmap(new_pic),
GTK_SIGNAL_FUNC(new_plist_tool), this);
gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "Save Playlist",
"Save the Current Playlist to Disk",
"Toolbar/Save", NewPixmap(save_pic),
GTK_SIGNAL_FUNC(save_list_tool), this);
gtk_toolbar_append_space(GTK_TOOLBAR(toolbar));
gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "Import Items",
"Import a Playlist or Track into My Music",
"Toolbar/Import", NewPixmap(import_pic),
GTK_SIGNAL_FUNC(import_tool), this);
toolRemove = gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "Remove Track",
"Remove a Track from the Playlist",
"Toolbar/Remove", NewPixmap(trash_pic),
GTK_SIGNAL_FUNC(remove_tool), this);
gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "Edit",
"Edit a Track or Playlist",
"Toolbar/Edit", NewPixmap(edit_pic),
GTK_SIGNAL_FUNC(edit_tool), this);
gtk_toolbar_append_space(GTK_TOOLBAR(toolbar));
addTrack = gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "Add Items",
"Add Music from My Music to the Playlist",
"Toolbar/AddItem", NewPixmap(add_track_pic),
GTK_SIGNAL_FUNC(add_track_tool), this);
addFile = gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "Add File",
"Add a File to the Playlist",
"Toolbar/Add", NewPixmap(add_file),
GTK_SIGNAL_FUNC(add_tool), this);
toolUp = gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "Move Up",
"Move The Currently Selected Track in the Playlist Up",
"Toolbar/Up", NewPixmap(up_pic),
GTK_SIGNAL_FUNC(move_up_tool), this);
toolDown = gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), "Move Down",
"Move the Currently Selected Track in the Playlist Down",
"Toolbar/Down", NewPixmap(down_pic),
GTK_SIGNAL_FUNC(move_down_tool), this);
gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, TRUE, 0);
SetToolbarType();
gtk_widget_show(toolbar);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -