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

📄 playlist.hpp

📁 uclinux 下的vlc播放器源代码
💻 HPP
字号:
/***************************************************************************** * playlist.hpp: Header for the playlist ***************************************************************************** * Copyright (C) 1999-2005 the VideoLAN team * $Id: playlist.hpp 16441 2006-08-30 21:36:35Z hartman $ * * Authors: Clément Stenac <zorglub@videolan.org> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/#ifndef _WXVLC_PLAYLIST_H_#define _WXVLC_PLAYLIST_H_#include "wxwidgets.hpp"#include <wx/listctrl.h>#include <wx/treectrl.h>#include <wx/dnd.h>#define MODE_NONE 0#define MODE_GROUP 1#define MODE_AUTHOR 2#define MODE_TITLE 3#define OPEN_NORMAL 0#define OPEN_STREAM 1namespace wxvlc{class ItemInfoDialog;class NewGroup;class ExportPlaylist;/* Playlist */class Playlist: public wxFrame{public:    /* Constructor */    Playlist( intf_thread_t *p_intf, wxWindow *p_parent );    virtual ~Playlist();    void UpdatePlaylist();    void ShowPlaylist( bool show );    void UpdateItem( int );    void AppendItem( wxCommandEvent& );    bool b_need_update;    int  i_items_to_append;    int GetCurrentView( ){ return i_current_view; };private:    void RemoveItem( int );    void DeleteTreeItem( wxTreeItemId );    void DeleteItem( int item );    void DeleteNode( playlist_item_t *node );    void RecursiveDeleteSelection( wxTreeItemId );    /* Event handlers (these functions should _not_ be virtual) */    /* Menu Handlers */    void OnAddFile( wxCommandEvent& event );    void OnAddDir( wxCommandEvent& event );    void OnAddMRL( wxCommandEvent& event );    void OnMenuClose( wxCommandEvent& event );    void OnClose( wxCloseEvent& WXUNUSED(event) );    void OnDeleteSelection( wxCommandEvent& event );    void OnOpen( wxCommandEvent& event );    void OnSave( wxCommandEvent& event );    /* Search (user) */    void OnSearch( wxCommandEvent& event );    /*void OnSearchTextChange( wxCommandEvent& event );*/    wxTextCtrl *search_text;    wxButton *search_button;    wxTreeItemId search_current;    void OnEnDis( wxCommandEvent& event );    /* Sort */    int i_sort_mode;    void OnSort( wxCommandEvent& event );    int i_title_sorted;    int i_group_sorted;    int i_duration_sorted;    /* Dynamic menus */    void OnMenuEvent( wxCommandEvent& event );    void OnMenuOpen( wxMenuEvent& event );    wxMenu *p_view_menu;    wxMenu *p_sd_menu;    wxMenu *ViewMenu();    wxMenu *SDMenu();    void OnUp( wxCommandEvent& event);    void OnDown( wxCommandEvent& event);    void OnRandom( wxCommandEvent& event );    void OnRepeat( wxCommandEvent& event );    void OnLoop ( wxCommandEvent& event );    void OnActivateItem( wxTreeEvent& event );    void OnKeyDown( wxTreeEvent& event );    void OnNewGroup( wxCommandEvent& event );    void OnDragItemBegin( wxTreeEvent& event );    void OnDragItemEnd( wxTreeEvent& event );    wxTreeItemId draged_tree_item;    /* Popup  */    wxMenu *item_popup;    wxMenu *node_popup;    wxTreeItemId i_wx_popup_item;    int i_popup_item;    int i_popup_parent;    void OnPopup( wxContextMenuEvent& event );    void OnPopupPlay( wxCommandEvent& event );    void OnPopupPreparse( wxCommandEvent& event );    void OnPopupSort( wxCommandEvent& event );    void OnPopupDel( wxCommandEvent& event );    void OnPopupEna( wxCommandEvent& event );    void OnPopupInfo( wxCommandEvent& event );    void OnPopupAddNode( wxCommandEvent& event );protected:    void Rebuild( vlc_bool_t );private:    void Preparse();    /* Update */    void UpdateNode( playlist_item_t*, wxTreeItemId );    void UpdateNodeChildren( playlist_item_t*, wxTreeItemId );    void CreateNode( playlist_item_t*, wxTreeItemId );    void UpdateTreeItem( wxTreeItemId );    /* Search (internal) */    int CountItems( wxTreeItemId);    wxTreeItemId FindItem( wxTreeItemId, int );    wxTreeItemId FindItemByName( wxTreeItemId, wxString,                                 wxTreeItemId, vlc_bool_t *);    wxTreeItemId saved_tree_item;    int i_saved_id;protected:    playlist_t *p_playlist;private:    /* Custom events */    void OnPlaylistEvent( wxCommandEvent& event );    DECLARE_EVENT_TABLE();    /* Global widgets */    wxStatusBar *statusbar;    ItemInfoDialog *iteminfo_dialog;    int i_update_counter;    vlc_bool_t b_changed_view;    char **pp_sds;protected:    intf_thread_t *p_intf;    wxTreeCtrl *treectrl;    int i_current_view;friend class PlaylistFileDropTarget;};#if wxUSE_DRAG_AND_DROP/* Playlist file drop target */class PlaylistFileDropTarget: public wxFileDropTarget{public:    PlaylistFileDropTarget( Playlist * );    virtual bool OnDropFiles( wxCoord x, wxCoord y,                              const wxArrayString& filenames );private:    Playlist *p;};#endif} // end of wxvlc namespace#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -