📄 interface.hpp
字号:
/***************************************************************************** * interface.hpp: Main interface headers ***************************************************************************** * Copyright (C) 1999-2005 the VideoLAN team * $Id: interface.hpp 16457 2006-08-31 20:51:12Z hartman $ * * Authors: Gildas Bazin <gbazin@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_INTERFACE_H_#define _WXVLC_INTERFACE_H_#include "wxwidgets.hpp"#include "input_manager.hpp"#include <wx/dnd.h>#include <wx/accel.h>#include <wx/taskbar.h>class Splitter;namespace wxvlc{ class Timer; class Interface;#if wxUSE_DRAG_AND_DROP /* Drag and Drop class */ class DragAndDrop: public wxFileDropTarget { public: DragAndDrop( intf_thread_t *_p_intf, vlc_bool_t b_enqueue = VLC_FALSE ); virtual bool OnDropFiles( wxCoord x, wxCoord y, const wxArrayString& filenames ); private: intf_thread_t *p_intf; vlc_bool_t b_enqueue; };#endif /* Systray integration *//* wxCocoa pretends to support this, but at least 2.6.x doesn't */#ifndef __APPLE__#ifdef wxHAS_TASK_BAR_ICON class Systray: public wxTaskBarIcon { public: Systray( Interface* p_main_interface, intf_thread_t *p_intf ); virtual ~Systray() {}; wxMenu* CreatePopupMenu(); void UpdateTooltip( const wxChar* tooltip ); private: void OnMenuIconize( wxCommandEvent& event ); void OnLeftClick( wxTaskBarIconEvent& event ); void OnPlayStream ( wxCommandEvent& event ); void OnStopStream ( wxCommandEvent& event ); void OnPrevStream ( wxCommandEvent& event ); void OnNextStream ( wxCommandEvent& event ); void OnExit( wxCommandEvent& event ); Interface* p_main_interface; intf_thread_t *p_intf; DECLARE_EVENT_TABLE() };#endif#endif /* Main Interface */ class Interface: public wxFrame { public: /* Constructor */ Interface( intf_thread_t *p_intf, long style = wxDEFAULT_FRAME_STYLE ); virtual ~Interface(); void Init(); void TogglePlayButton( int i_playing_status ); void Update(); void PlayStream(); void StopStream(); void PrevStream(); void NextStream(); wxBoxSizer *main_sizer; Splitter *splitter; wxPanel *main_panel; wxBoxSizer *panel_sizer; wxStatusBar *statusbar; InputManager *input_manager; wxControl *volctrl; /* wxCocoa pretends to support this, but at least 2.6.x doesn't */ #ifndef __APPLE__ #ifdef wxHAS_TASK_BAR_ICON Systray *p_systray; #endif #endif wxWindow *video_window; private: void SetupHotkeys(); void CreateOurMenuBar(); void CreateOurToolBar(); void CreateOurExtendedPanel(); void Open( int i_access_method ); void SetIntfMinSize(); /* Event handlers (these functions should _not_ be virtual) */ void OnExit( wxCommandEvent& event ); void OnAbout( wxCommandEvent& event ); void OnOpenFileSimple( wxCommandEvent& event ); void OnOpenDir( wxCommandEvent& event ); void OnOpenFile( wxCommandEvent& event ); void OnOpenDisc( wxCommandEvent& event ); void OnOpenNet( wxCommandEvent& event ); void OnOpenSat( wxCommandEvent& event ); void OnExtended( wxCommandEvent& event ); void OnSmallPlaylist( wxCommandEvent& event ); void OnBookmarks( wxCommandEvent& event ); void OnShowDialog( wxCommandEvent& event ); void OnPlayStream( wxCommandEvent& event ); void OnStopStream( wxCommandEvent& event ); void OnPrevStream( wxCommandEvent& event ); void OnNextStream( wxCommandEvent& event ); void OnSlowStream( wxCommandEvent& event ); void OnFastStream( wxCommandEvent& event ); void OnInteraction( wxCommandEvent& event ); void OnMenuOpen( wxMenuEvent& event ); #if defined( __WXMSW__ ) || defined( __WXMAC__ ) void OnContextMenu2(wxContextMenuEvent& event); #endif void OnContextMenu(wxMouseEvent& event); void OnControlEvent( wxCommandEvent& event ); DECLARE_EVENT_TABLE(); Timer *timer; intf_thread_t *p_intf; unsigned int i_update_counter; int i_old_playing_status; /* For auto-generated menus */ wxMenu *p_settings_menu; wxMenu *p_audio_menu; wxMenu *p_video_menu; wxMenu *p_navig_menu; /* Extended panel */ vlc_bool_t b_extra; wxPanel *extra_frame; /* Playlist panel */ wxPanel *playlist_manager; /* Utility dimensions */ wxSize main_min_size; wxSize ext_min_size; }; class WindowSettings { public: WindowSettings( intf_thread_t *_p_intf ); virtual ~WindowSettings(); enum { ID_SCREEN = -1, ID_MAIN, ID_PLAYLIST, ID_MESSAGES, ID_FILE_INFO, ID_BOOKMARKS, ID_VIDEO, ID_SMALL_PLAYLIST, ID_MAX, }; void SetSettings( int id, bool _b_shown, wxPoint p = wxDefaultPosition, wxSize s = wxDefaultSize ); bool GetSettings( int id, bool& _b_shown, wxPoint& p, wxSize& s ); void SetScreen( int i_screen_w, int i_screen_h ); private: intf_thread_t *p_intf; int i_screen_w; int i_screen_h; bool b_valid[ID_MAX]; bool b_shown[ID_MAX]; wxPoint position[ID_MAX]; wxSize size[ID_MAX]; }; class MenuEvtHandler : public wxEvtHandler { public: MenuEvtHandler( intf_thread_t *p_intf, Interface *p_main_interface ); virtual ~MenuEvtHandler(); void OnMenuEvent( wxCommandEvent& event ); void OnShowDialog( wxCommandEvent& event ); private: DECLARE_EVENT_TABLE() intf_thread_t *p_intf; Interface *p_main_interface; };};void PopupMenu( intf_thread_t *, wxWindow *, const wxPoint& );void AudioPopupMenu( intf_thread_t *, wxWindow *, const wxPoint& );void VideoPopupMenu( intf_thread_t *, wxWindow *, const wxPoint& );void MiscPopupMenu( intf_thread_t *, wxWindow *, const wxPoint& );wxMenu *SettingsMenu( intf_thread_t *, wxWindow *, wxMenu * = NULL );wxMenu *AudioMenu( intf_thread_t *, wxWindow *, wxMenu * = NULL );wxMenu *VideoMenu( intf_thread_t *, wxWindow *, wxMenu * = NULL );wxMenu *NavigMenu( intf_thread_t *, wxWindow *, wxMenu * = NULL );#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -