factor/basis/cocoa/windows/windows.factor

41 lines
1.3 KiB
Factor
Raw Normal View History

2007-09-20 18:09:08 -04:00
! Copyright (C) 2006, 2007 Slava Pestov
! See http://factorcode.org/license.txt for BSD license.
USING: arrays kernel math cocoa cocoa.messages cocoa.classes
2008-09-05 20:29:14 -04:00
sequences math.bitwise ;
2007-09-20 18:09:08 -04:00
IN: cocoa.windows
! Window styles
2009-02-22 20:13:08 -05:00
CONSTANT: NSBorderlessWindowMask 0
CONSTANT: NSTitledWindowMask 1
CONSTANT: NSClosableWindowMask 2
CONSTANT: NSMiniaturizableWindowMask 4
CONSTANT: NSResizableWindowMask 8
2007-09-20 18:09:08 -04:00
! Additional panel-only styles
CONSTANT: NSUtilityWindowMask 16
CONSTANT: NSDocModalWindowMask 64
CONSTANT: NSNonactivatingPanelMask 128
CONSTANT: NSHUDWindowMask HEX: 1000
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
: <NSWindow> ( rect style class -- window )
[ -> alloc ] curry 2dip NSBackingStoreBuffered 1
2007-09-20 18:09:08 -04:00
-> initWithContentRect:styleMask:backing:defer: ;
: class-for-style ( style -- NSWindow/NSPanel )
HEX: 1ff0 bitand zero? NSWindow NSPanel ? ;
: <ViewWindow> ( view rect style -- window )
dup class-for-style <NSWindow> [ swap -> setContentView: ] keep
2007-09-20 18:09:08 -04:00
dup dup -> contentView -> setInitialFirstResponder:
2008-03-19 15:25:53 -04:00
dup 1 -> setAcceptsMouseMovedEvents:
dup 0 -> setReleasedWhenClosed: ;
2007-09-20 18:09:08 -04:00
: window-content-rect ( window -- rect )
dup -> class swap
[ -> frame ] [ -> styleMask ] bi
2007-09-20 18:09:08 -04:00
-> contentRectForFrameRect:styleMask: ;