]> git.sesse.net Git - vlc/blobdiff - modules/gui/wxwidgets/dialogs/preferences_widgets.cpp
Remove code killed by previous commit
[vlc] / modules / gui / wxwidgets / dialogs / preferences_widgets.cpp
index 52438b4fa5d19c9a5be3ced8a8f975e0f747563c..1d3974195c66f5763cd2b1d4e9ced6089a6cf372 100644 (file)
@@ -38,12 +38,6 @@ ConfigControl *CreateConfigControl( vlc_object_t *p_this,
 {
     ConfigControl *p_control = NULL;
 
-    /*Skip deprecated options */
-    if( p_item->psz_current )
-    {
-        return NULL;
-    }
-
     switch( p_item->i_type )
     {
     case CONFIG_ITEM_MODULE:
@@ -77,7 +71,7 @@ ConfigControl *CreateConfigControl( vlc_object_t *p_this,
         {
             p_control = new IntegerListConfigControl( p_this, p_item, parent );
         }
-        else if( p_item->i_min != 0 || p_item->i_max != 0 )
+        else if( p_item->min.i != 0 || p_item->max.i != 0 )
         {
             p_control = new RangedIntConfigControl( p_this, p_item, parent );
         }
@@ -194,11 +188,11 @@ KeyConfigControl::KeyConfigControl( vlc_object_t *p_this,
 
     label = new wxStaticText(this, -1, wxU(p_item->psz_text));
     alt = new wxCheckBox( this, -1, wxU(_("Alt")) );
-    alt->SetValue( p_item->i_value & KEY_MODIFIER_ALT );
+    alt->SetValue( p_item->value.i & KEY_MODIFIER_ALT );
     ctrl = new wxCheckBox( this, -1, wxU(_("Ctrl")) );
-    ctrl->SetValue( p_item->i_value & KEY_MODIFIER_CTRL );
+    ctrl->SetValue( p_item->value.i & KEY_MODIFIER_CTRL );
     shift = new wxCheckBox( this, -1, wxU(_("Shift")) );
-    shift->SetValue( p_item->i_value & KEY_MODIFIER_SHIFT );
+    shift->SetValue( p_item->value.i & KEY_MODIFIER_SHIFT );
     combo = new wxComboBox( this, -1, wxT(""), wxDefaultPosition,
                             wxDefaultSize, i_keys, m_keysList,
                             wxCB_READONLY );
@@ -206,7 +200,7 @@ KeyConfigControl::KeyConfigControl( vlc_object_t *p_this,
     {
         combo->SetClientData( i, (void*)vlc_keys[i].i_key_code );
         if( (unsigned int)vlc_keys[i].i_key_code ==
-            ( ((unsigned int)p_item->i_value) & ~KEY_MODIFIER ) )
+            ( ((unsigned int)p_item->value.i) & ~KEY_MODIFIER ) )
         {
             combo->SetSelection( i );
             combo->SetValue( wxU(_(vlc_keys[i].psz_key_string)) );
@@ -266,7 +260,7 @@ ModuleConfigControl::ModuleConfigControl( vlc_object_t *p_this,
     module_t *p_parser;
 
     label = new wxStaticText(this, -1, wxU(p_item->psz_text));
-    combo = new wxComboBox( this, -1, wxL2U(p_item->psz_value),
+    combo = new wxComboBox( this, -1, wxL2U(p_item->value.psz),
                             wxDefaultPosition, wxDefaultSize,
                             0, NULL, wxCB_READONLY | wxCB_SORT );
 
@@ -278,13 +272,13 @@ ModuleConfigControl::ModuleConfigControl( vlc_object_t *p_this,
     {
         p_parser = (module_t *)p_list->p_values[i_index].p_object ;
 
-        if( !strcmp( p_parser->psz_capability, p_item->psz_type ) )
+        if( module_IsCapable( p_parser, p_item->psz_type ) )
         {
-            combo->Append( wxU(p_parser->psz_longname),
-                           p_parser->psz_object_name );
-            if( p_item->psz_value && !strcmp(p_item->psz_value,
-                                             p_parser->psz_object_name) )
-                combo->SetValue( wxU(p_parser->psz_longname) );
+            combo->Append( wxU(module_GetLongName(p_parser)),
+                           (char *)module_GetObjName(p_parser) );
+            if( p_item->value.psz && !strcmp(p_item->value.psz,
+                                             module_GetObjName(p_parser)) )
+                combo->SetValue( wxU(module_GetLongName(p_parser)) );
         }
     }
     vlc_list_release( p_list );
@@ -318,7 +312,7 @@ ModuleCatConfigControl::ModuleCatConfigControl( vlc_object_t *p_this,
     module_t *p_parser;
 
     label = new wxStaticText(this, -1, wxU(p_item->psz_text));
-    combo = new wxComboBox( this, -1, wxL2U(p_item->psz_value),
+    combo = new wxComboBox( this, -1, wxL2U(p_item->value.psz),
                             wxDefaultPosition, wxDefaultSize,
                             0, NULL, wxCB_READONLY | wxCB_SORT );
 
@@ -331,23 +325,29 @@ ModuleCatConfigControl::ModuleCatConfigControl( vlc_object_t *p_this,
     {
         p_parser = (module_t *)p_list->p_values[i_index].p_object ;
 
-        if( !strcmp( p_parser->psz_object_name, "main" ) )
+        if( !strcmp( module_GetObjName(p_parser), "main" ) )
               continue;
 
-        module_config_t *p_config = p_parser->p_config;
-        if( p_config ) do
+        unsigned int i_confsize;
+        module_config_t *p_config, *p_start, *p_end;
+        p_start = module_GetConfig( p_parser, &i_confsize );
+        p_end = p_start + i_confsize;
+
+        for( p_config = p_start; p_config < p_end; p_config++ )
         {
-            /* Hack: required subcategory is stored in i_min */
+            /* Hack: required subcategory is stored in min.i */
             if( p_config->i_type == CONFIG_SUBCATEGORY &&
-                p_config->i_value == p_item->i_min )
+                p_config->value.i == p_item->min.i )
             {
-                combo->Append( wxU(p_parser->psz_longname),
-                                   p_parser->psz_object_name );
-                if( p_item->psz_value && !strcmp(p_item->psz_value,
-                                        p_parser->psz_object_name) )
-                combo->SetValue( wxU(p_parser->psz_longname) );
+                combo->Append( wxU(module_GetLongName(p_parser)),
+                               (char *)module_GetObjName(p_parser) );
+                if( p_item->value.psz &&
+                    !strcmp(p_item->value.psz, module_GetObjName(p_parser)) )
+                    combo->SetValue( wxU(module_GetLongName(p_parser)) );
             }
-        } while( p_config->i_type != CONFIG_HINT_END && p_config++ );
+        }
+
+        module_PutConfig( p_start );
     }
     vlc_list_release( p_list );
 
@@ -390,7 +390,7 @@ ModuleListCatConfigControl::ModuleListCatConfigControl( vlc_object_t *p_this,
     label = new wxStaticText(this, -1, wxU(p_item->psz_text));
     sizer->Add( label );
 
-    text = new wxTextCtrl( this, -1, wxU(p_item->psz_value),
+    text = new wxTextCtrl( this, -1, wxU(p_item->value.psz),
                            wxDefaultPosition,wxSize( 300, 20 ) );
 
 
@@ -400,30 +400,39 @@ ModuleListCatConfigControl::ModuleListCatConfigControl( vlc_object_t *p_this,
     {
         p_parser = (module_t *)p_list->p_values[i_index].p_object ;
 
-        if( !strcmp( p_parser->psz_object_name, "main" ) )
+        if( !strcmp( module_GetObjName(p_parser), "main" ) )
               continue;
 
-        module_config_t *p_config = p_parser->p_config;
-        if( p_config ) do
+        unsigned int i_confsize;
+        module_config_t *p_config, *p_start, *p_end;
+
+        p_start = module_GetConfig( p_parser, &i_confsize );
+        p_end = p_start + i_confsize;
+
+        for( p_config = p_start; p_config < p_end; p_config++ )
         {
-            /* Hack: required subcategory is stored in i_min */
+            /* Hack: required subcategory is stored in min.i */
             if( p_config->i_type == CONFIG_SUBCATEGORY &&
-                p_config->i_value == p_item->i_min )
+                p_config->value.i == p_item->min.i )
             {
                 moduleCheckBox *mc = new moduleCheckBox;
-                mc->checkbox = new wxCheckBox( this, wxID_HIGHEST,
-                                               wxU(p_parser->psz_longname));
-                mc->psz_module = strdup( p_parser->psz_object_name );
+                mc->checkbox =
+                    new wxCheckBox( this, wxID_HIGHEST,
+                                    wxU(module_GetLongName(p_parser)) );
+
+                mc->psz_module = strdup( module_GetObjName(p_parser) );
                 pp_checkboxes.push_back( mc );
 
-                if( p_item->psz_value &&
-                    strstr( p_item->psz_value, p_parser->psz_object_name ) )
+                if( p_item->value.psz &&
+                    strstr( p_item->value.psz, mc->psz_module ) )
                 {
                     mc->checkbox->SetValue( true );
                 }
                 sizer->Add( mc->checkbox );
             }
-        } while( p_config->i_type != CONFIG_HINT_END && p_config++ );
+        }
+
+        module_PutConfig( p_start );
     }
     vlc_list_release( p_list );
 
@@ -431,7 +440,7 @@ ModuleListCatConfigControl::ModuleListCatConfigControl( vlc_object_t *p_this,
     sizer->Add(text, 0, wxEXPAND|wxALL, 5 );
 
     sizer->Add (new wxStaticText( this, -1, wxU( vlc_wraptext( _("Select "
-        "the desired modules. For more advanced control, the " 
+        "the desired modules. For more advanced control, the "
         "resulting \"chain\" can be modified.") , 72 ) ) ) );
 
     sizer->Layout();
@@ -455,7 +464,7 @@ void  ModuleListCatConfigControl::OnUpdate( wxCommandEvent &event )
 
     for( unsigned int i = 0 ; i< pp_checkboxes.size() ; i++ )
     {
-        b_waschecked = newtext.Find( wxU(pp_checkboxes[i]->psz_module)) != -1 ;
+        b_waschecked = newtext.Find( wxT(":")+wxU(pp_checkboxes[i]->psz_module)+wxT(":")) != -1 || newtext.BeforeFirst( ':' ) == wxString(wxU(pp_checkboxes[i]->psz_module)) || newtext.AfterLast( ':' ) == wxString(wxU(pp_checkboxes[i]->psz_module));
         /* For some reasons, ^^ doesn't compile :( */
         if( (pp_checkboxes[i]->checkbox->IsChecked() && ! b_waschecked )||
             (! pp_checkboxes[i]->checkbox->IsChecked() && b_waschecked) )
@@ -464,12 +473,23 @@ void  ModuleListCatConfigControl::OnUpdate( wxCommandEvent &event )
             {
                 /* Maybe not the clest solution */
                 if( ! newtext.Replace(wxString(wxT(":"))
-                                      +wxU(pp_checkboxes[i]->psz_module),
-                                      wxT("")))
+                                      +wxU(pp_checkboxes[i]->psz_module)+wxT(":"),
+                                      wxT(":")))
                 {
-                    if( ! newtext.Replace(wxString(wxU(pp_checkboxes[i]->psz_module))
-                                           + wxT(":"),wxT("")))
-            {
+                    if( newtext.BeforeFirst( ':' ) == wxString(wxU(pp_checkboxes[i]->psz_module)) )
+                    {
+                        newtext = newtext.AfterFirst( ':' );
+                    }
+                    else if( newtext.AfterLast( ':' ) == wxString(wxU(pp_checkboxes[i]->psz_module)) )
+                    {
+                        newtext = newtext.BeforeLast( ':' );
+                    }
+                    else if( newtext == wxString(wxU(pp_checkboxes[i]->psz_module)) )
+                    {
+                        newtext = wxT("");
+                    }
+                    else
+                    {
                         newtext.Replace(wxU(pp_checkboxes[i]->psz_module),wxU(""));
                     }
                 }
@@ -502,7 +522,7 @@ StringConfigControl::StringConfigControl( vlc_object_t *p_this,
     label = new wxStaticText(this, -1, wxU(p_item->psz_text));
     sizer->Add( label, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
     textctrl = new wxTextCtrl( this, -1,
-                               wxL2U(p_item->psz_value),
+                               wxL2U(p_item->value.psz),
                                wxDefaultPosition,
                                wxDefaultSize,
                                wxTE_PROCESS_ENTER);
@@ -535,7 +555,7 @@ StringListConfigControl::StringListConfigControl( vlc_object_t *p_this,
                                                   wxWindow *parent )
   : ConfigControl( p_this, p_item, parent )
 {
-    psz_default_value = p_item->psz_value;
+    psz_default_value = (char *)p_item->value.psz;
     if( psz_default_value ) psz_default_value = strdup( psz_default_value );
 
     label = new wxStaticText(this, -1, wxU(p_item->psz_text));
@@ -552,7 +572,7 @@ StringListConfigControl::StringListConfigControl( vlc_object_t *p_this,
     {
         wxButton *button =
             new wxButton( this, wxID_HIGHEST+i,
-                          wxU(p_item->ppsz_action_text[i]) );
+                          wxU(_(p_item->ppsz_action_text[i])) );
         sizer->Add( button, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
     }
 
@@ -578,9 +598,9 @@ void StringListConfigControl::UpdateCombo( module_config_t *p_item )
                        wxU(p_item->ppsz_list_text[i_index]) :
                        wxL2U(p_item->ppsz_list[i_index]) );
         combo->SetClientData( i_index, (void *)p_item->ppsz_list[i_index] );
-        if( ( p_item->psz_value &&
-              !strcmp( p_item->psz_value, p_item->ppsz_list[i_index] ) ) ||
-             ( !p_item->psz_value && !*p_item->ppsz_list[i_index] ) )
+        if( ( p_item->value.psz &&
+              !strcmp( p_item->value.psz, p_item->ppsz_list[i_index] ) ) ||
+             ( !p_item->value.psz && !*p_item->ppsz_list[i_index] ) )
         {
             combo->SetSelection( i_index );
             combo->SetValue( ( p_item->ppsz_list_text &&
@@ -591,13 +611,13 @@ void StringListConfigControl::UpdateCombo( module_config_t *p_item )
         }
     }
 
-    if( p_item->psz_value && !b_found )
+    if( p_item->value.psz && !b_found )
     {
         /* Add custom entry to list */
-        combo->Append( wxL2U(p_item->psz_value) );
+        combo->Append( wxL2U(p_item->value.psz) );
         combo->SetClientData( i_index, (void *)psz_default_value );
         combo->SetSelection( i_index );
-        combo->SetValue( wxL2U(p_item->psz_value) );
+        combo->SetValue( wxL2U(p_item->value.psz) );
     }
 }
 
@@ -613,15 +633,15 @@ void StringListConfigControl::OnAction( wxCommandEvent& event )
 {
     int i_action = event.GetId() - wxID_HIGHEST;
 
-    module_config_t *p_item = config_FindConfig( p_this, GetName().mb_str() );
+    module_config_t *p_item = config_FindConfig( p_this, GetName().mb_str(wxConvUTF8) );
     if( !p_item ) return;
 
     if( i_action < 0 || i_action >= p_item->i_action ) return;
 
     vlc_value_t val;
     wxString value = GetPszValue();
-    *((const char **)&val.psz_string) = value.mb_str();
-    p_item->ppf_action[i_action]( p_this, GetName().mb_str(), val, val, 0 );
+    *((const char **)&val.psz_string) = value.mb_str(wxConvUTF8);
+    p_item->ppf_action[i_action]( p_this, GetName().mb_str(wxConvUTF8), val, val, 0 );
 
     if( p_item->b_dirty )
     {
@@ -653,7 +673,7 @@ FileConfigControl::FileConfigControl( vlc_object_t *p_this,
     label = new wxStaticText(this, -1, wxU(p_item->psz_text));
     sizer->Add( label, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
     textctrl = new wxTextCtrl( this, -1,
-                               wxL2U(p_item->psz_value),
+                               wxL2U(p_item->value.psz),
                                wxDefaultPosition,
                                wxDefaultSize,
                                wxTE_PROCESS_ENTER);
@@ -688,7 +708,7 @@ void FileConfigControl::OnBrowse( wxCommandEvent& event )
 #if defined( __WXMSW__ )
                              wxOPEN
 #else
-                             wxOPEN | wxSAVE
+                             wxOPEN
 #endif
                            );
         if( dialog.ShowModal() == wxID_OK )
@@ -724,16 +744,16 @@ IntegerConfigControl::IntegerConfigControl( vlc_object_t *p_this,
     label = new wxStaticText(this, -1, wxU(p_item->psz_text));
     spin = new wxSpinCtrl( this, -1,
                            wxString::Format(wxT("%d"),
-                                            p_item->i_value),
+                                            p_item->value.i),
                            wxDefaultPosition, wxDefaultSize,
                            wxSP_ARROW_KEYS,
-                           -100000000, 100000000, p_item->i_value);
+                           -100000000, 100000000, p_item->value.i);
     spin->SetToolTip( wxU(p_item->psz_longtext) );
     sizer->Add( label, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
     sizer->Add( spin, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
     sizer->Layout();
     this->SetSizerAndFit( sizer );
-    i_value = p_item->i_value;
+    i_value = p_item->value.i;
 }
 
 IntegerConfigControl::~IntegerConfigControl()
@@ -745,12 +765,11 @@ int IntegerConfigControl::GetIntValue()
 {
     /* We avoid using GetValue because of a recursion bug with wxSpinCtrl with
      * wxGTK. */
-    return i_value; //spin->GetValue();
+    return spin->GetValue();
 }
 
 void IntegerConfigControl::OnUpdate( wxCommandEvent &event )
 {
-    i_value = event.GetInt();
     ConfigControl::OnUpdate( event );
 }
 void IntegerConfigControl::OnUpdateScroll( wxScrollEvent &event )
@@ -802,7 +821,7 @@ void IntegerListConfigControl::UpdateCombo( module_config_t *p_item )
                                             p_item->pi_list[i_index]) );
         }
         combo->SetClientData( i_index, (void *)p_item->pi_list[i_index] );
-        if( p_item->i_value == p_item->pi_list[i_index] )
+        if( p_item->value.i == p_item->pi_list[i_index] )
         {
             combo->SetSelection( i_index );
             if( p_item->ppsz_list_text && p_item->ppsz_list_text[i_index] )
@@ -831,14 +850,14 @@ void IntegerListConfigControl::OnAction( wxCommandEvent& event )
     int i_action = event.GetId() - wxID_HIGHEST;
 
     module_config_t *p_item;
-    p_item = config_FindConfig( p_this, GetName().mb_str() );
+    p_item = config_FindConfig( p_this, GetName().mb_str(wxConvUTF8) );
     if( !p_item ) return;
 
     if( i_action < 0 || i_action >= p_item->i_action ) return;
 
     vlc_value_t val;
     val.i_int = GetIntValue();
-    p_item->ppf_action[i_action]( p_this, GetName().mb_str(), val, val, 0 );
+    p_item->ppf_action[i_action]( p_this, GetName().mb_str(wxConvUTF8), val, val, 0 );
 
     if( p_item->b_dirty )
     {
@@ -871,8 +890,8 @@ RangedIntConfigControl::RangedIntConfigControl( vlc_object_t *p_this,
   : ConfigControl( p_this, p_item, parent )
 {
     label = new wxStaticText(this, -1, wxU(p_item->psz_text));
-    slider = new wxSlider( this, -1, p_item->i_value, p_item->i_min,
-                           p_item->i_max, wxDefaultPosition, wxDefaultSize,
+    slider = new wxSlider( this, -1, p_item->value.i, p_item->min.i,
+                           p_item->max.i, wxDefaultPosition, wxDefaultSize,
                            wxSL_LABELS | wxSL_HORIZONTAL );
     slider->SetToolTip( wxU(p_item->psz_longtext) );
     sizer->Add( label, 1, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
@@ -907,7 +926,7 @@ FloatConfigControl::FloatConfigControl( vlc_object_t *p_this,
     label = new wxStaticText(this, -1, wxU(p_item->psz_text));
     textctrl = new wxTextCtrl( this, -1,
                                wxString::Format(wxT("%f"),
-                                                p_item->f_value),
+                                                p_item->value.f),
                                wxDefaultPosition, wxDefaultSize,
                                wxTE_PROCESS_ENTER );
     textctrl->SetToolTip( wxU(p_item->psz_longtext) );
@@ -943,7 +962,7 @@ BoolConfigControl::BoolConfigControl( vlc_object_t *p_this,
   : ConfigControl( p_this, p_item, parent )
 {
     checkbox = new wxCheckBox( this, -1, wxU(p_item->psz_text) );
-    if( p_item->i_value ) checkbox->SetValue(TRUE);
+    if( p_item->value.i ) checkbox->SetValue(TRUE);
     checkbox->SetToolTip( wxU(p_item->psz_longtext) );
     sizer->Add( checkbox, 0, wxALL, 5 );
     sizer->Layout();