]> git.sesse.net Git - vlc/commitdiff
*: fix problems about advanced button
authorJérome Decoodt <djc@videolan.org>
Fri, 6 May 2005 18:15:50 +0000 (18:15 +0000)
committerJérome Decoodt <djc@videolan.org>
Fri, 6 May 2005 18:15:50 +0000 (18:15 +0000)
modules/gui/macosx/prefs.h
modules/gui/macosx/prefs.m
modules/gui/macosx/prefs_widgets.h
modules/gui/macosx/prefs_widgets.m

index ee3ee3ef2905f576b4137e79152b6d080a6022b3..ac1415ae3d1ea32be2244e5efa22b2d170ef549d 100644 (file)
@@ -28,7 +28,7 @@
     VLCTreeItem *o_parent;
     NSMutableArray *o_children;
     int i_object_category;
-    NSView *o_view;
+    NSMutableArray *o_subviews;
 }
 
 + (VLCTreeItem *)rootItem;
index dbd3171166d0a57f0755167ffeb4e69cce46df3c..af99ca828468b918ebd38132d4e35054d103276c 100644 (file)
@@ -227,7 +227,7 @@ static VLCTreeItem *o_root_item = nil;
         o_parent = o_parent_item;
         o_children = o_children_array;
         i_object_category = i_category;
-        o_view = nil;
+        o_subviews = nil;
     }
     return( self );
 }
@@ -464,18 +464,22 @@ static VLCTreeItem *o_root_item = nil;
     advancedView:(vlc_bool_t) b_advanced
 {
 fprintf( stderr, "[%s] showView\n", [o_name UTF8String] );
-    if( o_view == nil )
+    NSRect          s_vrc;
+    NSView          *o_view;
+
+    s_vrc = [[o_prefs_view contentView] bounds]; s_vrc.size.height -= 4;
+    o_view = [[VLCFlippedView alloc] initWithFrame: s_vrc];
+    [o_view setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
+
+/* Create all subviews if it isn't already done because we cannot use setHiden for MacOS < 10.3*/
+    if( o_subviews == nil )
     {
         intf_thread_t   *p_intf = VLCIntf;
         vlc_list_t      *p_list;
         module_t        *p_parser = NULL;
         module_config_t *p_item;
-        NSRect          s_vrc;
-
-        s_vrc = [[o_prefs_view contentView] bounds]; s_vrc.size.height -= 4;
-        o_view = [[VLCFlippedView alloc] initWithFrame: s_vrc];
-        [o_view setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
 
+        o_subviews = [[NSMutableArray alloc] initWithCapacity:10];
         /* Get a pointer to the module */
         if( i_object_category == -1 )
         {
@@ -521,8 +525,6 @@ fprintf( stderr, "%s (%d) is ", p_item->psz_name, p_item->i_type );
                 {
                     VLCConfigControl *o_control = nil;
                     int i_widget = 0;
-                    if( p_item->b_advanced && (! b_advanced) )
-                        break;
                     switch( p_item->i_type )
                     {
                     case CONFIG_ITEM_STRING:
@@ -583,15 +585,14 @@ fprintf( stderr, "***UNKNOWN***" );
                             calcVerticalMargin:i_widget lastItem:i_lastItem];
                         o_control = [VLCConfigControl newControl:p_item
                                                       withView:o_view
-                                                      yOffset: i_yPos
-                                                      lastItem: i_lastItem];
+                                                      yOffset: i_yPos];
                         if( o_control != nil )
                         {
                             i_yPos += [o_control frame].size.height;
                             i_lastItem = i_widget;
                             [o_control setAutoresizingMask: NSViewMaxYMargin |
                                 NSViewWidthSizable];
-                            [o_view addSubview: o_control];
+                            [o_subviews addObject: o_control];
                         }
                     }
 fprintf( stderr, "\n" );
@@ -722,15 +723,14 @@ fprintf( stderr, "***UNKNOWN***" );
                             calcVerticalMargin:i_widget lastItem:i_lastItem];
                         o_control = [VLCConfigControl newControl:p_item
                                                       withView:o_view
-                                                      yOffset: i_yPos
-                                                      lastItem: i_lastItem];
+                                                      yOffset: i_yPos];
                         if( o_control != nil )
                         {
                             i_yPos += [o_control frame].size.height;
                             i_lastItem = i_widget;
                             [o_control setAutoresizingMask: NSViewMaxYMargin |
                                 NSViewWidthSizable];
-                            [o_view addSubview: o_control];
+                            [o_subviews addObject: o_control];
                         }
                     }
 fprintf( stderr, "\n" );
@@ -744,25 +744,42 @@ fprintf( stderr, "\n" );
             vlc_list_release( p_list );
         }
     }
-    else
-    {
-        NSRect s_vrc;
-        s_vrc = [[o_prefs_view contentView] bounds]; s_vrc.size.height -= 4;
-        [o_view setFrame: s_vrc];
-    }
+
     if( o_view != nil )
+    {
+        int i_lastItem = 0;
+        int i_yPos = 0;
+        unsigned int i;
+        for( i = 0 ; i < [o_subviews count] ; i++ )
+        {
+            int i_widget;
+            VLCConfigControl *o_widget = [o_subviews objectAtIndex:i];
+            if( ( [o_widget isAdvanced] ) && (! b_advanced) )
+                continue;
+
+            i_widget = [o_widget getViewType];
+            i_yPos += [VLCConfigControl calcVerticalMargin:i_widget
+                lastItem:i_lastItem];
+            [o_widget setYPos:i_yPos];
+            i_yPos += [o_widget frame].size.height;
+            i_lastItem = i_widget;
+            [o_widget setAutoresizingMask: NSViewMaxYMargin |
+                                            NSViewWidthSizable];
+            [o_view addSubview:o_widget];
+         }
+
         [o_prefs_view setDocumentView:o_view];
+    }
     return o_view;
 }
 
 - (void)applyChanges
 {
     unsigned int i;
-    if( o_view != nil )
+    if( o_subviews != nil )
     {
     //Item has been shown
 fprintf( stderr, "[%s] applying changes\n", [o_name cString]);
-        NSArray *o_subviews = [o_view subviews];
         for( i = 0 ; i < [o_subviews count] ; i++ )
             [[o_subviews objectAtIndex:i] applyChanges];
     }
index c7be552d23e8f418857c0357ae6114131abea0cf..b664474b4cd0adac3a458ad25060533ebf1d1307 100644 (file)
     char            *psz_name;
     NSTextField     *o_label;
     int             i_type;
+    int             i_view_type;
     vlc_bool_t      b_advanced;
 }
 
-+ (VLCConfigControl *)newControl: (module_config_t *)_p_item withView: (NSView *)o_parent_view yOffset:(int) i_yPos lastItem: (int) i_lastItem;
++ (VLCConfigControl *)newControl: (module_config_t *)_p_item
+        withView: (NSView *)o_parent_view yOffset:(int) i_yPos;
 - (id)initWithFrame: (NSRect)frame item: (module_config_t *)p_item;
 - (NSString *)getName;
 - (int)getType;
+- (int)getViewType;
 - (BOOL)isAdvanced;
-
+- (void)setYPos:(int)i_yPos;
 - (int)intValue;
 - (float)floatValue;
 - (char *)stringValue;
@@ -61,8 +64,7 @@ static NSMenu   *o_keys_menu = nil;
 
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
-           withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem;
+           withVerticalOffset: (int)i_yPos;
 
 @end
 
@@ -73,8 +75,7 @@ static NSMenu   *o_keys_menu = nil;
 
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
-           withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem;
+           withVerticalOffset: (int)i_yPos;
 
 @end
 
@@ -87,8 +88,7 @@ static NSMenu   *o_keys_menu = nil;
 
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
-           withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem;
+           withVerticalOffset: (int)i_yPos;
 
 - (IBAction)openFileDialog: (id)sender;
 - (void)pathChosenInPanel:(NSOpenPanel *)o_sheet withReturn:(int)i_return_code contextInfo:(void  *)o_context_info;
@@ -102,8 +102,7 @@ static NSMenu   *o_keys_menu = nil;
 
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
-           withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem;
+           withVerticalOffset: (int)i_yPos;
 
 @end
 
@@ -116,8 +115,7 @@ static NSMenu   *o_keys_menu = nil;
 
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
-           withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem;
+           withVerticalOffset: (int)i_yPos;
 - (IBAction)stepperChanged:(id)sender;
 - (void)textfieldChanged:(NSNotification *)o_notification;
 
@@ -130,8 +128,7 @@ static NSMenu   *o_keys_menu = nil;
 
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
-           withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem;
+           withVerticalOffset: (int)i_yPos;
 
 @end
 
@@ -146,8 +143,7 @@ static NSMenu   *o_keys_menu = nil;
 
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
-           withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem;
+           withVerticalOffset: (int)i_yPos;
 - (IBAction)sliderChanged:(id)sender;
 - (void)textfieldChanged:(NSNotification *)o_notification;
 
@@ -160,8 +156,7 @@ static NSMenu   *o_keys_menu = nil;
 
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
-           withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem;
+           withVerticalOffset: (int)i_yPos;
 
 @end
 
@@ -174,8 +169,7 @@ static NSMenu   *o_keys_menu = nil;
 
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
-           withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem;
+           withVerticalOffset: (int)i_yPos;
 - (IBAction)stepperChanged:(id)sender;
 - (void)textfieldChanged:(NSNotification *)o_notification;
 
@@ -192,8 +186,7 @@ static NSMenu   *o_keys_menu = nil;
 
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
-           withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem;
+           withVerticalOffset: (int)i_yPos;
 - (IBAction)sliderChanged:(id)sender;
 - (void)textfieldChanged:(NSNotification *)o_notification;
 
@@ -210,8 +203,7 @@ static NSMenu   *o_keys_menu = nil;
 
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
-           withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem;
+           withVerticalOffset: (int)i_yPos;
 
 @end
 
@@ -222,8 +214,7 @@ static NSMenu   *o_keys_menu = nil;
 
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
-           withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem;
+           withVerticalOffset: (int)i_yPos;
 
 @end
 
@@ -236,8 +227,7 @@ static NSMenu   *o_keys_menu = nil;
 
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
-           withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem;
+           withVerticalOffset: (int)i_yPos;
 
 @end
 
index 94f660c327152a04ad67583764cb4438948fdaf7..24a26ec26b85b09135c413f578e75cb9a09da830 100644 (file)
@@ -418,12 +418,20 @@ if( MACOS_VERSION >= 10.3 )                                                 \
         psz_name = strdup( p_item->psz_name );
         o_label = NULL;
         i_type = p_item->i_type;
+        i_view_type = 0;
         b_advanced = p_item->b_advanced;
         [self setAutoresizingMask:NSViewWidthSizable | NSViewMinYMargin ];
     }
     return (self);
 }
 
+- (void)setYPos:(int)i_yPos
+{
+    NSRect frame = [self frame];
+    frame.origin.y = i_yPos;
+    [self setFrame:frame];
+}
+
 - (void)dealloc
 {
     if( o_label ) [o_label release];
@@ -826,7 +834,6 @@ if( MACOS_VERSION >= 10.3 )                                                 \
 + (VLCConfigControl *)newControl: (module_config_t *)_p_item
                       withView: (NSView *)o_parent_view
                       yOffset:(int) i_yPos
-                      lastItem: (int) i_lastItem
 {
     VLCConfigControl *p_control = NULL;
     switch( _p_item->i_type )
@@ -837,16 +844,14 @@ if( MACOS_VERSION >= 10.3 )                                                 \
             p_control = [[StringConfigControl alloc]
                     initWithItem: _p_item
                     withView: o_parent_view
-                    withVerticalOffset: i_yPos
-                    withLastItem: i_lastItem];
+                    withVerticalOffset: i_yPos];
         }
         else
         {
             p_control = [[StringListConfigControl alloc]
                     initWithItem: _p_item
                     withView: o_parent_view
-                    withVerticalOffset: i_yPos
-                    withLastItem: i_lastItem];
+                    withVerticalOffset: i_yPos];
         }
         break;
     case CONFIG_ITEM_FILE:
@@ -854,16 +859,14 @@ if( MACOS_VERSION >= 10.3 )                                                 \
         p_control = [[FileConfigControl alloc]
                     initWithItem: _p_item
                     withView: o_parent_view
-                    withVerticalOffset: i_yPos
-                    withLastItem: i_lastItem];
+                    withVerticalOffset: i_yPos];
         break;
     case CONFIG_ITEM_MODULE:
     case CONFIG_ITEM_MODULE_CAT:
         p_control = [[ModuleConfigControl alloc]
                     initWithItem: _p_item
                     withView: o_parent_view
-                    withVerticalOffset: i_yPos
-                    withLastItem: i_lastItem];
+                    withVerticalOffset: i_yPos];
         break;
     case CONFIG_ITEM_INTEGER:
         if( _p_item->i_list )
@@ -871,32 +874,28 @@ if( MACOS_VERSION >= 10.3 )                                                 \
             p_control = [[IntegerListConfigControl alloc]
                         initWithItem: _p_item
                         withView: o_parent_view
-                        withVerticalOffset: i_yPos
-                        withLastItem: i_lastItem];
+                        withVerticalOffset: i_yPos];
         }
         else if( _p_item->i_min != 0 || _p_item->i_max != 0 )
         {
             p_control = [[RangedIntegerConfigControl alloc]
                         initWithItem: _p_item
                         withView: o_parent_view
-                        withVerticalOffset: i_yPos
-                        withLastItem: i_lastItem];
+                        withVerticalOffset: i_yPos];
         }
         else
         {
             p_control = [[IntegerConfigControl alloc]
                         initWithItem: _p_item
                         withView: o_parent_view
-                        withVerticalOffset: i_yPos
-                        withLastItem: i_lastItem];
+                        withVerticalOffset: i_yPos];
         }
         break;
     case CONFIG_ITEM_BOOL:
         p_control = [[BoolConfigControl alloc]
                     initWithItem: _p_item
                     withView: o_parent_view
-                    withVerticalOffset: i_yPos
-                    withLastItem: i_lastItem];
+                    withVerticalOffset: i_yPos];
         break;
     case CONFIG_ITEM_FLOAT:
         if( _p_item->f_min != 0 || _p_item->f_max != 0 )
@@ -904,16 +903,14 @@ if( MACOS_VERSION >= 10.3 )                                                 \
             p_control = [[RangedFloatConfigControl alloc]
                         initWithItem: _p_item
                         withView: o_parent_view
-                        withVerticalOffset: i_yPos
-                        withLastItem: i_lastItem];
+                        withVerticalOffset: i_yPos];
         }
         else
         {
             p_control = [[FloatConfigControl alloc]
                         initWithItem: _p_item
                         withView: o_parent_view
-                        withVerticalOffset: i_yPos
-                        withLastItem: i_lastItem];
+                        withVerticalOffset: i_yPos];
         }
         break;
     case CONFIG_ITEM_KEY:
@@ -922,16 +919,14 @@ if( MACOS_VERSION >= 10.3 )                                                 \
             p_control = [[KeyConfigControlBefore103 alloc]
                         initWithItem: _p_item
                         withView: o_parent_view
-                        withVerticalOffset: i_yPos
-                        withLastItem: i_lastItem];
+                        withVerticalOffset: i_yPos];
         }
         else
         {
             p_control = [[KeyConfigControlAfter103 alloc]
                         initWithItem: _p_item
                         withView: o_parent_view
-                        withVerticalOffset: i_yPos
-                        withLastItem: i_lastItem];
+                        withVerticalOffset: i_yPos];
         }
         break;
     case CONFIG_ITEM_MODULE_LIST:
@@ -939,8 +934,7 @@ if( MACOS_VERSION >= 10.3 )                                                 \
         p_control = [[ModuleListConfigControl alloc]
                     initWithItem: _p_item
                     withView: o_parent_view
-                    withVerticalOffset: i_yPos
-                    withLastItem: i_lastItem];
+                    withVerticalOffset: i_yPos];
         break;
     default:
         break;
@@ -958,6 +952,11 @@ if( MACOS_VERSION >= 10.3 )                                                 \
     return i_type;
 }
 
+- (int)getViewType
+{
+    return i_view_type;
+}
+
 - (BOOL)isAdvanced
 {
     return b_advanced;
@@ -1014,7 +1013,6 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
            withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem
 {
     NSRect mainFrame = [o_parent_view frame];
     NSString *o_labelString, *o_textfieldString, *o_textfieldTooltip;
@@ -1025,6 +1023,7 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 
     if( [super initWithFrame: mainFrame item: _p_item] != nil )
     {
+        i_view_type = CONFIG_ITEM_STRING;
         /* add the label */
         if( p_item->psz_text )
             o_labelString = [[VLCMain sharedInstance]
@@ -1071,7 +1070,6 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
            withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem
 {
     NSRect mainFrame = [o_parent_view frame];
     NSString *o_labelString, *o_textfieldTooltip;
@@ -1083,6 +1081,7 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
     if( [super initWithFrame: mainFrame item: _p_item] != nil )
     {
         int i_index;
+        i_view_type = CONFIG_ITEM_STRING_LIST;
         /* add the label */
         if( p_item->psz_text )
             o_labelString = [[VLCMain sharedInstance]
@@ -1146,7 +1145,6 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
            withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem
 {
     NSRect mainFrame = [o_parent_view frame];
     NSString *o_labelString, *o_buttonTooltip, *o_textfieldString;
@@ -1158,6 +1156,8 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 
     if( [super initWithFrame: mainFrame item: _p_item] != nil )
     {
+        i_view_type = CONFIG_ITEM_FILE;
+
         /* is it a directory */
         b_directory = ( [self getType] == CONFIG_ITEM_DIRECTORY ) ? YES : NO;
 
@@ -1249,7 +1249,6 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
            withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem
 {
     NSRect mainFrame = [o_parent_view frame];
     NSString *o_labelString, *o_popupTooltip;
@@ -1263,6 +1262,8 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
         int i_index;
         vlc_list_t *p_list;
         module_t *p_parser;
+        i_view_type = CONFIG_ITEM_MODULE;
+
         /* add the label */
         if( p_item->psz_text )
             o_labelString = [[VLCMain sharedInstance]
@@ -1398,7 +1399,6 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
            withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem
 {
     NSRect mainFrame = [o_parent_view frame];
     NSString *o_labelString, *o_tooltip, *o_textfieldString;
@@ -1409,6 +1409,8 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 
     if( [super initWithFrame: mainFrame item: _p_item] != nil )
     {
+        i_view_type = CONFIG_ITEM_INTEGER;
+
         o_tooltip = [[VLCMain sharedInstance] wrapString:
             [[VLCMain sharedInstance]
                 localizedString: p_item->psz_longtext ] toWidth: PREFS_WRAP];
@@ -1479,7 +1481,6 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
            withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem
 {
     NSRect mainFrame = [o_parent_view frame];
     NSString *o_labelString, *o_textfieldTooltip;
@@ -1491,6 +1492,8 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
     if( [super initWithFrame: mainFrame item: _p_item] != nil )
     {
         int i_index;
+        i_view_type = CONFIG_ITEM_STRING_LIST;
+
         /* add the label */
         if( p_item->psz_text )
             o_labelString = [[VLCMain sharedInstance]
@@ -1555,7 +1558,6 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
            withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem
 {
     NSRect mainFrame = [o_parent_view frame];
     NSString *o_labelString, *o_tooltip;
@@ -1566,6 +1568,8 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 
     if( [super initWithFrame: mainFrame item: _p_item] != nil )
     {
+        i_view_type = CONFIG_ITEM_RANGED_INTEGER;
+
         /* add the label */
         if( p_item->psz_text )
             o_labelString = [[VLCMain sharedInstance]
@@ -1652,7 +1656,6 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
            withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem
 {
     NSRect mainFrame = [o_parent_view frame];
     NSString *o_labelString, *o_tooltip, *o_textfieldString;
@@ -1663,6 +1666,8 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 
     if( [super initWithFrame: mainFrame item: _p_item] != nil )
     {
+        i_view_type = CONFIG_ITEM_INTEGER;
+
         o_tooltip = [[VLCMain sharedInstance] wrapString:
             [[VLCMain sharedInstance]
                 localizedString: p_item->psz_longtext ] toWidth: PREFS_WRAP];
@@ -1731,7 +1736,6 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
            withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem
 {
     NSRect mainFrame = [o_parent_view frame];
     NSString *o_labelString, *o_tooltip;
@@ -1742,6 +1746,8 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 
     if( [super initWithFrame: mainFrame item: _p_item] != nil )
     {
+        i_view_type = CONFIG_ITEM_RANGED_INTEGER;
+
         /* add the label */
         if( p_item->psz_text )
             o_labelString = [[VLCMain sharedInstance]
@@ -1830,7 +1836,6 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
            withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem
 {
     NSRect mainFrame = [o_parent_view frame];
     NSString *o_labelString, *o_tooltip;
@@ -1841,6 +1846,8 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 
     if( [super initWithFrame: mainFrame item: _p_item] != nil )
     {
+        i_view_type = CONFIG_ITEM_BOOL;
+
         /* add the checkbox */
         if( p_item->psz_text )
             o_labelString = [[VLCMain sharedInstance]
@@ -1876,7 +1883,6 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
            withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem
 {
     NSRect mainFrame = [o_parent_view frame];
     NSString *o_labelString, *o_tooltip;
@@ -1887,6 +1893,8 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 
     if( [super initWithFrame: mainFrame item: _p_item] != nil )
     {
+        i_view_type = CONFIG_ITEM_KEY_BEFORE_10_3;
+
         /* add the label */
         if( p_item->psz_text )
             o_labelString = [[VLCMain sharedInstance]
@@ -1990,7 +1998,6 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
            withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem
 {
     NSRect mainFrame = [o_parent_view frame];
     NSString *o_labelString, *o_tooltip;
@@ -2001,6 +2008,8 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 
     if( [super initWithFrame: mainFrame item: _p_item] != nil )
     {
+        i_view_type = CONFIG_ITEM_KEY_AFTER_10_3;
+
         /* add the label */
         if( p_item->psz_text )
             o_labelString = [[VLCMain sharedInstance]
@@ -2054,7 +2063,6 @@ fprintf( stderr, "Applying %f to %s\n" , [self floatValue], psz_name );
 - (id) initWithItem: (module_config_t *)_p_item
            withView: (NSView *)o_parent_view
            withVerticalOffset: (int)i_yPos
-           withLastItem: (int)i_lastItem
 {
 if( _p_item->i_type == CONFIG_ITEM_MODULE_LIST )
 //TODO....
@@ -2111,6 +2119,8 @@ if( _p_item->i_type == CONFIG_ITEM_MODULE_LIST )
     mainFrame.origin.y = i_yPos;
     if( [super initWithFrame: mainFrame item: _p_item] != nil )
     {
+        i_view_type = CONFIG_ITEM_MODULE_LIST;
+
         /* add the label */
         if( p_item->psz_text )
             o_labelString = [[VLCMain sharedInstance]