VLCTimeNavigationTitleView.m 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /*****************************************************************************
  2. * VLCTimeNavigationTitleView.m
  3. * VLC for iOS
  4. *****************************************************************************
  5. * Copyright (c) 2015 VideoLAN. All rights reserved.
  6. * $Id$
  7. *
  8. * Author: Tobias Conradi <videolan # tobias-conradi.de>
  9. *
  10. * Refer to the COPYING file of the official project for license.
  11. *****************************************************************************/
  12. #import "VLCTimeNavigationTitleView.h"
  13. #import "VLCSlider.h"
  14. @implementation VLCTimeNavigationTitleView
  15. -(void)awakeFromNib {
  16. if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
  17. self.positionSlider.scrubbingSpeedChangePositions = @[@(0.), @(100.), @(200.), @(300)];
  18. self.timeDisplayButton.isAccessibilityElement = YES;
  19. self.aspectRatioButton.accessibilityLabel = NSLocalizedString(@"VIDEO_ASPECT_RATIO_BUTTON", nil);
  20. self.aspectRatioButton.isAccessibilityElement = YES;
  21. [self.aspectRatioButton setImage:[UIImage imageNamed:@"ratioIcon"] forState:UIControlStateNormal];
  22. self.minimizePlaybackButton.accessibilityLabel = NSLocalizedString(@"MINIMIZE_PLAYBACK_VIEW", nil);
  23. self.minimizePlaybackButton.isAccessibilityElement = YES;
  24. // workaround for radar://22897614 ( http://www.openradar.me/22897614 )
  25. UISlider *slider = self.positionSlider;
  26. if ([slider respondsToSelector:@selector(semanticContentAttribute)]) {
  27. UISemanticContentAttribute attribute = slider.semanticContentAttribute;
  28. slider.semanticContentAttribute = UISemanticContentAttributeUnspecified;
  29. slider.semanticContentAttribute = attribute;
  30. }
  31. [self setNeedsLayout];
  32. [super awakeFromNib];
  33. }
  34. - (void)layoutSubviews
  35. {
  36. [super layoutSubviews];
  37. CGRect remainder = self.bounds;
  38. CGRect slice;
  39. CGRectDivide(remainder, &slice, &remainder, CGRectGetWidth(self.minimizePlaybackButton.frame), CGRectMinXEdge);
  40. self.minimizePlaybackButton.frame = slice;
  41. if (!self.aspectRatioButton.hidden) {
  42. [self.aspectRatioButton sizeToFit];
  43. CGRectDivide(remainder, &slice, &remainder, CGRectGetWidth(self.aspectRatioButton.frame), CGRectMaxXEdge);
  44. self.aspectRatioButton.frame = slice;
  45. }
  46. [self.timeDisplayButton sizeToFit];
  47. CGRectDivide(remainder, &slice, &remainder, CGRectGetWidth(self.timeDisplayButton.frame), CGRectMaxXEdge);
  48. self.timeDisplayButton.frame = slice;
  49. self.positionSlider.frame = remainder;
  50. }
  51. - (void)setHideAspectRatio:(BOOL)hideAspectRatio
  52. {
  53. _hideAspectRatio = hideAspectRatio;
  54. self.aspectRatioButton.hidden = hideAspectRatio;
  55. [self setNeedsLayout];
  56. }
  57. @end