+ if( b_advanced )
+ {
+ wxPanel *dummy_panel = new wxPanel( this, -1 );
+ sizer->Add( dummy_panel, 1 );
+
+ wxButton *button =
+ new wxButton( this, AdvancedOptions_Event,
+ wxU(_("Advanced options...")) );
+ sizer->Add( button, 0, wxALL, 5 );
+
+ /* Build the advanced dialog */
+ p_advanced_dialog =
+ new wxDialog( this, -1, ((wxString)wxU(_("Advanced options"))) +
+ wxT(" (") + wxU( p_module->psz_longname ) + wxT(")"),
+ wxDefaultPosition, wxDefaultSize,
+ wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER );
+
+ wxBoxSizer *sizer = new wxBoxSizer( wxVERTICAL );
+
+ /* Create MRL combobox */
+ wxBoxSizer *mrl_sizer_sizer = new wxBoxSizer( wxHORIZONTAL );
+ wxStaticBox *mrl_box =
+ new wxStaticBox( p_advanced_dialog, -1,
+ wxU(_("Advanced options")) );
+ wxStaticBoxSizer *mrl_sizer =
+ new wxStaticBoxSizer( mrl_box, wxHORIZONTAL );
+ wxStaticText *mrl_label =
+ new wxStaticText( p_advanced_dialog, -1, wxU(_("Options:")) );
+ p_advanced_mrl_combo =
+ new wxComboBox( p_advanced_dialog, MRL_Event, wxT(""),
+ wxDefaultPosition, wxDefaultSize );
+ mrl_sizer->Add( mrl_label, 0, wxALL | wxALIGN_CENTER, 5 );
+ mrl_sizer->Add( p_advanced_mrl_combo, 1, wxALL | wxALIGN_CENTER, 5 );
+ mrl_sizer_sizer->Add( mrl_sizer, 1, wxEXPAND | wxALL, 5 );
+ sizer->Add( mrl_sizer_sizer, 0, wxEXPAND | wxALL, 2 );
+
+ /* Add advanced options to panel */
+ module_config_t *p_item = p_module->p_config;
+ if( p_item ) do
+ {
+ if( p_item->i_type & CONFIG_HINT || !p_item->b_advanced )
+ continue;
+
+ ConfigControl *control =
+ CreateConfigControl( VLC_OBJECT(p_intf), p_item,
+ p_advanced_dialog );
+
+ advanced_config_array.Add( control );
+
+ /* Don't add items that were not recognized */
+ if( control == NULL ) continue;
+
+ control->SetUpdateCallback( AutoBuildAdvancedCallback,
+ (void *)this );
+
+ sizer->Add( control, 0, wxEXPAND | wxALL, 2 );
+ }
+ while( p_item->i_type != CONFIG_HINT_END && p_item++ );
+
+ /* Separation */
+ dummy_panel = new wxPanel( p_advanced_dialog, -1 );
+ sizer->Add( dummy_panel, 1 );
+ wxStaticLine *static_line =
+ new wxStaticLine( p_advanced_dialog, wxID_OK );
+ sizer->Add( static_line, 0, wxEXPAND | wxALL, 5 );
+
+ /* Create buttons */
+ wxButton *ok_button =
+ new wxButton( p_advanced_dialog, wxID_OK, wxU(_("OK")) );
+ ok_button->SetDefault();
+ wxButton *cancel_button =
+ new wxButton( p_advanced_dialog, wxID_CANCEL, wxU(_("Cancel")) );
+ wxBoxSizer *button_sizer = new wxBoxSizer( wxHORIZONTAL );
+ button_sizer->Add( ok_button, 0, wxALL, 5 );
+ button_sizer->Add( cancel_button, 0, wxALL, 5 );
+ button_sizer->Layout();
+ sizer->Add( button_sizer, 0, wxALL, 0 );
+
+ sizer->SetMinSize( 400, -1 );
+ p_advanced_dialog->SetSizerAndFit( sizer );
+ }
+