1 /*****************************************************************************
2 * wxwindows.h: private wxWindows interface description
3 *****************************************************************************
4 * Copyright (C) 1999-2004 VideoLAN
7 * Authors: Gildas Bazin <gbazin@videolan.org>
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
22 *****************************************************************************/
24 #ifdef WIN32 /* mingw32 hack */
29 /* Let vlc take care of the i18n stuff */
30 #define WXINTL_NO_GETTEXT_MACRO
32 #include <wx/wxprec.h>
35 #include <wx/listctrl.h>
36 #include <wx/textctrl.h>
37 #include <wx/notebook.h>
38 #include <wx/spinctrl.h>
40 #include <wx/treectrl.h>
43 #include <wx/checkbox.h>
44 #include <wx/wizard.h>
47 /* Hmmm, work-around for newest wxWin */
48 #ifdef wxStaticCastEvent
49 # undef wxStaticCastEvent
50 # define wxStaticCastEvent(type, val) ((type)(val))
53 DECLARE_LOCAL_EVENT_TYPE( wxEVT_DIALOG, 0 );
54 DECLARE_LOCAL_EVENT_TYPE( wxEVT_INTF, 1 );
56 #define SLIDER_MAX_POS 10000
58 /* wxU is used to convert ansi/utf8 strings to unicode strings (wchar_t) */
59 #if defined( ENABLE_NLS ) && defined( ENABLE_UTF8 )
61 # define wxU(utf8) wxString(utf8, wxConvUTF8)
63 # define wxU(utf8) wxString(wxConvUTF8.cMB2WC(utf8), *wxConvCurrent)
67 #else // ENABLE_NLS && ENABLE_UTF8
69 # define wxU(ansi) wxString(ansi, *wxConvCurrent)
71 # define wxU(ansi) ansi
77 /* wxL2U (locale to unicode) is used to convert ansi strings to unicode
78 * strings (wchar_t) */
80 # define wxL2U(ansi) wxString(ansi, *wxConvCurrent)
82 # define wxL2U(ansi) ansi
95 class DialogsProvider;
100 /*****************************************************************************
101 * intf_sys_t: description and status of wxwindows interface
102 *****************************************************************************/
105 /* the wx parent window */
106 wxWindow *p_wxwindow;
109 /* special actions */
110 vlc_bool_t b_playing;
112 /* The input thread */
113 input_thread_t * p_input;
116 int i_slider_pos; /* slider position */
117 int i_slider_oldpos; /* previous position */
118 vlc_bool_t b_slider_free; /* slider status */
120 /* The messages window */
121 msg_subscription_t* p_sub; /* message bank subscription */
123 /* Playlist management */
124 int i_playing; /* playlist selected item */
126 /* Send an event to show a dialog */
127 void (*pf_show_dialog) ( intf_thread_t *p_intf, int i_dialog, int i_arg,
128 intf_dialog_args_t *p_arg );
131 wxMenu *p_popup_menu;
134 int i_first_hotkey_event;
138 VideoWindow *p_video_window;
139 wxBoxSizer *p_video_sizer;
142 aout_instance_t *p_aout;
145 /*****************************************************************************
147 *****************************************************************************/
148 wxArrayString SeparateEntries( wxString );
149 wxWindow *VideoWindow( intf_thread_t *p_intf, wxWindow *p_parent );
150 wxWindow *BookmarksDialog( intf_thread_t *p_intf, wxWindow *p_parent );
151 wxWindow *CreateDialogsProvider( intf_thread_t *p_intf, wxWindow *p_parent );
158 class SubsFileDialog;
164 class ItemInfoDialog;
166 class ExportPlaylist;
168 /*****************************************************************************
169 * Classes declarations.
170 *****************************************************************************/
172 class Timer: public wxTimer
176 Timer( intf_thread_t *p_intf, Interface *p_main_interface );
179 virtual void Notify();
182 intf_thread_t *p_intf;
183 Interface *p_main_interface;
184 int i_old_playing_status;
186 vlc_bool_t b_old_seekable;
191 class ExtraPanel: public wxPanel
195 ExtraPanel( intf_thread_t *p_intf, wxWindow *p_parent );
196 virtual ~ExtraPanel();
198 wxStaticBox *adjust_box;
199 wxButton *restoredefaults_button;
200 wxSlider *brightness_slider;
201 wxSlider *contrast_slider;
202 wxSlider *saturation_slider;
203 wxSlider *hue_slider;
204 wxSlider *gamma_slider;
206 wxStaticBox *other_box;
207 wxComboBox *ratio_combo;
215 wxPanel *VideoPanel( wxWindow * );
216 wxPanel *EqzPanel( wxWindow * );
217 wxPanel *AudioPanel( wxWindow * );
219 wxNotebook *notebook;
221 wxCheckBox *eq_chkbox;
223 wxCheckBox *eq_2p_chkbox;
225 wxSlider *smooth_slider;
227 wxSlider *preamp_slider;
228 wxStaticText * preamp_text;
233 wxSlider *band_sliders[10];
234 wxStaticText *band_texts[10];
240 /* Event handlers (these functions should _not_ be virtual) */
242 void OnEnableAdjust( wxCommandEvent& );
243 void OnEnableEqualizer( wxCommandEvent& );
244 void OnRestoreDefaults( wxCommandEvent& );
245 void OnChangeEqualizer( wxScrollEvent& );
246 void OnAdjustUpdate( wxScrollEvent& );
247 void OnRatio( wxCommandEvent& );
248 void OnFiltersInfo( wxCommandEvent& );
249 void OnSelectFilter( wxCommandEvent& );
251 void OnEqSmooth( wxScrollEvent& );
252 void OnPreamp( wxScrollEvent& );
253 void OnEq2Pass( wxCommandEvent& );
254 void OnEqRestore( wxCommandEvent& );
256 void OnHeadphone( wxCommandEvent& );
257 void OnNormvol( wxCommandEvent& );
258 void OnNormvolSlider( wxScrollEvent& );
260 void OnIdle( wxIdleEvent& );
262 DECLARE_EVENT_TABLE();
264 intf_thread_t *p_intf;
265 vlc_bool_t b_my_update;
269 /* Extended Window */
270 class ExtraWindow: public wxFrame
274 ExtraWindow( intf_thread_t *p_intf, wxWindow *p_parent, wxPanel *panel );
275 virtual ~ExtraWindow();
281 DECLARE_EVENT_TABLE();
283 intf_thread_t *p_intf;
288 class Interface: public wxFrame
292 Interface( intf_thread_t *p_intf );
293 virtual ~Interface();
294 void TogglePlayButton( int i_playing_status );
297 wxBoxSizer *frame_sizer;
298 wxStatusBar *statusbar;
301 wxWindow *slider_frame;
302 wxPanel *extra_frame;
304 wxFrame *extra_window;
314 void CreateOurMenuBar();
315 void CreateOurToolBar();
316 void CreateOurExtendedPanel();
317 void CreateOurSlider();
318 void Open( int i_access_method );
320 /* Event handlers (these functions should _not_ be virtual) */
321 void OnExit( wxCommandEvent& event );
322 void OnAbout( wxCommandEvent& event );
324 void OnOpenFileSimple( wxCommandEvent& event );
325 void OnOpenFile( wxCommandEvent& event );
326 void OnOpenDisc( wxCommandEvent& event );
327 void OnOpenNet( wxCommandEvent& event );
328 void OnOpenSat( wxCommandEvent& event );
330 void OnExtended( wxCommandEvent& event );
331 //void OnUndock( wxCommandEvent& event );
333 void OnBookmarks( wxCommandEvent& event );
334 void OnShowDialog( wxCommandEvent& event );
335 void OnPlayStream( wxCommandEvent& event );
336 void OnStopStream( wxCommandEvent& event );
337 void OnSliderUpdate( wxScrollEvent& event );
338 void OnPrevStream( wxCommandEvent& event );
339 void OnNextStream( wxCommandEvent& event );
340 void OnSlowStream( wxCommandEvent& event );
341 void OnFastStream( wxCommandEvent& event );
343 void OnMenuOpen( wxMenuEvent& event );
345 #if defined( __WXMSW__ ) || defined( __WXMAC__ )
346 void OnContextMenu2(wxContextMenuEvent& event);
348 void OnContextMenu(wxMouseEvent& event);
350 void OnControlEvent( wxCommandEvent& event );
352 DECLARE_EVENT_TABLE();
355 intf_thread_t *p_intf;
358 int i_old_playing_status;
360 /* For auto-generated menus */
361 wxMenu *p_settings_menu;
362 wxMenu *p_audio_menu;
363 wxMenu *p_video_menu;
364 wxMenu *p_navig_menu;
368 WX_DEFINE_ARRAY(AutoBuiltPanel *, ArrayOfAutoBuiltPanel);
369 class OpenDialog: public wxDialog
373 OpenDialog( intf_thread_t *p_intf, wxWindow *p_parent,
374 int i_access_method, int i_arg = 0 );
376 /* Extended Contructor */
377 OpenDialog( intf_thread_t *p_intf, wxWindow *p_parent,
378 int i_access_method, int i_arg = 0 , int _i_method = 0 );
379 virtual ~OpenDialog();
382 int Show( int i_access_method, int i_arg = 0 );
385 void UpdateMRL( int i_access_method );
390 wxPanel *FilePanel( wxWindow* parent );
391 wxPanel *DiscPanel( wxWindow* parent );
392 wxPanel *NetPanel( wxWindow* parent );
394 ArrayOfAutoBuiltPanel input_tab_array;
396 /* Event handlers (these functions should _not_ be virtual) */
397 void OnOk( wxCommandEvent& event );
398 void OnCancel( wxCommandEvent& event );
400 void OnPageChange( wxNotebookEvent& event );
401 void OnMRLChange( wxCommandEvent& event );
403 /* Event handlers for the file page */
404 void OnFilePanelChange( wxCommandEvent& event );
405 void OnFileBrowse( wxCommandEvent& event );
407 /* Event handlers for the disc page */
408 void OnDiscPanelChange( wxCommandEvent& event );
409 void OnDiscTypeChange( wxCommandEvent& event );
410 void OnDiscDeviceChange( wxCommandEvent& event );
412 /* Event handlers for the net page */
413 void OnNetPanelChange( wxCommandEvent& event );
414 void OnNetTypeChange( wxCommandEvent& event );
416 /* Event handlers for the stream output */
417 void OnSubsFileEnable( wxCommandEvent& event );
418 void OnSubsFileSettings( wxCommandEvent& WXUNUSED(event) );
420 /* Event handlers for the stream output */
421 void OnSoutEnable( wxCommandEvent& event );
422 void OnSoutSettings( wxCommandEvent& WXUNUSED(event) );
424 DECLARE_EVENT_TABLE();
426 intf_thread_t *p_intf;
428 int i_current_access_method;
429 int i_disc_type_selection;
431 int i_method; /* Normal or for the stream dialog ? */
434 wxComboBox *mrl_combo;
435 wxNotebook *notebook;
437 /* Controls for the file panel */
438 wxComboBox *file_combo;
439 wxFileDialog *file_dialog;
441 /* Controls for the disc panel */
442 wxRadioBox *disc_type;
443 wxTextCtrl *disc_device;
444 wxSpinCtrl *disc_title; int i_disc_title;
445 wxSpinCtrl *disc_chapter; int i_disc_chapter;
446 wxSpinCtrl *disc_sub; int i_disc_sub;
448 /* The media equivalent name for a DVD names. For example,
449 * "Title", is "Track" for a CD-DA */
450 wxStaticText *disc_title_label;
451 wxStaticText *disc_chapter_label;
452 wxStaticText *disc_sub_label;
454 /* Indicates if the disc device control was modified */
455 bool b_disc_device_changed;
457 /* Controls for the net panel */
458 wxRadioBox *net_type;
460 wxPanel *net_subpanels[4];
461 wxRadioButton *net_radios[4];
462 wxSpinCtrl *net_ports[4];
464 wxTextCtrl *net_addrs[4];
465 wxCheckBox *net_ipv6;
467 /* Controls for the subtitles file */
468 wxButton *subsfile_button;
469 wxCheckBox *subsfile_checkbox;
470 SubsFileDialog *subsfile_dialog;
471 wxArrayString subsfile_mrl;
473 /* Controls for the stream output */
474 wxButton *sout_button;
475 wxCheckBox *sout_checkbox;
476 SoutDialog *sout_dialog;
477 wxArrayString sout_mrl;
486 /* Auto-built panels */
489 #define MAX_ACCESS CAPTURE_ACCESS
491 /* Stream output Dialog */
505 TS_ENCAPSULATION = 0,
523 class SoutDialog: public wxDialog
527 SoutDialog( intf_thread_t *p_intf, wxWindow *p_parent );
528 virtual ~SoutDialog();
530 wxArrayString GetOptions();
534 wxPanel *AccessPanel( wxWindow* parent );
535 wxPanel *MiscPanel( wxWindow* parent );
536 wxPanel *EncapsulationPanel( wxWindow* parent );
537 wxPanel *TranscodingPanel( wxWindow* parent );
540 /* Event handlers (these functions should _not_ be virtual) */
541 void OnOk( wxCommandEvent& event );
542 void OnCancel( wxCommandEvent& event );
543 void OnMRLChange( wxCommandEvent& event );
544 void OnAccessTypeChange( wxCommandEvent& event );
546 /* Event handlers for the file access output */
547 void OnFileChange( wxCommandEvent& event );
548 void OnFileBrowse( wxCommandEvent& event );
549 void OnFileDump( wxCommandEvent& event );
551 /* Event handlers for the net access output */
552 void OnNetChange( wxCommandEvent& event );
554 /* Event specific to the announce address */
555 void OnAnnounceAddrChange( wxCommandEvent& event );
557 /* Event handlers for the encapsulation panel */
558 void OnEncapsulationChange( wxCommandEvent& event );
560 /* Event handlers for the transcoding panel */
561 void OnTranscodingEnable( wxCommandEvent& event );
562 void OnTranscodingChange( wxCommandEvent& event );
564 /* Event handlers for the misc panel */
565 void OnSAPMiscChange( wxCommandEvent& event );
566 void OnSLPMiscChange( wxCommandEvent& event );
568 DECLARE_EVENT_TABLE();
570 intf_thread_t *p_intf;
573 wxComboBox *mrl_combo;
575 /* Controls for the access outputs */
576 wxPanel *access_panel;
577 wxPanel *access_subpanels[ACCESS_OUT_NUM];
578 wxCheckBox *access_checkboxes[ACCESS_OUT_NUM];
582 wxComboBox *file_combo;
583 wxCheckBox *dump_checkbox;
584 wxSpinCtrl *net_ports[ACCESS_OUT_NUM];
585 wxTextCtrl *net_addrs[ACCESS_OUT_NUM];
587 /* Controls for the SAP announces */
589 wxPanel *misc_subpanels[MISC_SOUT_NUM];
590 wxCheckBox *sap_checkbox;
591 wxCheckBox *slp_checkbox;
592 wxTextCtrl *announce_addr;
594 /* Controls for the encapsulation */
595 wxPanel *encapsulation_panel;
596 wxRadioButton *encapsulation_radios[ENCAPS_NUM];
597 int i_encapsulation_type;
599 /* Controls for transcoding */
600 wxPanel *transcoding_panel;
601 wxCheckBox *video_transc_checkbox;
602 wxComboBox *video_codec_combo;
603 wxComboBox *audio_codec_combo;
604 wxCheckBox *audio_transc_checkbox;
605 wxComboBox *video_bitrate_combo;
606 wxComboBox *audio_bitrate_combo;
607 wxComboBox *audio_channels_combo;
608 wxComboBox *video_scale_combo;
611 /* Subtitles File Dialog */
612 class SubsFileDialog: public wxDialog
616 SubsFileDialog( intf_thread_t *p_intf, wxWindow *p_parent );
617 virtual ~SubsFileDialog();
619 wxComboBox *file_combo;
620 wxComboBox *encoding_combo;
621 wxSpinCtrl *delay_spinctrl;
622 wxSpinCtrl *fps_spinctrl;
625 /* Event handlers (these functions should _not_ be virtual) */
626 void OnOk( wxCommandEvent& event );
627 void OnCancel( wxCommandEvent& event );
628 void OnFileBrowse( wxCommandEvent& event );
630 DECLARE_EVENT_TABLE();
632 intf_thread_t *p_intf;
637 class StreamDialog: public wxFrame
641 StreamDialog( intf_thread_t *p_intf, wxWindow *p_parent );
642 virtual ~StreamDialog();
645 void OnClose( wxCommandEvent& event );
646 void OnOpen( wxCommandEvent& event );
647 void OnSout( wxCommandEvent& event );
648 void OnStart( wxCommandEvent& event );
650 DECLARE_EVENT_TABLE();
652 intf_thread_t *p_intf;
654 wxStaticText *step2_label;
655 wxStaticText *step3_label;
656 wxButton *sout_button;
657 wxButton *start_button;
659 wxArrayString sout_mrl;
660 OpenDialog *p_open_dialog;
661 SoutDialog *p_sout_dialog;
665 class WizardDialog : public wxWizard
669 WizardDialog( intf_thread_t *p_intf, wxWindow *p_parent,char *, int, int );
670 virtual ~WizardDialog();
671 void SetTranscode( char *vcodec, int vb, char *acodec,int ab);
672 void SetMrl( const char *mrl );
673 void SetTTL( int i_ttl );
674 void SetPartial( int, int );
675 void SetStream( char *method, char *address );
676 void SetTranscodeOut( char *address );
677 void SetAction( int i_action );
679 void SetSAP( bool b_enabled, const char *psz_name );
680 void SetMux( char *mux );
687 int i_from, i_to, i_ttl;
688 char *vcodec , *acodec , *address , *mrl , *mux ;
691 DECLARE_EVENT_TABLE();
693 intf_thread_t *p_intf;
697 /* Preferences Dialog */
698 class PrefsDialog: public wxFrame
702 PrefsDialog( intf_thread_t *p_intf, wxWindow *p_parent );
703 virtual ~PrefsDialog();
706 wxPanel *PrefsPanel( wxWindow* parent );
708 /* Event handlers (these functions should _not_ be virtual) */
709 void OnOk( wxCommandEvent& event );
710 void OnCancel( wxCommandEvent& event );
711 void OnSave( wxCommandEvent& event );
712 void OnResetAll( wxCommandEvent& event );
713 void OnAdvanced( wxCommandEvent& event );
715 DECLARE_EVENT_TABLE();
717 intf_thread_t *p_intf;
719 PrefsTreeCtrl *prefs_tree;
723 class Messages: public wxFrame
727 Messages( intf_thread_t *p_intf, wxWindow *p_parent );
729 bool Show( bool show = TRUE );
733 /* Event handlers (these functions should _not_ be virtual) */
734 void OnClose( wxCommandEvent& event );
735 void OnClear( wxCommandEvent& event );
736 void OnSaveLog( wxCommandEvent& event );
738 DECLARE_EVENT_TABLE();
740 intf_thread_t *p_intf;
741 wxTextCtrl *textctrl;
742 wxTextAttr *info_attr;
743 wxTextAttr *err_attr;
744 wxTextAttr *warn_attr;
745 wxTextAttr *dbg_attr;
747 wxFileDialog *save_log_dialog;
749 vlc_bool_t b_verbose;
753 class Playlist: public wxFrame
757 Playlist( intf_thread_t *p_intf, wxWindow *p_parent );
760 void UpdatePlaylist();
761 void ShowPlaylist( bool show );
762 void UpdateItem( int );
767 void DeleteItem( int item );
768 void ShowInfos( int item );
770 /* Event handlers (these functions should _not_ be virtual) */
772 void OnSize( wxSizeEvent &event );
774 void OnAddFile( wxCommandEvent& event );
775 void OnAddMRL( wxCommandEvent& event );
776 void OnClose( wxCommandEvent& event );
777 void OnSearch( wxCommandEvent& event );
778 void OnEnDis( wxCommandEvent& event );
779 void OnInfos( wxCommandEvent& event );
780 void OnSearchTextChange( wxCommandEvent& event );
781 void OnOpen( wxCommandEvent& event );
782 void OnSave( wxCommandEvent& event );
784 void OnSort( wxCommandEvent& event );
785 void OnColSelect( wxListEvent& event );
787 void OnUp( wxCommandEvent& event);
788 void OnDown( wxCommandEvent& event);
790 void OnEnableSelection( wxCommandEvent& event );
791 void OnDisableSelection( wxCommandEvent& event );
792 void OnInvertSelection( wxCommandEvent& event );
793 void OnDeleteSelection( wxCommandEvent& event );
794 void OnSelectAll( wxCommandEvent& event );
795 void OnRandom( wxCommandEvent& event );
796 void OnRepeat( wxCommandEvent& event );
797 void OnLoop ( wxCommandEvent& event );
798 void OnActivateItem( wxListEvent& event );
799 void OnKeyDown( wxListEvent& event );
800 void OnNewGroup( wxCommandEvent& event );
802 /* Popup functions */
803 void OnPopup( wxListEvent& event );
804 void OnPopupPlay( wxMenuEvent& event );
805 void OnPopupDel( wxMenuEvent& event );
806 void OnPopupEna( wxMenuEvent& event );
807 void OnPopupInfo( wxMenuEvent& event );
811 void OnPlaylistEvent( wxCommandEvent& event );
813 wxTextCtrl *search_text;
814 wxButton *search_button;
815 DECLARE_EVENT_TABLE();
819 ItemInfoDialog *iteminfo_dialog;
821 intf_thread_t *p_intf;
822 wxListView *listview;
823 wxTreeCtrl *treeview;
824 int i_update_counter;
832 int i_duration_sorted;
835 class NewGroup: public wxDialog
839 NewGroup( intf_thread_t *p_intf, wxWindow *p_parent );
844 /* Event handlers (these functions should _not_ be virtual) */
845 void OnOk( wxCommandEvent& event );
846 void OnCancel( wxCommandEvent& event );
848 DECLARE_EVENT_TABLE();
850 intf_thread_t *p_intf;
851 wxTextCtrl *groupname;
854 friend class Playlist;
855 friend class ItemInfoDialog;
859 /* ItemInfo Dialog */
860 class ItemInfoDialog: public wxDialog
864 ItemInfoDialog( intf_thread_t *p_intf, playlist_item_t *_p_item,
865 wxWindow *p_parent );
866 virtual ~ItemInfoDialog();
868 wxArrayString GetOptions();
871 wxPanel *InfoPanel( wxWindow* parent );
872 wxPanel *GroupPanel( wxWindow* parent );
874 /* Event handlers (these functions should _not_ be virtual) */
875 void OnOk( wxCommandEvent& event );
876 void OnCancel( wxCommandEvent& event );
877 void OnNewGroup( wxCommandEvent& event );
881 DECLARE_EVENT_TABLE();
883 intf_thread_t *p_intf;
884 playlist_item_t *p_item;
887 /* Controls for the iteminfo dialog box */
888 wxPanel *info_subpanel;
891 wxPanel *group_subpanel;
892 wxPanel *group_panel;
894 wxTextCtrl *uri_text;
895 wxTextCtrl *name_text;
896 wxTextCtrl *author_text;
898 wxTreeCtrl *info_tree;
899 wxTreeItemId info_root;
901 wxCheckBox *enabled_checkbox;
902 wxComboBox *group_combo;
908 class FileInfo: public wxFrame
912 FileInfo( intf_thread_t *p_intf, wxWindow *p_parent );
914 void UpdateFileInfo();
916 vlc_bool_t b_need_update;
919 void OnClose( wxCommandEvent& event );
921 DECLARE_EVENT_TABLE();
923 intf_thread_t *p_intf;
924 wxTreeCtrl *fileinfo_tree;
925 wxTreeItemId fileinfo_root;
926 wxString fileinfo_root_label;
931 #if wxUSE_DRAG_AND_DROP
932 /* Drag and Drop class */
933 class DragAndDrop: public wxFileDropTarget
936 DragAndDrop( intf_thread_t *_p_intf, vlc_bool_t b_enqueue = VLC_FALSE );
938 virtual bool OnDropFiles( wxCoord x, wxCoord y,
939 const wxArrayString& filenames );
942 intf_thread_t *p_intf;
943 vlc_bool_t b_enqueue;
946 } // end of wxvlc namespace
949 void PopupMenu( intf_thread_t *, wxWindow *, const wxPoint& );
950 wxMenu *SettingsMenu( intf_thread_t *, wxWindow *, wxMenu * = NULL );
951 wxMenu *AudioMenu( intf_thread_t *, wxWindow *, wxMenu * = NULL );
952 wxMenu *VideoMenu( intf_thread_t *, wxWindow *, wxMenu * = NULL );
953 wxMenu *NavigMenu( intf_thread_t *, wxWindow *, wxMenu * = NULL );
957 class MenuEvtHandler : public wxEvtHandler
960 MenuEvtHandler( intf_thread_t *p_intf, Interface *p_main_interface );
961 virtual ~MenuEvtHandler();
963 void OnMenuEvent( wxCommandEvent& event );
964 void OnShowDialog( wxCommandEvent& event );
968 DECLARE_EVENT_TABLE()
970 intf_thread_t *p_intf;
971 Interface *p_main_interface;
974 } // end of wxvlc namespace
975 using namespace wxvlc;