Frames had problems with resizing
parent
2434709dc4
commit
2f025f58ae
|
@ -1,4 +1,17 @@
|
||||||
|
USING: accessors kernel namespaces tools.test ui.gadgets
|
||||||
|
ui.gadgets.frames ui.gadgets.grids ui.gadgets.labels ;
|
||||||
IN: ui.gadgets.frames.tests
|
IN: ui.gadgets.frames.tests
|
||||||
USING: ui.gadgets.frames ui.gadgets tools.test ;
|
|
||||||
|
|
||||||
[ ] [ <frame> layout ] unit-test
|
[ ] [ <frame> layout ] unit-test
|
||||||
|
|
||||||
|
[ t ] [
|
||||||
|
<frame>
|
||||||
|
"Hello world" <label> @top grid-add
|
||||||
|
"Hello world" <label> @center grid-add
|
||||||
|
dup pref-dim "dim1" set
|
||||||
|
{ 1000 1000 } >>dim
|
||||||
|
dup layout*
|
||||||
|
dup pref-dim "dim2" set
|
||||||
|
drop
|
||||||
|
"dim1" get "dim2" get =
|
||||||
|
] unit-test
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
! Copyright (C) 2005, 2008 Slava Pestov.
|
! Copyright (C) 2005, 2008 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: arrays generic kernel math namespaces sequences words
|
USING: accessors arrays generic kernel math namespaces sequences
|
||||||
splitting grouping math.vectors ui.gadgets.grids ui.gadgets
|
words splitting grouping math.vectors ui.gadgets.grids
|
||||||
math.geometry.rect ;
|
ui.gadgets math.geometry.rect ;
|
||||||
IN: ui.gadgets.frames
|
IN: ui.gadgets.frames
|
||||||
|
|
||||||
! A frame arranges gadgets in a 3x3 grid, where the center
|
TUPLE: glue < gadget ;
|
||||||
! gadgets gets left-over space.
|
|
||||||
TUPLE: frame < grid ;
|
|
||||||
|
|
||||||
: <frame-grid> ( -- grid ) 9 [ <gadget> ] replicate 3 group ;
|
M: glue pref-dim* drop { 0 0 } ;
|
||||||
|
|
||||||
|
: <glue> ( -- glue ) glue new-gadget ;
|
||||||
|
|
||||||
|
: <frame-grid> ( -- grid ) 9 [ <glue> ] replicate 3 group ;
|
||||||
|
|
||||||
: @center 1 1 ; inline
|
: @center 1 1 ; inline
|
||||||
: @left 0 1 ; inline
|
: @left 0 1 ; inline
|
||||||
|
@ -22,13 +24,15 @@ TUPLE: frame < grid ;
|
||||||
: @bottom-left 0 2 ; inline
|
: @bottom-left 0 2 ; inline
|
||||||
: @bottom-right 2 2 ; inline
|
: @bottom-right 2 2 ; inline
|
||||||
|
|
||||||
|
TUPLE: frame < grid ;
|
||||||
|
|
||||||
: new-frame ( class -- frame )
|
: new-frame ( class -- frame )
|
||||||
<frame-grid> swap new-grid ; inline
|
<frame-grid> swap new-grid ; inline
|
||||||
|
|
||||||
: <frame> ( -- frame )
|
: <frame> ( -- frame )
|
||||||
frame new-frame ;
|
frame new-frame ;
|
||||||
|
|
||||||
: (fill-center) ( n vec -- )
|
: (fill-center) ( dim vec -- )
|
||||||
[ [ first ] [ third ] bi v+ [v-] ] keep set-second ;
|
[ [ first ] [ third ] bi v+ [v-] ] keep set-second ;
|
||||||
|
|
||||||
: fill-center ( dim horiz vert -- )
|
: fill-center ( dim horiz vert -- )
|
||||||
|
@ -36,4 +40,4 @@ TUPLE: frame < grid ;
|
||||||
|
|
||||||
M: frame layout*
|
M: frame layout*
|
||||||
dup compute-grid
|
dup compute-grid
|
||||||
[ [ rect-dim ] 2dip fill-center ] [ grid-layout ] 3bi ;
|
[ [ dim>> ] 2dip fill-center ] [ grid-layout ] 3bi ;
|
||||||
|
|
Loading…
Reference in New Issue