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
