1 ! Copyright (C) 2007 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: ui.gadgets colors kernel ui.render namespaces
4 models sequences ui.gadgets.buttons
5 ui.gadgets.packs ui.gadgets.labels tools.deploy.config
6 namespaces ui.gadgets.editors ui.gadgets.borders ui.gestures
7 ui.commands assocs ui.gadgets.tracks ui ui.tools.listener
8 tools.deploy vocabs ui.tools.workspace system ;
11 TUPLE: deploy-gadget vocab settings ;
14 deploy-name get <field>
15 "Executable name:" label-on-left gadget, ;
19 "Include user interface framework" <checkbox> gadget, ;
21 : exit-when-windows-closed ( -- )
22 "stop-after-last-window?" get
23 "Exit when last UI window closed" <checkbox> gadget, ;
26 "Input/output support:" <label> gadget,
27 deploy-io get deploy-io-options <radio-buttons> gadget, ;
29 : reflection-settings ( -- )
30 "Reflection support:" <label> gadget,
31 deploy-reflection get deploy-reflection-options <radio-buttons> gadget, ;
33 : advanced-settings ( -- )
34 "Advanced:" <label> gadget,
35 deploy-compiler? get "Use optimizing compiler" <checkbox> gadget,
36 deploy-math? get "Rational and complex number support" <checkbox> gadget,
37 deploy-threads? get "Threading support" <checkbox> gadget,
38 deploy-random? get "Random number generator support" <checkbox> gadget,
39 deploy-word-props? get "Retain all word properties" <checkbox> gadget,
40 deploy-word-defs? get "Retain all word definitions" <checkbox> gadget,
41 deploy-c-types? get "Retain all C types" <checkbox> gadget, ;
43 : deploy-settings-theme
44 { 10 10 } over set-pack-gap
45 1 swap set-pack-fill ;
47 : <deploy-settings> ( vocab -- control )
48 default-config [ <model> ] assoc-map [
52 os macosx? [ exit-when-windows-closed ] when
56 ] make-pile dup deploy-settings-theme
57 namespace <mapping> over set-gadget-model
61 [ deploy-gadget? ] find-parent ;
64 find-deploy-gadget deploy-gadget-vocab ;
67 find-deploy-vocab deploy-config ;
69 : find-deploy-settings
70 find-deploy-gadget deploy-gadget-settings ;
72 : com-revert ( gadget -- )
73 dup find-deploy-config
74 swap find-deploy-settings set-control-value ;
76 : com-save ( gadget -- )
77 dup find-deploy-settings control-value
78 swap find-deploy-vocab set-deploy-config ;
80 : com-deploy ( gadget -- )
82 dup find-deploy-vocab [ deploy ] curry call-listener
86 "ui.tools.deploy" help-window ;
92 : com-close ( gadget -- )
95 deploy-gadget "toolbar" f {
100 { T{ key-down f f "RET" } com-deploy }
104 g <toolbar> { 10 10 } over set-pack-gap gadget, ;
106 : <deploy-gadget> ( vocab -- gadget )
107 f deploy-gadget boa [
108 dup <deploy-settings>
109 g-> set-deploy-gadget-settings gadget,
112 dup deploy-settings-theme
115 : deploy-tool ( vocab -- )
116 vocab-name dup <deploy-gadget> 10 <border>
117 "Deploying \"" rot "\"" 3append open-window ;