Clean up some duplication
[factor/jcg.git] / extra / gesture-logger / gesture-logger.factor
blob61dc8cf77e6a4335a1d203b8a65aeba4f68833f6
1 ! Copyright (C) 2007, 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors io kernel prettyprint ui ui.gadgets
4 ui.gadgets.panes ui.gadgets.scrollers ui.gadgets.theme
5 ui.gestures colors ;
6 IN: gesture-logger
8 TUPLE: gesture-logger < gadget stream ;
10 : <gesture-logger> ( stream -- gadget )
11     \ gesture-logger new-gadget
12     swap >>stream
13     { 100 100 } >>dim
14     black solid-interior ;
16 M: gesture-logger handle-gesture
17     over T{ button-down } = [ dup request-focus ] when
18     stream>> [ . ] with-output-stream*
19     t ;
21 M: gesture-logger user-input*
22     stream>> [
23         "User input: " write print
24     ] with-output-stream* t ;
26 : gesture-logger ( -- )
27     [
28         <scrolling-pane> dup <scroller>
29         "Gesture log" open-window
30         <pane-stream> <gesture-logger>
31         "Gesture input" open-window
32     ] with-ui ;
34 MAIN: gesture-logger