* wxwindows.h: private wxWindows interface description
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: wxwindows.h,v 1.34 2003/06/03 22:18:58 gbazin Exp $
+ * $Id: wxwindows.h,v 1.47 2003/07/20 10:38:49 gbazin Exp $
*
* Authors: Gildas Bazin <gbazin@netcourrier.com>
*
#include <wx/spinctrl.h>
#include <wx/dnd.h>
#include <wx/treectrl.h>
+#include <wx/gauge.h>
+DECLARE_LOCAL_EVENT_TYPE( wxEVT_DIALOG, 0 );
+
+enum
+{
+ FILE_ACCESS,
+ DISC_ACCESS,
+ NET_ACCESS,
+ SAT_ACCESS,
+ FILE_SIMPLE_ACCESS
+};
+
+class OpenDialog;
class Playlist;
class Messages;
class FileInfo;
#define SLIDER_MAX_POS 10000
-/* wxU is used to convert ansi strings to unicode strings (wchar_t) */
+/* wxU is used to convert ansi/utf8 strings to unicode strings (wchar_t) */
+#if defined( ENABLE_NLS ) && defined( HAVE_GETTEXT ) && \
+ defined( WIN32 ) && !defined( HAVE_INCLUDED_GETTEXT )
+#if wxUSE_UNICODE
+# define wxU(utf8) wxString(utf8, wxConvUTF8)
+#else
+# define wxU(utf8) wxString(wxConvUTF8.cMB2WC(utf8), *wxConvCurrent)
+#endif
+
+#else // ENABLE_NLS && HAVE_GETTEXT && WIN32 && !HAVE_INCLUDED_GETTEXT
#if wxUSE_UNICODE
# define wxU(ansi) wxString(ansi, *wxConvCurrent)
#else
# define wxU(ansi) ansi
#endif
+#endif
+
#if !defined(MODULE_NAME_IS_skins)
/*****************************************************************************
* intf_sys_t: description and status of wxwindows interface
wxWindow *p_wxwindow;
wxIcon *p_icon;
- /* secondary windows */
- Playlist *p_playlist_window;
- Messages *p_messages_window;
- FileInfo *p_fileinfo_window;
-
/* 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 */
+ /* Send an event to show a dialog */
+ void (*pf_show_dialog) ( intf_thread_t *p_intf, int i_dialog, int i_arg,
+ intf_dialog_args_t *p_arg );
+
+ /* Popup menu */
+ wxMenu *p_popup_menu;
+
};
#endif /* !defined(MODULE_NAME_IS_skins) */
};
/* Main Interface */
-class OpenDialog;
class Interface: public wxFrame
{
public:
wxWindow *slider_frame;
wxStaticBox *slider_box;
- /* So we don't recreate the open dialog box each time
- * (and keep the last settings) */
- OpenDialog *p_open_dialog;
-
- wxMenu *p_popup_menu;
- vlc_bool_t b_popup_change;
+ wxGauge *volctrl;
private:
void CreateOurMenuBar();
/* Event handlers (these functions should _not_ be virtual) */
void OnExit( wxCommandEvent& event );
void OnAbout( wxCommandEvent& event );
- void OnMessages( wxCommandEvent& event );
- void OnPlaylist( wxCommandEvent& event );
- void OnLogs( wxCommandEvent& event );
- void OnFileInfo( wxCommandEvent& event );
- void OnPreferences( wxCommandEvent& event );
- void OnOpenFile( wxCommandEvent& event );
- void OnOpenDisc( wxCommandEvent& event );
- void OnOpenNet( wxCommandEvent& event );
- void OnOpenSat( wxCommandEvent& event );
+ void OnShowDialog( wxCommandEvent& event );
void OnPlayStream( wxCommandEvent& event );
void OnStopStream( wxCommandEvent& event );
Timer *timer;
intf_thread_t *p_intf;
- wxFrame *p_prefs_dialog;
-
+private:
int i_old_playing_status;
/* For auto-generated menus */
vlc_bool_t b_navig_menu;
};
+/* Dialogs Provider */
+class DialogsProvider: public wxFrame
+{
+public:
+ /* Constructor */
+ DialogsProvider( intf_thread_t *p_intf, wxWindow *p_parent );
+ virtual ~DialogsProvider();
+
+private:
+ void Open( int i_access_method, int i_arg );
+
+ /* Event handlers (these functions should _not_ be virtual) */
+ void OnExit( wxCommandEvent& event );
+ void OnPlaylist( wxCommandEvent& event );
+ void OnMessages( wxCommandEvent& event );
+ void OnFileInfo( wxCommandEvent& event );
+ void OnPreferences( wxCommandEvent& event );
+
+ void OnOpenFileGeneric( wxCommandEvent& event );
+ void OnOpenFileSimple( wxCommandEvent& event );
+ void OnOpenFile( wxCommandEvent& event );
+ void OnOpenDisc( wxCommandEvent& event );
+ void OnOpenNet( wxCommandEvent& event );
+ void OnOpenSat( wxCommandEvent& event );
+
+ void OnPopupMenu( wxCommandEvent& event );
+
+ void OnIdle( wxIdleEvent& event );
+
+ void OnExitThread( wxCommandEvent& event );
+
+ DECLARE_EVENT_TABLE();
+
+ intf_thread_t *p_intf;
+
+public:
+ /* Secondary windows */
+ OpenDialog *p_open_dialog;
+ wxFileDialog *p_file_dialog;
+ Playlist *p_playlist_dialog;
+ Messages *p_messages_dialog;
+ FileInfo *p_fileinfo_dialog;
+ wxFrame *p_prefs_dialog;
+ wxFileDialog *p_file_generic_dialog;
+};
+
/* Open Dialog */
class SoutDialog;
class SubsFileDialog;
-class OpenDialog: public wxDialog
+class OpenDialog: public wxFrame
{
public:
/* Constructor */
OpenDialog( intf_thread_t *p_intf, wxWindow *p_parent,
- int i_access_method );
+ int i_access_method, int i_arg = 0 );
virtual ~OpenDialog();
- int ShowModal();
- int ShowModal( int i_access_method );
+ int Show();
+ int Show( int i_access_method, int i_arg = 0 );
wxArrayString mrl;
wxFileDialog *demuxdump_dialog;
};
-enum
-{
- FILE_ACCESS = 0,
- DISC_ACCESS,
- NET_ACCESS,
- SAT_ACCESS
-};
-
/* Stream output Dialog */
class SoutDialog: public wxDialog
{
private:
void UpdateMRL();
wxPanel *AccessPanel( wxWindow* parent );
+ wxPanel *MiscPanel( wxWindow* parent );
wxPanel *EncapsulationPanel( wxWindow* parent );
wxPanel *TranscodingPanel( wxWindow* parent );
void ParseMRL();
/* 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 );
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;
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[5];
int i_encapsulation_type;
wxCheckBox *audio_transc_checkbox;
wxComboBox *video_bitrate_combo;
wxComboBox *audio_bitrate_combo;
+ wxComboBox *audio_channels_combo;
};
/* Subtitles File 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 */
- Playlist( intf_thread_t *p_intf, Interface *p_main_interface );
+ Playlist( intf_thread_t *p_intf, wxWindow *p_parent );
virtual ~Playlist();
void UpdatePlaylist();
void DeleteItem( int item );
/* Event handlers (these functions should _not_ be virtual) */
+ void OnAddFile( wxCommandEvent& event );
void OnAddMRL( wxCommandEvent& event );
void OnClose( wxCommandEvent& event );
void OnOpen( wxCommandEvent& event );
DECLARE_EVENT_TABLE();
intf_thread_t *p_intf;
- Interface *p_main_interface;
wxListView *listview;
int i_update_counter;
};
{
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 *NavigMenu( 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
{
MenuEvtHandler( intf_thread_t *p_intf, Interface *p_main_interface );
virtual ~MenuEvtHandler();
- void MenuEvtHandler::OnMenuEvent( wxCommandEvent& event );
+ void OnMenuEvent( wxCommandEvent& event );
+ void OnShowDialog( wxCommandEvent& event );
private:
{
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();
private:
/* Event handlers (these functions should _not_ be virtual) */
void OnClose( wxCommandEvent& event );
+ void OnShowDialog( wxCommandEvent& event );
void OnEntrySelected( wxCommandEvent& event );
wxMenu *Menu::CreateDummyMenu();
DECLARE_EVENT_TABLE();
intf_thread_t *p_intf;
- Interface *p_main_interface;
int i_item_id;
};