- | GUI 2.0
- | PHREDA - 2009
- |-----------------------------
- ^reda4.txt
- ^graflib.txt
- #ygui #xgui
- #boton 0
- #tocado 0
- #marca 0
- #tablamain
- |--------pantalla
- :tabla1 | adr 1 -- adr+
- swap @+ swap | w h adr
- @+ w 16 *>> 'xc +!
- @+ h 16 *>> 'yc +!
- @+ >r | <===exec
- swap h 16 *>> 'h !
- swap w 16 *>> 'w !
- xymouse whin 1? ( over 'tocado ! ) drop
- ;
- :dibujagui
- 0 'tocado !
- bmouse boton =? ( 0 )( 1 ) nip 'marca !
- tablamain
- ( @+ 1? )( cursor.push tabla1 cursor.pop )
- 2drop ;
- ::in? | -- 0/1?
- tocado =? ( 1 )( 0 )
- ;
- ::down?
- marca 0? ( ; ) drop
- bmouse ;
- ::move?
- marca 1? ( 0 nip ; ) drop
- bmouse ;
- ::up?
- marca 0? ( ; ) drop
- bmouse not ;
- :irqpen
- xymouse 'ygui !+ ! ;
- |=================================================
- #startime
- ::.restart
- msec 'startime ! ;
- ::.segs | seg --
- 1000 *
- ::.mseg | seg --
- msec startime - >? ( rdrop ) drop ;
- :cursor1
- bmouse 3 << 8 +
- xymouse
- over pick3 - over op over pick3 + over line
- 2dup pick4 - op rot + line ;
- #dibujacursor 'cursor1
- ::gcursor! | cur --
- 'dibujacursor ! ;
- ::gshow | desc --
- 'tablamain !
- | 'irqpen
- 0 ipen!
- 0 '.exit !
- bmouse 'boton !
- msec 24 +
- ( .exit 0? )( drop
- ( msec >? )( update )
- drop r msec 24 + >r | pila libre
- exec
- dibujagui
- dibujacursor 0? ( drop )( exec )
- redraw r> ) 2drop
- 0 '.exit !
- ;
- ::g.drag | down move up --
- | in? 0? ( 4drop ; ) drop
- marca 1? (
- bmouse 1? ( 4 drop exec ; ) drop
- 2drop nip nip exec ; ) drop
- bmouse 1? ( 2drop nip exec ; )
- 4drop ;
- ::g.click | click --
- ;
:r4 new gui system
