[openfirmware] [commit] r2754 - ofw/gui
repository service
svn at openfirmware.info
Thu Dec 8 13:43:43 CET 2011
Author: wmb
Date: Thu Dec 8 13:43:42 2011
New Revision: 2754
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2754
Log:
GUI mouse driver - support absolutely-addressed pointers like touchscreens.
Modified:
ofw/gui/mouse.fth
Modified: ofw/gui/mouse.fth
==============================================================================
--- ofw/gui/mouse.fth Thu Dec 8 13:43:38 2011 (r2753)
+++ ofw/gui/mouse.fth Thu Dec 8 13:43:42 2011 (r2754)
@@ -3,6 +3,8 @@
headerless
+false value mouse-absolute? \ True if coordinates are absolute
+
\ Current mouse cursor position
0 value xpos 0 value ypos
@@ -134,10 +136,12 @@
: remove-mouse-cursor ( -- )
hardware-cursor? if " cursor-off" $call-screen exit then
mouse-ih 0= if exit then
+ mouse-absolute? if exit then
xpos ypos old-rect put-cursor
;
: draw-mouse-cursor ( -- )
mouse-ih 0= if exit then
+ mouse-absolute? if exit then
hardware-cursor? if
xpos ypos " cursor-xy!" $call-screen
exit
@@ -152,6 +156,7 @@
: clamp ( n min max - m ) rot min max ;
: update-position ( x y -- )
+ mouse-absolute? if to ypos to xpos exit then
2dup or 0= if 2drop exit then \ Avoid flicker if there is no movement
\ Minimize the time the cursor is down by doing computation in advance
@@ -184,6 +189,7 @@
close-mouse? if
mouse-ih close-dev
0 to mouse-ih
+ false to mouse-absolute?
hardware-cursor? if
false to hardware-cursor?
" cursor-off" $call-screen
@@ -196,7 +202,13 @@
mouse-ih 0= if
" /mouse" open-dev to mouse-ih
then
- mouse-ih if alloc-mouse-cursor then
+ mouse-ih if
+ " absolute?" mouse-ih ['] $call-method catch if ( x x x )
+ 3drop false
+ then ( absolute? )
+ to mouse-absolute?
+ mouse-absolute? 0= if alloc-mouse-cursor then
+ then
then
;
: mouse-event? ( -- false | x y buttons true )
More information about the openfirmware
mailing list