Tweak inspector and profiler tools so that the preferred size is computed from layout rather than hard-coded
							parent
							
								
									6b672a11fa
								
							
						
					
					
						commit
						1a434416ac
					
				| 
						 | 
				
			
			@ -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 ]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 ;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue