Index: gles2/widgets-test.fs ================================================================== --- gles2/widgets-test.fs +++ gles2/widgets-test.fs @@ -13,36 +13,36 @@ text new value f7 text new value f8 : !f1 ( -- ) f1 >o - 0 x ! 0 y ! dpy-w @ 4 / w ! dpy-h @ 2/ d ! + 0 0 dpy-w @ 4 / 0 dpy-h @ 2/ resize 32 border ! $FFFFFFFF frame-color ! button2 o> ; : !f2 ( -- ) f2 >o - dpy-w @ 2/ x ! 0 y ! dpy-w @ 2/ w ! dpy-h @ 19 20 */ d ! + dpy-w @ 2/ 0 dpy-w @ 2/ 0 dpy-h @ 19 20 */ resize 32 border ! $FF7FFFFF frame-color ! button3 o> ; : !f3 ( -- ) f3 >o - 0 x ! dpy-h @ 2/ y ! dpy-w @ 2/ w ! dpy-h @ 2/ 2/ d ! + 0 dpy-h @ 2/ dpy-w @ 2/ 0 dpy-h @ 2/ 2/ resize 16 border ! $FFFF7FFF frame-color ! button1 o> ; : !f4 ( -- ) f4 >o - 0 x ! dpy-h @ 3 4 */ y ! dpy-w @ 4 / w ! dpy-h @ 5 / d ! + 0 dpy-h @ 3 4 */ dpy-w @ 4 / 0 dpy-h @ 5 / resize 32 border ! $FF7F7FFF frame-color ! button1 o> ; : !f5 ( -- ) f5 >o - dpy-w @ 4 / x ! dpy-h @ 3 4 */ y ! dpy-w @ 4 / w ! dpy-h @ 5 / d ! + dpy-w @ 4 / dpy-h @ 3 4 */ dpy-w @ 4 / 0 dpy-h @ 5 / resize 8 border ! $7FFF7FFF frame-color ! button1 o> ; : !f6 ( -- ) f6 >o - dpy-w @ 4 / x ! 0 y ! dpy-w @ 4 / w ! dpy-h @ 2/ d ! + dpy-w @ 4 / 0 dpy-w @ 4 / 0 dpy-h @ 2/ resize 16 border ! $7FFFFFFF frame-color ! button2 o> ; also freetype-gl 48e FConstant fontsize# Index: gles2/widgets.fs ================================================================== --- gles2/widgets.fs +++ gles2/widgets.fs @@ -46,19 +46,21 @@ method hglue@ ( -- typ sub add ) \ cached variant method dglue@ ( -- typ sub add ) \ cached variant method vglue@ ( -- typ sub add ) \ cached variant method xywh ( -- x0 y0 w h ) method xywhd ( -- x y w h d ) + method resize ( x y w h d -- ) method !size \ set your own size end-class widget :noname x @ y @ h @ - w @ h @ d @ + ; widget to xywh :noname x @ y @ w @ h @ d @ ; widget to xywhd ' noop widget to !size :noname w @ 0 0 ; widget to hglue :noname h @ 0 0 ; widget to vglue :noname d @ 0 0 ; widget to dglue +:noname d ! h ! w ! y ! x ! ; widget to resize ' hglue widget to hglue@ ' vglue widget to vglue@ ' dglue widget to dglue@ tex: style-tex \ 8 x 8 subimages, each sized 128x128 @@ -219,10 +221,16 @@ : +child ( o -- ) child-w @ over >o next-w ! o> child-w ! ; : +childs ( o1 .. on n -- ) 0 +DO +child LOOP ; \ glue arithmetics +box class end-class hbox \ horizontal alignment +box class + field: baseline \ minimun skip per line +end-class vbox \ vertical alignment +box class end-class zbox \ overlay alignment + : 0glue ( -- t s a ) 0 0 0 ; : 1glue ( -- t s a ) 0 0 [ -1 1 rshift ]L ; : g3>2 ( t s a -- min a ) over + >r - r> ; @@ -243,16 +251,10 @@ : hglue* 1glue [: hglue@ glue* ;] do-childs ; : dglue* 1glue [: dglue@ glue* ;] do-childs ; : vglue* 1glue [: vglue@ glue* ;] do-childs ; -box class end-class hbox \ horizontal alignment -box class - field: baseline \ minimun skip per line -end-class vbox \ vertical alignment -box class end-class zbox \ overlay alignment - ' hglue+ hbox is hglue ' dglue* hbox is dglue ' vglue* hbox is vglue ' hglue* vbox is hglue Index: widgets-test.fs ================================================================== --- widgets-test.fs +++ widgets-test.fs @@ -13,36 +13,36 @@ text new value f7 text new value f8 : !f1 ( -- ) f1 >o - 0 x ! 0 y ! dpy-w @ 4 / w ! dpy-h @ 2/ d ! + 0 0 dpy-w @ 4 / 0 dpy-h @ 2/ resize 32 border ! $FFFFFFFF frame-color ! button2 o> ; : !f2 ( -- ) f2 >o - dpy-w @ 2/ x ! 0 y ! dpy-w @ 2/ w ! dpy-h @ 19 20 */ d ! + dpy-w @ 2/ 0 dpy-w @ 2/ 0 dpy-h @ 19 20 */ resize 32 border ! $FF7FFFFF frame-color ! button3 o> ; : !f3 ( -- ) f3 >o - 0 x ! dpy-h @ 2/ y ! dpy-w @ 2/ w ! dpy-h @ 2/ 2/ d ! + 0 dpy-h @ 2/ dpy-w @ 2/ 0 dpy-h @ 2/ 2/ resize 16 border ! $FFFF7FFF frame-color ! button1 o> ; : !f4 ( -- ) f4 >o - 0 x ! dpy-h @ 3 4 */ y ! dpy-w @ 4 / w ! dpy-h @ 5 / d ! + 0 dpy-h @ 3 4 */ dpy-w @ 4 / 0 dpy-h @ 5 / resize 32 border ! $FF7F7FFF frame-color ! button1 o> ; : !f5 ( -- ) f5 >o - dpy-w @ 4 / x ! dpy-h @ 3 4 */ y ! dpy-w @ 4 / w ! dpy-h @ 5 / d ! + dpy-w @ 4 / dpy-h @ 3 4 */ dpy-w @ 4 / 0 dpy-h @ 5 / resize 8 border ! $7FFF7FFF frame-color ! button1 o> ; : !f6 ( -- ) f6 >o - dpy-w @ 4 / x ! 0 y ! dpy-w @ 4 / w ! dpy-h @ 2/ d ! + dpy-w @ 4 / 0 dpy-w @ 4 / 0 dpy-h @ 2/ resize 16 border ! $7FFFFFFF frame-color ! button2 o> ; also freetype-gl 48e FConstant fontsize# Index: widgets.fs ================================================================== --- widgets.fs +++ widgets.fs @@ -46,19 +46,21 @@ method hglue@ ( -- typ sub add ) \ cached variant method dglue@ ( -- typ sub add ) \ cached variant method vglue@ ( -- typ sub add ) \ cached variant method xywh ( -- x0 y0 w h ) method xywhd ( -- x y w h d ) + method resize ( x y w h d -- ) method !size \ set your own size end-class widget :noname x @ y @ h @ - w @ h @ d @ + ; widget to xywh :noname x @ y @ w @ h @ d @ ; widget to xywhd ' noop widget to !size :noname w @ 0 0 ; widget to hglue :noname h @ 0 0 ; widget to vglue :noname d @ 0 0 ; widget to dglue +:noname d ! h ! w ! y ! x ! ; widget to resize ' hglue widget to hglue@ ' vglue widget to vglue@ ' dglue widget to dglue@ tex: style-tex \ 8 x 8 subimages, each sized 128x128 @@ -219,10 +221,16 @@ : +child ( o -- ) child-w @ over >o next-w ! o> child-w ! ; : +childs ( o1 .. on n -- ) 0 +DO +child LOOP ; \ glue arithmetics +box class end-class hbox \ horizontal alignment +box class + field: baseline \ minimun skip per line +end-class vbox \ vertical alignment +box class end-class zbox \ overlay alignment + : 0glue ( -- t s a ) 0 0 0 ; : 1glue ( -- t s a ) 0 0 [ -1 1 rshift ]L ; : g3>2 ( t s a -- min a ) over + >r - r> ; @@ -243,16 +251,10 @@ : hglue* 1glue [: hglue@ glue* ;] do-childs ; : dglue* 1glue [: dglue@ glue* ;] do-childs ; : vglue* 1glue [: vglue@ glue* ;] do-childs ; -box class end-class hbox \ horizontal alignment -box class - field: baseline \ minimun skip per line -end-class vbox \ vertical alignment -box class end-class zbox \ overlay alignment - ' hglue+ hbox is hglue ' dglue* hbox is dglue ' vglue* hbox is vglue ' hglue* vbox is hglue