Track gadgets compute correct preferred size
parent
aa2c3eaf73
commit
357cdab15b
|
@ -32,7 +32,6 @@
|
||||||
|
|
||||||
- new browser:
|
- new browser:
|
||||||
- browse generic words and classes
|
- browse generic words and classes
|
||||||
- initial size sucks
|
|
||||||
- need actions for reloading the source file and opening word in jEdit
|
- need actions for reloading the source file and opening word in jEdit
|
||||||
- toggle/radio buttons/tabs or something
|
- toggle/radio buttons/tabs or something
|
||||||
- inspector: less clutter when browsing words
|
- inspector: less clutter when browsing words
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
! Copyright (C) 2006 Slava Pestov.
|
! Copyright (C) 2006 Slava Pestov.
|
||||||
! See http://factor.sf.net/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
IN: gadgets
|
IN: gadgets
|
||||||
USING: gadgets gadgets-labels gadgets-layouts gadgets-theme
|
USING: gadgets gadgets-labels gadgets-layouts gadgets-theme
|
||||||
hashtables kernel math namespaces queues sequences threads ;
|
hashtables kernel math namespaces queues sequences threads ;
|
||||||
|
|
|
@ -22,19 +22,32 @@ C: track ( orientation -- track )
|
||||||
|
|
||||||
: <y-track> { 1 0 0 } <track> ;
|
: <y-track> { 1 0 0 } <track> ;
|
||||||
|
|
||||||
|
: divider-sizes ( seq -- dim )
|
||||||
|
length 1- 0 max divider-size n*v ;
|
||||||
|
|
||||||
: track-dim ( track -- dim )
|
: track-dim ( track -- dim )
|
||||||
#! Space available for content (minus dividers)
|
#! Space available for content (minus dividers)
|
||||||
dup rect-dim swap track-sizes length 1-
|
dup rect-dim swap track-sizes divider-sizes v- ;
|
||||||
divider-size n*v v- ;
|
|
||||||
|
|
||||||
: track-layout ( track -- sizes )
|
: track-layout ( track -- sizes )
|
||||||
dup track-dim swap track-sizes
|
dup track-dim swap track-sizes
|
||||||
[ [ over n*v , ] [ divider-size , ] interleave ] { } make
|
[ [ over n*v , ] [ divider-size , ] interleave ] { } make
|
||||||
nip ;
|
nip ;
|
||||||
|
|
||||||
M: track layout* ( splitter -- )
|
M: track layout* ( track -- )
|
||||||
dup track-layout packed-layout ;
|
dup track-layout packed-layout ;
|
||||||
|
|
||||||
|
: track-pref-dims ( dims sizes -- dims )
|
||||||
|
[ [ dup zero? [ nip ] [ v/n ] if ] 2map max-dim ] keep
|
||||||
|
divider-sizes v+ ;
|
||||||
|
|
||||||
|
M: track pref-dim* ( track -- dim )
|
||||||
|
[
|
||||||
|
dup gadget-children
|
||||||
|
2 swap group [ first ] map pref-dims
|
||||||
|
dup rot track-sizes track-pref-dims >r max-dim r>
|
||||||
|
] keep gadget-orientation set-axis ;
|
||||||
|
|
||||||
: divider-delta ( track -- delta )
|
: divider-delta ( track -- delta )
|
||||||
#! How far the divider has moved along the track?
|
#! How far the divider has moved along the track?
|
||||||
drag-loc over track-dim { 1 1 1 } vmax v/
|
drag-loc over track-dim { 1 1 1 } vmax v/
|
||||||
|
|
Loading…
Reference in New Issue