|
Shortcutter for Pocket PC
by Jack Yu-Hung Lin and Brad
A. Myers
Version 0.5
Shortcutter allows you to draw panels of controls (buttons,
scroll bars, knobs and other widgets) and then use them to control any
PC application. The buttons can be big enough to hit with a finger, or
tiny so that many will fit on a screen. You can use Shortcutter to build
custom extensions to applications and you can also take them with you
and use them on other people's computers.
Since most Pocket PC devices use rechargeable batteries,
you are supposed to leave the device connected to the PC whenever the
user is next to the PC to recharge in the cradle. Using Shortcutter to
create panels of controls that might be useful for the PC's applications
makes even more sense.
Please send us examples of interesting panels you make
with Shortcutter so we can find out what people find it useful for. Let
us know if it is OK to share these panels with others. Send to
pebbles@cs.cmu.edu.
There is also a separate Palm version which has separate
documentation.
Shortcutter for PocketPC is available for devices
running PocketPC version 3.0 or later, such
as the Compaq iPaq or the HP Jornada 548. Unfortunately, HPC devices and
older versions of Windows CE are not currently supported.
First, download the full Pebbles V3 zip file and unzip it. See
the download instructions.
Shortcutter consists of two components, which you will find in the Pebbles\WinCE
folder:
-
WinCEShortcutterInstaller.exe: a program that installs the Shortcutter for running on the
PocketPC device. This makes the
program appear in ActiveSync so you can easily install it into your
handheld.
-
PebblesPC.exe: a program (with associated DLLs) that runs on your
desktop computer.
See the main Windows CE
installation instructions for how to get Shortcutter onto your PDA.
We are distributing a sample set of panels for Shortcutter
for PocketPC. It is also in the Pebbles\WinCE folder and is called
ShortCutterData.shc. Shortcutter looks for this file in the "My Documents"
directory of the PocketPC device. You can get the sample ShortCutterData.shc
onto the PocketPC in two ways:
- If you set up a "partnership" using
ActiveSync, and specify to synchronize files, then it will create a
directory on the PC that matches the "My Documents" folder on
the PocketPC. If you open My Documents on the PC, it should contain a
folder named something like "PocketPC My Documents" which
contains the files from the handheld. Now you can copy the file ShortCutterData.shc
from the Pebbles directory to this "PocketPC
My Documents" and then Sync, and the file will appear on the
handheld.
- Connect the PocketPC to the PC using ActiveSync, hit
the ActiveSync toolbar button for Explore (which will show the
PocketPC's file system). Then copy the file from Pebbles\WinCE into the
My Documents folder on the PocketPC.
Notes:
- Copying a ShortCutterData.shc onto the handheld will
remove any panels that are already there. There is currently no
way to merge different panel sets; sorry.
- Be sure that Shortcutter is NOT RUNNING on
the Pocket PC. The best way to insure this is to use the menu command
"Save and Exit" in Shortcutter.
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 window name at the top of
the Shortcutter screen shows the currently displayed panel. You can click
on the "Panels" menu to see the list of other panels. The "Panels"
menu has options for creating, renaming and deleting panels. Shortcutter stores all the panels in a file called Shortcutter.shc
in "My Documents" directory. You can distribute the panels you create by
sharing your Shortcutter.shc file. Currently, there are 3 panels
included in the sample download, Number Pad, Winamp and X10 lighting
control. You can also make your own panels and when you exit, your
panel will automatically be saved. See the discussion above about loading
the sample panels.
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.
Shortcutter has two global modes: Editing and
Running. You can switch between them with the option under Tools menu:
RunMode. When Shortcutter is in RunMode, a check mark will appear next
to RunMode, likewise when you are editing a panel, a check mark will not
appear next to RunMode.
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. The dots align with the grid so you can easily organize your
panel
To create a button or other widget in edit mode, simply put the stylus
you want the widget to go, and drag in any direction until you have created
the desired size. After the button is created, you can double click to
pop up the "Widget Properties" screen. It will allow you to name the button
and set its properties.
The label of the widget is displayed
for most kinds of widgets. 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.
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. 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.
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.
The size and position of the widgets is controlled by the current Gridding
amount, which is set with the Tools / Options form. The default is 10
pixels. The grid also determines the minimum size object, and where the
widgets are placed.
Shortcutter keeps all edits in memory, while you are editing. Therefore,
if Shortcutter crashes, all the edits are lost (like a regular PC program)
The edits are saved to the file only when you save and exit Shortcutter.
Shortcutter has a few bugs that may cause it to crash while editing.
Therefore, you should exit Shortcutter frequently to save your work.
Note that after saving, leaving and returning, your widgets
and panels will be reloaded from a file.
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 select an action
for each direction you move the stylus. If the widget is taller than
it is wide, then an action is triggered when you move the stylus vertically
and if it is wider than tall it performs actions when you slide 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 action to continue to execute.
- Scroll Joystick - This widget allows you to select an action
for each direction you move the stylus. If the widget is taller than
it is wide, then an action is triggered when you move the stylus vertically
and if it is wider than tall it performs actions when you slide 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 action to continue to execute.
- 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. 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"
- 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).
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.
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 pop-up
keyboard. If you want a Shortcutter button to act like the PC's Alt,
Shift or Ctrl modifiers, you can hit these buttons on the pop-up keyboard
and then click OK.
- 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.
- 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.
You can type in the name of a file
or URL, and the PC will open it with the appropriate application. A
special Open action is to use the devicectl.exe file to control
X-10 devices, see 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. This is not yet implemented in version 0.5.
- PC Menu / Tool Item - This is not yet implemented in version
0.5.
- Application Specific - This is not yet implemented in version
0.5.
This is not yet implemented in version 0.5.
Also available 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 -proxima
or
devicectl -com -x10
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
This is not yet implemented in version 0.5.
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. In addition, the delete and properties options are
grayed out in the Edit menu.
This is not yet implemented in version 0.5.
This is not yet implemented in version 0.5
Edit Mode
Tools menu:
- About Shortcutter: displays the current version of Shortcutter.
- Options: Sets the network connection IP and also this is where you
set the grid size.
- RunMode(unchecked): Switches to RunMode.
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. If the new name is a duplicate of an existing panel, you are
prompted to change to another name. No two panels with the same name
is allowed.
Edit menu:
- Delete: Deletes the selected widget. If nothing is
selected, this option is grayed out.
- Properties: Display the properties of the selected
object. This allows you to change any of the settings of the widget.
If nothing is selected, this option is grayed out.
Run Mode
Tools menu:
- About Shortcutter: displays the current version of Shortcutter.
- Options: Sets the connection type and parameters and also this
is where you set the grid size
- RunMode (checked): switches back to Edit mode
- Shortcutter sometimes crashes when editing. It's not a common occurrence
but be sure to save and exit Shortcutter frequently to avoid losing
work.
- There is probably a limit on the number of panels that can be open
at once.
- Probably many more.... Let me know what you want fixed! pebbles@cs.cmu.edu
Maintained by Brad Myers
|