⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 browsermenu.cpp

📁 FreeAMP(MP3播放)程序源代码-用来研究MP3解码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
}

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 + -