Added {CLEARFIELD} to autotype commands. Stubbs for {DELAY X}

This commit is contained in:
michael starke
2014-08-20 12:46:02 +02:00
parent 04f519bd52
commit 9458c5f8a0
6 changed files with 114 additions and 3 deletions

14
MacPass/MPAutotypeClear.h Normal file
View File

@@ -0,0 +1,14 @@
//
// MPAutotypeClear.h
// MacPass
//
// Created by Michael Starke on 20/08/14.
// Copyright (c) 2014 HicknHack Software GmbH. All rights reserved.
//
#import "MPAutotypeCommand.h"
@interface MPAutotypeClear : MPAutotypeCommand
@end

25
MacPass/MPAutotypeClear.m Normal file
View File

@@ -0,0 +1,25 @@
//
// MPAutotypeClear.m
// MacPass
//
// Created by Michael Starke on 20/08/14.
// Copyright (c) 2014 HicknHack Software GmbH. All rights reserved.
//
#import "MPAutotypeClear.h"
#import "MPKeyMapper.h"
#import <Carbon/Carbon.h>
@implementation MPAutotypeClear
- (void)execute {
CGKeyCode keyCode = [MPKeyMapper keyCodeForCharacter:@"A"];
if(keyCode == kMPUnknownKeyCode) {
NSLog(@"Unable to generate key code for 'A'");
return;
}
[self sendPressKey:keyCode modifierFlags:kCGEventFlagMaskCommand];
[self sendPressKey:kVK_Delete modifierFlags:0];
}
@end

View File

@@ -10,6 +10,8 @@
#import "MPAutotypePaste.h"
#import "MPAutotypeKeyPress.h"
#import "MPAutotypeClear.h"
#import "MPAutotypeDelay.h"
#import "MPAutotypeContext.h"
#import "MPKeyMapper.h"
@@ -163,19 +165,26 @@
}
+ (void)appendCommandForString:(NSString *)commandString toCommands:(NSMutableArray *)commands activeModifer:(CGEventFlags)flags {
if(!commandString) {
if(nil == commandString) {
return;
}
/* TODO: Test for special Commands */
/* TODO: fall back to paste if nothing matches */
NSString *delayPrefix = [[NSString alloc] initWithFormat:@"{%@", kKPKAutotypeDelay];
NSNumber *keyCodeNumber = [self keypressCommands][commandString];
if(keyCodeNumber) {
if(nil != keyCodeNumber) {
CGKeyCode keyCode = [keyCodeNumber keyCodeValue];
[commands addObject:[[MPAutotypeKeyPress alloc] initWithModifierMask:flags keyCode:keyCode]];
}
else if([kKPKAutotypeClearField isEqualToString:commandString]) {
[commands addObject:[[MPAutotypeClear alloc] init]];
}
else if([commandString hasPrefix:delayPrefix]){
[commands addObject:[[MPAutotypeDelay alloc] initWithDelay:5]];
/* TODO: find the delay */
}
else {
[self appendPasteCommandForContent:commandString toCommands:commands];
}

15
MacPass/MPAutotypeDelay.h Normal file
View File

@@ -0,0 +1,15 @@
//
// MPAutotypeDelay.h
// MacPass
//
// Created by Michael Starke on 20/08/14.
// Copyright (c) 2014 HicknHack Software GmbH. All rights reserved.
//
#import "MPAutotypeCommand.h"
@interface MPAutotypeDelay : MPAutotypeCommand
- (instancetype)initWithDelay:(NSUInteger)delay;
@end

36
MacPass/MPAutotypeDelay.m Normal file
View File

@@ -0,0 +1,36 @@
//
// MPAutotypeDelay.m
// MacPass
//
// Created by Michael Starke on 20/08/14.
// Copyright (c) 2014 HicknHack Software GmbH. All rights reserved.
//
#import "MPAutotypeDelay.h"
@interface MPAutotypeDelay () {
@private
NSUInteger _delay;
}
@end
@implementation MPAutotypeDelay
- (id)init {
self = [self initWithDelay:0];
return self;
}
- (instancetype)initWithDelay:(NSUInteger)delay {
self = [super init];
if(self) {
_delay = delay;
}
return self;
}
- (void)execute {
usleep((useconds_t)(_delay*1000*1000));
}
@end