Tweak inspector and profiler tools so that the preferred size is computed from layout rather than hard-coded

db4
Slava Pestov 2009-02-16 04:34:22 -06:00
parent 6b672a11fa
commit 1a434416ac
3 changed files with 15 additions and 7 deletions

View File

@ -1,7 +1,8 @@
! 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
@ -11,7 +12,7 @@ tool-dims global [ H{ } clone or ] change-at
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 ]

View File

@ -12,8 +12,6 @@ IN: ui.tools.inspector
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 )
@ -65,7 +63,11 @@ M: hashtable make-slot-descriptions
: <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

View File

@ -20,8 +20,6 @@ words
methods
generic class ;
{ 700 400 } profiler-gadget set-tool-dim
SINGLETONS: word-renderer vocab-renderer ;
UNION: profiler-renderer word-renderer vocab-renderer ;
@ -126,9 +124,13 @@ M: method-renderer column-titles drop { "Method" "Count" } ;
{ 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 ;
@ -147,6 +149,9 @@ M: method-renderer column-titles drop { "Method" "Count" } ;
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 ;