vlc | branch: master | David Fuhrmann <[email protected]> | Mon Feb 
18 19:12:33 2013 +0100| [d496ba57cd4749cd5842e04921732b51d67705dc] | committer: 
David Fuhrmann

macosx: advanced prefs: add support for config sections

close #7971

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d496ba57cd4749cd5842e04921732b51d67705dc
---

 modules/gui/macosx/prefs.m         |    4 ++--
 modules/gui/macosx/prefs_widgets.h |    9 ++++++++
 modules/gui/macosx/prefs_widgets.m |   44 ++++++++++++++++++++++++++++++++++++
 3 files changed, 55 insertions(+), 2 deletions(-)

diff --git a/modules/gui/macosx/prefs.m b/modules/gui/macosx/prefs.m
index 2174551..e2ef537 100644
--- a/modules/gui/macosx/prefs.m
+++ b/modules/gui/macosx/prefs.m
@@ -385,13 +385,13 @@ static VLCPrefs *_o_sharedMainInstance = nil;
                 }
             }
 
-            if (module_is_main(p_module) && CONFIG_ITEM(configType)) {
+            if (module_is_main(p_module) && (CONFIG_ITEM(configType) || 
configType == CONFIG_SECTION)) {
                 if (categoryItem && [self isSubCategoryGeneral:lastsubcat])
                     [[categoryItem options] addObject:[[VLCTreeLeafItem alloc] 
initWithConfigItem:&p_configs[j]]];
                 else if (subCategoryItem)
                     [[subCategoryItem options] addObject:[[VLCTreeLeafItem 
alloc] initWithConfigItem:&p_configs[j]]];
             }
-            else if (!module_is_main(p_module) && CONFIG_ITEM(configType)) {
+            else if (!module_is_main(p_module) && (CONFIG_ITEM(configType) || 
configType == CONFIG_SECTION)) {
                 if (![[subCategoryItem children] containsObject: pluginItem])
                     [[subCategoryItem children] addObject:pluginItem];
 
diff --git a/modules/gui/macosx/prefs_widgets.h 
b/modules/gui/macosx/prefs_widgets.h
index 6397f81..d3e00db 100644
--- a/modules/gui/macosx/prefs_widgets.h
+++ b/modules/gui/macosx/prefs_widgets.h
@@ -208,6 +208,15 @@ static NSMenu   *o_keys_menu = nil;
 
 @end
 
+@interface SectionControl : VLCConfigControl
+{
+}
+
+- (id) initWithItem: (module_config_t *)_p_item
+           withView: (NSView *)o_parent_view;
+
+@end
+
 //#undef CONFIG_ITEM_LIST_STRING
 //#undef CONFIG_ITEM_RANGED_INTEGER
 
diff --git a/modules/gui/macosx/prefs_widgets.m 
b/modules/gui/macosx/prefs_widgets.m
index 7820f11..af296f1 100644
--- a/modules/gui/macosx/prefs_widgets.m
+++ b/modules/gui/macosx/prefs_widgets.m
@@ -838,6 +838,9 @@ o_textfield = [[[NSSecureTextField alloc] initWithFrame: 
s_rc] retain];     \
     case CONFIG_ITEM_MODULE_LIST_CAT:
         p_control = [[ModuleListConfigControl alloc] initWithItem: _p_item 
withView: o_parent_view];
         break;
+    case CONFIG_SECTION:
+        p_control = [[SectionControl alloc] initWithItem: _p_item withView: 
o_parent_view];
+        break;
     default:
         break;
     }
@@ -2315,3 +2318,44 @@ o_textfield = [[[NSSecureTextField alloc] initWithFrame: 
s_rc] retain];     \
         withObject: anObject];
 }
 @end
+
+@implementation SectionControl
+
+- (id) initWithItem: (module_config_t *)_p_item
+           withView: (NSView *)o_parent_view
+{
+    NSRect mainFrame = [o_parent_view frame];
+    NSString *o_labelString, *o_tooltip;
+    mainFrame.size.height = 17;
+    mainFrame.size.width = mainFrame.size.width - LEFTMARGIN - RIGHTMARGIN;
+    mainFrame.origin.x = LEFTMARGIN;
+    mainFrame.origin.y = 0;
+
+    if ([super initWithFrame: mainFrame item: _p_item] != nil) {
+        
+        /* add the label */
+        if (p_item->psz_text)
+            o_labelString = _NS((char *)p_item->psz_text);
+        else
+            o_labelString = @"";
+
+        NSDictionary *boldAttributes = [NSDictionary 
dictionaryWithObjectsAndKeys:
+                        [NSFont boldSystemFontOfSize:[NSFont systemFontSize]],
+                        NSFontAttributeName,
+                        nil];
+        NSAttributedString *o_bold_string = [[NSAttributedString alloc] 
initWithString: o_labelString attributes: boldAttributes];
+
+        ADD_LABEL(o_label, mainFrame, 1, 0, @"", @"")
+        [o_label setAttributedStringValue: o_bold_string];
+        [o_label sizeToFit];
+
+        [o_bold_string release];
+        
+        [o_label setAutoresizingMask:NSViewNotSizable];
+        [self addSubview: o_label];
+    }
+    return self;
+}
+
+@end
+

_______________________________________________
vlc-commits mailing list
[email protected]
http://mailman.videolan.org/listinfo/vlc-commits

Reply via email to