Squeak for handhelds - help!

Dean_Swan at Mitel.COM Dean_Swan at Mitel.COM
Thu Oct 28 16:48:11 UTC 1999


Ok, I've spent enough time looking at the issues related to getting Squeak into
a usable state on the Casio E-105, that I actually decided to start coding some
of the needed additions, and ran quickly into some roadblocks.

First one is the previously reported problem(s) with the System Browser under
MVC.

Second one is what I need help with....

I've added the following class:

     CursorWithMask subclass: #SoftwareCursor
          instanceVariableNames: 'saveForm savePoint '
          classVariableNames: ''
          poolDictionaries: ''
          category: 'Graphics-Display Objects'

, and this method, as a start to adding a Cursor displayed by Squeak (since
WinCE doesn't do it):

display
     "comment stating purpose of message"

     | cursorLoc |
     cursorLoc _ Sensor cursorPoint.
     [cursorLoc == savePoint] ifFalse:
          [
               saveForm isNil ifFalse: [saveForm displayAt: savePoint].
               savePoint _ cursorLoc.
               saveForm _ Form fromDisplay: (Rectangle origin: savePoint extent:
 16 at 16).
               self displayAt: cursorLoc.
          ]


Addmittedly, this method doesn't account for the 'maskForm', or 'offset', but I
thought I'd start simple.

When I try the following code to test my new method, I get a walkback
complaining about a Nonboolean Receiver.

     | a |
     a _ SoftwareCursor new.
     Cursor currentCursor: Cursor blank.
     [Sensor anyButtonPressed] whileFalse: [ a display ].
     Cursor currentCursor: Cursor normal.

Opening the debugger and going to 'SoftwareCursor>>display', 'isNil' in the
'saveForm isNil ifFalse: [ ....' line is highlighted.

I've tried messing with parentheses and brackets, with no luck.  Evaluating
'saveForm isNil' in the debugger source pane returns 'true', and evaluating
'saveForm isNil class' returns 'True', which is a subclass of 'Boolean', so I
don't understand why the VM is complaining with 'mustBeBoolean'.



Any explanation and/or guidance would be most appreciated.



After I get the software cursor issues worked out, my next step will be to
create an 'InputSensor' substitute class that remaps the hardware buttons on the
E-105 to the red, yellow, blue mouse buttons, and prevents 'mouse down' events
from WinCE from being interpreted as clicks by Squeak.  I'm assuming then that
creating an instance of my new sensor class and assigning it to 'Sensor' should
make everything work?  Are there any places in the image that will be a problem
for this approach?



Oh, I forgot to mention... All of the above was done working from a 2.5 Win32 VM
on WinNT or 95, with a 2.5 image through changeset #1447.



Thanks (in advance) for any help you can offer!



                                   -Dean Swan

                                   dean_swan at mitel.com





More information about the Squeak-dev mailing list