mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-05 16:58:59 +00:00
55 lines
1.9 KiB
Mathematica
55 lines
1.9 KiB
Mathematica
![]() |
//
|
||
|
// EventWindow.m
|
||
|
// NewsBlur
|
||
|
//
|
||
|
// Created by Samuel Clay on 9/17/14.
|
||
|
// Copyright (c) 2014 NewsBlur. All rights reserved.
|
||
|
//
|
||
|
|
||
|
#import "EventWindow.h"
|
||
|
|
||
|
@implementation EventWindow
|
||
|
|
||
|
- (void)tapAndHoldAction:(NSTimer*)timer
|
||
|
{
|
||
|
contextualMenuTimer = nil;
|
||
|
NSDictionary *coord = [NSDictionary dictionaryWithObjectsAndKeys:
|
||
|
[NSNumber numberWithFloat:tapLocation.x],@"x",
|
||
|
[NSNumber numberWithFloat:tapLocation.y],@"y",nil];
|
||
|
[[NSNotificationCenter defaultCenter] postNotificationName:@"TapAndHoldNotification" object:coord];
|
||
|
}
|
||
|
|
||
|
- (void)sendEvent:(UIEvent *)event {
|
||
|
NSSet *touches = [event touchesForWindow:self];
|
||
|
|
||
|
[super sendEvent:event]; // Call super to make sure the event is processed as usual
|
||
|
|
||
|
if ([touches count] == 1) { // We're only interested in one-finger events
|
||
|
UITouch *touch = [touches anyObject];
|
||
|
|
||
|
switch ([touch phase]) {
|
||
|
case UITouchPhaseBegan: // A finger touched the screen
|
||
|
tapLocation = [touch locationInView:self];
|
||
|
[contextualMenuTimer invalidate];
|
||
|
contextualMenuTimer = [NSTimer scheduledTimerWithTimeInterval:0.8
|
||
|
target:self selector:@selector(tapAndHoldAction:)
|
||
|
userInfo:nil repeats:NO];
|
||
|
break;
|
||
|
|
||
|
case UITouchPhaseStationary:
|
||
|
break;
|
||
|
|
||
|
case UITouchPhaseEnded:
|
||
|
case UITouchPhaseMoved:
|
||
|
case UITouchPhaseCancelled:
|
||
|
[contextualMenuTimer invalidate];
|
||
|
contextualMenuTimer = nil;
|
||
|
break;
|
||
|
}
|
||
|
} else { // Multiple fingers are touching the screen
|
||
|
[contextualMenuTimer invalidate];
|
||
|
contextualMenuTimer = nil;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@end
|