Palm User Guide

Panels
Each screen-full of controls is called a "panel". The user can create
many different panels to control different applications. Panels can also be
renamed and deleted. The panel menu at the top-right of the Shortcutter screen
shows the currently displayed panel, and the list of other panels. When in edit
mode, the "Panel" menu has items for creating, renaming and deleting
panels, and you can also use the bottom item in the panel menu to add, rename,
or delete panels. Shortcutter stores each panel in a different database on the
Palm. This means that when you hotsync, each Shortcutter database will be stored
in a different file on the PC. The name of the file is the name of your panel,
prefixed with "Shortcutter_". For example, the "Main" panel
becomes the file "Shortcutter_Main.PDB" which is put into your regular
backup directory. This makes it easy to share and distribute panels of controls.
You can select any of the PDB files and load them onto the Palm like any .PRC
file, and then the next time you run Shortcutter, it will load in these new
panels. For example, in the distribution of Shortcutter, we have included some
sample panels (see pictures below):
- ShortCutter_Number_Pad.PDB - A numberpad on the Palm, for
example for laptops that don't have a numberpad.
- ShortCutter_Scrollers.PDB - A variety of scrollers on the
Palm, to make it fast and convenient to scroll applications on the PC. For
example, this allows scrolling to be performed with the left hand while using
the mouse with the right hand.
- ShortCutter_Internet_Explor.PDB - Some controls that might
be useful for Internet Explorer. You might want to change the center button
to go to your favorite page! To modify for Netscape, change the Key assignments
for the buttons.
- ShortCutter_WinAmp.PDB - This allows the Palm to control
the popular WinAmp PC program (see http://www.winamp.com/)
that plays sound files (like mp3 files) on the PC. The Shortcutter panel includes
buttons for Play, Stop, Pause, Next and Previous Tracks, and Louder and Softer.
This allows the full PC's screen to be used for visualizations or other tasks
while the Palm is used for controlling the sound.
If you make some nice panels either for a particular application, or for applications
in general, please email them to pebbles@cs.cmu.edu so we can see what you have
made, and share them with others.
Creating and Editing Widgets
Shortcutter
has two global modes: Editing and Running. You can switch using the menu commands
Edit / Switch to Run Mode and Options / Switch to Edit Mode. Both have the same
accelerator: Command T.
When in edit mode, you can create panels, add new buttons and other widgets
to the panels, set their properties, move them around, delete them, etc. The
screen shows a pattern of dots to show you are in edit mode. Note that the dots
do not align with the grid; they are just to show that you are editing.
Creating Widgets
To create a button or other widget in edit mode, simply put the stylus at
the top left of where you want the widget to go, and drag to the bottom right.
The button must be of a big-enough size, or nothing will be created (just tapping
won't create a button -- you have to drag towards the bottom right). After the
button is created, the "Item Properties" screen will immediately appear
to allow you to name the button and set its appearance and properties. If you
hit OK, the button will be created, and if you hit Cancel, the button will not
be created.
General Properties
The
label of the widget is displayed for most kinds of widgets. You can also select
the font in which the label is displayed. The next item is the widget type.
The various types are discussed below. Depending on the type, you can then set
the actions associated with the widget.
Button-style widgets allow you to set the Appearance of the widget. Current
choices are "Rounded Rect", regular "Rectangle" or "No
Border", and a checkbox determines whether it is Filled or not (black with
white text or white with black text).
Editing
The Shortcutter uses a standard direct manipulation drawing editor style of
manipulation. The selected widget is shown with four black squares at its corners
(the button "Read" is selected in the picture above). Tap on a widget
to select it. Tap where there is no widget (in the background) to make there
be no selection. You can drag in the center of the widget to move it and drag
on a square to resize the widget. For small widgets, it might be easier to press
and drag with the stylus rather than tapping and then trying to drag from the
center since the widget might be covered by the selection handles. The selected
widget can be deleted using the menu command Edit / Delete. (The menu commands
Cut, Copy and Paste are not implemented yet, sorry.) Undo is supported for creating,
moving and deleting widgets (but not yet for changing properties or deleting
a panel).
You can get back to the properties form shown when the widget was created using
the Edit / Properties menu item or by double tapping on a widget.
Gridding
The size and position of the widgets is controlled by the current Gridding
amount, which is set with the Options / Set Grid form. The default is 10 x 10
pixels. The grid also determines the minimum size object, and where the widgets
are placed. The screen is 160 x 160 pixels in size, and the Shortcutter header
is 16 pixels tall. Note that the dots in edit mode do not correspond to the
grid amount.
Warning!
Shortcutter keeps all edits in memory, not in the database,
while you are editing. Therefore, if Shortcutter crashes, all the edits are
lost (like a regular PC program, but unlike most other Palm programs). The edits
are saved to the database only when you exit Shortcutter, by switching to another
application. Shortcutter has a few bugs that may cause it to crash while editing
(like it can run out of memory). Therefore, you should exit Shortcutter
frequently to save your work. Note that after leaving and returning,
the undo history is gone, but at least all your widgets are safe in databases,
and will be backed up at your next Hotsync.
Types of Widgets
The
first choice to make when creating a control is which kind of widget it should
be. The choices are as follows (see picture at right):
- Button - This is a regular button that does one action
when it is pressed. You can choose one action, and control the appearance
of the button, as described above.
- Up-Down Button - This is similar to a button, but it does
one action when the button is pressed, and a completely independent action
when the button is released. If you move outside before releasing, only the
down (first) action is performed.
- Scroll Slider - This widget allows you to scroll the current
PC application by dragging your finger (or stylus) up and down (or left and
right) in the widget. If the widget is taller than it is wide, then it scrolls
up and down (vertically) and if it is wider than tall it scrolls horizontally.
Note that you usually want to make a long thin Scroll Slider; it doesn't make
much sense for it to be square. You don't have to stay inside the scroll widget
for the scrolling to continue. The scroll slide is equivalent to the sliders
in the Pebbles SlideScrl application.
- Scroll Joystick - This widget is a different style of
scrolling. Pressing down in the center of the widget, and then moving out
starts scrolling in that direction at a speed proportional to how far you
move. Moving farther from the center scrolls faster. You do not need to stay
in the widget while scrolling - you can move all the way to the edge of the
Palm screen to get increased speed, as long as you start in the center. Therefore,
it is good to put a scroll joystick widget at the center of the screen. It
is equivalent to the Pebbles RateScrll application.
- Gesture Pad - This interesting widget allows you to specify
nine (9) different actions, and then invokes the appropriate one depending
on what "gesture" you make inside the widget. Currently, 9 different
gestures are supported. If you make the widget big enough, it will display
8 arrows and a dot to show the various gestures supported. You must make the
gesture in a single stroke. In run mode, the current gesture arrow or dot
will be highlighted as you make the gesture. If the gesture isn't recognized,
an error sound will be made and none of the arrows will be highlighted. Also,
if your stroke is too long, a error beep will be sounded continuously (only
short gestures are supported). The current gestures are:
- Tap: The dot in the center corresponds to tapping and
releasing in the same place anywhere in the widget.
- Up: The up pointing arrow signifies pressing in the
widget and then moving up before releasing.
- Down: To move down and then release.
- Left: Move to the left and then release.
- Right: Move to the left and then release.
- Down-Up: This means to move down and then to move back
up without releasing. That is, to make a "U" or a real "V"
(note, not a Graffiti "v": moving to the side will abort the
gesture).
- Up-Down: This means to move up and then to move back
down without releasing. That is, to make an upside down "V"
or "U".
Left-Right: Move to the left and then back to the right.
- Right-Left: Move to the right and then back to the
left.
- Knob - A knob displays like a physical knob and allows
you to assign two actions. One is performed when you move clockwise and one
for counter-clockwise. In run mode, you can put your finger or the stylus
in the knob and stir it around (you don't have to stay inside the widget while
stirring). The appropriate action will be sent to the PC for each incremental
movement. The Action Speed selection on the form controls how fast the actions
are sent (or equivalently, how far you have to move around the circle before
the next action is sent to the PC).
Mouse
Pad - This supports controlling the PC's cursor in the same way as
the Pebbles RemoteControl, Scribble and MultiCursor applications. You get
to choose whether the mouse pad widget controls the real mouse (like RemoteControl),
whether it Scribbles on the screen (like Scribble)
or whether it creates an special cursor per user in custom applications (like
MultiCursor). Usually if you have a
mouse pad widget, you would make the Application buttons have actions like
mouse left-down, or else have on-screen Toggle Button widgets whose actions
are mouse left-down, etc. Be sure the control for the mouse button actions
match that of the Mouse Pad widget (e.g., all should be Mouse, or all Scribble,
or all MultiCursor).
- Toggle Button - When you tap on a toggle button, it stays
highlighted, and when you tap again, it becomes un-highlighted. When the action
is a mouse button down, then the second tap will send that mouse button up.
When the action is the key SHIFT, CONTROL or ALT (by themselves without another
key), then the first tap will send that modifier down, and the second tap
will send that modifier up. For most other actions, the release (going un-highlighted)
doesn't do anything.
- Graffiti Pad - This widget lets you do Graffiti actions
in the upper part of the screen. For example, you could make a Graffiti Pad
widget be the entire size of the main screen. For the Shortcutter Graffiti
pad, you can decide whether it will accept only characters, only numbers,
or both. If both, the it is divided into two sides, like the main Graffiti
area. Note that for the Graffiti strokes to be sent through to the application,
the global "Send Graffiti" mode must
be on (see below).
Widget Actions
Each of the widgets supports one or more actions, which occur when you invoke
the widget. The currently supported actions are:
Key
- This sends a single keystroke to the PC. Selecting this action pops up the
Select Key form which contains all the PC's keys, including the function keys.
Note that the modifiers like Alt, Ctrl and Shift are available as well. To send
Ctrl-Shift-F1 from a Shortcutter button, simply select the Ctrl, Shift and then
F1 buttons on the Select Key form. If you want a Shortcutter button to act like
the PC's Alt, Shift or Ctrl modifiers, you can hit these buttons on the form
and then click Done. With auto-repeat turned off (see
below), key-down and key-up will be sent separately, so such widgets can
be used to control games that care about how long a key is held down. [This
is new in version 5.]
Send String - This will send a whole string to the PC as
if it was typed at the PC's keyboard. This might be useful for creating abbreviations
or any other longer string to be sent. This only supports sending alphanumeric
characters, though. You currently cannot include special characters or control
characters in the string. Menu items for Cut, Copy and Paste are available during
type-in so you can transfer text from other Palm applications.
Open
- This tells the PC to open an application or any file or URL. If the application
is already running, however, the Open action will switch to it instead of opening
another copy. [This is new in version 5.] You can type in the name of a file
or URL, and the PC will open it with the appropriate application. Menu items
for Cut, Copy and Paste are available during type-in so you can transfer text
from other Palm applications. If you have the Pebbles RemoteClipHack running,
then you can select a file on the PC (for example in the Windows Explorer or
an icon in the My Computer windows), use the Copy menu command on the PC, and
then Paste into the Open field in Shortcutter on the Palm and the full filename
of that file will appear in the field. The button "Load from current PC
application" tries to figure out which application is at the front on the
PC, and find the ".exe" file for that application, and load its full
file name into the field. A special Open action is to use the devicectl.exe
file to control X-10 devices as explained in the device
control section below.
Scroll Button - This pops up a list of various scrolling
actions. When the button is invoked at run-time, the corresponding scrolling
action will be sent to the PC. Note that this sends a Windows scroll event to
the application, and many applications do not support these scrolling actions,
so if nothing happens, you might try a different event. Also, note that scroll
pagedown and key page down are different: the scroll page down uses the special
scroll windows message whereas the key just sends the keyboard key labeled page
down.
Mouse Button - This allows the Shortcutter widget to pretend
to be the PC's mouse buttons. You can control whether the Left, Middle, or Right
mouse button is sent, and then set modifiers for whether to send a double click,
and whether it should be modified by Shift, Ctrl and/or Alt. You should make
sure the "Control" option matches that for the MousePad widget. Usually,
you will want "Mouse" to press the button for the "real"
mouse. Scribble will allow control of drawing if the MousePad is in Scribble
mode as well. Similarly with MultiCursor.
Switch Panel - This action switches to a different Shortcutter
panel. Unlike all the other actions, it does not send anything to the PC, but
just changes the state on the Palm itself. The list of currently defined panels
is presented.
Macro - This allows a sequence of the other actions to be
sent to the PC. See the full explanation for Macros below.
PC Menu / Tool Item - Many PC commands you might want to
invoke do not have a keyboard shortcut. This action tries to allow you to invoke
them using a Windows hack. Most PC menu and toolbar actions use a special Windows
message to notify the application of what was hit. The PC Menu / Tool Item action
tries to capture this command then send it to the PC as if the menu item or
toolbar had been hit. To use this action, you click on the Record button on
the Shortcutter form, then invoke the desired menu item or toolbar button on
the PC. If it works, Shortcutter will beep and display a command number. Since
these command numbers are pretty meaningless, you can type in a Description
of what the command does, so you can remember later. At run time, this command
number will be sent to the PC. Note that even if the recording works, sometimes
applications do not respond to the command number in the expected manner.
Application Specific - This kind of action will do a different
action depending on which application is running on the PC. There can be up
to three different actions, with an optional default ("otherwise")
action. Any of the choices can be blank. The application name for the "when"
part must match exactly, so it is best to use the "Load from current PC
application" button to make sure the string names are identical.
Auto-Repeat and Silent
For some widgets, such as the buttons, you can choose whether the action will
"Auto-Repeat", which means that the action repeats if you continue
to press on the button. (You can see the check box for Auto-Repeat and Silent
on the "Open" screen above.) There is a short delay before the repeating
begins. If you move outside of the button while pressing, the repeat action
stops. If the auto-repeat check box is not checked, the the action happens once
each time you press the button.
You can also choose "Silent" which means the action doesn't emit
a click on the Palm when you select the button (see the Run
Mode section). Note that although Silent is on the action form, it actually
applies to the entire widget, so making one action of a multi-action widget
(like a knob) silent will also make all the actions of that widget be silent.
Macros
Version
4 of Shortcutter introduced support for "macros", which are simply
a series of actions. Unlike macros in some other systems, in Shortcutter, you
cannot record the actions by example, but rather you have to specify each step
using the regular action specification dialog box described above.
The main screen for macros allow you to type a description of the macro. This
can be used to remind you what the macro will do, and it is what is displayed
on the Palm as feedback when the macro is invoked.
The
screen for editing the macro steps is shown at right. It will initially come
up empty (with no steps). Use the "New" button to add a new step to
the macro. That step will then be selected (the picture shows step 10 selected).
If there is more than one step, you can tap on a different step to select it
instead. Hitting "New" when a step is selected, will create the new
step directly after the selected step, and if nothing is selected, then the
new step goes at the end.
You can edit or delete the selected step using the buttons at the bottom. (As
a shortcut to editing a step, if you click on the step number, it will select
it and then immediately start editing.) You can specify that step's action using
the regular dialog boxes. The arrows in the center bottom allow you to re-order
the steps of the macro by changing the position of the selected step. If there
are more than 9 steps, then the scroll bar appears and you can scroll by tapping
on the scroll bar or by using the physical up-down buttons (note: not the arrow
icons on the screen, which reorder the steps).
Hit the OK button for the edits to go into effect, or hit Cancel to ignore
the edits. Unfortunately, editing of macros is not undo-able, but you can hit
cancel to abort the edits and start over.
Device Control
New in version 5 is a program that can be used to control Proxima projectors
and X-10 devices which are connected to a serial port of your computer. (If
you have other devices connected to the serial port that you want to control,
let us know.) The devicectl.exe program is included in the standard Pebbles
download, and by default ends up in the same directory as PebblesPC.exe. You
can list devicectl.exe in the Open action with the parameters that will cause
devicectl to send commands to the various devices.
The syntax for devicectl is:
devicectl -com <port num> -proxima <proj code>
or
devicectl -com <port num> -x10 <house code> <device
code> <command>
The first parameter to devicectl must be "-com N" where the N is
replaced by the serial COM port that the device is plugged into. For example,
if your projector is plugged into the COM 2 port, you would use "-com 2".
The next parameter is whether to control a Proxima projector or an ActiveHome
X10 device. This is specified using "-proxima" or "-x10".
For a Proxima projector, you would then include the appropriate code for the
projector. Contact Proxima to get the appropriate codes. For example, the following
code will turn on my Proxima projector:
C:\Pebbles\devicectl -com 2 -proxima C00
For X10, you give the house code number, then the device code number, and then
one of the following commands:
- ON
- OFF
- DIM
- BRIGHT
- ALLLIGHTSON
- ALLUNITSOFF
For example, the following will turn the device numbered A2 off, where the
X10 device is plugged into the COM2 port of the computer.
C:\Pebbles\devicectl -com 2 -x10 a 2 OFF
Application Buttons
You
can assign actions to the six hardware buttons on the Palm. Using the "Edit
/ App Buttons Actions" menu item, a form pops up with which you can assign
an action to the DateBook, Address Book, ToDo List, and Memo buttons, and the
Scroll Up and Scroll Down buttons in the center. If the application buttons
have an action assigned to them, then they perform that action when in run mode.
If they have no action: "<none>" assigned, then they perform
their usual action (switching to the appropriate application). Note that the
assignments are global and do not change if you change panels. The actions for
the hard buttons are stored in a separate Palm database from all of the panel
actions, called ShortCutter__HARDBUTTONS.PDB, which you can also share (see
the discussion with the panels about databases).
Sending Graffiti
You
can have the Graffiti strokes done in the Graffiti area of the Palm or in a
Graffiti pad widget (see above) sent through to the application as if they were
typed on the PC's keyboard. This works in the same way as in RemoteCmd. This
is enabled by default, but you can turn it off using the dialog box (shown at
right) which is available from the menu command Edit / Graffiti Preferences
(in Edit mode). The same dialog box is also available from the Options / Global
Preferences (in either mode) dialog box.
Unfortunately, we don't yet support the pop-up keyboard from the Graffiti
"abc" area like RemoteCmd. Another feature we were thinking of adding
eventually is the ability to map a Graffiti stroke to an arbitrary Shortcutter
action, but this also isn't available yet.
Run Mode
When you switch to Run Mode, then all the buttons and other widgets perform
their assigned actions. The dots on the screen are removed in run mode, so it
is easy to tell. When the actions operate successfully, then a beep is sounded.
This means that the Palm and the PC are correctly connected together, PebblesPC
is running on the PC handling the correct serial (COM) port, PebblesPC found
the appropriate Pebbles plug in on the PC, and the command was successfully
sent to the plug in. If there is silence, then either the sounds for the Palm
were turned off globally in the Palm preference dialog, the sound for that button
was turned off by setting its action to be silent, or else the command didn't
get sent to the PC. If there is no action (action type "<None>")
for the widget, there will also be no sound.
Feedback for Actions
In run mode, by default, each action that is performed provides feedback to
show what it is doing. This is displayed as a one-line text string containing
the kind of command and then the value. The string goes away when the button
is released, or on the next command. You can turn off the display of this feedback
using the "Show Action Names" item in the Global Preferences dialog
box.
Global Preferences
Version 4 of Shortcutter introduced a global preferences dialog box. This
has check boxes for controlling the feedback for actions, and for controlling
whether the Palm powers off when Shortcutter is running. Be careful if you un-check
this box that the Palm doesn't run out of battery!
The next buttons provide access to the preferences for Application Keys and
for Graffiti (which are also available directly from menus in Edit mode).
Summary of Menu Items
Edit Mode
Edit menu:
- Undo: undoes the last create, delete, move or grow operation.
Does not yet undo changing properties or delete panel or editing of a Macro
step.
- Cut, Copy, Paste: Not yet implemented.
- Delete: Deletes the selected widget. If nothing is selected,
then beeps.
- Switch to Run Mode: changes so the widgets begin operating,
and the actions are performed.
- App Button Actions: Pop up the form to edit the actions
assigned to the six hardware buttons.
- Graffiti Preferences: Control whether Graffiti characters
are sent through to the application.
- Properties: Display the properties of the selected object.
This allows you to change any of the settings of the widget. If nothing is
selected, then beeps.
Options menu:
- Help: Sorry, no help screens for Shortcutter yet.
- About Shortcutter: displays the current version of Shortcutter.
- Set Grid: Displays the form for setting the grid amount
for editing.
- Global Preferences: Display the global
preferences dialog.
- Connection... Control how the Palm connects to the PC,
as described elsewhere.
Panels menu:
- New Panel: Prompts for the name of the new panel.
- Delete Current Panel: If the currently displayed panel
is not empty, then prompts to confirm, otherwise immediately deletes the current
panel, and switches to the first panel. You cannot delete the last panel.
- Rename Current Panel: Changes the name of the currently
displayed panel. This will also delete the database with the old name from
the Palm and create a database with the new name.
Run Mode
Options menu:
- Help: Sorry, no help screens for Shortcutter yet.
- About Shortcutter: displays the current version of Shortcutter.
- Switch to Edit Mode: go back to edit mode so the widgets
can be edited.
- Global Preferences: Display the global
preferences dialog.
- Connection... Control how the Palm connects to the PC,
as described elsewhere.
Known Problems and Bugs
- The Shortcutter sometimes runs out of memory and crashes when editing.
Be sure to exit the Shortcutter (switch to some other application or to the
Palm launcher using the Application button) frequently to avoid losing work.
- Cut, Copy, Paste are not implemented.
- Undo doesn't work for properties or delete panel.
- There is probably some limit on the number of panels that can be open at
once.
- Sometimes the PC Menu/ Tool Item action doesn't correctly read an action
on the PC, and when it does read an action, it can fail to execute correctly.
- Many PC applications do not implement the Scroll Button actions. If this
is a problem, try using different scroll actions, or even the Key action for
Page Up and Page Down, or the arrow keys.
- Probably many more.... Let me know what you want fixed! Email pebbles@cs.cmu.edu.