OnBoard RsrcEdit

OnBoard RsrcEdit is a Palm Pilot resource editor that runs on the Pilot and allows users to view and change application resources using a forms-based editing environment tailored for specific resource types.

Users should refer to the Palm SDK (http://palm.3com.com/devzone) documentation for information regarding the format and use of resources.

In this release, OnBoard RsrcEdit provides templates for editing Forms (tFRM), Menus (MBAR), Alerts (Talt), String (tSTR), Icon (tAIB) and Bitmap (Tbmp) resources. Other resources can be edited within a generic hex-editor for now and further template editors will be made available later.

Throughout OnBoard RsrcEdit, resources may be changed and written back to the resource database (for non ROM databases) but PLEASE NOTE that if OnBoard RsrcEdit is terminated by switching to another application (including the application launcher on Palm III), then pending changes will be lost. The changes are not committed to the resource database until the 'OK' button is pressed within the individual resource editors.

1.0 Database List

On the initial form, each database is listed on the left and characteristics from the selected database are displayed on the right. These values may be changed (unless the database is in ROM) and those changes take effect when the 'Apply' button is pressed. Changes may be discarded by pressing the 'Reset' button which restores the original values. Be careful with the 'resource database' checkbox - the system will crash when trying to access resources as records or vice versa.
In this release, the 'Copy Protect' check-box is always read-only. The database list can be sorted in ascending or descending order (the up and down arrows on the left) by Name, Type, Creator, Modification Date, or Index (the order in which the databases are retrieved by the ROM).

The 'Options' menu provides for creating a new database, deleting the selected database, duplicating the selected database and beaming the database to another Pilot running OnBoard RsrcEdit (and that has infrared capability.)
If the selected database is a TealPaint ( www.tealpoint.com ) database (type 'Data', creator 'TlPt'), selecting 'Open TealPaint Database' from the 'Options' menu will display a list of the individual images from that database and allow the user to copy an image to the resource clipboard as a Bitmap resource.

Pressing the 'Open' button will open the resource or the record editor on the selected database, depending on the type of the database. For now the record editor allows only hex-editing on each record.
 

2.0 Resource Editor

The resource editor provides a list of the resources in the selected database by resource type and ID. When selected, the ID and Type of any resource are displayed on the right and may be changed with the 'Apply' button. The 'Reset' button restores the original values for the selected resource. The 'Done' button transfers control back to the database list form.

The 'Edit' menu provides support for Cut/Copy/Paste/Delete for the selected resource. A resource in the clipboard may be transferred to other resource databases, but is lost between successive invocations of OnBoard RsrcEdit. The 'New' menu allows creation of Form, String, Menu bar, Alert and Icon resources. Other resources (generic) may be constructed (after a fashion) by specifying the type, ID and size - any data would then have to be entered in the hex editor.

Pressing the 'Open' button with a resource selected opens either the hex editor (if the 'Hex edit' checkbox is selected) or the template editor for that resource. If a template editor does not exist for the selected resource type, the hex editor opens regardless.
 

3.0 Form Resource Editor

The Form resource editor displays characteristics of the form, together with a list of the form objects. Changes to these values and to characteristics of the form objects themselves do not take effect unless the 'OK' button is pressed, changes are lost if the 'Cancel' button is pressed or if OnBoard RsrcEdit is stopped by running another application. This applies to changes made to form objects from object editors. When form objects are selected from the list, the name and ID of the object is displayed to the right (or pertinent details from the object, e.g. button title, label contents etc.). Once selected, a form object can be edited by pressing the 'Open' button. The 'Preview' button displays the form being edited until a button is pressed (any of the hard buttons, nominally Calendar, Address, To Do or Memo Pad launch buttons as well as the silk-screen buttons to the sides of the Graffiti pad).
The 'Edit' menu provides for Cut/Copy/Paste/Delete of the selected form object. Form objects can be moved via the clipboard to other forms in the same or other resource databases. The form object clipboard is independent of the resource clipboard. The 'New' menu provides for creating form objects - Field, Control (Buttons etc.), List, Table, Bitmap, Label, Title, Popup, Graffiti, Gadget and Scrollbar. Choosing any of these will construct a default empty object and bring up the appropriate object editor. Pressing 'Cancel' on the object editor will still leave the empty object in the object list.
 

3.1 The Object Editors

Each form object kind has an object editor that allows characteristics of that object to be set. All of the object editors provide 'OK' and 'Cancel' buttons to apply or discard the changes made. NOTE that even though changes are applied from within an object editor, those changes are not written into the resource until the 'OK' button is pressed on the form resource editor.

Most of the object editors are simple dialogs allowing for changes to numeric values and flag settings. More complex are the Control, List and Table editors.

3.2 Control Editor

Presents the bounds and other attributes of the control object. The type of control is selected from the 'Style' popup - Button, PushButton, CheckBox, PopupTrigger, SelectorTrigger or RepeatingButton. The kind of frame to be used for the control is likewise selected from the 'Frame' popup.

3.3 List Editor

Along with the bounds and other attributes, the list entries are displayed in a list. Individual list entries can be selected and the text edited using the 'Reset' and 'Apply' buttons as usual. The edit menu provides New & Delete for adding and removing list entries.

3.5 Table Editor

Similarly, the table editor presents the table attributes but, for no discernible reason, adds and deletes columns using buttons instead of a menu. (XXX i'll get to this later)

4.0 String Resource Editor

The string editor displays the string resource contents. No big mysteries here.

5.0 MenuBar Resource Editor

The menubar editor provides a list of the menu titles, and displays characteristics of selected menu titles on the right. The selected menu title may be further edited by pressing the 'Open' button. The 'Calc Width' provides an estimation of the width of the selected menu title in the default menu font. The 'Apply' button commits the menu title changes and 'Reset' restores the original values. The menubar resource is not changed until the 'OK' button is pressed - this includes changes to menu items of individual menu titles. All changes are discarded if the 'Cancel' button is pressed. The 'edit' menu provides for New/Delete/Cut/Copy/Paste of menu titles. Menu titles in the clipboard may be transferred to other menubars in the same or other resource databases.

When a menu title is selected and the 'Open' button pressed, the menu title editor opens.

5.1 Menu Title Editor

The menu title editor allows editing of the characteristics of the menu title including the individual menu items. The 'Calc. Size' button provides an estimation of the size of the menu by calculating the required width of each menu item, allowing for the shortcut key as necessary. Individual menu items can be modified by selecting them from the list. Separator menu items are constructed by specifying a title of '-'. The menu item changes are committed by pressing the 'Apply' button and the original values restored with the 'Reset' button. The 'Edit' menu provides for New/Delete/Cut/Copy/Paste of menu items.
 
 

6.0 Alert Resource Editor

The alert editor presents the alert title, message and other characteristics for editing. The 'Alert Type' popup selects from Information, Confirmation Warning and Error types. The button list allows for editing of the button text, the 'Apply' button commits the changes to the button text, the 'Reset' button discards those changes. Buttons from alerts are not interchangeable with buttons from forms. The message field presents only two lines of the message text, but the rest of the text is accessible by dragging the pen within the field, or by using the forward and backward keystrokes. The 'Preview' button displays the alert being edited until one of the buttons on the alert is pressed.
The alert resource changes are written to the database when the 'OK' button is pressed, discarded otherwise.

7.0 Icon & Bitmap Resource Editor

Provides for simple bit editing of icon resources. The 'size' menu item allows the icon dimensions to be changed. Reducing the size of the icon will lose bits beyond the new dimensions. The 'OK' button writes the new icon bits to the resource database, the 'Cancel' button discards the changes. The icon is edited by drawing directly on the image space, the pen will draw black or white pixels - the reverse of  the state of the initial pixel. The 'zoom' button toggles between 1,2 & 4 times magnification. The scroll buttons scroll the displayed portion of the bitmap

8.0 Hex Editor

The hex editor allows hex and ascii editing of a resource or data record. The 'ASCII' button toggles between displaying ascii values for each byte in the record. Due to space constraints, either ascii values or record offsets can be displayed, not both. Byte values that are not displayable characters are represented with a period. Either the hex value or the ascii value may be changed by selecting the byte on the appropriate side of the display. The page up and page down buttons scroll the display by a full page each time.

A new hex offset may be entered in the Goto field, and the 'Goto' button then switches to display that offset on the top line.

The changed data is written when the 'OK' button is pressed, and discarded if the 'Cancel' button is pressed.

The 'Disasm' button switches to a disassembly of the data, beginning at the offset at the top of the current display. Offsets at the right edge give the target of PC-relative displacements and, if selected, will become the new value of the 'Goto' field. No editing is possible within the disassmbler, but changes in the Hex Editor will be reflected here. The disassembly listing can be written out as a 'QED' file (i.e. in Doc format) by selecting 'Save to QED file...' from the 'Options' menu. Also on that menu is 'Set Buffer size...' which controls the amount of code that is disassembled from the start address. [XXX I'm not sure this is going to stay XXX]