factor/extra/ui/tools/deploy/deploy.factor

119 lines
3.5 KiB
Factor
Raw Normal View History

2007-10-31 01:09:24 -04:00
! Copyright (C) 2007 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: ui.gadgets colors kernel ui.render namespaces
2008-07-04 18:58:37 -04:00
models models.mapping sequences ui.gadgets.buttons
2007-10-31 01:09:24 -04:00
ui.gadgets.packs ui.gadgets.labels tools.deploy.config
namespaces ui.gadgets.editors ui.gadgets.borders ui.gestures
ui.commands assocs ui.gadgets.tracks ui ui.tools.listener
2008-06-08 16:32:55 -04:00
tools.deploy vocabs ui.tools.workspace system accessors ;
2007-10-31 01:09:24 -04:00
IN: ui.tools.deploy
TUPLE: deploy-gadget vocab settings ;
: bundle-name ( -- )
2007-11-05 00:46:03 -05:00
deploy-name get <field>
"Executable name:" label-on-left gadget, ;
2007-10-31 20:26:24 -04:00
: deploy-ui ( -- )
deploy-ui? get
"Include user interface framework" <checkbox> gadget, ;
2007-10-31 01:09:24 -04:00
: exit-when-windows-closed ( -- )
"stop-after-last-window?" get
"Exit when last UI window closed" <checkbox> gadget, ;
: io-settings ( -- )
"Input/output support:" <label> gadget,
deploy-io get deploy-io-options <radio-buttons> gadget, ;
: reflection-settings ( -- )
"Reflection support:" <label> gadget,
deploy-reflection get deploy-reflection-options <radio-buttons> gadget, ;
: advanced-settings ( -- )
"Advanced:" <label> gadget,
deploy-compiler? get "Use optimizing compiler" <checkbox> gadget,
deploy-math? get "Rational and complex number support" <checkbox> gadget,
2008-02-28 02:33:09 -05:00
deploy-threads? get "Threading support" <checkbox> gadget,
2008-03-20 22:11:53 -04:00
deploy-random? get "Random number generator support" <checkbox> gadget,
2008-02-28 02:33:09 -05:00
deploy-word-props? get "Retain all word properties" <checkbox> gadget,
deploy-word-defs? get "Retain all word definitions" <checkbox> gadget,
deploy-c-types? get "Retain all C types" <checkbox> gadget, ;
2007-10-31 01:09:24 -04:00
2008-06-08 16:32:55 -04:00
: deploy-settings-theme ( gadget -- )
{ 10 10 } >>gap
1 >>fill
drop ;
2007-10-31 01:09:24 -04:00
2007-11-05 00:46:03 -05:00
: <deploy-settings> ( vocab -- control )
2007-10-31 01:09:24 -04:00
default-config [ <model> ] assoc-map [
[
bundle-name
2007-10-31 20:26:24 -04:00
deploy-ui
2008-04-02 19:25:33 -04:00
os macosx? [ exit-when-windows-closed ] when
2007-10-31 01:09:24 -04:00
io-settings
reflection-settings
advanced-settings
] make-pile dup deploy-settings-theme
2007-11-13 18:51:10 -05:00
namespace <mapping> over set-gadget-model
2007-10-31 01:09:24 -04:00
] bind ;
2008-06-08 16:32:55 -04:00
: find-deploy-gadget ( gadget -- deploy-gadget )
2007-10-31 01:09:24 -04:00
[ deploy-gadget? ] find-parent ;
2008-06-08 16:32:55 -04:00
: find-deploy-vocab ( gadget -- vocab )
2007-10-31 01:09:24 -04:00
find-deploy-gadget deploy-gadget-vocab ;
2008-06-08 16:32:55 -04:00
: find-deploy-config ( gadget -- config )
2007-11-05 00:46:03 -05:00
find-deploy-vocab deploy-config ;
2007-10-31 01:09:24 -04:00
2008-06-08 16:32:55 -04:00
: find-deploy-settings ( gadget -- settings )
2007-10-31 01:09:24 -04:00
find-deploy-gadget deploy-gadget-settings ;
: com-revert ( gadget -- )
dup find-deploy-config
swap find-deploy-settings set-control-value ;
: com-save ( gadget -- )
dup find-deploy-settings control-value
swap find-deploy-vocab set-deploy-config ;
: com-deploy ( gadget -- )
dup com-save
dup find-deploy-vocab [ deploy ] curry call-listener
close-window ;
2007-10-31 20:26:24 -04:00
: com-help ( -- )
2008-01-11 03:32:25 -05:00
"ui.tools.deploy" help-window ;
2007-10-31 20:26:24 -04:00
\ com-help H{
{ +nullary+ t }
} define-command
2007-10-31 01:09:24 -04:00
: com-close ( gadget -- )
close-window ;
2007-10-31 01:09:24 -04:00
deploy-gadget "toolbar" f {
{ f com-close }
2007-10-31 20:26:24 -04:00
{ f com-help }
2007-10-31 01:09:24 -04:00
{ f com-revert }
{ f com-save }
2007-12-14 01:16:47 -05:00
{ T{ key-down f f "RET" } com-deploy }
2007-10-31 01:09:24 -04:00
} define-command-map
2008-06-08 16:32:55 -04:00
: buttons, ( -- )
2007-10-31 20:26:24 -04:00
g <toolbar> { 10 10 } over set-pack-gap gadget, ;
2007-10-31 01:09:24 -04:00
: <deploy-gadget> ( vocab -- gadget )
f deploy-gadget boa [
2007-11-05 00:46:03 -05:00
dup <deploy-settings>
2007-10-31 20:26:24 -04:00
g-> set-deploy-gadget-settings gadget,
buttons,
] { 0 1 } build-pack
dup deploy-settings-theme
dup com-revert ;
2007-10-31 01:09:24 -04:00
: deploy-tool ( vocab -- )
2007-10-31 20:26:24 -04:00
vocab-name dup <deploy-gadget> 10 <border>
2007-10-31 01:09:24 -04:00
"Deploying \"" rot "\"" 3append open-window ;