PointerHack Version 002 Manual

(Note: the command summary listed below is also available onboard the Palm on the HackMaster information screen)

OVERVIEW

This HackMaster application uses a keyboard-controlled pointer (similar to Windows) that can be used in place of a stylus. LapTopHack by Paul Nevai ideally should complement it.

This is FREEWARE. I have also provided the source code free with the application. It is provided AS IS with no guarantee that it will work on your machine or that there is some incompatibility with some other loaded Palm application.

BACKGROUND

I do a lot of typing on my Palm Vx and I therefore decided to buy the GoType! Keyboard. After using the keyboard for a while I was becoming annoyed at having to still use the stylus to do certain things.

I gave up hope until I saw LapTopHack on the Peditor Forum (I am a huge fan of Paul Nevai's Pedit - it is the best editor on the Palm by far and suits keyboard use perfectly). LapTopHack (and it's additional peditHack) allow almost everything to be done by the keyboard.

While using LapTopHack and the GoType there still are some limitations to what you can do:

- Menus: currently only the dropping down of the menu bar is supported by LapTopHack (LTH). You cannot cycle through the list of menu items. Also you cannot move to the second menu bar title item.

- Bitmap type applications like MegaLauncher that don't have any controls at all are not catered for at all by LTH

I then decided to write PointerHack to be able to use a type of mouse pointer to be able to "point and click" on the Palm. Currently it supports menu navigation (see MENU NAVIGATION below for more detail), bitmap screen tapping, and access to ALL controls and fields.

 

GENERAL PRINCIPLES

The keyboard pointer navigation keys are hardcoded and therefore not configurable (see COMMAND SUMMARY below).

The launch key is configurable in the HackMaster/EVPlugBase configuration screen (see CONFIGURING IN HACKMASTER below) (New to version 002).

The keys are fairly intuitive and allow for the standard arrow keys as well as diagonals. Quick navigation like screen centre, top, bottom, left and right are also supported.

TECH DETAILS (Skip if you want - for interested programmers only)

The GNU C source code is attached. The interesting things are as follows:

Simulating a tap on the screen is achieved by programmatically enqueuing Pen Down and Up points to the Pen Queue. This is picked up by subsequent applications in the Event Loop as if the pen was tapped on the screen. I originally tried to do this by enqueuing a PenDownEvent and PenUpEvent to the normal event queue but this didn't work completely, as some applications and all controls don't handle the Pen Up event - they interrogate the Pen Queue directly via the EvtGetPen system function.

- To do the enqueuing of points to the Pen Queue I had to use the badly documented system function EvtEnqueuePenPoint (it is not documented as Palm say it should not be used by us - unfortunately there was no other function that I could find to do the same job !). This function is called by the digitizer interrupt when you tap on the screen with the stylus.

- The EvtEnqueuePenPoint function doesn't use the same co-ordinate system as the PenDown and PenUp functions. Firstly it operates Bottom Right as base instead of Top Left for X and Y point offset purposes. Secondly, the digitizer surface area is a different size than the window area.

- Another complication is that every different device (whether POSE (the Palm Emulator), Palm Vx, Palm III) seems to have a slightly different size digitizer surface. Also the number of points (X and Y) in the surface is different. I have added some functionality in the HackMaster configuration screen onboard that can help you set it up for your device (see CONFIGURING IN HACKMASTER below)

The Pointer is implemented as a triangle. To draw it quickly and not affect the underlying graphics, I move it my doing a WinInvertLine function and again to remove it – this keeps the underlying graphics intact. It does look a bit funny sometimes but I do not know of a more elegant way to do this.

 

COMMAND SUMMARY

Enable/Disable

"\" : Enable the pointer

"." : Disable the pointer

(or switch to another app)

Movement (While Enabled)

(Normal speed – 8 Pixels) (New to version 002 – was 3 pixels)

"i" : UP

"m" : DOWN

"j" : LEFT

"k" : RIGHT

"o" : UP & RIGHT

"," : DOWN & RIGHT

"u" : UP & LEFT

"n" : DOWN & LEFT

(Fine Tune – 3 Pixels) (New to version 002 – was 10 pixels )

"I" : UP

"M" : DOWN

"J" : LEFT

"K" : RIGHT

"O" : UP & RIGHT

"<" : DOWN & RIGHT

"U" : UP & LEFT

"N" : DOWN & LEFT

Miscellaneous (While Enabled)

"t" : Go to Top of current window

"b" : Go to Bottom of current window

"l" : Go to Left of current window

"r" : Go to Right of current window

"c" : Go to Centre of current window

"1" – "0" : Pull down Menu Column 1-10 (Column 10 new to version 002)

"z" – Simulate Tap on menu silk-screen button (New to version 002)

"p" – Position pointer at current cursor location (New to version 002)

"s" : Tap at pointer location

"^" : Tap Above current window

"\" : Do '\' character itself (Configurable in HackMaster/EVPlugBase) (New to version 002)

 

MENU NAVIGATION (Changed extensively in Version 002)

- To Select the first drop down column in the menu bar, Tap "1". The Pointer will be positioned over the first item in the list. You can move (see COMMAND SUMMARY) and tap "s" to select an item or "\" again to quit the menu completely.

- To Select the second drop down column in the menu bar, Tap "2". Columns 3-10 are done in the same way.

- To escape from the menus without selecting, type "z" (when pointer enabled) to dismiss the menu

CONFIGURING IN HACKMASTER (Changed extensively in Version 002)

When first installing the Hack onto your Palm, go to HackMaster and tap on the "+" icon next to "Pointer Hack".

You will see the following:

The initial settings will be 100,100 and 50,50 respectively. Tap on "Tune" to change these settings for your machine. They will be automatically set for you. Tap on "OK" to finish. Note that the settings of 256,256 and 81,81 above are the settings for the Palm OS Emulator (POSE). If you want to restore the defaults tap "Default". Note that if you want to change the launch key and you also want to Tune or reset defaults, remember to Tune or Default FIRST and then change the key and then tap "OK". To make sure, go back into the configuration and make sure that it is saved correctly.

NOT HANDLED AT PRESENT

Double Tap.

Drag and Drop support.

Scroll bar dragging.

FUNNIES

  1. Alert boxes don’t seem to be handled at the moment – use LapTopHack or GoType! Enter key or <Command> + <Alt> + <First letter of button label> combination to hit the appropriate button.
  2. In drop down list windows the "m" character which I use for "down" is still interpreted by LapTopHack as a positioning command. The other LapTopHack functions are still active when the pointer is enabled –especially in the drop down boxes. LTH seems to be in fact the best way to handle these boxes as 0-9 etc will give you the first 10 items, space and backspace cycle you through all the options.

MY DETAILS

Robert Gasparotto

E-mail: rgasparotto1@go.com

Web-site: http://www.geocities.com/rgasparotto1/mypage.html