]> git.sesse.net Git - vlc/commitdiff
Improve the open box layout
authorClément Stenac <zorglub@videolan.org>
Sat, 17 Dec 2005 18:19:05 +0000 (18:19 +0000)
committerClément Stenac <zorglub@videolan.org>
Sat, 17 Dec 2005 18:19:05 +0000 (18:19 +0000)
 * Present the simple options first
 * Put the subtitles file option in the main panel

modules/gui/wxwidgets/dialogs/open.cpp
modules/gui/wxwidgets/dialogs/open.hpp
modules/gui/wxwidgets/dialogs/subtitles.cpp

index 22d8bc866473a4954d76e3fa241b8ae062556575..b2954ced151b4891e41c618d3c687dd239000fba 100644 (file)
@@ -31,6 +31,8 @@
 
 #include "charset.h"
 
+//#undef HAVE_LIBCDIO // Disable-cruft
+
 #ifdef HAVE_LIBCDIO
 #include <cdio/cdio.h>
 #include <cdio/cd_types.h>
@@ -72,7 +74,9 @@ enum
     MRL_Event,
 
     FileBrowse_Event,
+    SubFileBrowse_Event,
     FileName_Event,
+    SubFileName_Event,
 
     DiscType_Event,
 #ifdef HAVE_LIBCDIO
@@ -114,6 +118,8 @@ BEGIN_EVENT_TABLE(OpenDialog, wxDialog)
     /* Events generated by the file panel */
     EVT_TEXT(FileName_Event, OpenDialog::OnFilePanelChange)
     EVT_BUTTON(FileBrowse_Event, OpenDialog::OnFileBrowse)
+    EVT_TEXT(SubFileName_Event, OpenDialog::OnSubFileChange)
+    EVT_BUTTON(SubFileBrowse_Event, OpenDialog::OnSubFileBrowse)
 
     /* Events generated by the disc panel */
     EVT_RADIOBOX(DiscType_Event, OpenDialog::OnDiscTypeChange)
@@ -165,13 +171,6 @@ BEGIN_EVENT_TABLE(OpenDialog, wxDialog)
 
 END_EVENT_TABLE()
 
-#if 0
-/* Perhaps someday we'll figure out how to add media information to
-   "Stream-and-Media info" when no input thread hasn't been initialized.
-*/
-extern void MediaInsertCDDA( intf_thread_t *_p_intf,  CdIo_t *p_cdio,
-                 track_t i_last_track );
-#endif
 
 /*****************************************************************************
  * AutoBuiltPanel.
@@ -415,37 +414,20 @@ OpenDialog::OpenDialog( intf_thread_t *_p_intf, wxWindow *_p_parent,
     wxPanel *panel = new wxPanel( this, -1 );
     panel->SetAutoLayout( TRUE );
 
-    /* Create MRL combobox */
-    wxBoxSizer *mrl_sizer_sizer = new wxBoxSizer( wxHORIZONTAL );
-    wxStaticBox *mrl_box = new wxStaticBox( panel, -1,
-                               wxU(_("Media Resource Locator (MRL)")) );
-    wxStaticBoxSizer *mrl_sizer = new wxStaticBoxSizer( mrl_box,
-                                                        wxHORIZONTAL );
-    wxStaticText *mrl_label = new wxStaticText( panel, -1,
-                                                wxU(_("Open:")) );
-    mrl_combo = new wxComboBox( panel, MRL_Event, wxT(""),
-                                wxPoint(20,25), wxSize(120, -1) );
-    mrl_combo->SetToolTip( wxU(_("You can use this field directly by typing "
-        "the full MRL you want to open.\n""Alternatively, the field will be "
-        "filled automatically when you use the controls below.")) );
-
-    mrl_sizer->Add( mrl_label, 0, wxALL | wxALIGN_CENTER, 5 );
-    mrl_sizer->Add( mrl_combo, 1, wxALL | wxALIGN_CENTER, 5 );
-    mrl_sizer_sizer->Add( mrl_sizer, 1, wxEXPAND | wxALL, 5 );
 
+    /* Advanced options */
+    wxStaticBox *adv_box = new wxStaticBox( panel, -1,
+                               wxU(_("Advanced options")) );
+    wxStaticBoxSizer *adv_sizer = new wxStaticBoxSizer( adv_box,
+                                                        wxVERTICAL );
 
-    /* Create Static Text */
-    wxStaticText *label = new wxStaticText( panel, -1,
-        wxU(_("Alternatively, you can build an MRL using one of the "
-              "following predefined targets:")) );
 
     wxFlexGridSizer *common_opt_sizer = new wxFlexGridSizer( 5, 1, 20 );
-
     if( i_method == OPEN_NORMAL )
     {
         /* Create Stream Output checkox */
         sout_checkbox = new wxCheckBox( panel, SoutEnable_Event,
-                                         wxU(_("Stream output")) );
+                                         wxU(_("Stream/Save")) );
         sout_checkbox->SetToolTip( wxU(_("Use VLC as a server of streams")) );
         common_opt_sizer->Add( sout_checkbox, 0,
                                wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL );
@@ -483,6 +465,24 @@ OpenDialog::OpenDialog( intf_thread_t *_p_intf, wxWindow *_p_parent,
     common_opt_sizer->Add( caching_value, 0,
                            wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL );
 
+
+    wxBoxSizer *mrl_sizer = new wxBoxSizer( wxHORIZONTAL );
+    wxStaticText *mrl_label = new wxStaticText( panel, -1,
+                                                wxU(_("Customize:")) );
+    mrl_combo = new wxComboBox( panel, MRL_Event, wxT(""),
+                                wxDefaultPosition, wxDefaultSize );
+    //Point(20,25), wxSize(120, -1) );
+    mrl_combo->SetToolTip( wxU(_("You can use this field directly by typing "
+        "the full MRL you want to open.\n""Alternatively, the field will be "
+        "filled automatically when you use the controls above.")) );
+
+    mrl_sizer->Add( mrl_label, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5 );
+    mrl_sizer->Add( mrl_combo, 1, wxALL | wxEXPAND | wxALIGN_CENTER_VERTICAL,
+                    5 );
+
+    adv_sizer->Add( common_opt_sizer, 0, wxTOP | wxLEFT|wxRIGHT | wxEXPAND, 5 );
+    adv_sizer->Add( mrl_sizer, 0, wxBOTTOM  | wxLEFT|wxRIGHT  | wxEXPAND, 5 );
+
     /* Separation */
     wxStaticLine *static_line = new wxStaticLine( panel, wxID_OK );
 
@@ -569,14 +569,12 @@ OpenDialog::OpenDialog( intf_thread_t *_p_intf, wxWindow *_p_parent,
     button_sizer->Layout();
     wxBoxSizer *main_sizer = new wxBoxSizer( wxVERTICAL );
     wxBoxSizer *panel_sizer = new wxBoxSizer( wxVERTICAL );
-    panel_sizer->Add( mrl_sizer_sizer, 0, wxEXPAND, 5 );
-    panel_sizer->Add( label, 0, wxEXPAND | wxALL, 5 );
 #if (!wxCHECK_VERSION(2,5,2))
     panel_sizer->Add( notebook_sizer, 1, wxEXPAND | wxALL, 5 );
 #else
     panel_sizer->Add( notebook, 1, wxEXPAND | wxALL, 5 );
 #endif
-    panel_sizer->Add( common_opt_sizer, 0, wxALIGN_LEFT | wxALL, 5 );
+    panel_sizer->Add( adv_sizer, 0, wxEXPAND | wxALL, 5 );
     panel_sizer->Add( static_line, 0, wxEXPAND | wxALL, 5 );
     panel_sizer->Add( button_sizer, 0, wxALIGN_LEFT | wxALL, 5 );
     panel_sizer->Layout();
@@ -625,23 +623,30 @@ wxPanel *OpenDialog::FilePanel( wxWindow* parent )
     /* Create browse file line */
     wxBoxSizer *file_sizer = new wxBoxSizer( wxHORIZONTAL );
 
-    file_combo = new wxComboBox( panel, FileName_Event, wxT(""),
-                                 wxPoint(20,25), wxSize(200, -1) );
+    file_sizer->Add( new wxStaticText( panel, -1, wxU(_("Open:") ) ), 0,
+                     wxALL | wxALIGN_CENTER_VERTICAL, 5 );
+
+    file_combo = new wxComboBox( panel, FileName_Event, wxT("") );
     wxButton *browse_button = new wxButton( panel, FileBrowse_Event,
                                             wxU(_("Browse...")) );
-    file_sizer->Add( file_combo, 1, wxALL, 5 );
-    file_sizer->Add( browse_button, 0, wxALL, 5 );
+    file_sizer->Add( file_combo, 1, wxALL | wxALIGN_CENTER_VERTICAL, 5 );
+    file_sizer->Add( browse_button, 0, wxALL | wxALIGN_CENTER_VERTICAL, 5 );
 
-    /* Create Subtitles File checkox */
-    wxFlexGridSizer *subsfile_sizer = new wxFlexGridSizer( 2, 1, 20 );
+    /* Create Subtitles File checkox - button  */
+    wxFlexGridSizer *subtitles_sizer = new wxFlexGridSizer( 2, 1, 20 );
     subsfile_checkbox = new wxCheckBox( panel, SubsFileEnable_Event,
-                                        wxU(_("Subtitle options")) );
-    subsfile_checkbox->SetToolTip( wxU(_("Force options for separate subtitle files.")) );
-    subsfile_sizer->Add( subsfile_checkbox, 0,
-                         wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL );
+                                        wxU(_("Use a subtitles file")) );
+    subsfile_checkbox->SetToolTip( wxU(_("Use an external subtitles file.")) );
+    subtitles_sizer->Add( subsfile_checkbox, 0,  wxALIGN_CENTER_VERTICAL |
+                          wxALL, 5 );
     subsfile_button = new wxButton( panel, SubsFileSettings_Event,
-                                    wxU(_("Settings...")) );
+                                    wxU(_("Advanced Settings...")) );
     subsfile_button->Disable();
+    subtitles_sizer->Add( subsfile_button, 1, wxALIGN_CENTER_VERTICAL |
+                           wxALL, 5 );
+
+    /* Create subtitles file line */
+    wxBoxSizer *subfile_sizer = new wxBoxSizer( wxHORIZONTAL );
 
     char *psz_subsfile = config_GetPsz( p_intf, "sub-file" );
     if( psz_subsfile && *psz_subsfile )
@@ -650,13 +655,30 @@ wxPanel *OpenDialog::FilePanel( wxWindow* parent )
         subsfile_button->Enable();
         subsfile_mrl.Add( wxString(wxT("sub-file=")) + wxL2U(psz_subsfile) );
     }
+    if( !psz_subsfile )  psz_subsfile = strdup("");
+    subfile_sizer->Add( new wxStaticText( panel, -1, wxU(_("File:") ) ),
+                        0, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
+    subfile_combo = new wxComboBox( panel, SubFileName_Event,
+                                    wxL2U( psz_subsfile ) );
     if( psz_subsfile ) free( psz_subsfile );
+    subbrowse_button = new wxButton( panel, SubFileBrowse_Event,
+                                     wxU(_("Browse...")) );
+    subfile_sizer->Add( subfile_combo, 1, wxALL | wxALIGN_CENTER_VERTICAL, 5 );
+    subfile_sizer->Add( subbrowse_button, 0, wxALL |wxALIGN_CENTER_VERTICAL, 5 );
 
-    subsfile_sizer->Add( subsfile_button, 1,
-                         wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL );
+    subfile_combo->Disable();
+    subbrowse_button->Disable();
+
+    psz_subsfile = config_GetPsz( p_intf, "sub-file" );
+    if( psz_subsfile && *psz_subsfile )
+    {
+        subfile_combo->Enable();
+        subbrowse_button->Enable();
+    }
 
     sizer->Add( file_sizer, 0, wxEXPAND | wxALL, 5 );
-    sizer->Add( subsfile_sizer, 0, wxEXPAND | wxALL, 5 );
+    sizer->Add( subtitles_sizer, 0, wxLEFT | wxRIGHT | wxTOP, 5 );
+    sizer->Add( subfile_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT| wxBOTTOM, 5 );
     panel->SetSizerAndFit( sizer );
     return panel;
 }
@@ -1252,6 +1274,31 @@ void OpenDialog::OnFileBrowse( wxCommandEvent& WXUNUSED(event) )
     }
 }
 
+void OpenDialog::OnSubFileBrowse( wxCommandEvent& WXUNUSED(event) )
+{
+    wxFileDialog dialog( this, wxU(_("Open subtitles file")),
+                         wxT(""), wxT(""), wxT("*"), wxOPEN );
+
+    if( dialog.ShowModal() == wxID_OK )
+    {
+        subfile_combo->SetValue( dialog.GetPath() );
+    }
+    wxCommandEvent event; OnSubFileChange( event );
+}
+
+void OpenDialog::OnSubFileChange( wxCommandEvent& WXUNUSED(event) )
+{
+    if( subsfile_mrl.GetCount() != 0 )
+    {
+        subsfile_mrl.RemoveAt( 0 );
+        subsfile_mrl.Insert( wxString(wxT("sub-file=")) + subfile_combo->GetValue() , 0 );
+    }
+    else
+    {
+        subsfile_mrl.Add( wxString(wxT("sub-file=")) + subfile_combo->GetValue() );
+    }
+}
+
 /*****************************************************************************
  * Disc panel event methods.
  *****************************************************************************/
@@ -1742,6 +1789,8 @@ void OpenDialog::OnNetTypeChange( wxCommandEvent& event )
 void OpenDialog::OnSubsFileEnable( wxCommandEvent& event )
 {
     subsfile_button->Enable( event.GetInt() != 0 );
+    subbrowse_button->Enable( event.GetInt() != 0 );
+    subfile_combo->Enable( event.GetInt() != 0 );
 }
 
 void OpenDialog::OnSubsFileSettings( wxCommandEvent& WXUNUSED(event) )
@@ -1753,8 +1802,7 @@ void OpenDialog::OnSubsFileSettings( wxCommandEvent& WXUNUSED(event) )
     if( subsfile_dialog && subsfile_dialog->ShowModal() == wxID_OK )
     {
         subsfile_mrl.Empty();
-        subsfile_mrl.Add( wxString(wxT("sub-file=")) +
-                          subsfile_dialog->file_combo->GetValue() );
+        subsfile_mrl.Add( wxString(wxT("sub-file="))  + subfile_combo->GetValue() );
         if( subsfile_dialog->encoding_combo )
         {
             subsfile_mrl.Add( wxString(wxT("subsdec-encoding=")) +
index 771e0ee8424f2f4127e46aae3404f0d6d9f9839e..c09b6429a4663400c51c8a61c26a341b9048c13c 100644 (file)
@@ -2,7 +2,7 @@
  * open.hpp: Headers for the Open dialog
  *****************************************************************************
  * Copyright (C) 1999-2005 the VideoLAN team
- * $Id: wxwidgets.h 12670 2005-09-25 11:16:31Z zorglub $
+ * $Id$
  *
  * Authors: Gildas Bazin <gbazin@videolan.org>
  *
@@ -75,6 +75,8 @@ private:
     /* Event handlers for the file page */
     void OnFilePanelChange( wxCommandEvent& event );
     void OnFileBrowse( wxCommandEvent& event );
+    void OnSubFileBrowse( wxCommandEvent& event );
+    void OnSubFileChange( wxCommandEvent& event );
 
     /* Event handlers for the disc page */
     void OnDiscPanelChangeSpin( wxSpinEvent& event );
@@ -118,6 +120,7 @@ private:
 
     /* Controls for the file panel */
     wxComboBox *file_combo;
+    wxComboBox *subfile_combo;
     wxFileDialog *file_dialog;
 
     /* Controls for the disc panel */
@@ -152,6 +155,7 @@ private:
 
     /* Controls for the subtitles file */
     wxButton *subsfile_button;
+    wxButton *subbrowse_button;
     wxCheckBox *subsfile_checkbox;
     SubsFileDialog *subsfile_dialog;
     wxArrayString subsfile_mrl;
index 3975b07633b8eb3e01ddb3256876098d2227199f..98b7d4a69a0da60fce1083393db5b6131c08d3e2 100644 (file)
@@ -66,6 +66,7 @@ SubsFileDialog::SubsFileDialog( intf_thread_t *_p_intf, wxWindow* _p_parent ):
     wxBoxSizer *main_sizer = new wxBoxSizer( wxVERTICAL );
     wxBoxSizer *panel_sizer = new wxBoxSizer( wxVERTICAL );
 
+#if 0
     /* Create the subtitles file textctrl */
     wxBoxSizer *file_sizer_sizer = new wxBoxSizer( wxHORIZONTAL );
     wxStaticBox *file_box = new wxStaticBox( panel, -1,
@@ -83,6 +84,7 @@ SubsFileDialog::SubsFileDialog( intf_thread_t *_p_intf, wxWindow* _p_parent ):
     file_sizer->Add( browse_button, 0, wxALL, 5 );
     file_sizer_sizer->Add( file_sizer, 1, wxEXPAND | wxALL, 5 );
     panel_sizer->Add( file_sizer, 0, wxEXPAND | wxALL, 5 );
+#endif
 
     /* Subtitles encoding */
     encoding_combo = NULL;
@@ -281,11 +283,13 @@ void SubsFileDialog::OnCancel( wxCommandEvent& WXUNUSED(event) )
 
 void SubsFileDialog::OnFileBrowse( wxCommandEvent& WXUNUSED(event) )
 {
-    wxFileDialog dialog( this, wxU(_("Open file")),
+#if 0
+        wxFileDialog dialog( this, wxU(_("Open file")),
                          wxT(""), wxT(""), wxT("*"), wxOPEN );
 
     if( dialog.ShowModal() == wxID_OK )
     {
         file_combo->SetValue( dialog.GetPath() );
     }
+#endif
 }