diff options
Diffstat (limited to 'platform/ios/app/MBXCustomCalloutView.m')
-rw-r--r-- | platform/ios/app/MBXCustomCalloutView.m | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/platform/ios/app/MBXCustomCalloutView.m b/platform/ios/app/MBXCustomCalloutView.m deleted file mode 100644 index 2d70e8b7b3..0000000000 --- a/platform/ios/app/MBXCustomCalloutView.m +++ /dev/null @@ -1,110 +0,0 @@ -#import "MBXCustomCalloutView.h" - -static CGFloat const tipHeight = 10.0; -static CGFloat const tipWidth = 10.0; - -@interface MBXCustomCalloutView () - -@property (strong, nonatomic) UILabel *mainLabel; - -@end - -@implementation MBXCustomCalloutView { - id <MGLAnnotation> _representedObject; - UIView *_leftAccessoryView; - UIView *_rightAccessoryView; - __weak id <MGLCalloutViewDelegate> _delegate; -} - -@synthesize representedObject = _representedObject; -@synthesize anchoredToAnnotation = _anchoredToAnnotation; -@synthesize dismissesAutomatically = _dismissesAutomatically; -@synthesize leftAccessoryView = _leftAccessoryView; -@synthesize rightAccessoryView = _rightAccessoryView; -@synthesize delegate = _delegate; - -- (instancetype)initWithFrame:(CGRect)frame -{ - self = [super initWithFrame:frame]; - if (self) - { - self.backgroundColor = [UIColor clearColor]; - _mainLabel = [[UILabel alloc] initWithFrame: CGRectZero]; - _mainLabel.backgroundColor = [UIColor clearColor]; - - [self addSubview: _mainLabel]; - } - return self; -} - -#pragma mark - API - -- (void)presentCalloutFromRect:(CGRect)rect inView:(nonnull UIView *)view constrainedToRect:(__unused CGRect)constrainedRect animated:(BOOL)animated -{ - if ([self.delegate respondsToSelector:@selector(calloutViewWillAppear:)]) - { - [self.delegate performSelector:@selector(calloutViewWillAppear:) withObject:self]; - } - - [view addSubview:self]; - // prepare title label - if ([self.representedObject respondsToSelector:@selector(title)]) - { - self.mainLabel.text = self.representedObject.title; - [self.mainLabel sizeToFit]; - } - // prepare our frame - CGFloat frameWidth = self.mainLabel.bounds.size.width; - CGFloat frameHeight = self.mainLabel.bounds.size.height * 2.0; - CGFloat frameOriginX = rect.origin.x + (rect.size.width/2.0) - (frameWidth/2.0); - CGFloat frameOriginY = rect.origin.y - frameHeight; - self.frame = CGRectMake(frameOriginX, frameOriginY, - frameWidth, frameHeight); - - if ([self.delegate respondsToSelector:@selector(calloutViewDidAppear:)]) - { - [self.delegate performSelector:@selector(calloutViewDidAppear:) withObject:self]; - } -} - -- (void)setCenter:(CGPoint)center { - center.y = center.y - CGRectGetMidY(self.bounds); - [super setCenter:center]; -} - -- (void)dismissCalloutAnimated:(BOOL)animated -{ - if (self.superview) - [self removeFromSuperview]; -} - -#pragma mark - internals - -- (void)drawRect:(CGRect)rect -{ - UIColor *fillColor = [UIColor colorWithWhite:0.7 alpha:1.0]; - - CGFloat tipLeft = rect.origin.x + (rect.size.width / 2.0) - (tipWidth / 2.0); - CGPoint tipBottom = CGPointMake(rect.origin.x + (rect.size.width / 2.0), rect.origin.y +rect.size.height); - CGFloat heightWithoutTip = rect.size.height - tipHeight; - - // draw the white background with tip - CGContextRef ctxt = UIGraphicsGetCurrentContext(); - - CGMutablePathRef tipPath = CGPathCreateMutable(); - CGPathMoveToPoint(tipPath, NULL, 0, 0); - CGPathAddLineToPoint(tipPath, NULL, 0, heightWithoutTip); - CGPathAddLineToPoint(tipPath, NULL, tipLeft, heightWithoutTip); - CGPathAddLineToPoint(tipPath, NULL, tipBottom.x, tipBottom.y); - CGPathAddLineToPoint(tipPath, NULL, tipLeft + tipWidth, heightWithoutTip); - CGPathAddLineToPoint(tipPath, NULL, CGRectGetWidth(rect), heightWithoutTip); - CGPathAddLineToPoint(tipPath, NULL, CGRectGetWidth(rect), 0); - CGPathCloseSubpath(tipPath); - - [fillColor setFill]; - CGContextAddPath(ctxt, tipPath); - CGContextFillPath(ctxt); - CGPathRelease(tipPath); -} - -@end |