vlc | branch: master | Felix Paul Kühne <[email protected]> | Sat Aug 31 12:47:26 2019 +0200| [e63e5bee08eb6e4cc9911690d871cc827c7b26d2] | committer: Felix Paul Kühne
macosx/main menu: show renderer type to ease selection between similarly named devices > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e63e5bee08eb6e4cc9911690d871cc827c7b26d2 --- .../gui/macosx/menus/renderers/VLCRendererItem.h | 2 ++ .../gui/macosx/menus/renderers/VLCRendererItem.m | 11 +++++++++++ .../menus/renderers/VLCRendererMenuController.m | 23 +++++++++++++++------- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/modules/gui/macosx/menus/renderers/VLCRendererItem.h b/modules/gui/macosx/menus/renderers/VLCRendererItem.h index 23a375c9ca..6b711dd810 100644 --- a/modules/gui/macosx/menus/renderers/VLCRendererItem.h +++ b/modules/gui/macosx/menus/renderers/VLCRendererItem.h @@ -58,6 +58,8 @@ NS_ASSUME_NONNULL_BEGIN */ @property (readonly) NSString *type; +@property (readonly) NSString *userReadableType; + /** The iconURI of the renderer item */ diff --git a/modules/gui/macosx/menus/renderers/VLCRendererItem.m b/modules/gui/macosx/menus/renderers/VLCRendererItem.m index 2eba69d174..fadbdf86a4 100644 --- a/modules/gui/macosx/menus/renderers/VLCRendererItem.m +++ b/modules/gui/macosx/menus/renderers/VLCRendererItem.m @@ -73,6 +73,17 @@ return toNSStr(vlc_renderer_item_type(_rendererItem)); } +- (NSString *)userReadableType +{ + NSString *type = [self type]; + if ([type isEqualToString:@"stream_out_dlna"]) { + return @"DLNA"; + } else if ([type isEqualToString:@"chromecast"]) { + return @"Chromecast"; + } + return type; +} + - (int)capabilityFlags { return vlc_renderer_item_flags(_rendererItem); diff --git a/modules/gui/macosx/menus/renderers/VLCRendererMenuController.m b/modules/gui/macosx/menus/renderers/VLCRendererMenuController.m index 149bef848e..e80817b8cb 100644 --- a/modules/gui/macosx/menus/renderers/VLCRendererMenuController.m +++ b/modules/gui/macosx/menus/renderers/VLCRendererMenuController.m @@ -107,15 +107,24 @@ } // Create a menu item - NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:item.name - action:@selector(selectRenderer:) - keyEquivalent:@""]; + NSMenuItem *menuItem = [[NSMenuItem alloc] init]; + menuItem.target = self; + menuItem.action = @selector(selectRenderer:); + menuItem.keyEquivalent = @""; if (item.capabilityFlags & VLC_RENDERER_CAN_VIDEO) - [menuItem setImage:[NSImage imageNamed:@"sidebar-movie"]]; + menuItem.image = [NSImage imageNamed:@"sidebar-movie"]; else - [menuItem setImage:[NSImage imageNamed:@"sidebar-music"]]; - [menuItem setTarget:self]; - [menuItem setRepresentedObject:item]; + menuItem.image = [NSImage imageNamed:@"sidebar-music"]; + menuItem.representedObject = item; + + NSString *unformattedTitle = [NSString stringWithFormat:@"%@ %@", item.name, item.userReadableType]; + NSMutableAttributedString *title = [[NSMutableAttributedString alloc] initWithString:unformattedTitle + attributes:nil]; + [title addAttributes:@{NSBaselineOffsetAttributeName : @(2), + NSFontAttributeName : [NSFont boldSystemFontOfSize:8]} + range:[unformattedTitle rangeOfString:item.userReadableType options:NSBackwardsSearch]]; + menuItem.attributedTitle = title; + [_rendererMenu insertItem:menuItem atIndex:[_rendererMenu indexOfItem:_rendererNoneItem] + 1]; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
