Welcome to mirror list, hosted at ThFree Co, Russian Federation.

MWMDownloadMapRequestView.mm « DownloadMapRequest « CustomViews « Classes « Maps « iphone - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 30e9a9ec156c7569871344116df17e57c1076037 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#import "MWMDownloadMapRequestView.h"
#import "UIButton+RuntimeAttributes.h"
#import "UIColor+MapsMeColor.h"

namespace
{
CGFloat const kButtonsCompactSpacing = 22.0;
CGFloat const kButtonsLooseSpacing = 60.0;
}

@interface MWMDownloadMapRequestView ()

@property (weak, nonatomic) IBOutlet UILabel * mapTitleLabel;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * verticalFreeSpace;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * bottomSpacing;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * unknownPositionLabelBottomOffset;

@property (weak, nonatomic) IBOutlet UIButton * downloadMapButton;
@property (weak, nonatomic) IBOutlet UILabel * undefinedLocationLabel;
@property (weak, nonatomic) IBOutlet UIButton * selectAnotherMapButton;
@property (weak, nonatomic) IBOutlet UIView * progressViewWrapper;

@property (weak, nonatomic) IBOutlet NSLayoutConstraint * betweenButtonsSpace;

@end

@implementation MWMDownloadMapRequestView

- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
  self = [super initWithCoder:aDecoder];
  if (self)
    self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
  return self;
}

- (void)layoutSubviews
{
  UIView * superview = self.superview;
  self.frame = superview.bounds;
  BOOL const isLandscape = superview.height > superview.width;
  if (IPAD || isLandscape)
  {
    self.verticalFreeSpace.constant = 44.0;
    self.bottomSpacing.constant = 24.0;
    self.unknownPositionLabelBottomOffset.constant = 22.0;
  }
  else
  {
    self.verticalFreeSpace.constant = 20.0;
    self.bottomSpacing.constant = 8.0;
    self.unknownPositionLabelBottomOffset.constant = 18.0;
    CGFloat const iPhone6LandscapeHeight = 375.0;
    if (self.width < iPhone6LandscapeHeight)
    {
      self.mapTitleLabel.lineBreakMode = NSLineBreakByTruncatingTail;
      self.mapTitleLabel.numberOfLines = 1;
    }
    else
    {
      self.mapTitleLabel.lineBreakMode = NSLineBreakByWordWrapping;
      self.mapTitleLabel.numberOfLines = 0;
    }
  }
  [super layoutSubviews];
}

#pragma mark - Properties

- (void)setState:(enum MWMDownloadMapRequestState)state
{
  _state = state;
  switch (state)
  {
    case MWMDownloadMapRequestStateDownload:
      self.progressViewWrapper.hidden = NO;
      self.mapTitleLabel.hidden = NO;
      self.downloadMapButton.hidden = YES;
      self.undefinedLocationLabel.hidden = YES;
      self.selectAnotherMapButton.hidden = YES;
      self.betweenButtonsSpace.constant = kButtonsCompactSpacing;
      break;
    case MWMDownloadMapRequestStateRequestLocation:
      self.progressViewWrapper.hidden = YES;
      self.mapTitleLabel.hidden = NO;
      self.downloadMapButton.hidden = NO;
      self.undefinedLocationLabel.hidden = YES;
      self.selectAnotherMapButton.hidden = NO;
      [self.selectAnotherMapButton setTitle:L(@"search_select_other_map") forState:UIControlStateNormal];
      [self.selectAnotherMapButton setTitleColor:[UIColor linkBlue] forState:UIControlStateNormal];
      [self.selectAnotherMapButton setTitleColor:[UIColor white] forState:UIControlStateHighlighted];
      [self.selectAnotherMapButton setBackgroundColor:[UIColor white] forState:UIControlStateNormal];
      [self.selectAnotherMapButton setBackgroundColor:[UIColor linkBlue] forState:UIControlStateHighlighted];
      self.betweenButtonsSpace.constant = kButtonsCompactSpacing;
      break;
    case MWMDownloadMapRequestStateRequestUnknownLocation:
      self.progressViewWrapper.hidden = YES;
      self.mapTitleLabel.hidden = YES;
      self.downloadMapButton.hidden = YES;
      self.undefinedLocationLabel.hidden = NO;
      self.selectAnotherMapButton.hidden = NO;
      [self.selectAnotherMapButton setTitle:L(@"search_select_map") forState:UIControlStateNormal];

      [self.selectAnotherMapButton setTitleColor:[UIColor white] forState:UIControlStateNormal];
      [self.selectAnotherMapButton setBackgroundColor:[UIColor linkBlue] forState:UIControlStateNormal];
      [self.selectAnotherMapButton setBackgroundColor:[UIColor linkBlueDark] forState:UIControlStateHighlighted];
      self.betweenButtonsSpace.constant = kButtonsLooseSpacing;
      break;
  }
}

@end