UIBarButtonItem+Theme.m 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*****************************************************************************
  2. * UIBarButtonItem+Theme.m
  3. * VLC for iOS
  4. *****************************************************************************
  5. * Copyright (c) 2013 VideoLAN. All rights reserved.
  6. * $Id$
  7. *
  8. * Authors: Felix Paul Kühne <fkuehne # videolan.org>
  9. * Romain Goyet <romain.goyet # applidium.com>
  10. * Fabio Ritrovato <sephiroth87 # videolan.org>
  11. *
  12. * Refer to the COPYING file of the official project for license.
  13. *****************************************************************************/
  14. #import "UIBarButtonItem+Theme.h"
  15. @implementation UIBarButtonItem (Theme)
  16. + (UIBarButtonItem *)themedDoneButtonWithTarget:(id)target andSelector:(SEL)selector
  17. {
  18. UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"BUTTON_DONE", @"")
  19. style:UIBarButtonItemStyleBordered
  20. target:target
  21. action:selector];
  22. if (SYSTEM_RUNS_IOS7_OR_LATER)
  23. doneButton.tintColor = [UIColor whiteColor];
  24. else {
  25. [doneButton setBackgroundImage:[UIImage imageNamed:@"doneButton"]
  26. forState:UIControlStateNormal
  27. barMetrics:UIBarMetricsDefault];
  28. [doneButton setBackgroundImage:[UIImage imageNamed:@"doneButtonHighlight"]
  29. forState:UIControlStateHighlighted
  30. barMetrics:UIBarMetricsDefault];
  31. [doneButton setTitleTextAttributes:@{UITextAttributeTextShadowColor : [UIColor whiteColor], UITextAttributeTextColor : [UIColor blackColor]}
  32. forState:UIControlStateNormal];
  33. }
  34. return doneButton;
  35. }
  36. + (UIBarButtonItem *)themedBackButtonWithTarget:(id)target andSelector:(SEL)selector
  37. {
  38. UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"BUTTON_BACK", @"")
  39. style:UIBarButtonItemStyleBordered
  40. target:target
  41. action:selector];
  42. if (SYSTEM_RUNS_IOS7_OR_LATER)
  43. backButton.tintColor = [UIColor whiteColor];
  44. else {
  45. [backButton setBackgroundImage:[[UIImage imageNamed:@"backButton"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12, 0, 6)]
  46. forState:UIControlStateNormal
  47. barMetrics:UIBarMetricsDefault];
  48. [backButton setBackgroundImage:[[UIImage imageNamed:@"backButtonHighlight"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12, 0, 6)]
  49. forState:UIControlStateHighlighted
  50. barMetrics:UIBarMetricsDefault];
  51. }
  52. [backButton setTitleTextAttributes:@{UITextAttributeTextShadowColor : [UIColor colorWithWhite:0. alpha:.37], UITextAttributeTextColor : [UIColor whiteColor]} forState:UIControlStateNormal];
  53. [backButton setTitlePositionAdjustment:UIOffsetMake(3, 0) forBarMetrics:UIBarMetricsDefault];
  54. return backButton;
  55. }
  56. + (UIBarButtonItem *)themedRevealMenuButtonWithTarget:(id)target andSelector:(SEL)selector
  57. {
  58. UIBarButtonItem *menuButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"menuCone"] style:UIBarButtonItemStyleBordered target:target action:selector];
  59. if (SYSTEM_RUNS_IOS7_OR_LATER)
  60. menuButton.tintColor = [UIColor whiteColor];
  61. else {
  62. [menuButton setBackgroundImage:[UIImage imageNamed:@"button"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
  63. [menuButton setBackgroundImage:[UIImage imageNamed:@"buttonHighlight"] forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
  64. }
  65. menuButton.accessibilityLabel = NSLocalizedString(@"OPEN_VLC_MENU", @"");
  66. menuButton.isAccessibilityElement = YES;
  67. return menuButton;
  68. }
  69. @end