2007-09-20 18:09:08 -04:00
|
|
|
! Copyright (C) 2006, 2007 Slava Pestov
|
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2014-12-13 19:25:48 -05:00
|
|
|
USING: cocoa cocoa.classes kernel math ;
|
2007-09-20 18:09:08 -04:00
|
|
|
IN: cocoa.windows
|
|
|
|
|
|
2009-06-17 23:47:51 -04:00
|
|
|
! Window styles
|
2009-09-24 14:05:27 -04:00
|
|
|
CONSTANT: NSBorderlessWindowMask 0
|
|
|
|
|
CONSTANT: NSTitledWindowMask 1
|
|
|
|
|
CONSTANT: NSClosableWindowMask 2
|
|
|
|
|
CONSTANT: NSMiniaturizableWindowMask 4
|
|
|
|
|
CONSTANT: NSResizableWindowMask 8
|
|
|
|
|
CONSTANT: NSTexturedBackgroundWindowMask 256
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2015-07-18 23:14:22 -04:00
|
|
|
! Additional panel-only styles
|
2009-06-17 23:47:51 -04:00
|
|
|
CONSTANT: NSUtilityWindowMask 16
|
|
|
|
|
CONSTANT: NSDocModalWindowMask 64
|
|
|
|
|
CONSTANT: NSNonactivatingPanelMask 128
|
2011-11-23 21:49:33 -05:00
|
|
|
CONSTANT: NSHUDWindowMask 0x1000
|
2009-06-17 23:47:51 -04:00
|
|
|
|
2009-02-22 20:13:08 -05:00
|
|
|
CONSTANT: NSBackingStoreRetained 0
|
|
|
|
|
CONSTANT: NSBackingStoreNonretained 1
|
|
|
|
|
CONSTANT: NSBackingStoreBuffered 2
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2009-06-17 23:47:51 -04:00
|
|
|
: <NSWindow> ( rect style class -- window )
|
2017-08-27 13:19:37 -04:00
|
|
|
[ send: alloc ] curry 2dip NSBackingStoreBuffered 1
|
|
|
|
|
send: \initWithContentRect:styleMask:backing:defer: ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2009-06-17 23:47:51 -04:00
|
|
|
: class-for-style ( style -- NSWindow/NSPanel )
|
2011-11-23 21:49:33 -05:00
|
|
|
0x1ef0 bitand zero? NSWindow NSPanel ? ;
|
2009-06-17 23:47:51 -04:00
|
|
|
|
|
|
|
|
: <ViewWindow> ( view rect style -- window )
|
2017-08-27 13:19:37 -04:00
|
|
|
dup class-for-style <NSWindow> [ swap send: \setContentView: ] keep
|
|
|
|
|
dup dup send: contentView send: \setInitialFirstResponder:
|
|
|
|
|
dup 1 send: \setAcceptsMouseMovedEvents:
|
|
|
|
|
dup 0 send: \setReleasedWhenClosed: ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
|
: window-content-rect ( window -- rect )
|
2017-08-27 13:19:37 -04:00
|
|
|
dup send: class swap
|
|
|
|
|
[ send: frame ] [ send: styleMask ] bi
|
|
|
|
|
send: \contentRectForFrameRect:styleMask: ;
|