Navigation Menu

Skip to content

Commit

Permalink
Merge branch 'karl'
Browse files Browse the repository at this point in the history
  • Loading branch information
darwin committed Oct 24, 2009
2 parents d5ce878 + fa11d66 commit 966a051
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 27 deletions.
4 changes: 4 additions & 0 deletions src/Visor.h
Expand Up @@ -27,6 +27,10 @@
BOOL ignoreResizeNotifications;
id runningApplicationClass;
}

- (NSWindow *)window;
- (BOOL)isHidden;

- (IBAction)pinAction:(id)sender;
- (IBAction)toggleVisor:(id)sender;
- (IBAction)showPrefs:(id)sender;
Expand Down
109 changes: 82 additions & 27 deletions src/Visor.m
Expand Up @@ -10,6 +10,8 @@ @interface NSEvent (Visor)
- (NSUInteger)qsbModifierFlags;
@end

#pragma mark -

@implementation NSEvent (QSBApplicationEventAdditions)

- (NSUInteger)qsbModifierFlags {
Expand All @@ -23,20 +25,22 @@ - (NSUInteger)qsbModifierFlags {

@end

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// main entry point
#pragma mark - main entry point -

int main(int argc, char *argv[]) {
return NSApplicationMain(argc, (const char **) argv);
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VisorScreenTransformer - helper class for properties dialog
#pragma mark -
#pragma mark - VisorScreenTransformer - helper class for properties dialog -
#pragma mark -

@interface VisorScreenTransformer: NSValueTransformer {
}
@end

#pragma mark -

@implementation VisorScreenTransformer

+ (Class)transformedValueClass {
Expand All @@ -62,8 +66,9 @@ - (id)reverseTransformedValue:(id)value {

@end

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// NSWindowController monkey patching
#pragma mark -
#pragma mark - NSWindowController monkey patching -
#pragma mark -

@implementation NSWindowController (Visor)

Expand Down Expand Up @@ -188,12 +193,13 @@ - (id)Visor_TTWindowController_newTabWithProfile:(id)arg1 command:(id)arg2 runAs

@end

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// NSApplication monkey patching
#pragma mark -
#pragma mark - NSApplication monkey patching -
#pragma mark -

@implementation NSApplication (Visor)

- (void)Visor_sendEvent:(NSEvent *)theEvent {
- (void)Visor_TTApplication_sendEvent:(NSEvent *)theEvent {
NSUInteger type = [theEvent type];
if (type == NSFlagsChanged) {
Visor* visor = [Visor sharedInstance];
Expand All @@ -202,20 +208,40 @@ - (void)Visor_sendEvent:(NSEvent *)theEvent {
Visor* visor = [Visor sharedInstance];
[visor keysChangedWhileActive:theEvent];
}
[self Visor_sendEvent:theEvent];
[self Visor_TTApplication_sendEvent:theEvent];
}

- (BOOL)Visor_TTAplication_applicationShouldHandleReopen:(id)fp8 hasVisibleWindows:(BOOL)fp12 {
- (BOOL)Visor_TTApplication_applicationShouldHandleReopen:(id)fp8 hasVisibleWindows:(BOOL)fp12 {
LOG(@"Visor_TTAplication_applicationShouldHandleReopen");
Visor* visor = [Visor sharedInstance];
[visor onReopenVisor];
return [self Visor_TTAplication_applicationShouldHandleReopen:fp8 hasVisibleWindows:(BOOL)fp12];
Visor *visor = [Visor sharedInstance];

if (![visor reopenVisor] && ![self mainTerminalWindow]) {
LOG(@"-- > Visor_TTAplication_applicationShouldHandleReopen got here");
[self newShell:nil];
}

return [self Visor_TTApplication_applicationShouldHandleReopen:fp8 hasVisibleWindows:(BOOL)fp12];
}

- (id)Visor_TTApplication_mainTerminalWindow {
LOG(@"Visor_TTApplication_mainTerminalWindow");

BOOL showOnReopen = [[NSUserDefaults standardUserDefaults] boolForKey:@"VisorShowOnReopen"];
id currentWindow = [self Visor_TTApplication_mainTerminalWindow];
Visor *visor = [Visor sharedInstance];

if (!showOnReopen && [[visor window] isEqual:currentWindow]) {
currentWindow = nil;
}

return currentWindow;
}

@end

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// NSWindow monkey patching
#pragma mark -
#pragma mark - NSWindow monkey patching -
#pragma mark -

@implementation NSWindow (Visor)

Expand All @@ -236,22 +262,45 @@ - (id) Visor_initWithContentRect: (NSRect) contentRect styleMask: (unsigned int)

- (BOOL) Visor_canBecomeKeyWindow {
LOG(@"canBecomeKeyWindow");
return YES;
BOOL canBecomeKeyWindow = YES;

Visor *visor = [Visor sharedInstance];
if ([[visor window] isEqual:self] && [visor isHidden]) {
canBecomeKeyWindow = NO;
}

return canBecomeKeyWindow;
}

- (BOOL) Visor_canBecomeMainWindow {
LOG(@"canBecomeMainWindow");
return YES;
BOOL canBecomeMainWindow = YES;

Visor *visor = [Visor sharedInstance];
if ([[visor window] isEqual:self] && [visor isHidden]) {
canBecomeMainWindow = NO;
}

return canBecomeMainWindow;
}

@end

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Visor implementation
#pragma mark -
#pragma mark - Visor implementation -
#pragma mark -

@implementation Visor

-(NSToolbarItem*)getVisorToolbarItem {
- (NSWindow *)window {
return window;
}

- (BOOL)isHidden {
return isHidden;
}

- (NSToolbarItem*)getVisorToolbarItem {
LOG(@"getVisorToolbarItem");
NSToolbar* sourceToolbar = [settingsWindow toolbar];
NSToolbarItem* toolbarItem = [[sourceToolbar items] objectAtIndex:0];
Expand Down Expand Up @@ -350,8 +399,10 @@ + (void) install {
[NSClassFromString(@"TTWindow") jr_swizzleMethod:@selector(canBecomeKeyWindow) withMethod:@selector(Visor_canBecomeKeyWindow) error:NULL];
[NSClassFromString(@"TTWindow") jr_swizzleMethod:@selector(canBecomeMainWindow) withMethod:@selector(Visor_canBecomeMainWindow) error:NULL];

[NSClassFromString(@"TTApplication") jr_swizzleMethod:@selector(sendEvent:) withMethod:@selector(Visor_sendEvent:) error:NULL];
[NSClassFromString(@"TTApplication") jr_swizzleMethod:@selector(applicationShouldHandleReopen:hasVisibleWindows:) withMethod:@selector(Visor_TTAplication_applicationShouldHandleReopen:hasVisibleWindows:) error:NULL];
Class applicationClass = NSClassFromString(@"TTApplication");
[applicationClass jr_swizzleMethod:@selector(sendEvent:) withMethod:@selector(Visor_TTApplication_sendEvent:) error:NULL];
[applicationClass jr_swizzleMethod:@selector(applicationShouldHandleReopen:hasVisibleWindows:) withMethod:@selector(Visor_TTApplication_applicationShouldHandleReopen:hasVisibleWindows:) error:NULL];
[applicationClass jr_swizzleMethod:@selector(mainTerminalWindow) withMethod:@selector(Visor_TTApplication_mainTerminalWindow) error:NULL];

[NSClassFromString(@"TTAppPrefsController") jr_swizzleMethod:@selector(windowDidLoad) withMethod:@selector(Visor_TTAppPrefsController_windowDidLoad) error:NULL];
[NSClassFromString(@"TTAppPrefsController") jr_swizzleMethod:@selector(toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:) withMethod:@selector(Visor_TTAppPrefsController_toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:) error:NULL];
Expand Down Expand Up @@ -902,10 +953,14 @@ - (void)restorePreviouslyActiveApp {
}
}

- (void)onReopenVisor {
bool showOnReopen = [[NSUserDefaults standardUserDefaults] boolForKey:@"VisorShowOnReopen"];
if (!showOnReopen) return;
[self showVisor:NO];
- (BOOL)reopenVisor {
BOOL showOnReopen = [[NSUserDefaults standardUserDefaults] boolForKey:@"VisorShowOnReopen"];

if (showOnReopen) {
[self showVisor:NO];
}

return showOnReopen;
}

- (void)showVisor:(BOOL)fast {
Expand Down

0 comments on commit 966a051

Please sign in to comment.