Multi-window code cleanups
parent
5135e21055
commit
0eb39be459
|
@ -161,6 +161,7 @@ vectors words ;
|
|||
"/library/freetype/freetype.factor"
|
||||
"/library/freetype/freetype-gl.factor"
|
||||
|
||||
"/library/ui/backend.factor"
|
||||
"/library/ui/timers.factor"
|
||||
"/library/ui/gadgets.factor"
|
||||
"/library/ui/layouts.factor"
|
||||
|
@ -185,6 +186,7 @@ vectors words ;
|
|||
"/library/ui/panes.factor"
|
||||
"/library/ui/outliner.factor"
|
||||
"/library/ui/listener.factor"
|
||||
"/library/ui/launchpad.factor"
|
||||
"/library/ui/commands.factor"
|
||||
"/library/ui/presentations.factor"
|
||||
|
||||
|
|
|
@ -1,19 +1,16 @@
|
|||
! Copyright (C) 2006 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: arrays cocoa freetype gadgets-layouts
|
||||
gadgets-listener gadgets-panes hashtables kernel lists math
|
||||
namespaces objc objc-NSApplication objc-NSEvent objc-NSObject
|
||||
objc-NSOpenGLView objc-NSView objc-NSWindow sequences threads ;
|
||||
USING: arrays cocoa freetype gadgets gadgets-launchpad
|
||||
gadgets-layouts gadgets-listener gadgets-panes hashtables kernel
|
||||
lists math namespaces objc objc-NSApplication objc-NSEvent
|
||||
objc-NSObject objc-NSOpenGLView objc-NSView objc-NSWindow
|
||||
sequences threads ;
|
||||
|
||||
! Cocoa backend for Factor UI
|
||||
|
||||
IN: objc-FactorView
|
||||
DEFER: FactorView
|
||||
|
||||
IN: gadgets
|
||||
|
||||
: repaint-handle ( handle -- ) 1 [setNeedsDisplay:] ;
|
||||
|
||||
IN: gadgets-cocoa
|
||||
|
||||
! Hash mapping aliens to gadgets
|
||||
|
@ -148,15 +145,20 @@ H{ } clone views set-global
|
|||
: <FactorWindow> ( gadget title -- window )
|
||||
>r <FactorView> r> <ViewWindow> ;
|
||||
|
||||
IN: gadgets
|
||||
|
||||
: repaint-handle ( handle -- ) 1 [setNeedsDisplay:] ;
|
||||
|
||||
: in-window ( gadget status dim title -- )
|
||||
>r <world> r> <FactorWindow> drop ;
|
||||
|
||||
IN: shells
|
||||
|
||||
: ui
|
||||
[
|
||||
[
|
||||
<listener> { 600 700 0 } <world>
|
||||
"Listener" <FactorWindow> drop
|
||||
[ clear listener-thread ] in-thread
|
||||
pane get request-focus
|
||||
launchpad-window
|
||||
listener-window
|
||||
finish-launching
|
||||
event-loop
|
||||
] with-cocoa
|
||||
|
|
|
@ -30,5 +30,4 @@ USING: kernel math objc-NSObject objc-NSView objc-NSWindow ;
|
|||
[ swap [setContentView:] ] keep
|
||||
dup dup [contentView] [setInitialFirstResponder:]
|
||||
dup 1 [setAcceptsMouseMovedEvents:]
|
||||
dup f [makeKeyAndOrderFront:]
|
||||
( [autorelease] ) ;
|
||||
dup f [makeKeyAndOrderFront:] ;
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
IN: gadgets
|
||||
|
||||
DEFER: repaint-handle ( handle -- )
|
||||
|
||||
DEFER: in-window ( gadget status dim title -- )
|
|
@ -101,8 +101,3 @@ M: gadget children-on ( rect/point gadget -- list )
|
|||
GENERIC: gadget-help
|
||||
|
||||
M: gadget gadget-help drop f ;
|
||||
|
||||
! Repaint/relayout protocol
|
||||
|
||||
! This word is defined in the backend
|
||||
DEFER: repaint-handle ( handle -- )
|
||||
|
|
|
@ -1,18 +1,20 @@
|
|||
IN: gadgets-launchpad
|
||||
USING: gadgets-buttons gadgets-labels gadgets-layouts io kernel
|
||||
memory namespaces sequences ;
|
||||
USING: gadgets gadgets-buttons gadgets-labels gadgets-layouts
|
||||
gadgets-listener io kernel memory namespaces sequences ;
|
||||
|
||||
: <launchpad> ( menu -- )
|
||||
[ first2 >r <label> r> <bevel-button> ] map make-pile ;
|
||||
[ first2 >r <label> r> <bevel-button> ] map make-pile
|
||||
1 over set-pack-fill ;
|
||||
|
||||
: default-launchpad
|
||||
{
|
||||
{ "Listener" [ global [ "Hi" print ] bind drop ] }
|
||||
{ "Browser" [ global [ "Hi" print ] bind drop ] }
|
||||
{ "Inspector" [ global [ "Hi" print ] bind drop ] }
|
||||
{ "Help" [ global [ "Hi" print ] bind drop ] }
|
||||
{ "Tutorial" [ global [ "Hi" print ] bind drop ] }
|
||||
{ "System" [ global [ "Hi" print ] bind drop ] }
|
||||
{ "Listener" [ listener-window ] }
|
||||
{ "Save image" [ save ] }
|
||||
{ "Exit" [ 0 exit ] }
|
||||
} <launchpad> ;
|
||||
|
||||
: simple-window ( gadget title -- )
|
||||
>r "" <label> over pref-dim r> in-window ;
|
||||
|
||||
: launchpad-window ( -- )
|
||||
default-launchpad "Factor" simple-window ;
|
||||
|
|
|
@ -71,3 +71,8 @@ SYMBOL: browser-pane
|
|||
<browser-scroller> <listener-scroller>
|
||||
0 <x-splitter> over @center frame-add
|
||||
<bottom-bar> >r over @bottom frame-add r> ;
|
||||
|
||||
: listener-window ( -- )
|
||||
<listener> { 600 700 0 } "Listener" in-window
|
||||
[ clear listener-thread ] in-thread
|
||||
pane get request-focus ;
|
||||
|
|
Loading…
Reference in New Issue