#define AUDIO_TITLE N_( "Audio" )
#define AUDIO_HELP N_( "Audio settings" )
+#define AUDIO_GENERAL_TITLE N_( "General audio settings" )
#define AUDIO_GENERAL_HELP N_("General audio settings")
#define AFILTER_TITLE N_("Filters")
#define VIDEO_TITLE N_("Video")
#define VIDEO_HELP N_("Video settings")
-#define VIDEO_GENERAL_HELP N_( "General video settings")
+#define VIDEO_GENERAL_TITLE N_( "General video settings")
+#define VIDEO_GENERAL_HELP N_( "General video settings" )
#define _VOUT_TITLE N_("Output modules" )
#define VOUT_HELP N_( \
{ SUBCAT_INTERFACE_HOTKEYS, INTF_HOTKEYS_TITLE, INTF_HOTKEYS_HELP },
{ CAT_AUDIO, AUDIO_TITLE, AUDIO_HELP },
- { SUBCAT_AUDIO_GENERAL, GENERAL_TITLE, AUDIO_GENERAL_HELP },
+ { SUBCAT_AUDIO_GENERAL, AUDIO_GENERAL_TITLE, AUDIO_GENERAL_HELP },
{ SUBCAT_AUDIO_AOUT, AOUT_TITLE, AOUT_HELP },
{ SUBCAT_AUDIO_AFILTER, AFILTER_TITLE, AFILTER_HELP },
{ SUBCAT_AUDIO_VISUAL, AVISUAL_TITLE, AVISUAL_HELP },
{ SUBCAT_AUDIO_MISC, AMISC_TITLE, AMISC_HELP },
{ CAT_VIDEO, VIDEO_TITLE, VIDEO_HELP },
- { SUBCAT_VIDEO_GENERAL, GENERAL_TITLE, VIDEO_GENERAL_HELP },
+ { SUBCAT_VIDEO_GENERAL, VIDEO_GENERAL_TITLE, VIDEO_GENERAL_HELP },
{ SUBCAT_VIDEO_VOUT, _VOUT_TITLE, VOUT_HELP },
{ SUBCAT_VIDEO_VFILTER, VFILTER_TITLE, VFILTER_HELP },
{ SUBCAT_VIDEO_SUBPIC, SUBPIC_TITLE, SUBPIC_HELP },
#endif
#define TYPE_CATEGORY 0
-#define TYPE_SUBCATEGORY 1
-#define TYPE_MODULE 2
+#define TYPE_CATSUBCAT 1 /* Category with embedded subcategory */
+#define TYPE_SUBCATEGORY 2
+#define TYPE_MODULE 3
/*****************************************************************************
* Classes declarations.
-1, -1, config_data );
break;
case CONFIG_SUBCATEGORY:
+ if( p_item->i_value == SUBCAT_VIDEO_GENERAL ||
+ p_item->i_value == SUBCAT_AUDIO_GENERAL )
+ {
+ ConfigTreeData *cd = (ConfigTreeData *)
+ GetItemData( current_item );
+ cd->i_type = TYPE_CATSUBCAT;
+ cd->i_object_id = p_item->i_value;
+ if( cd->psz_name ) free( cd->psz_name );
+ cd->psz_name = strdup( config_CategoryNameGet(
+ p_item->i_value ) );
+ if( cd->psz_help ) free( cd->psz_help );
+ char *psz_help = config_CategoryHelpGet( p_item->i_value );
+ if( psz_help )
+ {
+ cd->psz_help = wraptext( strdup( psz_help ),72 ,
+ ISUTF8 );
+ }
+ else
+ {
+ cd->psz_help = NULL;
+ }
+ continue;
+ }
+
config_data = new ConfigTreeData;
+
config_data->psz_name = strdup( config_CategoryNameGet(
p_item->i_value ) );
psz_help = config_CategoryHelpGet( p_item->i_value );
category = GetNextChild( root_item, cookie );
}
-#if 0
- /* Clean changes for the main module */
- wxTreeItemId item = GetFirstChild( root_item, cookie );
- for( size_t i_child_index = 0;
- i_child_index < GetChildrenCount( root_item, FALSE );
- i_child_index++ )
- {
- config_data = (ConfigTreeData *)GetItemData( item );
- if( config_data && config_data->panel )
- {
- delete config_data->panel;
- config_data->panel = NULL;
- }
-
- item = GetNextChild( root_item, cookie );
- }
- /* Clean changes for the plugins */
- item = GetFirstChild( plugins_item, cookie );
- for( size_t i_child_index = 0;
- i_child_index < GetChildrenCount( plugins_item, FALSE );
- i_child_index++ )
- {
- wxTreeItemId item2 = GetFirstChild( item, cookie2 );
- for( size_t i_child_index = 0;
- i_child_index < GetChildrenCount( item, FALSE );
- i_child_index++ )
- {
- config_data = (ConfigTreeData *)GetItemData( item2 );
-
- if( config_data && config_data->panel )
- {
- delete config_data->panel;
- config_data->panel = NULL;
- }
-
- item2 = GetNextChild( item, cookie2 );
- }
-
- item = GetNextChild( plugins_item, cookie );
- }
-#endif
if( GetSelection() )
{
wxTreeEvent event;
}
if( !p_module && !b_found )
{
- msg_Warn( p_intf, "ohoh, unable to find main module");
+ msg_Warn( p_intf, "ohoh, unable to find main module" );
return;
}
}
p_item = p_module->p_config;
/* Find the category if it has been specified */
- if( config_data->i_type == TYPE_SUBCATEGORY )
+ if( config_data->i_type == TYPE_SUBCATEGORY ||
+ config_data->i_type == TYPE_CATSUBCAT )
{
do
{
/* Add a head title to the panel */
char *psz_head;
- if( config_data->i_type == TYPE_SUBCATEGORY )
+ if( config_data->i_type == TYPE_SUBCATEGORY ||
+ config_data->i_type == TYPE_CATSUBCAT )
{
psz_head = config_data->psz_name;
p_item++;
if( p_item ) do
{
/* If a category has been specified, check we finished the job */
- if( config_data->i_type == TYPE_SUBCATEGORY &&
+ if( (config_data->i_type == TYPE_SUBCATEGORY ||
+ config_data->i_type == TYPE_CATSUBCAT ) &&
(p_item->i_type == CONFIG_CATEGORY ||
p_item->i_type == CONFIG_SUBCATEGORY ) &&
p_item->i_value != config_data->i_object_id )
config_sizer->Add( control, 0, wxEXPAND | wxALL, 2 );
}
while( !( p_item->i_type == CONFIG_HINT_END ||
- ( config_data->i_type == TYPE_SUBCATEGORY &&
+ ( ( config_data->i_type == TYPE_SUBCATEGORY ||
+ config_data->i_type == TYPE_CATSUBCAT ) &&
( p_item->i_type == CONFIG_CATEGORY ||
p_item->i_type == CONFIG_SUBCATEGORY ) ) ) && p_item++ );