]> gitweb.factorcode.org Git - factor.git/blob - basis/ui/tools/inspector/inspector.factor
Change a throw to rethrow so that we don't lose the original stack trace
[factor.git] / basis / ui / tools / inspector / inspector.factor
1 ! Copyright (C) 2006, 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors ui.tools.workspace inspector kernel ui.commands
4 ui.gadgets ui.gadgets.panes ui.gadgets.scrollers
5 ui.gadgets.slots ui.gadgets.tracks ui.gestures
6 ui.gadgets.buttons namespaces ;
7 IN: ui.tools.inspector
8
9 TUPLE: inspector-gadget < track object pane ;
10
11 : refresh ( inspector -- )
12     [ object>> ] [ pane>> ] bi [
13         +editable+ on
14         +number-rows+ on
15         describe
16     ] with-pane ;
17
18 : <inspector-gadget> ( -- gadget )
19     { 0 1 } inspector-gadget new-track
20         add-toolbar
21         <pane> >>pane
22         dup pane>> <scroller> 1 track-add ;
23
24 : inspect-object ( obj mirror keys inspector -- )
25     2nip swap >>object refresh ;
26
27 \ &push H{ { +nullary+ t } { +listener+ t } } define-command
28
29 \ &back H{ { +nullary+ t } { +listener+ t } } define-command
30
31 \ &globals H{ { +nullary+ t } { +listener+ t } } define-command
32
33 : inspector-help ( -- ) "ui-inspector" help-window ;
34
35 \ inspector-help H{ { +nullary+ t } } define-command
36
37 inspector-gadget "toolbar" f {
38     { T{ update-object } refresh }
39     { f &push }
40     { f &back }
41     { f &globals }
42     { T{ key-down f f "F1" } inspector-help }
43 } define-command-map
44
45 inspector-gadget "multi-touch" f {
46     { T{ left-action } &back }
47 } define-command-map
48
49 M: inspector-gadget tool-scroller
50     pane>> find-scroller ;