Skip to content

Commit

Permalink
Initial Fullscreen editor support
Browse files Browse the repository at this point in the history
  • Loading branch information
ttscoff committed Jan 18, 2011
1 parent 509772c commit dae2a38
Show file tree
Hide file tree
Showing 9 changed files with 226 additions and 6 deletions.
13 changes: 13 additions & 0 deletions Acknowledgments.txt
Expand Up @@ -367,3 +367,16 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

This is the standard "new" BSD license:
http://www.opensource.org/licenses/bsd-license.php

--

FullscreenImage

Created by Matt Gallagher on 2009/08/14.
Copyright 2009 Matt Gallagher. All rights reserved.

Permission is given to use this source code file, free of charge, in any
project, commercial or otherwise, entirely at your risk, with the condition
that any redistribution (in part or whole) of source code must retain
this copyright and permission notice. Attribution in compiled projects is
appreciated but not required.
4 changes: 4 additions & 0 deletions AppController.h
Expand Up @@ -93,6 +93,8 @@
IBOutlet NSMenuItem *textilePreview;
NSInteger currentPreviewMode;

IBOutlet NSWindow *mainWindow;
NSWindow *fullscreenWindow;
}

void outletObjectAwoke(id sender);
Expand Down Expand Up @@ -155,4 +157,6 @@ void outletObjectAwoke(id sender);

-(void)updateScheme;
-(void)updateRTL;

- (IBAction)toggleFullscreen:(id)sender;
@end
101 changes: 101 additions & 0 deletions AppController.m
Expand Up @@ -11,6 +11,7 @@


#import "AppController.h"
#import "FullscreenWindow.h"
#import "NoteObject.h"
#import "GlobalPrefs.h"
#import "AlienNoteImporter.h"
Expand Down Expand Up @@ -1829,4 +1830,104 @@ - (IBAction)selectPreviewMode:(id)sender

[self postTextUpdate];
}

- (IBAction)toggleFullscreen:(id)sender
{
[textView setHidden:YES];

if (fullscreenWindow)
{
NSView *firstResponder = (NSView *)[fullscreenWindow firstResponder];
if ([firstResponder isKindOfClass:[NSTextView class]] &&
[[(NSTextView *)firstResponder delegate] isKindOfClass:[NSTextField class]])
{
firstResponder = [(NSTextView *)firstResponder delegate];
}
else if (![firstResponder isKindOfClass:[NSView class]])
{
firstResponder = nil;
}

NSRect newFrame = [fullscreenWindow frameRectForContentRect:
[window contentRectForFrameRect:[window frame]]];
[fullscreenWindow
setFrame:newFrame
display:YES
animate:YES];

NSView *contentView = [[[fullscreenWindow contentView] retain] autorelease];
[fullscreenWindow setContentView:[[[NSView alloc] init] autorelease]];

[window setContentView:contentView];
if (firstResponder)
{
[window makeFirstResponder:firstResponder];
}
[window makeKeyAndOrderFront:nil];

[fullscreenWindow close];
fullscreenWindow = nil;

if ([[window screen] isEqual:[[NSScreen screens] objectAtIndex:0]])
{
[NSMenu setMenuBarVisible:YES];
}

[textView setTextContainerInset:NSMakeSize(20,40)];
[notesList setHidden:NO];
}
else
{
[notesList setHidden:YES];
NSView *firstResponder = (NSView *)[window firstResponder];
if ([firstResponder isKindOfClass:[NSTextView class]] &&
[[(NSTextView *)firstResponder delegate] isKindOfClass:[NSTextField class]])
{
firstResponder = [(NSTextView *)firstResponder delegate];
}
else if (![firstResponder isKindOfClass:[NSView class]])
{
firstResponder = nil;
}

if ([[window screen] isEqual:[[NSScreen screens] objectAtIndex:0]])
{
[NSMenu setMenuBarVisible:NO];
}

[window orderOut:nil];
fullscreenWindow = [[FullscreenWindow alloc]
initWithContentRect:[window contentRectForFrameRect:[window frame]]
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:YES
screen:[window screen]];

NSView *contentView = [[[window contentView] retain] autorelease];
[window setContentView:[[[NSView alloc] init] autorelease]];

[fullscreenWindow setHidesOnDeactivate:YES];
[fullscreenWindow setLevel:NSFloatingWindowLevel];
[fullscreenWindow setContentView:contentView];
[fullscreenWindow setTitle:[window title]];
if (firstResponder)
{
[fullscreenWindow makeFirstResponder:firstResponder];
}
[fullscreenWindow makeKeyAndOrderFront:nil];

[fullscreenWindow setFrame:
[fullscreenWindow
frameRectForContentRect:[[fullscreenWindow screen] frame]]
display:YES
animate:YES];
NSRect screenRect = [textView frame];
NSSize viewSize = {(screenRect.size.width - 800) / 2,40};

[textView setTextContainerInset:viewSize];

}
[textView setHidden:NO];
}

@end
47 changes: 43 additions & 4 deletions English.lproj/MainMenu.nib/designable.nib

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified English.lproj/MainMenu.nib/keyedobjects.nib
Binary file not shown.
22 changes: 22 additions & 0 deletions FullscreenWindow.h
@@ -0,0 +1,22 @@
//
// FullscreenWindow.h
// FullscreenImage
//
// Created by Matt Gallagher on 2009/08/14.
// Copyright 2009 Matt Gallagher. All rights reserved.
//
// Permission is given to use this source code file, free of charge, in any
// project, commercial or otherwise, entirely at your risk, with the condition
// that any redistribution (in part or whole) of source code must retain
// this copyright and permission notice. Attribution in compiled projects is
// appreciated but not required.
//

#import <Cocoa/Cocoa.h>

@interface FullscreenWindow : NSWindow
{

}

@end
32 changes: 32 additions & 0 deletions FullscreenWindow.m
@@ -0,0 +1,32 @@
//
// FullscreenWindow.m
// FullscreenImage
//
// Created by Matt Gallagher on 2009/08/14.
// Copyright 2009 Matt Gallagher. All rights reserved.
//
// Permission is given to use this source code file, free of charge, in any
// project, commercial or otherwise, entirely at your risk, with the condition
// that any redistribution (in part or whole) of source code must retain
// this copyright and permission notice. Attribution in compiled projects is
// appreciated but not required.
//

#import "FullscreenWindow.h"


@implementation FullscreenWindow

- (BOOL)makeFirstResponder:(NSResponder *)aResponder
{
BOOL result = [super makeFirstResponder:aResponder];
return result;
}


- (BOOL)canBecomeKeyWindow
{
return YES;
}

@end
7 changes: 5 additions & 2 deletions LinkingEditor.m
Expand Up @@ -53,7 +53,7 @@ - (void)awakeFromNib {
@selector(setSearchTermHighlightColor:sender:),
@selector(setNotesListBackgroundColor:sender:), nil];

[self setTextContainerInset:NSMakeSize(20, 15)];
[self setTextContainerInset:NSMakeSize(20, 40)];
[self setSmartInsertDeleteEnabled:NO];
[self setUsesRuler:NO];
[self setUsesFontPanel:NO];
Expand Down Expand Up @@ -553,7 +553,10 @@ - (void)underlineNV:(id)sender {

#define STROKE_WIDTH_FOR_BOLD (-3.50)
#define OBLIQUENESS_FOR_ITALIC (0.20)
- (void)bold:(id)sender {
- (void)bold:(id)sender {
if ([self selectedRange].length) {
[self insertText:@"**"];
}
[self applyStyleOfTrait:NSBoldFontMask alternateAttributeName:NSStrokeWidthAttributeName
alternateAttributeValue:[NSNumber numberWithFloat:STROKE_WIDTH_FOR_BOLD]];

Expand Down

0 comments on commit dae2a38

Please sign in to comment.