1 ! Copyright (C) 2007, 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: colors kernel models tools.deploy.config
4 tools.deploy.config.editor tools.deploy vocabs namespaces
5 models.mapping sequences system accessors fry ui.gadgets ui.render
6 ui.gadgets.buttons ui.gadgets.packs ui.gadgets.labels
7 ui.gadgets.editors ui.gadgets.borders ui.gestures ui.commands assocs
8 ui.gadgets.tracks ui ui.tools.listener ui.tools.browser
12 TUPLE: deploy-gadget < pack vocab settings ;
14 : bundle-name ( parent -- parent )
15 deploy-name get <model-field>
16 "Executable name:" label-on-left add-gadget ;
18 : deploy-console ( parent -- parent )
20 "Deploy as console application" <checkbox> add-gadget ;
22 : deploy-ui ( parent -- parent )
24 "Include user interface framework" <checkbox> add-gadget ;
26 : reflection-settings ( parent -- parent )
27 "Reflection level:" <label> add-gadget
28 deploy-reflection get deploy-reflection-options <radio-buttons> add-gadget ;
30 : advanced-settings ( parent -- parent )
31 "Additional reflection:" <label> add-gadget
32 deploy-unicode? get "Unicode character literal table" <checkbox> add-gadget
33 deploy-word-props? get "Retain all word properties" <checkbox> add-gadget
34 deploy-word-defs? get "Retain all word definitions" <checkbox> add-gadget
35 deploy-c-types? get "Retain all C types" <checkbox> add-gadget
36 deploy-help? get "Retain documentation" <checkbox> add-gadget ;
38 : deploy-settings-theme ( gadget -- gadget )
42 : <deploy-settings> ( vocab -- control )
43 default-config [ <model> ] assoc-map [
52 namespace <mapping> >>model
55 : find-deploy-gadget ( gadget -- deploy-gadget )
56 [ deploy-gadget? ] find-parent ;
58 : find-deploy-vocab ( gadget -- vocab )
59 find-deploy-gadget vocab>> ;
61 : find-deploy-config ( gadget -- config )
62 find-deploy-vocab deploy-config ;
64 : find-deploy-settings ( gadget -- settings )
65 find-deploy-gadget settings>> ;
67 : com-revert ( gadget -- )
68 dup find-deploy-config
69 swap find-deploy-settings set-control-value ;
71 : com-save ( gadget -- )
72 dup find-deploy-settings control-value
73 swap find-deploy-vocab set-deploy-config ;
75 : com-deploy ( gadget -- )
77 [ find-deploy-vocab '[ _ deploy ] \ deploy call-listener ]
82 "ui.tools.deploy" com-browse ;
88 : com-close ( gadget -- )
91 deploy-gadget "misc" "Miscellaneous commands" {
92 { T{ key-down f f "ESC" } com-close }
95 deploy-gadget "toolbar" f {
96 { T{ key-down f f "F1" } com-help }
99 { T{ key-down f f "RET" } com-deploy }
102 : <deploy-gadget> ( vocab -- gadget )
105 vertical >>orientation
106 swap <deploy-settings> >>settings
107 dup settings>> add-gadget
108 dup <toolbar> { 10 10 } >>gap add-gadget
109 deploy-settings-theme
112 : deploy-tool ( vocab -- )
114 [ <deploy-gadget> { 10 10 } <border> ]
117 swap "Deploying “" "”" surround >>title
118 [ { dialog-window } append ] change-window-controls