* wxwindows.h: private wxWindows interface description
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: wxwindows.h,v 1.23 2003/05/12 17:33:19 gbazin Exp $
+ * $Id: wxwindows.h,v 1.40 2003/07/10 11:15:18 adn Exp $
*
* Authors: Gildas Bazin <gbazin@netcourrier.com>
*
#include <wx/spinctrl.h>
#include <wx/dnd.h>
#include <wx/treectrl.h>
+#include <wx/gauge.h>
class Playlist;
class Messages;
/* special actions */
vlc_bool_t b_playing;
- vlc_bool_t b_popup_changed; /* display menu ? */
- vlc_bool_t b_window_changed; /* window display toggled ? */
- vlc_bool_t b_playlist_changed; /* playlist display toggled ? */
- vlc_bool_t b_slider_free; /* slider status */
-
- /* menus handlers */
- vlc_bool_t b_program_update; /* do we need to update programs
- menu */
- vlc_bool_t b_title_update; /* do we need to update title menus */
- vlc_bool_t b_chapter_update; /* do we need to update
- chapter menus */
- vlc_bool_t b_audio_update; /* do we need to update audio menus */
- vlc_bool_t b_spu_update; /* do we need to update spu menus */
-
- /* windows and widgets */
/* The input thread */
input_thread_t * p_input;
/* The slider */
int i_slider_pos; /* slider position */
int i_slider_oldpos; /* previous position */
+ vlc_bool_t b_slider_free; /* slider status */
/* The messages window */
msg_subscription_t* p_sub; /* message bank subscription */
/* Playlist management */
int i_playing; /* playlist selected item */
- /* The window labels for DVD mode */
- unsigned int i_part; /* current chapter */
+ /* Popup menu */
+ wxMenu *p_popup_menu;
+ vlc_bool_t b_popup_change;
+
};
#endif /* !defined(MODULE_NAME_IS_skins) */
intf_thread_t *p_intf;
Interface *p_main_interface;
int i_old_playing_status;
+ int i_old_rate;
};
/* Main Interface */
+class OpenDialog;
class Interface: public wxFrame
{
public:
wxWindow *slider_frame;
wxStaticBox *slider_box;
- wxMenu *p_popup_menu;
+ wxGauge *volctrl;
- wxArrayString mrl_history;
+ /* So we don't recreate the open dialog box each time
+ * (and keep the last settings) */
+ OpenDialog *p_open_dialog;
private:
void CreateOurMenuBar();
void OnSliderUpdate( wxScrollEvent& event );
void OnPrevStream( wxCommandEvent& event );
void OnNextStream( wxCommandEvent& event );
+ void OnSlowStream( wxCommandEvent& event );
+ void OnFastStream( wxCommandEvent& event );
void OnMenuOpen( wxMenuEvent& event );
#if defined( __WXMSW__ ) || defined( __WXMAC__ )
- void OnContextMenu(wxContextMenuEvent& event);
-#else
- void OnContextMenu(wxMouseEvent& event);
+ void OnContextMenu2(wxContextMenuEvent& event);
#endif
+ void OnContextMenu(wxMouseEvent& event);
DECLARE_EVENT_TABLE();
vlc_bool_t b_audio_menu;
wxMenu *p_video_menu;
vlc_bool_t b_video_menu;
+ wxMenu *p_navig_menu;
+ vlc_bool_t b_navig_menu;
};
/* Open Dialog */
+class SoutDialog;
+class SubsFileDialog;
class OpenDialog: public wxDialog
{
public:
int i_access_method );
virtual ~OpenDialog();
- wxString mrl;
+ int ShowModal();
+ int ShowModal( int i_access_method );
+
+ wxArrayString mrl;
private:
wxPanel *FilePanel( wxWindow* parent );
wxPanel *SatPanel( wxWindow* parent );
void UpdateMRL( int i_access_method );
+ wxArrayString SeparateEntries( wxString );
/* Event handlers (these functions should _not_ be virtual) */
void OnOk( wxCommandEvent& event );
void OnNetPanelChange( wxCommandEvent& event );
void OnNetTypeChange( wxCommandEvent& event );
+ /* Event handlers for the stream output */
+ void OnSubsFileEnable( wxCommandEvent& event );
+ void OnSubsFileSettings( wxCommandEvent& WXUNUSED(event) );
+
/* Event handlers for the stream output */
void OnSoutEnable( wxCommandEvent& event );
void OnSoutSettings( wxCommandEvent& WXUNUSED(event) );
int i_current_access_method;
wxComboBox *mrl_combo;
+ wxNotebook *notebook;
/* Controls for the file panel */
wxComboBox *file_combo;
+ wxFileDialog *file_dialog;
/* Controls for the disc panel */
wxRadioBox *disc_type;
wxSpinCtrl *net_ports[4];
wxTextCtrl *net_addrs[4];
+ /* Controls for the subtitles file */
+ wxButton *subsfile_button;
+ wxCheckBox *subsfile_checkbox;
+ SubsFileDialog *subsfile_dialog;
+
/* Controls for the stream output */
wxButton *sout_button;
wxCheckBox *sout_checkbox;
+ SoutDialog *sout_dialog;
/* Controls for the demux dump */
wxTextCtrl *demuxdump_textctrl;
wxButton *demuxdump_button;
wxCheckBox *demuxdump_checkbox;
+ wxFileDialog *demuxdump_dialog;
};
enum
private:
void UpdateMRL();
wxPanel *AccessPanel( wxWindow* parent );
+ wxPanel *MiscPanel( wxWindow* parent );
wxPanel *EncapsulationPanel( wxWindow* parent );
+ wxPanel *TranscodingPanel( wxWindow* parent );
void ParseMRL();
/* Event handlers (these functions should _not_ be virtual) */
/* Event handlers for the net access output */
void OnNetChange( wxCommandEvent& event );
+ /* Event specific to the sap address */
+ void OnSAPAddrChange( wxCommandEvent& event );
+
/* Event handlers for the encapsulation panel */
void OnEncapsulationChange( wxCommandEvent& event );
+ /* Event handlers for the transcoding panel */
+ void OnTranscodingEnable( wxCommandEvent& event );
+ void OnTranscodingChange( wxCommandEvent& event );
+
+ /* Event handlers for the misc panel */
+ void OnSAPMiscChange( wxCommandEvent& event );
+
DECLARE_EVENT_TABLE();
intf_thread_t *p_intf;
wxWindow *p_parent;
wxComboBox *mrl_combo;
- wxPanel *access_panel;
- wxPanel *encapsulation_panel;
/* Controls for the access outputs */
- wxPanel *access_subpanels[4];
- wxRadioButton *access_radios[4];
+ wxPanel *access_subpanels[5];
+ wxCheckBox *access_checkboxes[5];
int i_access_type;
wxComboBox *file_combo;
- wxSpinCtrl *net_port;
- wxTextCtrl *net_addr;
-
+ wxSpinCtrl *net_ports[5];
+ wxTextCtrl *net_addrs[5];
+
+ /* Controls for the SAP announces */
+ wxPanel *misc_subpanels[1];
+ wxCheckBox *sap_checkbox;
+ wxTextCtrl *sap_addr;
+
/* Controls for the encapsulation */
- wxRadioButton *encapsulation_radios[4];
+ wxRadioButton *encapsulation_radios[5];
int i_encapsulation_type;
+ /* Controls for transcoding */
+ wxCheckBox *video_transc_checkbox;
+ wxComboBox *video_codec_combo;
+ wxComboBox *audio_codec_combo;
+ wxCheckBox *audio_transc_checkbox;
+ wxComboBox *video_bitrate_combo;
+ wxComboBox *audio_bitrate_combo;
+};
+
+/* Subtitles File Dialog */
+class SubsFileDialog: public wxDialog
+{
+public:
+ /* Constructor */
+ SubsFileDialog( intf_thread_t *p_intf, wxWindow *p_parent );
+ virtual ~SubsFileDialog();
+
+ wxComboBox *file_combo;
+ wxSpinCtrl *delay_spinctrl;
+ wxSpinCtrl *fps_spinctrl;
+
+private:
+ /* Event handlers (these functions should _not_ be virtual) */
+ void OnOk( wxCommandEvent& event );
+ void OnCancel( wxCommandEvent& event );
+ void OnFileBrowse( wxCommandEvent& event );
+
+ DECLARE_EVENT_TABLE();
+
+ intf_thread_t *p_intf;
+ wxWindow *p_parent;
};
/* Preferences Dialog */
{
public:
/* Constructor */
- PrefsDialog( intf_thread_t *p_intf, Interface *p_main_interface );
+ PrefsDialog( intf_thread_t *p_intf, wxWindow *p_parent );
virtual ~PrefsDialog();
private:
DECLARE_EVENT_TABLE();
intf_thread_t *p_intf;
- Interface *p_main_interface;
PrefsTreeCtrl *prefs_tree;
};
{
public:
/* Constructor */
- Messages( intf_thread_t *p_intf, Interface *_p_main_interface );
+ Messages( intf_thread_t *p_intf, wxWindow *p_parent );
virtual ~Messages();
void UpdateLog();
/* Event handlers (these functions should _not_ be virtual) */
void OnClose( wxCommandEvent& event );
void OnVerbose( wxCommandEvent& event );
+ void OnClear( wxCommandEvent& event );
+ void OnSaveLog( wxCommandEvent& event );
DECLARE_EVENT_TABLE();
intf_thread_t *p_intf;
- Interface *p_main_interface;
wxTextCtrl *textctrl;
wxTextAttr *info_attr;
wxTextAttr *err_attr;
wxTextAttr *warn_attr;
wxTextAttr *dbg_attr;
+ wxFileDialog *save_log_dialog;
+
vlc_bool_t b_verbose;
};
{
public:
/* Constructor */
- FileInfo( intf_thread_t *p_intf, Interface *p_main_interface );
+ FileInfo( intf_thread_t *p_intf, wxWindow *p_parent );
virtual ~FileInfo();
void UpdateFileInfo();
#endif
/* Menus */
-void PopupMenu( intf_thread_t *_p_intf, Interface *_p_main_interface,
+void PopupMenu( intf_thread_t *_p_intf, wxWindow *p_parent,
const wxPoint& pos );
-wxMenu *AudioMenu( intf_thread_t *_p_intf, Interface *_p_main_interface );
-wxMenu *VideoMenu( intf_thread_t *_p_intf, Interface *_p_main_interface );
+wxMenu *AudioMenu( intf_thread_t *_p_intf, wxWindow *p_parent );
+wxMenu *VideoMenu( intf_thread_t *_p_intf, wxWindow *p_parent );
+wxMenu *NavigMenu( intf_thread_t *_p_intf, wxWindow *p_parent );
class MenuEvtHandler : public wxEvtHandler
{
{
public:
/* Constructor */
- Menu( intf_thread_t *p_intf, Interface *p_main_interface, int i_count,
+ Menu( intf_thread_t *p_intf, wxWindow *p_parent, int i_count,
char **ppsz_names, int *pi_objects, int i_start_id );
virtual ~Menu();
DECLARE_EVENT_TABLE();
intf_thread_t *p_intf;
- Interface *p_main_interface;
int i_item_id;
};