summaryrefslogtreecommitdiff
path: root/frontends/cocoa/ArrowWindow.m
diff options
context:
space:
mode:
Diffstat (limited to 'frontends/cocoa/ArrowWindow.m')
-rw-r--r--frontends/cocoa/ArrowWindow.m246
1 files changed, 124 insertions, 122 deletions
diff --git a/frontends/cocoa/ArrowWindow.m b/frontends/cocoa/ArrowWindow.m
index 84dbe1ef7..720e55e29 100644
--- a/frontends/cocoa/ArrowWindow.m
+++ b/frontends/cocoa/ArrowWindow.m
@@ -28,211 +28,213 @@
@synthesize acceptsKey;
-- (id) initWithContentRect: (NSRect)contentRect styleMask: (NSWindowStyleMask)aStyle backing: (NSBackingStoreType)bufferingType defer: (BOOL)flag
+- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSWindowStyleMask)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag
{
- if ((self = [super initWithContentRect: contentRect styleMask: NSWindowStyleMaskBorderless backing: bufferingType defer: flag]) == nil) {
- return nil;
- }
+ if ((self = [super initWithContentRect:contentRect styleMask:NSWindowStyleMaskBorderless backing:bufferingType defer:flag]) == nil) {
+ return nil;
+ }
- [self setBackgroundColor: [NSColor clearColor]];
- [self setOpaque: NO];
- [self setHasShadow: YES];
+ [self setBackgroundColor:[NSColor clearColor]];
+ [self setOpaque:NO];
+ [self setHasShadow:YES];
- return self;
+ return self;
}
-- (void) setContentView: (NSView *)aView
+- (void)setContentView:(NSView *)aView
{
- if (aView == content) return;
+ if (aView == content)
+ return;
- [content removeFromSuperview];
- content = aView;
+ [content removeFromSuperview];
+ content = aView;
- if (content == nil) return;
+ if (content == nil)
+ return;
- if (box == nil) {
- box = [[ArrowBox alloc] initWithFrame: NSZeroRect];
- [box setArrowEdge: ArrowTopEdge];
- [super setContentView: box];
- }
+ if (box == nil) {
+ box = [[ArrowBox alloc] initWithFrame:NSZeroRect];
+ [box setArrowEdge:ArrowTopEdge];
+ [super setContentView:box];
+ }
- [box addSubview: content];
+ [box addSubview:content];
- NSRect frame = [self contentRectForFrameRect: [self frame]];
- frame.origin = [self convertRectFromScreen: (CGRect){.origin = frame.origin}].origin;
- frame = [box convertRect: frame fromView: nil];
+ NSRect frame = [self contentRectForFrameRect:[self frame]];
+ frame.origin = [self convertRectFromScreen:(CGRect){.origin = frame.origin }].origin;
+ frame = [box convertRect:frame fromView:nil];
- [content setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
- [content setFrame: frame];
+ [content setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
+ [content setFrame:frame];
}
-- (void) setContentSize: (NSSize)aSize
+- (void)setContentSize:(NSSize)aSize
{
- NSRect frame = [content frame];
- frame.size = aSize;
+ NSRect frame = [content frame];
+ frame.size = aSize;
- frame = [box convertRect: frame toView: nil];
- frame.origin = [self convertRectToScreen: (CGRect){.origin = frame.origin}].origin;
- frame = [self frameRectForContentRect: frame];
+ frame = [box convertRect:frame toView:nil];
+ frame.origin = [self convertRectToScreen:(CGRect){.origin = frame.origin }].origin;
+ frame = [self frameRectForContentRect:frame];
- [self setFrame: frame display: YES];
+ [self setFrame:frame display:YES];
}
static const CGFloat padding = 0;
-- (NSRect) contentRectForFrameRect: (NSRect)frameRect
+- (NSRect)contentRectForFrameRect:(NSRect)frameRect
{
- const CGFloat arrowSize = [box arrowSize];
- const CGFloat offset = 2 * (padding + arrowSize );
+ const CGFloat arrowSize = [box arrowSize];
+ const CGFloat offset = 2 * (padding + arrowSize);
- return NSInsetRect( frameRect, offset, offset );
+ return NSInsetRect(frameRect, offset, offset);
}
-- (NSRect) frameRectForContentRect: (NSRect)contentRect
+- (NSRect)frameRectForContentRect:(NSRect)contentRect
{
- const CGFloat arrowSize = [box arrowSize];
- const CGFloat offset = -2 * (padding + arrowSize );
+ const CGFloat arrowSize = [box arrowSize];
+ const CGFloat offset = -2 * (padding + arrowSize);
- return NSInsetRect( contentRect, offset, offset );
+ return NSInsetRect(contentRect, offset, offset);
}
-+ (NSRect) frameRectForContentRect: (NSRect)cRect styleMask: (NSWindowStyleMask)aStyle
++ (NSRect)frameRectForContentRect:(NSRect)cRect styleMask:(NSWindowStyleMask)aStyle
{
- const CGFloat DefaultArrowSize = 15;
- const CGFloat offset = -2 * (padding + DefaultArrowSize);
+ const CGFloat DefaultArrowSize = 15;
+ const CGFloat offset = -2 * (padding + DefaultArrowSize);
- return NSInsetRect( cRect, offset, offset );
+ return NSInsetRect(cRect, offset, offset);
}
-- (BOOL) canBecomeKeyWindow
+- (BOOL)canBecomeKeyWindow
{
- return acceptsKey;
+ return acceptsKey;
}
-- (void) moveToPoint: (NSPoint) screenPoint
+- (void)moveToPoint:(NSPoint)screenPoint
{
- switch ([box arrowEdge]) {
- case ArrowNone:
- screenPoint.x -= [box arrowSize];
- screenPoint.y += [box arrowSize];
- break;
+ switch ([box arrowEdge]) {
+ case ArrowNone:
+ screenPoint.x -= [box arrowSize];
+ screenPoint.y += [box arrowSize];
+ break;
- case ArrowTopEdge:
- screenPoint.x -= [box arrowPosition];
- break;
+ case ArrowTopEdge:
+ screenPoint.x -= [box arrowPosition];
+ break;
- case ArrowBottomEdge:
- screenPoint.x -= [box arrowPosition];
- screenPoint.y += NSHeight( [self frame] );
- break;
+ case ArrowBottomEdge:
+ screenPoint.x -= [box arrowPosition];
+ screenPoint.y += NSHeight([self frame]);
+ break;
- case ArrowLeftEdge:
- screenPoint.y += NSHeight( [self frame] ) - [box arrowPosition] - [box arrowSize];
- break;
+ case ArrowLeftEdge:
+ screenPoint.y += NSHeight([self frame]) - [box arrowPosition] - [box arrowSize];
+ break;
- case ArrowRightEdge:
- screenPoint.x -= NSWidth( [self frame] );
- screenPoint.y += NSHeight( [self frame] ) - [box arrowPosition] - [box arrowSize];
- break;
- }
+ case ArrowRightEdge:
+ screenPoint.x -= NSWidth([self frame]);
+ screenPoint.y += NSHeight([self frame]) - [box arrowPosition] - [box arrowSize];
+ break;
+ }
- [self setFrameTopLeftPoint: screenPoint];
+ [self setFrameTopLeftPoint:screenPoint];
}
-static NSRect ScreenRectForView( NSView *view )
+static NSRect ScreenRectForView(NSView *view)
{
- NSRect viewRect = [view bounds]; // in View coordinate system
- viewRect = [view convertRect: viewRect toView: nil]; // translate to window coordinates
- viewRect.origin = [[view window] convertRectToScreen: (CGRect){.origin = viewRect.origin}].origin; // translate to screen coordinates
- return viewRect;
+ NSRect viewRect = [view bounds]; // in View coordinate system
+ viewRect = [view convertRect:viewRect toView:nil]; // translate to window coordinates
+ viewRect.origin = [[view window] convertRectToScreen:(CGRect){.origin = viewRect.origin }].origin; // translate to screen coordinates
+ return viewRect;
}
-- (void) attachToView: (NSView *) view
+- (void)attachToView:(NSView *)view
{
- if (nil != attachedWindow) [self detach];
+ if (nil != attachedWindow)
+ [self detach];
- NSRect viewRect = ScreenRectForView( view );
- NSPoint arrowPoint;
+ NSRect viewRect = ScreenRectForView(view);
+ NSPoint arrowPoint;
- switch ([box arrowEdge]) {
- case ArrowLeftEdge:
- arrowPoint = NSMakePoint( NSMaxX( viewRect ),
- NSMidY( viewRect ) );
- break;
+ switch ([box arrowEdge]) {
+ case ArrowLeftEdge:
+ arrowPoint = NSMakePoint(NSMaxX(viewRect),
+ NSMidY(viewRect));
+ break;
- case ArrowBottomEdge:
- arrowPoint = NSMakePoint( NSMidX( viewRect ),
- NSMaxY( viewRect ) );
- break;
+ case ArrowBottomEdge:
+ arrowPoint = NSMakePoint(NSMidX(viewRect),
+ NSMaxY(viewRect));
+ break;
- case ArrowRightEdge:
- arrowPoint = NSMakePoint( NSMinX( viewRect ),
- NSMidY( viewRect ) );
- break;
+ case ArrowRightEdge:
+ arrowPoint = NSMakePoint(NSMinX(viewRect),
+ NSMidY(viewRect));
+ break;
- case ArrowNone:
- case ArrowTopEdge:
- default:
- arrowPoint = NSMakePoint( NSMidX( viewRect ),
- NSMinY( viewRect ) );
- break;
-
- }
- attachedWindow = [view window];
- [self moveToPoint: arrowPoint];
- [attachedWindow addChildWindow: self ordered: NSWindowAbove];
+ case ArrowNone:
+ case ArrowTopEdge:
+ default:
+ arrowPoint = NSMakePoint(NSMidX(viewRect),
+ NSMinY(viewRect));
+ break;
+ }
+ attachedWindow = [view window];
+ [self moveToPoint:arrowPoint];
+ [attachedWindow addChildWindow:self ordered:NSWindowAbove];
}
-- (void) detach
+- (void)detach
{
- [attachedWindow removeChildWindow: self];
- [self close];
- attachedWindow = nil;
+ [attachedWindow removeChildWindow:self];
+ [self close];
+ attachedWindow = nil;
}
//MARK: -
//MARK: Properties
-- (void) setArrowPosition: (CGFloat) newPosition
+- (void)setArrowPosition:(CGFloat)newPosition
{
- [box setArrowPosition: newPosition];
+ [box setArrowPosition:newPosition];
}
-- (CGFloat) arrowPosition
+- (CGFloat)arrowPosition
{
- return [box arrowPosition];
+ return [box arrowPosition];
}
-- (void) setArrowSize: (CGFloat)newSize
+- (void)setArrowSize:(CGFloat)newSize
{
- NSRect contentRect = [self contentRectForFrameRect: [self frame]];
- [box setArrowSize: newSize];
- [self setFrame: [self frameRectForContentRect: contentRect] display: [self isVisible]];
+ NSRect contentRect = [self contentRectForFrameRect:[self frame]];
+ [box setArrowSize:newSize];
+ [self setFrame:[self frameRectForContentRect:contentRect] display:[self isVisible]];
}
-- (CGFloat) arrowSize
+- (CGFloat)arrowSize
{
- return [box arrowSize];
+ return [box arrowSize];
}
-- (void) setArrowEdge: (ArrowEdge) newEdge
+- (void)setArrowEdge:(ArrowEdge)newEdge
{
- [box setArrowEdge: newEdge];
+ [box setArrowEdge:newEdge];
}
-- (ArrowEdge) arrowEdge
+- (ArrowEdge)arrowEdge
{
- return [box arrowEdge];
+ return [box arrowEdge];
}
-- (void) setCornerRadius: (CGFloat)newRadius
+- (void)setCornerRadius:(CGFloat)newRadius
{
- [box setCornerRadius: newRadius];
+ [box setCornerRadius:newRadius];
}
-- (CGFloat) cornerRadius
+- (CGFloat)cornerRadius
{
- return [box cornerRadius];
+ return [box cornerRadius];
}
@end