forked from organicmaps/organicmaps
[ios] Added update maps counter to menu button.
This commit is contained in:
parent
0ab08575cb
commit
e1bee1f4ab
9 changed files with 182 additions and 77 deletions
|
@ -8,11 +8,13 @@
|
|||
|
||||
#import "MWMSideMenuButtonDelegate.h"
|
||||
#import "MWMSideMenuDelegate.h"
|
||||
#import "MWMSideMenuDownloadBadge.h"
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface MWMSideMenuButton : UIButton
|
||||
@interface MWMSideMenuButton : UIView <MWMSideMenuDownloadBadgeOwner>
|
||||
|
||||
@property (weak, nonatomic) id<MWMSideMenuInformationDisplayProtocol, MWMSideMenuTapProtocol> delegate;
|
||||
@property (weak, nonatomic) MWMSideMenuDownloadBadge * downloadBadge;
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame __attribute__((unavailable("initWithFrame is not available")));
|
||||
- (instancetype)init __attribute__((unavailable("init is not available")));
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
@interface MWMSideMenuButton()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UIImageView * buttonImage;
|
||||
@property (nonatomic) CGRect defaultBounds;
|
||||
|
||||
@end
|
||||
|
@ -37,9 +38,9 @@
|
|||
{
|
||||
self.alpha = 1.0;
|
||||
}];
|
||||
UIImageView const * const animationIV = self.imageView;
|
||||
UIImageView const * const animationIV = self.buttonImage;
|
||||
NSString const * const imageName = @"btn_green_menu_";
|
||||
[self setImage:[UIImage imageNamed:[imageName stringByAppendingString:@"1"]] forState:UIControlStateNormal];
|
||||
self.buttonImage.image = [UIImage imageNamed:[imageName stringByAppendingString:@"1"]];
|
||||
static NSUInteger const animationImagesCount = 4;
|
||||
NSMutableArray * const animationImages = [NSMutableArray arrayWithCapacity:animationImagesCount];
|
||||
for (NSUInteger i = 0; i < animationImagesCount; ++i)
|
||||
|
@ -54,7 +55,7 @@
|
|||
- (void)layoutSubviews
|
||||
{
|
||||
[super layoutSubviews];
|
||||
self.bounds = self.defaultBounds;
|
||||
self.buttonImage.frame = self.bounds = self.defaultBounds;
|
||||
self.maxY = self.superview.height - 2.0 * kViewControlsOffsetToBounds;
|
||||
[self layoutXPosition:self.hidden];
|
||||
}
|
||||
|
@ -87,6 +88,7 @@
|
|||
|
||||
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
|
||||
{
|
||||
self.buttonImage.highlighted = YES;
|
||||
UITouch * touch = [touches anyObject];
|
||||
if (touch.tapCount > 1)
|
||||
[NSObject cancelPreviousPerformRequestsWithTarget:self];
|
||||
|
@ -94,10 +96,11 @@
|
|||
|
||||
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
|
||||
{
|
||||
self.buttonImage.highlighted = NO;
|
||||
UITouch * touch = [touches anyObject];
|
||||
if (touch.tapCount == 1)
|
||||
[self performSelector:@selector(handleSingleTap) withObject:nil afterDelay:0.1];
|
||||
else
|
||||
else if (touch.tapCount > 1)
|
||||
[self handleDoubleTap];
|
||||
}
|
||||
|
||||
|
@ -129,4 +132,13 @@
|
|||
}
|
||||
}
|
||||
|
||||
#pragma mark - Properties
|
||||
|
||||
- (void)setDownloadBadge:(MWMSideMenuDownloadBadge *)downloadBadge
|
||||
{
|
||||
_downloadBadge = downloadBadge;
|
||||
if (![downloadBadge.superview isEqual:self])
|
||||
[self addSubview:downloadBadge];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
//
|
||||
// MWMSideMenuDownloadBadge.h
|
||||
// Maps
|
||||
//
|
||||
// Created by Ilya Grechuhin on 14.07.15.
|
||||
// Copyright (c) 2015 MapsWithMe. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@class MWMSideMenuDownloadBadge;
|
||||
@protocol MWMSideMenuDownloadBadgeOwner <NSObject>
|
||||
|
||||
@property (weak, nonatomic) MWMSideMenuDownloadBadge * downloadBadge;
|
||||
|
||||
@end
|
||||
|
||||
@interface MWMSideMenuDownloadBadge : UIView
|
||||
|
||||
@property (nonatomic) NSUInteger outOfDateCount;
|
||||
|
||||
- (void)showAnimatedAfterDelay:(NSTimeInterval)delay;
|
||||
|
||||
@end
|
|
@ -0,0 +1,57 @@
|
|||
//
|
||||
// MWMSideMenuDownloadBadge.m
|
||||
// Maps
|
||||
//
|
||||
// Created by Ilya Grechuhin on 14.07.15.
|
||||
// Copyright (c) 2015 MapsWithMe. All rights reserved.
|
||||
//
|
||||
|
||||
#import "MWMMapViewControlsCommon.h"
|
||||
#import "MWMSideMenuDownloadBadge.h"
|
||||
#import "UIKitCategories.h"
|
||||
|
||||
@interface MWMSideMenuDownloadBadge ()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UIImageView * badgeBackground;
|
||||
@property (weak, nonatomic) IBOutlet UILabel * downloadCount;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MWMSideMenuDownloadBadge
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
self.maxX = self.superview.width;
|
||||
self.badgeBackground.frame = self.bounds;
|
||||
self.downloadCount.frame = self.bounds;
|
||||
[super layoutSubviews];
|
||||
}
|
||||
|
||||
- (void)showAnimatedAfterDelay:(NSTimeInterval)delay
|
||||
{
|
||||
self.hidden = YES;
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC)), dispatch_get_main_queue(), ^
|
||||
{
|
||||
[self expand];
|
||||
});
|
||||
}
|
||||
|
||||
- (void)expand
|
||||
{
|
||||
if (self.outOfDateCount == 0)
|
||||
return;
|
||||
self.hidden = NO;
|
||||
CATransform3D const zeroScale = CATransform3DScale(CATransform3DIdentity, 0.0, 0.0, 1.0);
|
||||
self.badgeBackground.layer.transform = self.downloadCount.layer.transform = zeroScale;
|
||||
self.badgeBackground.alpha = self.downloadCount.alpha = 0.0;
|
||||
self.badgeBackground.hidden = NO;
|
||||
self.downloadCount.hidden = NO;
|
||||
self.downloadCount.text = @(self.outOfDateCount).stringValue;
|
||||
[UIView animateWithDuration:framesDuration(4) animations:^
|
||||
{
|
||||
self.badgeBackground.layer.transform = self.downloadCount.layer.transform = CATransform3DIdentity;
|
||||
self.badgeBackground.alpha = self.downloadCount.alpha = 1.0;
|
||||
}];
|
||||
}
|
||||
|
||||
@end
|
|
@ -16,6 +16,7 @@
|
|||
#import "MWMSideMenuButton.h"
|
||||
#import "MWMSideMenuButtonDelegate.h"
|
||||
#import "MWMSideMenuDelegate.h"
|
||||
#import "MWMSideMenuDownloadBadge.h"
|
||||
#import "MWMSideMenuManager.h"
|
||||
#import "MWMSideMenuView.h"
|
||||
#import "SettingsAndMoreVC.h"
|
||||
|
@ -34,6 +35,7 @@ extern NSString * const kAlohalyticsTapEventKey;
|
|||
@property (weak, nonatomic) MapViewController * controller;
|
||||
@property (nonatomic) IBOutlet MWMSideMenuButton * menuButton;
|
||||
@property (nonatomic) IBOutlet MWMSideMenuView * sideMenu;
|
||||
@property (nonatomic) IBOutlet MWMSideMenuDownloadBadge * downloadBadge;
|
||||
|
||||
@end
|
||||
|
||||
|
@ -177,6 +179,17 @@ extern NSString * const kAlohalyticsTapEventKey;
|
|||
}];
|
||||
}
|
||||
|
||||
- (void)addDownloadBadgeToView:(UIView<MWMSideMenuDownloadBadgeOwner> *)view
|
||||
{
|
||||
int const count = GetFramework().GetCountryTree().GetActiveMapLayout().GetOutOfDateCount();
|
||||
if (count > 0)
|
||||
{
|
||||
self.downloadBadge.outOfDateCount = count;
|
||||
view.downloadBadge = self.downloadBadge;
|
||||
[self.downloadBadge showAnimatedAfterDelay:framesDuration(10)];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Properties
|
||||
|
||||
- (void)setState:(MWMSideMenuState)state
|
||||
|
@ -187,11 +200,12 @@ extern NSString * const kAlohalyticsTapEventKey;
|
|||
{
|
||||
case MWMSideMenuStateActive:
|
||||
[Alohalytics logEvent:kAlohalyticsTapEventKey withValue:@"menu"];
|
||||
self.sideMenu.outOfDateCount = GetFramework().GetCountryTree().GetActiveMapLayout().GetOutOfDateCount();
|
||||
[self addDownloadBadgeToView:self.sideMenu];
|
||||
[self showMenu];
|
||||
[self.sideMenu setup];
|
||||
break;
|
||||
case MWMSideMenuStateInactive:
|
||||
[self addDownloadBadgeToView:self.menuButton];
|
||||
if (_state == MWMSideMenuStateActive)
|
||||
{
|
||||
[self.menuButton setHidden:NO animated:NO];
|
||||
|
|
|
@ -6,14 +6,16 @@
|
|||
// Copyright (c) 2015 MapsWithMe. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "MWMSideMenuDelegate.h"
|
||||
#import "MWMSideMenuDownloadBadge.h"
|
||||
#import "UIKitCategories.h"
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface MWMSideMenuView : UIView
|
||||
@interface MWMSideMenuView : SolidTouchView <MWMSideMenuDownloadBadgeOwner>
|
||||
|
||||
@property (weak, nonatomic, readonly) IBOutlet UIView * dimBackground;
|
||||
@property (weak, nonatomic) id<MWMSideMenuInformationDisplayProtocol> delegate;
|
||||
@property (nonatomic) NSUInteger outOfDateCount;
|
||||
@property (weak, nonatomic) MWMSideMenuDownloadBadge * downloadBadge;
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame __attribute__((unavailable("initWithFrame is not available")));
|
||||
- (instancetype)init __attribute__((unavailable("init is not available")));
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
//
|
||||
|
||||
#import "MWMMapViewControlsCommon.h"
|
||||
#import "MWMSideMenuDownloadBadge.h"
|
||||
#import "MWMSideMenuView.h"
|
||||
#import "UIKitCategories.h"
|
||||
|
||||
|
@ -26,9 +27,6 @@
|
|||
@property (weak, nonatomic) IBOutlet UIButton * shareLocationLabel;
|
||||
@property (weak, nonatomic) IBOutlet UIButton * searchLabel;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UIImageView * downloadBadge;
|
||||
@property (weak, nonatomic) IBOutlet UILabel * downloadCount;
|
||||
|
||||
@property (nonatomic) NSArray * buttons;
|
||||
@property (nonatomic) NSArray * labels;
|
||||
|
||||
|
@ -52,12 +50,6 @@
|
|||
self.labels = @[self.shareLocationLabel, self.settingsLabel, self.downloadMapsLabel, self.bookmarksLabel, self.searchLabel];
|
||||
}
|
||||
|
||||
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
|
||||
{
|
||||
// Prevent super call to stop event propagation
|
||||
// [super touchesBegan:touches withEvent:event];
|
||||
}
|
||||
|
||||
- (void)setup
|
||||
{
|
||||
self.contentScaleFactor = self.superview.contentScaleFactor;
|
||||
|
@ -73,10 +65,8 @@
|
|||
animationIV.animationDuration = framesDuration(animationIV.animationImages.count);
|
||||
animationIV.animationRepeatCount = 1;
|
||||
[animationIV startAnimating];
|
||||
self.downloadBadge.hidden = YES;
|
||||
self.downloadCount.hidden = YES;
|
||||
[self updateMenuBackground];
|
||||
[self updateMenuUI];
|
||||
[self showAnimation];
|
||||
[self setNeedsLayout];
|
||||
}
|
||||
|
||||
|
@ -149,11 +139,6 @@
|
|||
self.bookmarksLabel.maxX = rightBound;
|
||||
self.searchLabel.maxX = rightBound;
|
||||
|
||||
self.downloadBadge.maxX = self.downloadMapsButton.maxX;
|
||||
self.downloadCount.maxX = self.downloadMapsButton.maxX;
|
||||
self.downloadBadge.minY = self.downloadMapsButton.minY;
|
||||
self.downloadCount.minY = self.downloadMapsButton.minY;
|
||||
|
||||
m2::PointD const pivot(self.searchButton.minX * self.contentScaleFactor - 2.0 * kViewControlsOffsetToBounds, self.searchButton.maxY * self.contentScaleFactor - kViewControlsOffsetToBounds);
|
||||
[self.delegate setRulerPivot:pivot];
|
||||
[self.delegate setCopyrightLabelPivot:pivot];
|
||||
|
@ -171,41 +156,14 @@
|
|||
}];
|
||||
}
|
||||
|
||||
- (void)updateMenuUI
|
||||
{
|
||||
[self showAnimation];
|
||||
[self performSelector:@selector(updateMenuOutOfDateBadge) withObject:nil afterDelay:framesDuration(10)];
|
||||
}
|
||||
|
||||
- (void)updateMenuOutOfDateBadge
|
||||
{
|
||||
if (self.outOfDateCount == 0)
|
||||
return;
|
||||
CATransform3D const zeroScale = CATransform3DScale(CATransform3DIdentity, 0.0, 0.0, 1.0);
|
||||
self.downloadBadge.layer.transform = zeroScale;
|
||||
self.downloadCount.layer.transform = zeroScale;
|
||||
self.downloadBadge.alpha = 0.0;
|
||||
self.downloadCount.alpha = 0.0;
|
||||
self.downloadBadge.hidden = NO;
|
||||
self.downloadCount.hidden = NO;
|
||||
self.downloadCount.text = @(self.outOfDateCount).stringValue;
|
||||
[UIView animateWithDuration:framesDuration(4) animations:^
|
||||
{
|
||||
self.downloadBadge.layer.transform = CATransform3DIdentity;
|
||||
self.downloadCount.layer.transform = CATransform3DIdentity;
|
||||
self.downloadBadge.alpha = 1.0;
|
||||
self.downloadCount.alpha = 1.0;
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)showAnimation
|
||||
{
|
||||
[self.labels enumerateObjectsUsingBlock:^(UIButton * label, NSUInteger idx, BOOL *stop)
|
||||
[self.labels enumerateObjectsUsingBlock:^(UIButton * label, NSUInteger idx, BOOL * stop)
|
||||
{
|
||||
label.alpha = 0.0;
|
||||
}];
|
||||
|
||||
[self.buttons enumerateObjectsUsingBlock:^(UIButton * button, NSUInteger idx, BOOL *stop)
|
||||
[self.buttons enumerateObjectsUsingBlock:^(UIButton * button, NSUInteger idx, BOOL * stop)
|
||||
{
|
||||
button.alpha = 0.0;
|
||||
}];
|
||||
|
@ -249,4 +207,13 @@
|
|||
[CATransaction commit];
|
||||
}
|
||||
|
||||
#pragma mark - Properties
|
||||
|
||||
- (void)setDownloadBadge:(MWMSideMenuDownloadBadge *)downloadBadge
|
||||
{
|
||||
_downloadBadge = downloadBadge;
|
||||
if (![downloadBadge.superview isEqual:self.downloadMapsButton])
|
||||
[self.downloadMapsButton addSubview:downloadBadge];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
|
||||
|
@ -7,7 +7,8 @@
|
|||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MWMSideMenuManager">
|
||||
<connections>
|
||||
<outlet property="menuButton" destination="cTK-Dt-qgQ" id="g1C-K4-dov"/>
|
||||
<outlet property="downloadBadge" destination="ap1-Ml-Dfy" id="bpF-Z1-YAt"/>
|
||||
<outlet property="menuButton" destination="Mu5-FL-O9o" id="rNf-Pw-Kqq"/>
|
||||
<outlet property="sideMenu" destination="i5M-Pr-FkT" id="p49-Bn-Hkx"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
|
@ -111,17 +112,6 @@
|
|||
<action selector="menuActionDownloadMaps" destination="-1" eventType="touchUpInside" id="mRz-aq-RBf"/>
|
||||
</connections>
|
||||
</button>
|
||||
<imageView hidden="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="img_counter" id="AIs-PS-5d2" userLabel="Download Badge">
|
||||
<rect key="frame" x="288" y="376" width="24" height="24"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="99" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="yPG-HI-11x" userLabel="Download Count">
|
||||
<rect key="frame" x="288" y="376" width="24" height="24"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" lineBreakMode="wordWrap" id="mWD-fB-THv" userLabel="Bookmarks Label">
|
||||
<rect key="frame" x="8" y="440" width="240" height="56"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
|
@ -192,8 +182,6 @@
|
|||
<outlet property="bookmarksButton" destination="ZEc-sk-zsN" id="KjM-Yb-Jus"/>
|
||||
<outlet property="bookmarksLabel" destination="mWD-fB-THv" id="gIu-lT-I05"/>
|
||||
<outlet property="dimBackground" destination="4iS-Dh-FAa" id="ww7-Md-QuY"/>
|
||||
<outlet property="downloadBadge" destination="AIs-PS-5d2" id="lUs-mB-j7R"/>
|
||||
<outlet property="downloadCount" destination="yPG-HI-11x" id="HX1-3s-fpq"/>
|
||||
<outlet property="downloadMapsButton" destination="pLL-6e-i3i" id="Wd7-aB-nMt"/>
|
||||
<outlet property="downloadMapsLabel" destination="joI-Q5-Iyo" id="hzF-K0-klD"/>
|
||||
<outlet property="searchButton" destination="rpT-xg-5E2" id="uAa-2k-Vdf"/>
|
||||
|
@ -205,16 +193,49 @@
|
|||
</connections>
|
||||
<point key="canvasLocation" x="301" y="305"/>
|
||||
</view>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="cTK-Dt-qgQ" userLabel="Show Menu Button" customClass="MWMSideMenuButton">
|
||||
<view contentMode="scaleToFill" id="ap1-Ml-Dfy" userLabel="Download Badge" customClass="MWMSideMenuDownloadBadge">
|
||||
<rect key="frame" x="0.0" y="0.0" width="24" height="24"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="img_counter" id="AIs-PS-5d2" userLabel="Background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="24" height="24"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="99" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="yPG-HI-11x" userLabel="Download Count">
|
||||
<rect key="frame" x="0.0" y="0.0" width="24" height="24"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<nil key="simulatedStatusBarMetrics"/>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<connections>
|
||||
<outlet property="badgeBackground" destination="AIs-PS-5d2" id="n7J-su-7r7"/>
|
||||
<outlet property="downloadCount" destination="yPG-HI-11x" id="fr5-Z4-OWh"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="81" y="467"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="Mu5-FL-O9o" customClass="MWMSideMenuButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="56" height="56"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="btn_green_menu_1" highlightedImage="btn_green_menu_pressed" id="FPt-Vy-4Lm" userLabel="buttonImage">
|
||||
<rect key="frame" x="0.0" y="0.0" width="56" height="56"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<state key="normal" image="btn_green_menu_1">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="btn_green_menu_pressed"/>
|
||||
<point key="canvasLocation" x="48" y="561"/>
|
||||
</button>
|
||||
<nil key="simulatedStatusBarMetrics"/>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<connections>
|
||||
<outlet property="buttonImage" destination="FPt-Vy-4Lm" id="etF-R1-wPc"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="65" y="561"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="btn_green_bookmarks" width="56" height="56"/>
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
28AD73880D9D96C1002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD73870D9D96C1002E5188 /* MainWindow.xib */; };
|
||||
340F24631B14910500F874CD /* RouteState.mm in Sources */ = {isa = PBXBuildFile; fileRef = 340F24621B14910500F874CD /* RouteState.mm */; };
|
||||
34287FDC1B3D7C4800F9959C /* libFlurry_6.4.0.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 34287FDB1B3D7C4800F9959C /* libFlurry_6.4.0.a */; };
|
||||
3428BC131B55477E00C85B30 /* MWMSideMenuDownloadBadge.m in Sources */ = {isa = PBXBuildFile; fileRef = 3428BC121B55477E00C85B30 /* MWMSideMenuDownloadBadge.m */; };
|
||||
342AD76F1B53D30C00E0B997 /* UIButton+RuntimeAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = 342AD76E1B53D30C00E0B997 /* UIButton+RuntimeAttributes.m */; };
|
||||
342AD7721B53D32F00E0B997 /* UIView+RuntimeAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = 342AD7711B53D32F00E0B997 /* UIView+RuntimeAttributes.m */; };
|
||||
343F262E1AEFC4A300388A6D /* MWMFrameworkUtils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 343F262D1AEFC4A300388A6D /* MWMFrameworkUtils.mm */; };
|
||||
|
@ -356,6 +357,8 @@
|
|||
340F24621B14910500F874CD /* RouteState.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RouteState.mm; sourceTree = "<group>"; };
|
||||
340F24641B15F01D00F874CD /* MWMSideMenuDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MWMSideMenuDelegate.h; sourceTree = "<group>"; };
|
||||
34287FDB1B3D7C4800F9959C /* libFlurry_6.4.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libFlurry_6.4.0.a; path = Statistics/libFlurry_6.4.0.a; sourceTree = "<group>"; };
|
||||
3428BC111B55477E00C85B30 /* MWMSideMenuDownloadBadge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMSideMenuDownloadBadge.h; sourceTree = "<group>"; };
|
||||
3428BC121B55477E00C85B30 /* MWMSideMenuDownloadBadge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MWMSideMenuDownloadBadge.m; sourceTree = "<group>"; };
|
||||
342AD76D1B53D30C00E0B997 /* UIButton+RuntimeAttributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIButton+RuntimeAttributes.h"; sourceTree = "<group>"; };
|
||||
342AD76E1B53D30C00E0B997 /* UIButton+RuntimeAttributes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIButton+RuntimeAttributes.m"; sourceTree = "<group>"; };
|
||||
342AD7701B53D32F00E0B997 /* UIView+RuntimeAttributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+RuntimeAttributes.h"; sourceTree = "<group>"; };
|
||||
|
@ -1160,6 +1163,8 @@
|
|||
34BC72191B0DECAE0012A34B /* MWMSideMenuView.mm */,
|
||||
34BC721A1B0DECAE0012A34B /* MWMSideMenuViews.xib */,
|
||||
340F24641B15F01D00F874CD /* MWMSideMenuDelegate.h */,
|
||||
3428BC111B55477E00C85B30 /* MWMSideMenuDownloadBadge.h */,
|
||||
3428BC121B55477E00C85B30 /* MWMSideMenuDownloadBadge.m */,
|
||||
);
|
||||
path = SideMenu;
|
||||
sourceTree = "<group>";
|
||||
|
@ -2239,6 +2244,7 @@
|
|||
F6588E371B15D87A00EE1E58 /* MWMBookmarkColorCell.mm in Sources */,
|
||||
F6D409FA1B319BD70041730F /* ContextViews.mm in Sources */,
|
||||
349A357A1B53D4C9009677EE /* MWMCircularProgress.m in Sources */,
|
||||
3428BC131B55477E00C85B30 /* MWMSideMenuDownloadBadge.m in Sources */,
|
||||
97A8000C18B21363000C07A2 /* SearchView.mm in Sources */,
|
||||
FAA5C2A2144F135F005337F6 /* LocationManager.mm in Sources */,
|
||||
F66A8FAC1B09F137001B9C97 /* MWMiPadPlacePage.mm in Sources */,
|
||||
|
|
Loading…
Add table
Reference in a new issue