! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs classes classes.mixin kernel namespaces
-parser ui.gadgets ui.gadgets.scrollers ui.gadgets.tracks ;
+parser ui.gadgets ui.gadgets.scrollers ui.gadgets.tracks
+combinators.short-circuit ;
IN: ui.tools.common
SYMBOL: tool-dims
TUPLE: tool < track ;
M: tool pref-dim*
- class tool-dims get at ;
+ { [ class tool-dims get at ] [ call-next-method ] } 1|| ;
M: tool layout*
[ call-next-method ]
TUPLE: inspector-gadget < tool table ;
-{ 500 300 } inspector-gadget set-tool-dim
-
TUPLE: slot-description key key-string value value-string ;
: <slot-description> ( key value -- slot-description )
: <inspector-table> ( model -- table )
[ make-slot-descriptions ] <filter> inspector-renderer <table>
[ dup primary-operation invoke-command ] >>action
- monospace-font >>font ;
+ monospace-font >>font
+ 15 >>min-rows
+ 15 >>max-rows
+ 40 >>min-cols
+ 40 >>max-cols ;
: <inspector-gadget> ( model -- gadget )
vertical inspector-gadget new-track
methods
generic class ;
-{ 700 400 } profiler-gadget set-tool-dim
-
SINGLETONS: word-renderer vocab-renderer ;
UNION: profiler-renderer word-renderer vocab-renderer ;
{ 3 3 } >>gap
profiler vocabs>> vocab-renderer <profiler-table>
profiler vocab>> >>selected-value
+ 10 >>min-rows
+ 10 >>max-rows
"Vocabularies" <labeled-gadget>
1/2 track-add
profiler <words-model> word-renderer <profiler-table>
+ 10 >>min-rows
+ 10 >>max-rows
"Words" <labeled-gadget>
1/2 track-add ;
1/2 track-add
1/2 track-add
profiler methods>> method-renderer <profiler-table>
+ 5 >>min-rows
+ 5 >>max-rows
+ 40 >>min-cols
"Methods" <labeled-gadget>
1/2 track-add ;