]> gitweb.factorcode.org Git - factor.git/blob - extra/merger/merger.factor
colors: merge colors.constants and colors.hex.
[factor.git] / extra / merger / merger.factor
1 USING: accessors arrays colors file-picker fry io.directories
2 kernel math.rectangles models sequences sets ui ui.gadgets
3 ui.gadgets.buttons ui.gadgets.glass ui.gadgets.labeled
4 ui.gadgets.labels ui.gadgets.tracks ;
5 IN: merger
6
7 MAIN-WINDOW: merger-window {
8         { title "Merging" }
9         { pref-dim { 300 220 } }
10     }
11    vertical <track>
12     { "From:" "To:" } f <model> f <model> 2array
13     [
14         [
15             "…" [
16                 open-file-dialog [
17                     first
18                     [ <label> 1array >>children drop ]
19                     [ swap set-control-value ] 2bi
20                 ] [ drop ] if*
21             ] <border-button> swap >>model swap
22             <labeled-gadget> 1 track-add
23         ] 2each
24     ] keep
25     dup first2
26     '[
27         _ [ value>> ] all? [
28             parent>> "processing..." <label> [
29                 <zero-rect> show-glass
30                 _ value>> [
31                     "." _ value>>
32                     [ [ directory-files ] bi@ diff ] keep copy-files-into
33                 ] with-directory
34             ] keep hide-glass
35         ] [ drop ] if
36     ] "merge" swap <border-button> 0.4 track-add
37     >>gadgets ;