TealInfo
User's Manual
Program Version 4.32
Last Updated:
Thank you for trying
TealInfo, the powerful information display and data presentation system,
perfect for product catalogs, manuals, customer databases, technical data,
movie guides, or any other lists, documents, or tabular information. Use it to read and utilitize the vast library
of existing TealInfo document and utility “folios”, or develop your own
interactive applications and reference works, all with no programming.
TealInfo browses
flexible TealInfo data folios, which
are interactive documents of organized tables, lists, and windows, complete
with advanced user interface elements such as outlines, images, forms,
hyperlinks and popup lists.
Folios can be
downloaded from the ever-growing library of available titles (most are free),
or created from scratch without programming using a text editor and the
command-line utility MkTlInfo.
This archive contains the
following files:
Program
files: TEALINFO.PRC The TealInfo program
file
MKTLINFO.EXE The TealInfo folio creation utility
TPSETUP The
TealInfo easy-installer (for Windows)
Document
files: INFODOC.PDF This manual in Adobe Acrobat (PDF) format
INFODOC.HTM This manual in HTML
format (sans images)
INFODOC.PRC This
document in TealDoc format
REGISTER.HTM TealPoint
Registration form in HTML format
REGISTER.TXT TealPoint
Registration form in text format
Sample folios: SALESTAX.PDB Sales
Tax Calculator folio
TIPS.PDB Tip
Calculator and Guide folio
METRICON.PDB Metric converter folio
TODOLIST.PDB Handy,
configurable to-do list folio
PHONEBK.PDB Handy, configurable phone book folio
INFOREF.PDB Reference folio for folio development
INFOREF.TXT Source text file for reference folio
Use the
PalmPilot installer to install the program file TEALINFO.PRC. It will appear on the Palm Computing device after the
next HotSync.
This
manual is also provided in this archive as the PalmPilot document INFODOC.PRC, which can be viewed with
our application TealDoc.
Instructions on how to use the
Palm installer are in the Palm Handbook that came with your Pilot, PalmPilot,
Visor or WorkPad.
On a Windows PC you can also
use quick setup installer by double clicking on the TPSETUP.EXE
installer program, and following the on screen prompts.
To
use the program, you'll also need to install some folio files, available on the
TealPoint website at www.tealpoint.com or software archive sites like PalmGear
HQ (www.palmgear.com) or MemoWare
(www.memoware.com).
Included in this
archive are a few sample reference folios.
The first is INFOREF.PDB, a reference folio for TealInfo folio creation. SALESTAX.PDB is a calculator for sales
taxes from 3-11% and TIPS.PDB is a tip calculator with a handy guide to tipping
in different situations. METRICON.PDB is a metric conversion folio, containing
conversions for temperature, distance, area, volume, and weight. Also included
are TODOLIST.PDB and PHONEBK.PDB, good examples of useful, configurable folios
that you can edit when on your Palm device to store useful information and
tasks. See the section 'Included folios' below for more information.
TealInfo is a powerful
new medium for presenting and displaying information. TealInfo data folios are interactive documents of organized tables, lists, and
windows, complete with advanced user interface elements such as outlines,
images, hyperlinks and popup lists.
Folios can be easily created with the included tools and a text editor,
but look and feel like custom applications.
Advanced developers
can use TealInfo to create their own reference tools, calculators, and mini
applications, all with no programming.
After installing the
program file, you can run it by selecting its icon from the Applications menu.
TealInfo
is easy to use, and consists of two basic interface screens, the folio
selection screen and the folio browsing screen.
The first screen, the folio selection screen, appears
when you first run TealInfo. On it is a list of all the installed folio files
in the current category. You can select or edit categories on your by clicking
on the category selection button in the upper right hand corner of the screen.
When you click on a listed folio, you can either open that folio for browsing,
rename it, change it's category, or delete it permanently from the PalmPilot
memory. To change the action performed, click on the action-selection buttons
at the bottom of the screen before clicking on an entry in the list.
You can also perform similar operations
with image files by changing the "Info" selector at the bottom right
to "Pic". These TealPaint picture databases may be used as source
imagery for folios. If you choose to Open a picture database, TealPaint will
automatically be started if it is installed on your organizer. You'll need to
manually load up the correct image database, however.
The following
functions are accessible from this screen using the menu button silk-screened
to the left of the Graffiti writing area:
The Backup All in List menu sets all the
backup bits for folios listed in the current category. This forces the folios
to be backed up into your backup directory each time you hotsync. Choosing Backup None in List, on the other hand,
resets all the bits to zero. After hotsyncing to back your files, you'll
probably want to reset the bits, or the Palm Hotsync system will scan the file
looking for changes every time you hotsync, slowing down your hotsync sessions.
The
following options can be set under the "Preferences" menu item.
Alphabetic Sorting
By
default, the folio list is sorted alphabetically. You can turn off this feature
to increase response time if you have many folios installed.
Check Version Number
By
default, TealInfo will automatically check the version numbers of any folios
you open, warning you if any were made with a newer version of TealInfo. You
can turn off this feature, but note that you may encounter unpredictable
results running newer folios with an older copy of TealInfo should the new
folios require features not supported in your version.
Hide Folios Starting with ~ (tilde)
In
certain applications it may be desirable to create a series of interlinked
folios where some of the sub folios are hidden from view and only accessible
from other folios. To do this, name the folios starting with a tilde character
(~) and set this option in preferences.
Run in Grayscale
When set,
this option runs TealInfo in grayscale mode on a monochrome PalmPilot,
automatically remapping TealPaint color images to shades of gray. TealInfo support four-shade grayscale on
basic PalmPilot models and 16-shade grayscale on Palm IIIx, and Palm V models
running OS 3.3 or higher.
Remember Category
When set,
TealInfo remembers the last category you were viewing and returns to it the
next time to run the program. Otherwise,
the current category is reset to “All” each time you return.
Remember Device
When used with external storage devices, TealInfo returns to the last device visited each time you visit the program. When this option is turned off, TealInfo always starts in RAM.
TealInfo supports
reading folio files directly from any external storage card supporting the
PalmOS Virtual File System (VFS).
VFS-compatible devices include the Sony Memory Stick, Palm SD/MMC cards,
and both the Compact Flash (CF) and SD/MMC slots on HandEra organizers. In addition, support has been added for
Portable Innovation MemPlug Springboard modules and Kopsis Engineering’s add-on
VFS library.
When a VFS-compatible card is detected, an
extra row of icons will appear along the top of the Document List Screen for
navigating to folders on the external device.
On the left are the device icons, used to select the current card or
location to list files. The first icon
is the memory icon, and is followed by one numbered card icon
for every expansion card found. Most
devices will support at most one external storage card, and will thus only have
one card icon. The Handera 330, however,
can support two simultaneous data cards; so two card icons can be present if
both slots are occupied.
To show the files on an external card,
simply tap on the corresponding card icon.
External file devices support a hierarchical folder system, which
replaces the Palm category system. Thus,
the “category” selector in the upper right corner disappears and is replaced
with a “folder” button when an external card is selected. The “Beam” button also disappears, as files
can only be beamed directly from internal memory.
If sub-folders are present in the current
folder, simply tap on them to move “down” into the sub-folder to see its
contents. To the right of the device
icons is a display showing the current directory on the card, followed by two
folder navigation buttons. Use the first
parent icon to move up one level to the folder which contains the
current folder. Tap on the last root
icon to move all the way back up to the topmost folder.
To copy or move files between categories
in RAM, or to move them between RAM and an external card or between folders on
the same card, tap on the Mov pushbutton and tap on the name of the file
to move or copy. Either the RAM File
Manager or Card File Manager window will open, depending on your
current device.
RAM File Manager
The RAM file manager allows you to change
the category of a document file stored in RAM.
If the expansion device supports VFS, then you can also copy or move the
file to the external card. When either
option is selected, the file is moved to the last card and sub-folder viewed.
At this time, the MemPlug system software
does not support the VFS-standard interface for moving of files between Card
and RAM, so the move-to-card options will not be available when directly
accessing a MemPlug device.
Note that on Sony CLIE handhelds running
older versions of PalmOS, moving files is permitted; copying files outside the
standard “MSSONY” folder, however, is not.
Sub-folders can be made and used within the MSSONY folder however.
Card File Manager
The card file manager window is similar to
the RAM File Manager, except that the list of categories is replaced with a
list of folders in the current location.
A current (.) entry in the list indicates that you want to copy a
file into the listed location. If the current location is not the Root of the
card, then additional parent (..) and root (\) folders also
appear in the list. These folder entries
allow you to select a location in which to copy or move the selected file. To change the current location, double-tap on
the folder entry.
On VFS-systems, Move to RAM and Copy
to RAM options appear. To move or
copy a file, select the target location in the folder list and tap on the move
or copy button.
Note that these operations are not
supported directly by the MemPlug system software. Also, the Sony CLIE version of VFS does not
support copying files outside the MSSONY folder. Lastly, only Palm-format files can be copied
or moved to RAM. Text files and other
non-palm files cannot be stored in RAM.
An additional three buttons for creating,
deleting, and renaming folders is also present in the card file manager. These three options can also be reached by
tapping on the folders button on the Document List screen. Care should be used when deleting folders, as
if non-document files are present in the folder, they will not be listed in
TealDoc and can be accidentally deleted.
Some VFS implementations will delete a folder even if it is not empty,
while others will simply not delete the folder.
When you open a folio for browsing, you are brought to the
folio browsing screen, whose interface depends on the folio. The one common
element is the close button in the upper right corner of most folios, but some
may override this button as well. In any case, you can always close a folio and
return to the Selection Screen by selecting the Close menu item.
The
Details dialogue allows you to set
two parameters for the current folio. The Backup
bit determines whether the file is backed up during each HotSync, while the Private item determines whether the file
is listed in the folio Section screen when private records are globally hidden
in the Palm security settings.
Sets or clears, respectively, all entries
in presently shown CHECKMARK and CHECKLIST items. Use this to quickly reset or
set a commonly used task list, for instance.
TealInfo folios can
have many interface elements already familiar to PalmPilot owners. These
include:
Lists
Vertical lists of selectable
elements, scrollable with a scroll bar if there are too many selections to fit
on one view.
Tables
Tables resemble lists, but display information on a
grid. While lists can contain columns
which look similar to tables, tables allow the selection of a single rectangle
in the grid, while lists always select the entire row.
Windows
Freely-wrapping
scrolling text windows
Checkboxes
Lists with selectable boxes for each item
Popup Lists
Fields which show the current selection but pop
up a selection list when you click on them.
Edit fields
Regions where you can click inside and enter or
edit text. Unlike the system equivalent, these may take on more advanced
formatting when not beinq edited.
Outlines
Like lists, but featuring an outline-like tree
hierarchy, subsections of which can be collapsed (hidden) or expanded (shown)
under user control. To expand or contract an outline item, tap on the
control triangle next to the item name.
Tables
A variant of windows supporting multiple columns
with or without vertical and horizontal grid lines. Tap on entries to highlight
a cell if the table is selectable.
Popup Windows
Pushbuttons
that bring up a window of text when tapped.
Goto Buttons
Buttons
that open up another folio, if present, Doc files in TealDoc, Movie files in
TealMovie, or open databases in other supporting applications.
Print Buttons
Buttons
which output textual data or report to a supported printing through the program
TealPrint.
Images
Picture
imbedded in a folio or stored from TealPaint image databases
Popup Images
Pictures
which display themselves when a button is tapped
Animations
Page-flipped
images, providing simple cycling animation.
Cycling Text
Windows
with changing text messages for warnings or advertising messages.
Passwords
Ability to ask for passwords when entering a
folio for security or registration purposes.
Hyperlinks
Specially-marked
text that you can tap on to jump to other folios or popup windows, pictures,
and lists.
Object Linking
Ability to link the
contents or behavior of a window, image, or list to the current selection of
one to eight other lists, outlines or checkboxes.
A
number of folios are included with TealInfo.
These are for demonstration purposes only. A huge library of additional folios are available
for free download online.
INFOREF.PDB
This
folio provides a useful quick reference for building TealInfo folios. It lists the FIELD and STYLE tags supported
by each TealInfo object. Chose an object type from the popup list at the top of
the folio. Its corresponding FIELDS and TAGS will appear in the windows below.
SALESTAX.PDB
A simple
calculator for sales taxes from 3-11% in ¼ percent increments. Choose your tax
rate from the popup and pre-tax subtotal in the list on the left.
TIPS.PDB
A simple
tip calculator, choose the pre-tax total from the left to calculate an
appropriate tip. Also includes a
helpful tip guide giving general guidelines for common situations.
METRICON.PDB
A metric
conversion folio. Choose conversion type and units from the popups at the top
of the folio to display an appropriate conversion table.
TODOLIST.PDB
A handy
to-do list folio. Click on the 'Edit' button to insert your own entries.
Unchecked items appear on lines preceeded by a minus (-), while checked-off items
are preceeded by plus (+) signs. A line with neither symbol will simply appear
as an un-checkable label. To load more than one copy of this folio, rename the
original folio on the Folio Selection Screen and use the Palm Install
tool to install the TODOLIST.PDB file again.
PHONEBK.PDB
A handy
phone book folio. Click on the 'Edit' button to edit the current page of phone
number entries. Use a single tab stroke to separate data intended for each nine
and the 'return' stroke to separate lines. Change the list of categories using
the 'categories' button, entering each category on a separate line.
Like
TealDoc files, TealInfo folios are created first as text files that then get
converted to a pilot-recognizable format using a conversion program. For
TealInfo folios, the MkTlInfo converson tool is included for this purpose.
On
a PC, run MkTlInfo from a DOS box with the following format:
MKTLINFO <input text file>
<output .PDB file> <folio title> <image database>
If any of
the file names or titles have spaces, they should be enclosed in quotes. The
image database (optional) is the name of a TealPaint image database in the
current folder to insert into the folio to be used as an embedded source of
imagery.
You can
also run MkTlInfo without arguments and you’ll be prompted to input the
necessary file names.
If
you're planning to make your own folios, we recommend downloading the TealInfo
Dev Kit, available on our web site. It contains sample source text files and
documentation to help in making folios, as well as a folio decompiler for
reverse-converting unprotected folios.
When
making a folio, you'll no doubt need to quickly preview changes, particularly
when positioning on-screen objects. We recommend using POSE, the Palm OS
Emulator, available at Palm's web site http://www.palm.com. This program
simulates a Palm organizer on your computer desktop, allowing you to nearly
instantly load new version of a folio for quick previewing.
MkTlInfo takes plain text files with the
following basic format: Objects are defined by a line with the name of the
OBJECT, followed by lines containing FIELDS describing the object. Each field
is followed by one or more VALUES on the same line, though TEXT fields may have
VALUES on subsequent lines as well. VALUES can be numbers, expressions,
keywords, or quoted text, depending on the type of FIELD.
(OBJECT1) (ID)
(FIELD1) (VALUE1A) (VALUE1B...)
(FIELD2) (VALUE2A) (VALUE2B...)
...
(OBJECT2) (ID)
(FIELD1) (VALUE1A) (VALUE1B...)
(FIELD2) (VALUE2A) (VALUE2B...)
...
where
(OBJECT) is a keyword defining an on-screen interface element such as a list,
label, or button, and (FIELD) is the name of an adjustable parameter for that
object. Each (FIELD) is followed by one or more values, depending on the
particular (FIELD).
Comment
lines are indicated with a pound (#) sign.
An lines beginning with a ‘#’ are ignored by the folio converter.
EXAMPLE:
This example creates a simple form with one scrolling object
#
# This is a simple scrolling list
#
LIST
X 10
Y 20
W 140
H 130
TEXT "The Man Trap"
"Charlie
X"
"Where No Man Has Gone Before"
"The Enemy Within"
"Mudd's Women"
"What are Little Girls Made of?"
"The Naked Time"
STYLE HRULE
FONT 1
When
placing objects in a folio, it's often convenient to define an object's
coordinates relative to another object, making them easy to align or move as a
group. To help do so, numerical values can be entered as simple math
expressions, and a number of predefined symbols can be used in the expressions,
substituting for numbers:
X Y W H
Coordinates of the current object (must be defined on a previous
line to be used)
BX BY BW BH
Coordinates of the current object's activation button
PREVX PREVY
PREVW PREVH
Coordinates of the previous object
PREVBX PREVBY
PREVBW PREVBH
Coordinates of the previous object's activation button
For
instance, to define a column of checkmark objects, one might write:
CHECKMARK
X 10
Y 15
W 100
H 12
TEXT "One"
CHECKMARK
X PREVX
Y PREVY+12
H PREVH
TEXT "Two"
CHECKMARK
X PREVX
Y PREVY+12
H PREVH
TEXT "Three"
SPECIAL
NOTE: mathematical expressions used for coordinate positioning currently
supports five operators: addition (+), subtraction (-), multiplication (*),
division (/), and modulus (%). Expressions are evaluated strictly from left to
right, currently ignoring any mathematical precedence rules. Thus, 2+3*5 is
evaluated as 25, not 17.
Three special tags exist which don’t affect the
contents of the folios directly, but rather are used to pass parameters and
file names to MkTlInfo, so they don’t have to be specified every time the folio
is compiled.
While
images for IMAGE and POPIMAGE objects can remain as separate TealPaint
databases, it's often more convenient to ship a folio as a single file with the
images imbedded inside. An entire TealPaint image database can be included
inside a folio with PNTFILE tag. For example,
PNTFILE PICTURES.PDB
will
imbed the image database "Pictures.pdb" (should be in the current
folder) into a created folio. Any references to the picture database by IMAGE
or POPIMAGE objects should then use the name of the folio as it appears on the
PalmPilot instead of the image database name. Only one picture database can be
imbedded in a folio.
MkTlInfo
supports the use of special tags in the source file to pre-specify output and
database (as seen on PalmPilot) file names. This latter name is especially
important if the database is required to have a specific name because it's
referred to by links from other folios or from internal references to imbedded
TealPaint images.
Examples:
OUTFILE
MYFOLIO.PDB
OUTNAME "My little folio"
TealInfo
supports changing fonts and underlining inside a body of text for a WINDOW or
POPWINDOW object. Other objects may be less predictable. Font changing is done
via HTML-like tags imbedded with the text of the object. For best results, font
and underline tags should not bridge lines of the text. For example:
TEXT
"This is
some <$FONT=1>bold</$FONT> text."
"This is some <$UNDERLINED>underlined</$UNDERLINED>
text."
The
<$FONT> tag selects a font,
while the </$FONT> tag reverts
it back to the original font. Unlike HTML, tags of the same type cannot be
nested, so a </$FONT> tag will
always revert back to the original font, even if preceded by two <$FONT > tags.
Note
that the original font defined in the object definition governs the spacing of
text in a TealInfo object. Thus, you usually don't want to change fonts to one
taller than the original font, or subsequent text lines will clip that text.
You
can also insert hyperlinks in text to open a named folio or activate a named
button to pop up a window or picture. For example:
TEXT
"Just tap
<$LINK="My Folio"><$LINK="My Index Folio">here</$LINK> to go to the index folio."
"Just tap <$LINK="Info"><$LINK="Info">here</$LINK>
to show more information."
The link text
can be the name of a folio to open or the name of a button to activate. The
actual text of the button should be included, not the button object’s name in
the source file. Note that you can place the button entirely off-screen by
using large coordinates (such as BX=200 BY=200), leaving the hyperlink as the only
way to activate it.
TealInfo
supports scrollable, oversized, text and image objects. The oversized width of
text objects are defined by creating columns wider than the objects, while
their heights are defined by the number of lines of content. Image widths and
heights are defined by their source imagery.
To create a horizontally scrolling WINDOW object, use the TABS field to
create a column wider than the object itself.
WINDOW
X 10
Y 10
W 50
H 50
TABS 75
TEXT
"This is an example
of a text window with" \
"horizontal scrolling"
Text
objects appear with on-screen scrolling bars. In addition, for both types of
objects, mapping the hardware up/down scrolling buttons can do scrolling and/or
combinations for the four application launch buttons to vertical and/or
horizontal movement. This is done using
one of the BUTTON_SCROLL style flags.
By
mapping scrolling behavior to different buttons for different objects, some
folios can be made which operate largely pen-free.
LINK
fields allow the current selection of one or more objects to control the
contents of another object. Basically,
the controlled object should contain multiple TEXT fields with different
content. By linking that object to other
objects, the actual TEXT block used will depend on the selections of the
controlling objects.
To
link an object, first identify the objects you're linking-to by giving each of
them a unique ID name (with no spaces) following the object tag. For instance,
the following identifies a list object as object 'choice_list'.
LIST choice_list
X 5
Y 5
...
Then,
refer to this object in another object using the LINKS tag
WINDOW info
LINKS choice_list
TEXT "text one"
TEXT "text two"
TEXT "text three"
An
object can only be linked to objects ("Linkees"), which appear
before it (the "Linker") in a text file. The "linker"
object must also have multiple TEXT fields defined for it. The one that is
actually used at any given moment is determined by the current selections of
all of its "Linkees", multiplied out using the formula (example for 3
objects, 1, 2, and 3):
index = ((value1 * max2) + value2) * max3 + value3
where
max1,max2,and max3 represent the respective number of selections objects 1, 2,
and 3 can take on. In this example, you
must have (max1 * max2 * max3) number of TEXT fields to cover all the possible
values of value1, 2, and 3.
EXAMPLE:
LIST id_difficulty
X 90
Y 15
W 60
H 100
TEXT
"Easy"
"Hard"
LIST id_speed
X 10
Y 15
W 60
H 100
TEXT
"Off"
"Slow"
"Med"
"Fast"
WINDOW
X 10
Y 120
W 140
H 20
LINKS id_difficulty id_speed
TEXT "This is Easy and Off"
TEXT "This is Easy and Slow"
TEXT "This is Easy and Med"
TEXT "This is Easy and Fast"
TEXT "This is Hard and Off"
TEXT "This is Hard and Slow"
TEXT "This is Hard and Med"
TEXT "This is Hard and Fast"
ADVANCED
TIP: The maximum value
for each Linkee is normally determined by that object's current contents. If
the contents of a Linkee can change, the math will not come up predictably if
it is not the first item linked, because the MAX value will be variable, and
more than one combination of selections can end up with the same index. This
commonly occurs with two Linkees when the first Linkee is a category, and the
second is a sub-category whose contents depend on the first Linkee's value.
LINKS
palm_models options
If
this is the case, use the MAXVAL style flag to fix a maximum value for that
second LINKEE. Place the MAXVAL tag in
the linkee’s object definition, not in
the object containing the LINK field referencing the linkee. Set MAXVAL equal
to the real maximum number of selections the LINKEE need have, and place extra
entries in the LINKER object to pad out the unused combinations, so that you
have max1 groups of MAXVAL2 TEXT fields.
LINKS palm_models options
TEXT "1. Pilot 1000"
TEXT "2. Pilot 5000"
TEXT "3."
TEXT "1. PalmPilot Personal"
TEXT "2. PalmPilot Professional"
TEXT "3."
TEXT "1. PalmIII"
TEXT "2. PalmIIIx"
TEXT "3. PalmIIIe"
TEXT "1. PalmV"
TEXT "2. PalmVx"
TEXT "3."
TEXT "1. PalmIIIc"
TEXT "2."
TEXT "3."
For
more info on how to do multiple dependencies, download our TEALINFO DEV KIT for
examples.
Text
Resources allow a folio to minimize duplicated text. Use the TRES tag to define
an object with a single TEXT field. Be sure to give the TRES object a unique
ID. Then, other objects can use this resource's text as its own object by
simply referring to this ID preceeded by an '@' (at sign) instead of adding its
own quoted text. Note that adding a TRES object uses about 50 bytes of
overhead, so space savings will only occur with text of sufficient length, but
text resource still allow easy editing of commonly-used text.
EXAMPLE:
TRES id_notfound
TEXT
"Sorry, no information is available about this device."
WINDOW
X 5
Y 14
W 80
H 100
LINKS id_device id_class
TEXT "4-5 Miles"
TEXT "3 Miles"
TEXT @id_notfound
TEXT @id_notfound
TEXT "15 Miles (estimated)"
When
creating a commercial folio, you may wish to use some of TealInfo's security features
to keep your folio from being illicitly copied, decompiled, or used. As a first
step, you can use the PASSWORD tag to lock the folio to a keyword. You can set
up the keyword to be required to open the folio, or only if someone tries to
decompile it. With the former option,
using a numerical keyword or one that is not easily remembered, can keep the
folio from being casually copied by someone unless they keep the keyword with
them.
As
a second level of protection, you create a custom version of the folio for
every customer, using a key they wouldn't want to give out, like their credit
card number.
Finally,
if you collect the customer's HotSync user name, you can create a folio keyed
to only work with their PalmPilot using the PASSWORD tag with with the LOCKOUT
style option but an empty ("") TEXT field. See the TealInfo Object
Reference in the Appendix for more information.
With
a little work, TealInfo can be used for simple forms applications using POPEDIT,
EDITWINDOW, POPLIST, CHECKLIST, and CHECKMARK objects. For the latter three objects, the REGISTER
style flag is typically used to keep any choices permanent. To
make EDITWINDOW changes permanent, the EDITWINDOW text must be stored in a
separate TRES block,
To
load the data back to the desktop, the folio “backup” option should be set in
the details dialog for the folio. The
folio will then be copied back to the user’s Palm backup folder on HotSync. At that point, the folio decompiler
“UntlInfo” (in the TealInfo Dev Kit) can be used to convert the folio back to
text format suitable for parsing by a database script or converter program.
Future
versions of TealInfo may include tools to help make such forms functionality
available to general users and other non-programmers.
One of the most powerful features
of TealInfo is ability to create and use MATH objects. MATH objects display the results of a
mathematical expression, which can combine data from other objects and their
selections. MATH objects can be
displayed or themselves be used as values for other MATH objects or LINK
fields.
Expressions
Mathematical
expressions can be specified in simple, intuitive form. They are currently evaluated strictly from
left to right. Thus, the expression:
1+2*3
will
evaluate to 9, instead of 7, which follows the accepted convention of
performing multiply operations before additions and subtractions. To avoid confusion, parentheses should be
used to specify left-to-right order when mathematical precedence would normally
dictate otherwise.
(1+2)*3
The
parentheses will be ignored, but this will maintain compatibility with future
versions of TealInfo which may add support for both parentheses and precedence.
RPN
Notation
Complex
equations can also be specified using RPN (Reverse Polish Notation) popularized
by HP calculators. The benefit of RPN is
that it can evaluate any equation from left to right order without parentheses. While this document cannot go into a full
explanation or tutorial of using RPN, the concept is simple:
RPN
operates on the concept of a list of numbers, commonly called a “stack”. When a number appears in an RPN expression it
is simply added to the stack. When an
operator (such as + or -) appears, it simply pulls the last two items off the
stack, performs math on them, and places the result back onto the stack.
In
evaluating a “normal” math expression (like 1+1), we normally start with a
number, store it in our minds, then add an operator, remember it too, and then
wait until we get another number to evaluate the expression. With complex expressions, we end up saving a
whole bunch of numbers and operators and the order to evaluate them along the
way to getting an answer.
RPN is
much more efficient because you only store numbers. Operations occur immediately when you get the
operator, so it’s much more efficient.
The operators appear in the order you would normally evaluate them, not
the order they appear in the expression.
Some “standard” expressions translate to RPN as
follows:
1+2 becomes 1 2 +
(1+2) -3 becomes 1 2 + 3 -
1+(2-3) becomes 1 2 3 - +
(1+2)-(3+4) becomes 1
2 + 3 4 + -
Operands
The numbers that appear in an expression, the “operands”, can
simply be constant numerical values such as 1, 2, 3.1415, or .000007.
Operands can also be the name of another object, preceeded with an
‘@’ sign or an ‘#’ sign. If the object
is a LIST or other selectable object, the ‘#’ sign will return the current
“value” (selected line number) of the object, substituted in for its name. The ‘@’ sign will instead return the value of
the object’s text. If the object is a
WINDOW, EDITWINDOW, other non-selectable object, or even another MATH object,
then the object’s current TEXT is evaluated as an expression itself and the
result inserted into the current MATH object’s expression. For LIST objects, the value of the current
selection is used. For instance, a
simple tip calculator could include:
TEXT “( @tip_rate * 0.01 + 1.0 ) * @sub_total”
Operators
MATH
objects support a number of mathematical operators, including:
Floating
Point Math
Addition (+)
Subtraction (-)
Multiplication (*)
Division (/)
Integer Math (fractional
parts of operators are ignored)
Modulus (%) – A%B is the leftover
part after repeatedly subtracting B from A
Comparison (return 1 if
true, 0 if false)
Greater-Than (>)
Less-Than (<)
Greater-or-Equal (>=)
Less-or-Equal (<=)
Equal (==)
Not-Equal (!=)
Logical (returns 1 if true,
0 if false)
Logical And (&&)
Logical Or (||)
Logical Xor (^^)
Bit Math
Bitwise And (&)
Bitwise Or (|)
Bitwise Xor (^)
Special
Truncate Digits (\) – truncates a
number to a specified decimal place
Round Digits (:) – similar to
truncate, but rounds up or down to the nearest result
Duplicate on Stack ($) – for RPN
math only, duplicates the last entry on the stack
RPN
Example
With a little ingenuity, MATH
operators can be used to create some very neat folios. For instance, suppose you want to have a tip
calculator which forces a 20% tip if the party is 6 or more people. The following RPN expression could take
advantage of comparison operators to calculate a grand total in a tip
calculator.
TEXT “@tiprate @numpeople 6 < * 20 @numpeople
6 >= * + .01 * 1.0 + @subtotal *”
@tiprate @numpeople 6 < *
The first operand of this expression just places the tipping rate
on the stack. Then it compares the
number of people into the party.
Remember that comparison operators evaluate to 1 if true, 0 if false. Since this result is then multiplied with the
tipping rate on the stack, it has the effect of zeroing out the total if 6 or
more people are present.
20 @numpeople 6 >= * +
The next section, starting with “20”, does the exact
opposite. It evaluates to 0 if less than
6 people are present, or 20 otherwise.
The two resulting products are added together, so the result is a rate
of “tiprate” if fewer than 6 people are present or 20 otherwise. This is then multiplied by .01 to get a
percentage, and added to 1 and multiplied with the subtotal to get the grand
total.
Indexing
When
using the ‘@’ symbol to reference text values in LIST and TABLE objects, the
current selection is normally used to index to the corresponding line or cell
of the LIST or TABLE. Using brackets ( [
] ), a specific entry can be manually specified instead. This allows LIST and TABLE objects to be used
as convenient storage objects for lists of numbers used in calculations. The brackets should immediately follow the
object name, with the index value enclosed by the brackets. For example,
@choice[1]
@choice[2]
@choice[3]
reference the first three items in a LIST named “choice”. Interestingly,
@choice[#choice]
is equivalent to
@choice
Parameters
Sometimes, it is useful to re-use a mathematical expression
defined in a referenced MATH object, but with one or two of the numbers changed
from use to use. In these instances,
curly braces ( { } ) can be used to pass extra values into the MATH object to
be used in evaluating the expression.
In the referencing MATH object, curly braces are added after the
referenced object name, containing one or more values separated by
columns. The values are then read from
within the referenced MATH object using the special symbols $1, $2… etc.
For instance if a math object called “calc_tax” contains the
following formula (rate/100+1)*subtotal:
TEXT “$2 100 / 1 + $1 *”
It can be used to calculate the totals for
different subtotal/tax combinations:
TEXT “@calc_tax{21.95,6.5}”
Notes:
Parameters can only be used in undisplayed referenced objects. As these objects expect and use parameters,
they must be hidden using a blank PAGES tag, as their value without parameters
is undefined. Also, when used in
combination with indexing, parameters and their associated curly braces
must come after the indexing square brackets, not before.
Special
Notes
Math objects
can also be used as sources for LINKs to other objects. When referenced as a LINK, only the integer
portion (the part left of the decimal point) of the number is used. When referenced from an expression in another
Math object, however, the full value is used.
DRAW
and POPDRAW objects let you draw graphics onto a rectangular area of the screen
with a series of simple graphic commands.
Graphics generated this way can be much more space efficient that bitmap
graphics, and can also vary according to user selections when combined with
MATH objects.
DRAW object commands appear in a TEXT block with one command
per line. Lines beginning with a ‘#’
sign are ignored.
The following simple example draws a holiday greeting on the
screen.
DRAW
X
10
Y
20
W
140
H
110
TEXT
"FCOLOR 212"
"DLINE 40 90
70 20"
"DLINE 70 20 100 90"
"GLINE 100 90 40 90"
"FCOLOR 161"
"DRECT 60 60
7 7 3"
"DRECT 70 30
4 4 3"
"GRECT 50 80
7 7 3"
"GRECT 80 70
6 6 3"
"FCOLOR 255"
"DRECT 65 90
10 4 0"
"DFRAME 10 10 120 90 5 3"
"DCHARS 1 30 40 Season's
Greetings"
See
the appendix for a full list of valid commands.
Commands can also accept references to external objects in
place of numerical or text parameters.
Use the ‘#’ sign followed by the object name to insert an object’s
current selection number into a drawing command, or ‘@’ followed by the name to
insert it’s current text.
This
appendix lists the screen objects and properties recognized by MkTlInfo in
making custom TealInfo folios. More
comprehensive references and examples can be found in the TealInfo Developer’s
Kit, found on the developer’s section of the TealPoint web site.
Description:
A basic
screen object, WINDOW objects define a rectangular region of the screen which
contains text. The text automatically
wraps lines of text if necessary, and supports vertical or horizontal scrolling
and optional columns and grid lines.
Text in WINDOW objects can be viewed, but not be edited or selected.
Required
Fields:
X Y W H
TEXT
Optional
Fields:
PAGES
STYLE FONT TABS LINKS CYCLE DELAY COMPRESS
Supported
Styles:
VERT_RULE
HORIZ_RULE INVERTED NO_BORDER BOLD_BORDER ALIGN_RIGHT ALIGN_CENTER
ALIGN_LEFT_START ALIGN_RIGHT_START ALIGN_CENTER_START ALIGN_LEFT_END ALIGN_RIGHT_END
ALIGN_CENTER_END NO_SCROLL MASK_BUTTON_SCROLL
Notes:
A WINDOW
holds a block of text which automatically word-wraps if longer than one line.
Normally, to take advantage of this feature, paragraphs should be entered as
one long line. As MkTlInfo only supports a 4000 character long line, this is
typically done by using the continuation mark (\) with the TEXT fields. See the
TealInfo field reference below for more information.
Columns
and line rulings are supported, allowing the display of the text in tabular or
columnar layout. To do so, use the TABS
field to define the width of individual columns, and enter multiple
quote-delimited chunks of data on each line, or separate the text for each
column on a line using tab characters imbedded in the text. The VERT_GRID and HORIZ_GRID fields can be
used to add grid lines to the columns.
When VERT_GRID is defined, columns are treated as spreadsheet-like
cells, and data is truncated if necessary to fit within each column. When omitted, columns are treated like
tab-stops in a word processor; text may
overflow into neighboring columns; tab characters simply advance to the next
column.
By
default, column entries are left-justified. The ALIGN_CENTER
and ALIGN_RIGHT styles can override this justification in all
columns. In turn, the ALIGN_RIGHT_START and ALIGN_RIGHT_END, ALIGN_CENTER_START and ALIGN_CENTER_END styles can be used to set alternate
justification for only the first or last columns.
Since
text in a window is not selectable, WINDOW objects have no “current value” and
thus cannot be used as the target of a LINK field in another object. They can themselves LINK to other objects,
however, and this is a common use of WINDOW objects. For instance, by defining multiple TEXT
fields and using the LINK field to target, say, a LIST object, the window can
be used to display different data depending on the current selection of the
LIST object.
Description:
A
scrollable, auto-wrapping text window that comes up when a trigger button is
pressed.
Required
Fields:
X Y W H
BX BY BW BH BTEXT TEXT
Optional
Fields:
PAGES
STYLE FONT TABS LINKS BFONT COMPRESS
Supported
Styles:
VERT_RULE
HORIZ_RULE INVERTED BOLD_BORDER ALIGN_RIGHT ALIGN_CENTER ALIGN_LEFT_START
ALIGN_RIGHT_START ALIGN_CENTER_START
ALIGN_LEFT_END ALIGN_RIGHT_END ALIGN_CENTER_END NO_SCROLL MASK_BUTTON_SCROLL FILLED SQUARE_BUTTON
Notes:
A variation on WINDOW objects, most of a POPWINDOW object is
normally hidden. Only a small trigger
button defined by BX, BY, BW, and BH is shown on screen. The button resembles a standard PalmOS text
button. A BTEXT field defines its
label. When tapped, the window appears,
and stays on screen until tapped to dismiss it.
Description:
A simple
text label.
Required
Fields:
X Y TEXT
Optional
Fields:
PAGES
STYLE FONT COMPRESS
Supported
Styles:
INVERTED
ALIGN_CENTER ALIGN_RIGHT
Notes:
LABEL objects are drawn so that
the upper-left, upper-right, or upper-center of the text is aligned at the
designated coordinate. Text is not
wrapped and cannot scroll.
Description:
A bare
graphic rectangle, either filled or not, used as a graphic embellishment
Required
Fields:
X Y W H
Optional
Fields:
PAGES
STYLE
Supported
Styles:
FILLED ROUND_BORDER BOLD_BORDER
Description:
Displays
a graphic in TealPaint image format or subrectangle of an image in the
specified rectangle
Required
Fields:
X Y W H
SX SY DATABASE RECORD
Optional
Fields:
PAGES
STYLE LINKS CYCLE DELAY
Supported
Styles:
NO_BORDER
BOLD_BORDER BUTTON_SCROLL
Notes:
The
bounding box for the image must be a multiple of 8 pixels wide. SX and SY
define the offsets into the source image from which to grab the subrectangle.
SX must also be a multiple of 8 pixels wide, and the source image must not be
wider than 160 pixels.
DATABASE
defines the name of the image database. It is case sensitive and must match the
name of the Image Database as it appears in TealInfo or TealPaint. The image
can also be tacked onto the end of the TealInfo folio using MkTlInfo. If the image is appended in this way, then
DATABASE should hold the name of the folio instead. Note that the image will fail to draw if the
folio is renamed.
RECORD
defines the image number of the database to use. The first image in a database
is image 0.
To create
simple page flipping animation, set the CYCLE parameter equal to the number of
frames of animation. TealInfo will step forward through the image databases,
looping from image RECORD to image RECORD+CYCLE-1, stopping between from frames
by an amount specified by DELAY, in tenths of a second.
Description:
A popup-window
displaying a TealPaint image or subrectangle of an image.
Required
Fields:
BX BY BW
BY BTEXT X Y W H SX SY DATABASE RECORD
Optional
Fields:
PAGES
STYLE LINKS CYCLE DELAY BFONT
Supported
Styles:
VERT_RULE
HORIZ_RULE INVERTED NO_BORDER BOLD_BORDER ALIGN_RIGHT ALIGN_CENTER FILLED
ALIGN_LEFT_START ALIGN_RIGHT_START ALIGN_CENTER_START ALIGN_LEFT_END
ALIGN_RIGHT_END ALIGN_CENTER_END NO_SCROLL MASK_BUTTON_SCROLL BUTTON_SELECT
STROKE_FIND REGISTERL
Notes:
This
object has the same image and usage restrictions as an IMAGE object. As a small
bonus feature, however, color or grayscale images shown in a full-screen
POPIMAGE objects will appear in 16 grey levels on a Palm V-style display (Palm
V, Visor), even under OS 3.1, which does not otherwise support the 16-shade
mode.
Description:
A
scrollable vertical list of selectable text items, supporting optional columns
and vertical and horizontal ruled lines.
Required
Fields:
X Y W H
TEXT
Optional
Fields:
PAGES
STYLE FONT TABS LINKS DEFAULT MAXVAL COMPRESS
Supported
Styles:
VERT_RULE
HORIZ_RULE INVERTED NO_BORDER BOLD_BORDER ALIGN_RIGHT ALIGN_CENTER
ALIGN_LEFT_START ALIGN_RIGHT_START ALIGN_CENTER_START ALIGN_LEFT_END
ALIGN_RIGHT_END ALIGN_CENTER_END NO_SCROLL
MASK_BUTTON_SCROLL BUTTON_SELECT STROKE_FIND REGISTER
Notes:
LIST objects are interactive elements. While they are defined and used like WINDOW objects, text does not automatically
word-wrap, and any line in the LIST can be highlighted by the user by tapping
on it.
This gives the LIST a current numerical “value” ranging from zero
(the first item) to the number of items in the list (minus one). This value can be used as an operand for
expressions in MATH objects, or change the contents of other objects that have
LINK fields referring to us.
The entries in a LIST are specified using multiple-lines of text
in a TEXT field. Each line specifies a
separate entry in the list. If the LINK
field is used to link the object to another object’s value, multiple TEXT
fields can be used to define changing contents for the LIST.
Description:
A
scrollable, selectable item list triggered by popup button, resembling the
PalmOS category selector
Required
Fields:
X Y W H
TEXT BX BY BW BH
Optional
Fields:
PAGES
STYLE FONT TABS LINKS DEFAULT MAXVAL BFONT COMPRESS
Supported
Styles:
VERT_RULE
HORIZ_RULE INVERTED BOLD_BORDER ALIGN_RIGHT ALIGN_CENTER ALIGN_LEFT_START ALIGN_RIGHT_START
ALIGN_CENTER_START ALIGN_LEFT_END ALIGN_RIGHT_END ALIGN_CENTER_END NO_SCROLL MASK_BUTTON_SCROLL
BUTTON_SELECT STROKE_FIND FILLED REGISTER SQUARE_BUTTON
Notes:
The
trigger button for POPLIST objects resemble standard PalmOS category
selectors. They show the text of the
current selection with a triangular trigger symbol. They should be sized wide enough to fit the
widest text line to be drawn without truncating the text.
Description:
Nearly
identical to LIST objects, TABLE objects bring up a scrollable, selectable list
of text items. Columns defined by the
TABS field, however, are required.
Unlike a LIST, which selects an entire row of items at a time, TABLE
objects allow the selection of single cells within the object. A TABLE object with a single column is
equivalent to a LIST object.
Required
Fields:
X Y W H
TEXT TABS
Optional
Fields:
PAGES
STYLE FONT LINKS DEFAULT MAXVAL COMPRESS
Supported
Styles:
VERT_RULE
HORIZ_RULE INVERTED NO_BORDER BOLD_BORDER ALIGN_RIGHT ALIGN_CENTER
ALIGN_LEFT_START ALIGN_RIGHT_START ALIGN_CENTER_START ALIGN_LEFT_END
ALIGN_RIGHT_END ALIGN_CENTER_END NO_SCROLL MASK_BUTTON_SCROLL BUTTON_SELECT
STROKE_FIND REGISTER
Notes:
The current “value” of a TABLE object corresponds to the current
highlighted cell. Cells are numbered
starting at zero from left to right and then top to bottom.
Description:
A pop-up
version of the TABLE object, POPTABLE objects bring up a Table when their
trigger buttons are tapped. The trigger
buttons show the contents of the current cell.
Required
Fields:
X Y W H
TEXT BX BY BW BH TABS
Optional
Fields:
PAGES
STYLE FONT LINKS DEFAULT MAXVAL BFONT COMPRESS
Supported
Styles:
VERT_RULE
HORIZ_RULE INVERTED BOLD_BORDER ALIGN_RIGHT ALIGN_CENTER
ALIGN_LEFT_START ALIGN_RIGHT_START
ALIGN_CENTER_START ALIGN_LEFT_END ALIGN_RIGHT_END ALIGN_CENTER_END NO_SCROLL
MASK_BUTTON_SCROLL BUTTON_SELECT STROKE_FIND FILLED REGISTER SQUARE_BUTTON
Notes:
The trigger button shows the name of the currently selected item,
and BX BY BW and BH define its bounds.
X, Y, W, and H define the bounds of the table the trigger brings up. The
button bounds must be large enough to contain the longest cell in order for it
to draw correctly.
Description:
A
scrollable, selectable, hierarchical item list, this object shows a list of
data in outline tree form, where subsections of the tree may be collapsed and
hidden from view when desired.
Required
Fields:
X Y W H
TEXT
Optional
Fields:
PAGES
STYLE FONT TABS LINKS DEFAULT MAXVAL COMPRESS
Supported
Styles:
HORIZ_RULE
INVERTED NO_BORDER BOLD_BORDER NO_SCROLL MASK_BUTTON_SCROLL BUTTON_SELECT
STROKE_FIND REGISTER
Notes:
Similar
to standard LIST objects, OUTLINE objects show a list of selectable text
items. Unlike a LIST, however, the items
are displayed like an outline tree with items, sub-items, and sub-sub-items.
Subsections can be hidden or shown by tapping on control triangles next to
items in the outline.
To define
an outline list's contents, create a multi-line TEXT field, preceeding lines
with one or more '>' or '<' characters to define it's level in the tree.
Root items are bare. Subitems to root entries are preceeded by one '>',
sub-items to sub-items are preceeded by '>>', etc. If the item in the
list should appear initially when the folio is first opened, then use a '<'
character instead of a '>'. The '<' character forces the control on the
previous line to default to the open state.
To set up
an OUTLINE object for horizontal scrolling, use a TABS field with a single
value specifying the virtual width of the scrolling area in pixels. OUTLINE objects not not otherwise support
columns.
The
following example sets up an OUTLINE object with three levels of items:
OUTLINE
X 10
Y 20
W 100
H 120
"Hotels"
"Taxis"
"Museums"
">Art"
">Nature"
">>Marine"
">>Land"
"Nightclubs"
">Nice"
">Seedy"
Description:
A
POPOUTLINE object is pop-up version of an expanding OUTLINE object. When popped up, outline branches can be
opened up or collapsed by tapping on standard outline control triangles. When tapping elsewhere on a line the list is
selected and the popup window is closed.
Required
Fields:
X Y W H
BX BY BW BH TEXT
Optional
Fields:
PAGES
STYLE FONT TABS LINKS DEFAULT MAXVAL BFONT BTEXT COMPRESS
Supported
Styles:
HORIZ_RULE
INVERTED BOLD_BORDER NO_SCROLL MASK_BUTTON_SCROLL BUTTON_SELECT STROKE_FIND
REGISTER FILLED SQUARE_BUTTON
Notes:
See
Outline objects for instructions on defining levels in a POPOUTLINE object.
Description:
A
checkmark control resembling standard PalmOS checkbox controls.
Required
Fields:
X Y W H
TEXT
Optional
Fields:
PAGES
STYLE FONT LINKS TARGET DEFAULT COMPRESS
Supported
Styles:
INVERTED
REGISTER
Notes:
A simple
one-item checkbox, CHECKMARK controls have a current “value” corresponding to
their state. When used as a LINK target
or MATH operand from another object, checkmark objects assume a value of 0 when
unchecked and 1 when checked.
Description:
A
scrollable, selectable list of text items, each line of which can have an
optional checkbox.
Required
Fields:
X Y W H
TEXT
Optional
Fields:
PAGES
STYLE FONT TABS LINKS DEFAULT MAXVAL COMPRESS
Supported
Styles:
VERT_RULE
HORIZ_RULE INVERTED NO_BORDER BOLD_BORDER ALIGN_RIGHT ALIGN_CENTER FILLED
ALIGN_LEFT_START ALIGN_RIGHT_START ALIGN_CENTER_START ALIGN_LEFT_END
ALIGN_RIGHT_END ALIGN_CENTER_END NO_SCROLL MASK_BUTTON_SCROLL BUTTON_SELECT
STROKE_FIND REGISTER
Notes:
CHECKLIST objects are similar to
LIST objects, but can optionally show checkboxes next to specified lines. The checkboxes can be checked on and off, and
will be saved in the folio if the REGISTER field is defined. The current “value” of the CHECKLIST object,
like standard LIST objects, is defined as the selected line, not by the state
of the checkboxes.
List entries are defined by a
multi-line TEXT fields, where each line of the text field defines an item in
the scrolling list. Each line should start with either a plus (+) character for
items that start up pre-checked or minus (-) character for those which start
out unchecked. Lines with neither show
up simply as labels.
Normally, the checklist will
revert back to its initial state when the object is changed or the folio is
exited. If the REGISTER style flag is used, the folio is not in flash memory,
*and* the text for the checklist is stored in a TRES text resource, checked
entries are permanently saved even if you leave TealInfo and return.
Description:
An
editable text window. Often used to make folios for entry form or data
acquisition.
Required
Fields:
X Y W H
TEXT
Optional
Fields:
PAGES
STYLE FONT TABS LINKS COMPRESS
Supported
Styles:
VERT_RULE
HORIZ_RULE INVERTED NO_BORDER BOLD_BORDER ALIGN_RIGHT ALIGN_CENTER
ALIGN_LEFT_START ALIGN_RIGHT_START ALIGN_CENTER_START ALIGN_LEFT_END
ALIGN_RIGHT_END ALIGN_CENTER_END NO_SCROLL BUTTON_SCROLL
Notes:
An
editable WINDOW object, EDITWINDOW objects are text areas that can be used
either to save notes on their own or to modify text resources shared with other
objects. They display as WINDOW objects,
but brings up an editing area when the window itself is tapped. The editing
area's overlays the defined window area, giving a clean, seamless editing
mode. Due to their ability to be edited,
EDITWINDOW objects have limited formatting when editing.
Commonly,
EDITWINDOW objects are used as single-line text fields, but multiple-lines are
also supported. When used in multi-line mode, the editing and display modes do
not line up as well as in single-line mode.
Otherwise,
EDITWINDOW objects follow the same limitations as POPEDIT objects, including
the requirement that EDITWINDOWS linked to other objects must place all of its
text in TRES text resources to maintain proper formatting of all objects after
editing.
Description:
An
editable popup text window.
Required
Fields:
BX BY BW
BH BTEXT TEXT
Optional
Fields:
PAGES
STYLE FONT LINKS BFONT X Y W H COMPRESS
Supported
Styles:
FILLED
HORIZ_RULE SQUARE_BUTTON
Notes:
An
editable text area, POPEDIT objects can be used either to save notes on their
own or to modify text resources shared with other objects. The text editing
window is brought up with a tap on the trigger button specified by BX,BY,BW,
and BH. The POPEDIT object can be used to modify any TRES resource used by any
other object, but unpredictable results may result if used to modify text used
by other than WINDOW or POPWINDOW objects, as the POPEDIT control may show
special control codes normally hidden from view.
SPECIAL
NOTE: When the contents of a POPEDIT window can change because the POPEDIT
object is linked to other objects, the contents of the POPEDIT window must reside in separate TRES text
resource objects, or the text pre-wrapping system will get confused and
mis-wrap the text after you edit one of the TEXT blocks near the top of the
list of possible entries.
Description:
An INPUT
object creates a button that can modify or replace the contents of an
EDITWINDOW object. Typically, they are
used to create text-entry keys for forms or calculator folios.
Required
Fields:
BX BY BW
BH BTEXT TARGET
Optional
Fields:
PAGES
STYLE BFONT LINKS
Supported
Styles:
FILLED
SQUARE_BUTTON
Notes:
The
behavior of the INPUT object is determined by the contents of the TARGET field,
which takes on the following form:
TARGET “@<editname><mode><action><text>”
where:
<editname> is
the name of the EDITWINDOW object to affect
<mode> is either a
colon “:” (immediate mode) or semicolon “;” (delayed mode).
<action> is either a plus
“+” (add), equals “=” (replace), minus “-“ (subtract), or
number sign “#” (calculator key action).
<text> is the new text
In “immediate”
mode, other screen objects which depend on the entry are immediately refreshed
to reflect the new text. In “delayed”
mode, the text is entered, but only the EDITWINDOW object itself is redrawn. Other objects such as on-screen math objects
are not redrawn in delayed mode.
The “add”
action appends text to the end of the specified EDITWINDOWs current contents,
while the “replace” action replaces it entirely. The “subtract” action ignores any passed
text and simply deletes the last character from the EDITWINDOW. The last action, the “calculator”
action, acts either like “add” or “replace” action depending on
whether a calculation is pending. If one
has yet to be flushed out (due to entry using delayed-mode key presses,
it adds the specified text. Once
calculated, the next press replaces the contents.
Common applications include:
Calculator-style entry buttons (delayed
calculation)
TARGET
“@number;#1”
TARGET
“@number;#2”
TARGET
“@number;#3”
Backspace
TARGET “@number;-”
Enter/Calculate key (note the empty text to add)
TARGET “@number:+”
Clear key (sets contents to nothing)
TARGET “@number:=”
Filling a form field
TARGET “@gender:=female”
TARGET “@gender:=male”
New to 4.20: If TARGET text is used with no target object (TARGET “a”), then
the character(s) specified will be entered into the general input stream,
simulating a user entering the characters by hand. If another object has the STROKE_FIND style
set, it will respond to the character, allowing INPUT objects to change the
current selection in an external LIST object to an entry whose first letter
matches the indicated letter.
Description:
Similar
to POPWINDOW objects, POPMERGE objects bring up scrollable, auto-wrapping text
windows when a specified trigger button is pressed. The contents of the windows, however, can
contain text from various other windows, fields, and objects, both hidden and
shown. These are “merged” into the text
of the final window to produce the combined output
Required
Fields:
BX BY BW
BH BTEXT TEXT
Optional
Fields:
PAGES X Y
W H STYLE FONT TABS LINKS BFONT COMPRESS
Supported
Styles:
VERT_RULE
HORIZ_RULE INVERTED BOLD_BORDER ALIGN_RIGHT ALIGN_CENTER ALIGN_LEFT_START ALIGN_RIGHT_START
ALIGN_CENTER_START ALIGN_LEFT_END ALIGN_RIGHT_END ALIGN_CENTER_END NO_SCROLL
MASK_BUTTON_SCROLL FILLED SQUARE_BUTTON
Notes:
The text
appearing in a POPMERGE popup is defined using a TEXT field in the expected
way. Placeholders for text pulled from
other objects are inserted using the ‘@’ symbol followed by the name of an
object to be included. Often, the source
objects are hidden objects controlled by user selections. Sample text might look like:
TEXT “Madame sees your @problem difficulty will get much
@prediction today!”
Description:
A
PRINTMERGE object combines text from separate objects, but instead of
displaying it in a pop up window, the text is sent to TealPrint for print out
on a supported printer. This allows
folios to output form documents, summaries, or receipts based on user inputs
and selections.
Required
Fields:
BX BY BW
BH BTEXT TEXT
Optional
Fields:
PAGES
STYLE LINKS BFONT COMPRESS
Supported
Styles:
FILLED
SQUARE_BUTTON
Notes:
TealPrint
must also be installed on the handheld for PRINTMERGE objects to be
functional. When selected, a PRINTMERGE
object will bring up a standard TealPrint printer dialog to confirm print
options prior to sending the text to the printer or spooler.
Description:
A math
object is a simple window displaying the numerical result of a
calculation. Evaluated expressions can
contain references to the current (zero-based) selection of objects with a
current “value” such as lists, outlines, and tables. They can also evaluate numbers or expressions
found in static objects such as windows, other math objects, and other objects
that cannot be selected.
Required
Fields:
X Y W H
TEXT
Optional
Fields:
PAGES
STYLE FONT LINKS DECIMALS DIGITS COMPRESS
Supported
Styles:
INVERTED
NO_BORDER BOLD_BORDER ALIGN_RIGHT ALIGN_CENTER
Notes:
MATH
objects are one of the most complex and ambitious TealInfo objects. They show the result of a calculation as a
floating-point number. To use one, a
mathematical expression (equation) is specified with a TEXT field, but the
result of the evaluation of the expression is what gets displayed. The number displayed can be rounded off to a
number of decimal points to the right of the decimal point using the DECIMALS
field, or padded with zeroes on the left to a total number of digits using the
DIGITS field.
Mathematical
expressions can be specified in simple, intuitive form. They are currently evaluated strictly from
left to right, and in “standard” or RPN (Reverse Polish Notation) order.
See the chapter “Using MATH Objects” for more
information and examples on using MATH objects.
Math objects can also be used as
sources for LINKs to other objects. When
referenced as a LINK, only the integer portion (the part left of the decimal
point) of the number is used. When
referenced from an expression in another Math object, however, the full value
is used.
Operands
The numbers that appear in an expression, the “operands”, can
simply be constant numerical values such as 1, 2, 3.1415, or .000007.
Operands can also reference another object, preceded with ‘@’ or
‘#’ signs. If the object is a LIST or
other selectable object, the ‘#’ (number sign) can be used to insert the
current “value” of the object, which is the number of the current selection
starting at zero. The ‘@’ sign is
similar, except that is inserts the numerical value of the current text, which
must be either numerical or a mathematical expression itself.
If the object is a WINDOW, EDITWINDOW, other non-selectable
object, or even another MATH object, then the object’s entire TEXT block is
evaluated as an expression and the result inserted into the current MATH
object’s expression. For a LIST object,
only the text of the current selection is used. For instance, a simple tip calculator could
include:
TEXT “( @tiprate * 0.01 + 1.0 ) * @subtotal”
Operators
MATH
objects support a number of mathematical operators, including:
Floating
Point Math
Addition (+)
Subtraction (-)
Multiplication (*)
Division (/)
Integer Math (fractional
parts of operators are ignored)
Modulus (%) – A%B is the leftover
part after repeatedly subtracting B from A
Comparison (return 1 if
true, 0 if false)
Greater-Than (>)
Less-Than (<)
Greater-or-Equal (>=)
Less-or-Equal (<=)
Equal (==)
Not-Equal (!=)
Logical (returns 1 if true,
0 if false)
Logical And (&&)
Logical Or (||)
Logical Xor (^^)
Bit Math
Bitwise And (&)
Bitwise Or (|)
Bitwise Xor (^)
Special
Truncate Digits (\) – truncates a
number to a specified decimal place
Round Digits (:) – similar to
truncate, but rounds up or down to the nearest result
Duplicate on Stack ($) – for RPN
math only, duplicates the last entry on the stack
Description:
DRAW
objects define a rectangular region whose contents are rendered according to
simple graphics drawing commands. DRAW
objects are typically used to draw graphs or charts in response to numerical
input, or add extra graphic elements.
Required
Fields:
X Y W H
TEXT
Optional
Fields:
PAGES
STYLE COMPRESS LINKS CYCLE DELAY
Supported
Styles:
INVERTED
BOLD_BORDER NO_BORDER
Notes:
Powerful
DRAW objects accept a series of graphics drawing commands that allow rendering
of simple custom graphics or text into a folio.
They can reference values in external objects, allowing them to be used
to draw graphics that vary with user selections.
Commands
in DRAW objects are inserted in a single multi-line TEXT block of the object
definition. Each line begins with a
command, followed by one or more numerical or text values needed by the command. The following commands are supported:
DLINE x1 y1 x2 y2
GLINE x1 y1 x2 y2
ELINE x1 y1 x2 y2
Draws a single-pixel line from
coordinates (x1,y1) to (x2,y2), relative to the top-left corner of the
object. The (D) option draws the line in
the current foreground color (default black).
The (E) option erases the line to the current background color (default
white). The (G) option “grays” the line
drawing it in a 50% dither pattern combining foreground and background colors.
DRECT x y width height corner_radius
GRECT x y width height corner_radius
ERECT x y width height corner_radius
Draws, erases, or “grays” a filled
rectangle of the given dimensions. The
corner of the rectangle can be set sharp or rounded using a radius of 0-4
pixels.
DFRAME x y width height corner_radius
thickness
EFRAME x y width height corner_radius thickness
Draws or erases an unfilled
rectangular frame (box) of the given dimensions. The radius of the corners can be set from 0-4
pixels, while the thickness of the frame can be set from 1-4 pixels.
DCHARS font x y text
ICHARS font x y text
ECHARS font x y text
Draws specified text to the
screen. The (D) options draws the text
black-on-white, while the (I) option draws it white-on-black. The (E) options simply erases the area where
text should be.
FCOLOR r g b
BCOLOR r g b
Sets the current foreground or
background colors. These options only
function on a color device, and are ignored on monochrome units. They allow you to change the current foreground
and background drawing colors, which default, respectively, to black and
white. The colors are specified as three
numerical values from 0 to 255, respectively setting the red, green, or blue
component of the colors.
Sample
colors:
White 255 255 255
Black 0 0 0
Red 255 0 0
Green 0 255 0
Blue 0 0 255
Orange 255 200 0
Yellow 255 255 0
Purple 200 0 255
Gray 150 150 150
To substitute values from other objects into the
command list use the ‘@’ or ‘#’ signs followed by the name of the object to
insert. The ‘@’ sign inserts the current
text from the object or the numerical equivalent of that text if a number is
needed. The ‘#’ sign returns the current
“value” of the object instead, which is the zero-based number of the current
selection in an outline, list, or table.
The ‘#’ sign will reference the integer portion of a MATH object as
well.
Example: DLINE 10 10 @end_x @end_y
DRAW objects expect numerical values only, and
will not consistently evaluate expressions or external references with
parameters on their own. When math operations
are needed, DRAW objects should contain simple references to hidden MATH
objects to perform the needed calculations.
Description:
Pop-up
version of a DRAW object.
Required
Fields:
BX BY BW
BH BTEXT X Y W H TEXT
Optional
Fields:
PAGES
STYLE COMPRESS BFONT LINIKS
Supported
Styles:
FILLED
BOLD_BORDER NO_BORDER INVERTED SQUARE_BUTTON
Description:
A button
that closes the current folio and opens another one specified by name. Can also
open a specified Doc file in TealDoc, movie in TealMovie.
Required
Fields:
BX BY BW
BH BTEXT TARGET
Optional
Fields:
PAGES
STYLE BFONT TARGET LINKS
Supported
Styles:
FILLED
SQUARE_BUTTON
Notes:
Linking to External folios:
TARGET,
followed by the name of a folio in quotes specifies the folio to open when this
control is tapped. Note that the TARGET must exactly match the name of the
target folio as it appears in TealInfo,
including capitalization and spacing.
Back Buttons:
Set
TARGET to “$BACK” to create a button which will return back to a previous folio
which may have linked to you.
Close Buttons:
A GOTO
object with no TARGET field replaces the standard close button in the upper
right corner of the folio.
External Programs:
TARGET
can also specify the name of a TealDoc document or TealMovie movie, to
launch. Other programs may be launched
as well if they support a global find operation, and have the same CreatorID of
the document, but irregular behavior may occur if the other program is not
specifically expecting to be called externally in this manner. With TealDoc and TealMovie, TealInfo will be
re-launched after the movie or document is closed. Documents in VFS are also supported if they
are in the same folder as the current folio, though the launched application must
be loaded into RAM. This will almost
certainly not work inf VFS with non-TealPoint applications, however.
The
TARGET field functions like standard TEXT fields, in that you can specify more
than one TARGET field and use the LINK field to tie the launched document to an
external selection.
Description:
Searches
for an instance of a user-entered text string in a specified LIST or
WINDOW.
Required
Fields:
BX BY BW
BH BTEXT TARGET
Optional
Fields:
PAGES
STYLE BFONT LINKS
Supported
Styles:
INVERTED
SQUARE_BUTTON
Notes:
Specify
an object to search for in the TARGET field, preceded by an ‘@’ sign.
TARGET “@mydisplaylist”
When
tapped, a POPFIND button brings up a dialog asking the user for the text to
find. If the text is found in the LIST
or WINDOW object specified by the TARGET field, the list or window will be
scrolled to display the found text. If a
list, that entry will be selected.
POPFIND objects cannot find text across multiple objects or in text
which is not currently loaded into a displayed object.
Description:
TealInfo
supports folios with up to 32 distinct pages.
Displayed objects can be shown on any one or more of these pages or not
at all. SetPage objects switch the
current page when pressed.
Required
Fields:
BX BY BW
BH BTEXT
Optional
Fields:
PAGES
STYLE BFONT TARGET LINKS
Supported
Styles:
FILLED
SQUARE_BUTTON
Notes:
While all objects in a folio are present in memory and can be
available for LINK operations and mathematical calculations, the SETPAGE
objects determines which objects are displayed and respond to screen taps. A quoted value from 1 to 32, specified in a
TARGET field, determines which page is activated when the button is tapped.
Individual objects determine which pages they appear on using the
PAGES field, followed by which pages they appear on. By default, objects appear on page 1
only. If PAGES is used with no numbers,
the object is hidden. SetPage objects
can optionally contain PAGES fields as well.
Description:
A text
resource
Required
Fields:
TEXT
Optional
Fields:
(none)
Supported
Styles:
(none)
Notes :
TRES Text
resources act as placeholder objects for holding TEXT used by other
objects. They are handy to reduce file
size when, say, a paragraph of text is repeatedly used in one or more
objects.
TRES
objects can also used to break-up TealInfo OBJECTS from exceeding the Maximum
Object Text Size (See TEXT field for more info). There is about a 50-byte
overhead for using a TRES object, so you won't save much space on only a few
short lines of text.
TRES
objects take a single field, the TEXT field.
To reference a TRES object from another object, create a TEXT block
which only contains the name of the TRES object preceeded by an ‘@’ sign.
TEXT “@resname”
TRES
object can only replace an entire TEXT field.
They cannot be combined or used to replace only a portion of another
object’s TEXT field.
See the field descriptions in the next section for more details on how to use text resources.
Description:
A RANDOM
object provides a random value to be used in math expressions or LINKS to other
objects, and a button to update its value
Required
Fields:
BX BY BW
BH BTEXT MAXVAL
Optional
Fields:
PAGES
DEFAULT BFONT
Supported
Styles:
FILLED
SQUARE_BUTTON
Notes:
When set,
the DEFAULT field specifies the current “value” of the RANDOM object when the
folio is first opened. If missing, the
object will be assigned a random value from 0 to MAXVAL-1 on opening. By setting DEFAULT to MAXVAL, the Random
object can start up with a value with will not be repeated when the Randomize
button is tapped. This is useful to say,
display an instructional prompt such as “Tap the button below to get your
fortune”. The PAGES field can be used
with no parameters to hide the RANDOM object entirely if only the initial
randomization feature is needed.
Description:
The Year,
Month, Day, Hour, and Minute objects do not have on-screen representations, and
do not accept any fields or styles.
Instead, they only contain a value, which can be used as LINKS to
objects or values within MATH objects using the ‘#’ reference operator. The values are automatically updated, allowing
for the creation of special calendars or clock folios.
Notes:
All
objects return values starting at 0.
Values of Year objects range from 0 for the year 2000, 1 for 2001, and
so on. Month objects return values from
0 (January) to 11 (December). Day objects
return the day of the month minus one, ranging from 0 (day 1) to 30 (day 31). Hour objects return values from 0 to 23,
minute objects from 0 to 59.
Description:
The
presence of this object in a folio forces causes a passkey to be entered when
the folio is opened. This can be used to generate password-protected folios for
security or sales-demo purposes.
Required
Fields:
KEY TEXT
Optional
Fields:
STYLE
Supported
Styles:
LOCKOUT
REGISTER
Notes:
Used
for Registration
The
password to be entered is defined by the KEY field. When the LOCKOUT style is
defined, the folio cannot be entered until a correct key is entered. When no LOCKOUT field exists, the password
request can simply be dismissed. This
allows the development of “shareware” folios, using the password screen as a
registration reminder.
Saving
Passkey
When the
REGISTER style is defined, the password is saved once it's entered if the folio
is in RAM. If the REGISTER style is not set, the password is asked-for every
time. You can have multiple PASSWORD objects in a folio, but this is not
particularly useful.
Decompile
Protection
If you
provide empty TEXT ("") and do not set the LOCKOUT style
keyword, then the passkey will not be required to read the folio, but one will
need to enter it before the folio can be decompiled using the UnTlInfo program
in the TealInfo Dev Kit. In this use, the PASSWORD tag should appear at the top
of the list to prevent decompiling the tags above it.
User-Specific
Folios
If you
provide empty TEXT ("") and do
set the LOCKOUT style keyword, then the folio will only open on a Palm whose
HotSync user name matches the passkey. Use this to make secure folios that
cannot be used on other Palm if copied or beamed there.
Description:
Places
the graffiti shift indicator on screen.
It will appear on all pages of the folio.
Required
Fields:
X Y
The
following list details the fields used to describe the objects in Appendix A.
Fields requiring a numerical value or expression such as 20+5 are followed by
"(value)". Fields requiring a text string in quotes are followed by
"(string)". Lastly fields requiring specialized text keywords (not in
quotes) are followed by "(Keyword)".
Defines
the font to be used for an object's activation button.
Defines
text for a button or trigger.
Defines
the pixel offset of a trigger object or button from the left edge of the
screen.
Defines
the pixel offset of a trigger object or button from the top edge of the screen.
Defines
the width of a trigger object or button.
Defines
the height of a trigger object or button.
This
field causes WINDOW objects to cycle through their list of TEXT fields. CYCLE
indicates the number of TEXT blocks to cycle through, starting with whatever
field would normally be shown. There must be at least that number of TEXT
fields present. For image objects, CYCLE indicates the number of images in the
database to cycle through, starting with the imaged defined by RECORD.
Indicated
the rate at which cycling (if turned on) occurs. This value is in tenths of
seconds between frames. Thus, a value of 10 will cause cycling a one change per
second.
Defines
the name of a TealPaint image database to serve as a source for imagery.
Defines
the initial value for a list, outline, or checkmark object (starting at 0)
This field fixes the displayed number of digits to the right of
the decimal point for results of calculations from Math objects.
This
field fixes the total displayed number of digits for results of calculations
from Math objects, padding with zeroes on the left if necessary to fill the
number of digits. DIGITS and DECIMALS
are mutually-exclusive.
Defines
the font to be used for an object's body text. 0=standard font, 1=bold font,
2=large font, 3-5=standard system symbol fonts, 6=large number font. Use a
program like FontApp (available at
www.palmgear.com) to preview the correct fonts.
Defines
the password that must be entered to unlock a folio with a PASSWORD object.
The LINKS
field can be used to link the contents of an object to current selection in one
or more other LIST, POPLIST, OUTLINE, or CHECKMARK objects, each of which is
identified by its name that follows the object TAG. An object using the LINKS
tag must follow all the objects listed in its list of links. More information appears in the next
appendix.
The MAXVAL field
specifies the largest number of items a variable list can contain. Use this
field to make the math work out when linking to objects whose contents can
change.
This
field determines which pages (1-32) that the current object appears. By default, all object appear on page 1
only. Specifying PAGES with no following
numbers hides an object on all pages.
Used for
IMAGE objects, this defines the number of the image (starting at 0) to be
shown.
Followed
by one or more style keywords like ALIGN_LEFT
and NO_BORDER, the STYLE field
determines alignment and other miscellaneous properties for screen objects.
For image
objects, defines the horizontal offset into the source image from which the
displayed image is grabbed. Must be a multiple of 8
For image
objects, defines the vertical offset into the source image from which the
displayed image is grabbed.
The TABS
field sets tab stop positions within an object in pixels. Up to 63 tab
positions may be specified, creating 64 columns. Each tab value represents the
left edge of a column measured in pixels from the left edge of the object.
If you
create columns wider than the width of the object, the object will appear with
a horizontal scroll bar, which can be moved to view the full width of the
window, list, or outline object.
Defines
the folio to open when a GOTO button is pressed, or page number for a SETPAGE
object. Multiple alternate TARGET fields can be used if the GOTO object is
linked to other objects. In this use, the folio opened depends on the selection
of the object (typically a list) linked-to.
Defines
text for this object. Text items should be quoted, with text for separate
columns appearing on the same line as separate quoted groups of words. To
insert a quote in a string, use two quotes together ("") inside the
string.
Text for
multiline text objects (such as lists and outlines) should appear as more
quoted text on subsequent lines without the TEXT field name. Only TEXT fields
allow information for the field to follow on subsequent lines after the field
name itself.
A
backslash '\' character at the very end of a line indicates that the text on
the next line is a continuation of the current one. It should be used to break
up a line of text but have it treated as if it were entered as a very long line
of text, such as for a paragraph to be auto-wrapped by a WINDOW object.
MkTlInfo has a maximum input line length of 4000 characters.
There is
a maximum total text size of 32k for all TEXT blocks in a single screen OBJECT.
To overcome this limit, text can be externally-referenced to TRES objects,
effectively splitting up the text into one OBJECT per TEXT block.
EXAMPLE:
TEXT
"This is a line of text."
"This is another line of text, followed by a blank line."
" "
"This is a paragraph of text, using the backslash " \
"character as a line-continuation marker so that " \
"TealInfo will know to re-wrap this block as if it " \
"were entered as a single line. Note the extra " \
"spaces at the end of each line."
Defines
the object's pixel offset from the left edge (0) of the screen.
Defines
the object's pixel offset from the top edge (0) of the screen.
Defines
the width of the object in pixels (screen is 160 pixels wide).
Defines
the height of the object in pixels (screen is 160 pixels high).
The following are
keywords supported by the STYLE field, where applicable.
ALIGN_RIGHT
Align all
text to the right of its column.
ALIGN_CENTER
Center
all text in its column.
ALIGN_LEFT_START
Align the
first column to the left, ignoring the global setting.
ALIGN_RIGHT_START
Align the
first column to the right, ignoring the global setting.
ALIGN_CENTER_START
Align the
first column in the center, ignoring the global setting.
ALIGN_LEFT_END
Align the
first column to the left, ignoring the global setting.
ALIGN_RIGHT_END
Align the
first column to the right, ignoring the global setting.
ALIGN_CENTER_END
Align the
first column in the center, ignoring the global setting.
INVERTED
Draw the
object with reversed colors (white text on black).
FILLED
RECT: Draw it filled-in
POPLIST: Draw its button filled-in
POPEDIT: Draw its button filled-in
POPIMAGE: Draw its button filled-in
GOTO: Draw its button filled-in
SQUARE_BUTTON
Draws an activation button with square corners, not default rounded ones
HORIZ_RULE
Draw
horizontal ruling lines between rows.
VERT_RULE
Draw
vertical ruling lines between columns. Note that vertical rules also have a
subtle effect on the behaviour of tab characters in text. Without vertical
rules, tabs function as they do in a word processor, advancing the cursor to
the next column to the right. If text extends past a tab stop, then next tab
brings the cursor to the next tab stop to the right. When vertical rules are
turned on, however, text between tabs is treated as data in a cell, truncated
if necessary to fit in the available space before the next tab stop, so data
never overflows into a neighboring column.
NO_BORDER
Don't
draw a border around the object.
BOLD_BORDER
Draw a
thicker border around the object.
ROUND_BORDER
Draw a
rounded border around the object.
NO_SCROLL
Don't
allow a scroll bar to appear and don't reserve pixels for one when word
wrapping.
STROKE_FIND
Move the current selection to the next line whose first char matches an entered stroke.
BUTTON_SCROLL
Do
page-by-page scrolling of a text object when scroll buttons are pressed.
Default settings scrolls vertically with the Page Up/Down scrolling buttons. Using
variations on the BUTTON_SCROLL keyword, it's possible to map combinations of
the four applications buttons (Datebook, Address, To Do List, and Memopad) to
vertical and/or horizontal scrolling for objects.
When
mapped to a folio in this way, the default behavior of the application buttons
used is temporarily overridden only while the folio is open, and for POPIMAGE,
POPTEXT, and POPLIST objects, only when the popup is shown.
When
overriding such buttons, it's important to indicate the new button mapping in
the folio to avoid confusing the user.
Other
Supported Variations include:
BUTTON_SCROLL_A
Vertically
scroll with Page Up/Down buttons
BUTTON_SCROLL_B
Vertically
scroll with Date/Addr buttons
BUTTON_SCROLL_C
Vertically
scroll with Addr/ToDo buttons
BUTTON_SCROLL_D
Vertically
scroll with ToDo/Memo buttons
BUTTON_SCROLL_E
Horizontally
scroll with Page Up/Down buttons
BUTTON_SCROLL_F
Horizontally
scroll with Date/Addr buttons
BUTTON_SCROLL_G
Horizontally
scroll with Addr/ToDo buttons
BUTTON_SCROLL_H
Horizontally
scroll with ToDo/Memo buttons
BUTTON_SCROLL_I
Horizontally
scroll with Date/Memo buttons
BUTTON_SCROLL_J
Vertically
Page Up/Down, Horizontally Date/Addr
BUTTON_SCROLL_K
Vertically
Page Up/Down, Horizontally Addr/ToDo
BUTTON_SCROLL_L
Vertically
Page Up/Down, Horizontally ToDo/Memo
BUTTON_SCROLL_M
Vertically
Date/Addr, Horizontally ToDo/Memo
BUTTON_SCROLL_N
Vertically
ToDo/Memo, Horizontally Date/Addr
BUTTON_SCROLL_O
Vertically
Addr/ToDo, Horizontally Date/Memo
BUTTON_SELECT
Move the
current selection up or down when scroll buttons are pressed. Default settings
move the current select with the Page Up/Down scrolling buttons. Using
variations on the BUTTON_SELECT keyword, it's possible to map combinations of
the four applications buttons (Date, Address, To Do, and Memo) to scrolling
movement as well. When mapping a single button to a POPLIST object, the object
acts like the category selector in the standard application, cycling through
available choices. As with the BUTTON_SCROLL variations, when overriding the
application buttons, it's important to indicate the new button mapping in the
folio to avoid confusing the user.
Other
Supported Variations include:
BUTTON_SELECT_A
Change
selection up/down with the Page Up/Down buttons
BUTTON_SELECT_B
Change
selection up/down with the Date/Addr buttons
BUTTON_SELECT_C
Change
selection up/down with the ToDo/Memo buttons
BUTTON_SELECT_D
Change
selection down (looping) with the Date button
BUTTON_SELECT_E
Change
selection down (looping) with the Addr button
BUTTON_SELECT_F
Change
selection down (looping) with the ToDo button
BUTTON_SELECT_G
Change
selection down (looping) with the Memo button
COMPRESS
The
COMPRESS style forces an entire object to be stored compressed in the
folio. Compression typically results in
a 35-40% reduction in the size of the object.
As temporary storage and decompression time is needed to work with compressed
objects, compression should be used carefully to avoid performance or memory
problems. In general, do not use
compression for objects referenced by MATH expressions or that need to be drawn
often. It is generally safe to compress
popup objects, as they are used one at a time and are not accessed when they
are not popped up.
LOCKOUT
PASSWORD:
Require the key to be correct to enter the folio.
REGISTER
PASSWORD:
Save a registration key once entered.
Visit us online at http://www.tealpoint.com
for our complete product line, including:
TEALAGENT (
http://www.tealpoint.com/softagnt.htm )
A
PC-based Palm data converter, installer, and web clipper which formats local,
network, and web-resident data into standard Palm formats.
TEALALIAS (
http://www.tealpoint.com/softalia.htm )
Makes
the most of expansion memory, loading and launching apps and data from external
SD cards.
TEALAUTO (
http://www.tealpoint.com/softauto.htm )
The
complete automobile mileage, service, and expense tracking program, TealAuto,
supports unmatched features and customization options.
TEALDOC (
http://www.tealpoint.com/softdoc.htm )
Powerful
reader for Palm documents, e-books, and newspapers, supporting advanced
features such as pictures, links, and flash cards.
TEALECHO ( http://www.tealpoint.com/softecho.htm
)
Digital
"ink" lets you see what you write, vastly increasing graffiti writing
speed and accuracy. No more writing
blind!
TEALGLANCE (
http://www.tealpoint.com/softglnc.htm )
Pop-up
utility shows time, date, appointments and to-dos, and other useful information
at power-up. See your day at a glance.
TEALINFO (
http://www.tealpoint.com/softinfo.htm )
A
system for creating and displaying interactive databases, reference works, and
mini-application folios; a handheld reference library.
TEALLAUNCH (
http://www.tealpoint.com/softlnch.htm )
A
pop-up application launcher and mapping utility for launching apps and special
functions from pen taps, graffiti strokes, or button presses.
TEALLOCK (
http://www.tealpoint.com/softlock.htm )
Secure
automatic locking program with optional data encryption and numerous activation
and customization options.
TEALMAGNIFY (
http://www.tealpoint.com/softlens.htm )
An
ever-ready magnifying glass that works with most any program, TealMagnify saves
your eyes when looking at tiny text.
TEALMASTER (
http://www.tealpoint.com/softmstr.htm )
A
supercharged Hackmaster replacement with 100%-compatibility and enhanced
stability, configuration, diagnostic and activation features.
TEALMEAL (
http://www.tealpoint.com/softmeal.htm )
A
personal restaurant database and selection wizard. Keep a database of your favorites and easily
find them by type or category.
TEALMEMBRAIN (
http://www.tealpoint.com/softmemb.htm )
Memory
monitor and stack manager which helps identify conflicts and greatly improves
stability running multiple hacks and drivers.
TEALMOVER (
http://www.tealpoint.com/softmovr.htm )
File
management utility for beaming, deleting, renaming, and copying files both in
memory and on VFS-compatible storage cards.
TEALMOVIE (
http://www.tealpoint.com/softmovi.htm )
High-quality
multimedia system with video and synchronized sound.
Includes audio/video player and Windows
AVI/Quicktime converter program.
TEALNOTES (
http://www.tealpoint.com/softnote.htm )
Insert
freehand graphic "Sticky Notes" into memos, to-do lists, address book
entries--almost anywhere you currently have editable text.
TEALPAINT (
http://www.tealpoint.com/softpnt.htm )
The
most powerful paint and sketch app on Palm OS handhelds, featuring 16 tools, 16
patterns, 12 brushes, color, and desktop image conversion.
TEALPHONE (
http://www.tealpoint.com/softphon.htm )
A
powerful Address Book replacement with superior interface, display, search, and
indexing options.
TEALPRINT (
http://www.tealpoint.com/softprnt.htm )
The
all-in-one text and graphic printing solution for Palm OS, supporting infrared,
serial, and HotSync printing to any Windows printer.
TEALSCRIPT (
http://www.tealpoint.com/softscrp.htm )
An
improved, tunable, Graffiti text recognition system that lets you modify the
handwriting recognition to suit your handwriting.
TEALTOOLS (
http://www.tealpoint.com/softtool.htm )
Six
pop-up desk accessories, including a calculator, clock/stopwatch, preferences
panel, editing panel, memopad, and a file/backup manager.
Release 4.32 –
Release 4.30 -
Release 4.21
·
Fixed linking between folios with imbedded text links
·
Added support for TREO jog dial in selecting files
·
Added support for Arm-based Palm input controller
Release 4.20
·
Added new "POPFIND" objects
·
Added support for "BACK" buttons (set TARGET to
"$BACK")
·
Added support for untargeted INPUT buttons for STROKE_FIND (set
TARGET to letter to seek)
·
Removed flash of folio list when transitioning between linked
folio
·
Increased object reference maximum nesting level from 5 to 15
levels
Release 4.10 May 21, 2002
·
Added
color icons to list view
·
Added
support for OS5.0 high-resolution program and launcher icons
·
Added
masking of file extensions (.pdb and .prc) in SD card filenames
·
Updated
MkTlInfo Utility to warn of downward referencing LINKS (should be up)
·
Fixed
double-tapping of folder names in card file manager
·
Fixed
centering of button text with small buttons rounding up ½ pixel
Release 4.01
·
Fixed
label display for POPOUTLINE objects
·
Fixed
display of full screen POPIMAGE objects
Release 4.00
·
Added
support for displaying folios directly off SD/MMC/CF flash cards
·
Added
preferences option to remember category
·
Added
preferences option to remember device
·
Added
support for MATH objects for calculating floating point values
·
Added
support hidden objects and multiple-page folios via new SETPAGE object
·
Added
DRAW objects for custom graphic charts and rendering
·
Added
TABLE and POPTABLE objects
·
Added
POPOUTLINE objects
·
Added
support for POPMERGE text-merge objects
·
Added
support for PRINTMERGE printing through TealPrint
·
Added
RANDOM object
·
Added
YEAR object
·
Added
MONTH object
·
Added
DAY object
·
Added
HOUR object
·
Added
MINUTE object
·
Added
INPUT objects to make calculator-style buttons
·
Added
support for text compression
·
Added
support for launching TealMovies and other external databases
·
Added
compatibility with future PalmOS versions and devices
·
Updated
to work with folios containing graphics under OS 4.0
·
Fixed
passkey functionality on CLIE
·
Fixed
occasional crash launching TealDoc from TealInfo folio
·
Fixed
display of images imbedded into folios
Manual by Vince Lee,
TealInfo by TealPoint Software
©1999-2003 All Rights Reserved.
TealPoint Software
TealInfo Registration
We look forward to hearing from you.
Please visit us at www.tealpoint.com, or
email us at contact@tealpoint.com.
Registering allows you to use the program past the 30 day expiration
period and turns off registration reminders.
Currently, you may register by snail mail or online with a
credit card and a secured server from the store where you downloaded the
software. For the first option, send the
following information on a sheet of paper separate from your payment.
·
Product Name
·
E-Mail Address
·
HotSync User ID (Pilot Name Required for Passkey generation. It
can be found on the main screen of the HotSync application on the Pilot as
"Welcome ________" or in the corner on a PalmIII or higher)
·
Check (drawn off a US Bank) or Money Order for ($16.95 US). No international checks or money orders
please.
We at TealPoint Software are committed to providing quality,
easy-to-use software. However, this product is provided without warranty and
the user accepts full responsibility for any damages, consequential or
otherwise, resulting from its use.
This archive is freely redistributable, provided it is made
available only in its complete, unmodified form with no additional files and
for noncommercial purposes only. Any other use must have prior written
authorization from TealPoint Software.
Unauthorized commercial use includes, but is not limited to:
§
A product for sale.
§
Accompanying a product for sale.
§
Accompanying a magazine, book or other publication for sale.
§
Distribution with "Media", "Copying" or
other incidental costs.
§
Available for download with access or download fees.
This program may be used on a trial basis for 30 days. The
program will continue to function afterwards. However, if after this time you
wish to continue using it, please register with us for the nominal fee listed
in the program.
Thank you.
CUSTOMER LICENSE AGREEMENT
YOU ARE ABOUT TO
DOWNLOAD, INSTALL, OPEN OR USE PROPRIETARY SOFTWARE OWNED BY TEALPOINT
SOFTWARE, INC. CAREFULLY READ THE TERMS AND CONDITIONS OF THIS END USER LICENSE
BEFORE DOING SO, AND CLICK BELOW THAT YOU ACCEPT THESE TERMS.
1. License. You are
authorized to use the Software Product owned and developed by TealPoint
Software, Inc. on a single hand-held computing device on a trial basis for
thirty (30) days. If after 30 days you wish to continue using it, you are
required to register with TealPoint and pay the specified fee. This license is
not exclusive and may not be transferred. You may make one copy of the Software
for back-up and archival purposes only.
2. Ownership. You
acknowledge that the Software Product is the exclusive property of TealPoint
Software, Inc, which owns all copyright, trade secret, patent and other
proprietary rights in the Software Product.
3. Restrictions. You
may NOT: (a) decompile or reverse engineer the Software Product; (b) copy
(except as provided in 1 above) sell, distribute or commercially exploit the
Software product; or (c) transfer, assign or sublicense this license.
4. Disclaimer of
Warranty and Liability. TEALPOINT MAKES NO WARRANTY, EXPRESS OR IMPLIED, AS TO
THE ACCURACY, COMPLETENESS OR FUNCTIONING OF THE LICENSED SOFTWARE, INCLUDING
WITHOUT LIMITATION, WARRANTIES OF MERCHANTABILITY OR OF FITNESS FOR A
PARTICULAR PURPOSE, ALL OF WHICH TEALPOINT DISCLAIMS. ALL LIABILITY IS
DISCLAIMED AND TEALPOINT ASSUMES NO RESPONSIBILITY OR LIABILITY FOR LOSS OR
DAMAGES OF ANY KIND, DIRECT OR INDIRECT, INCIDENTIAL, CONSEQUENTIAL OR SPECIAL,
ARISING OUT OF YOUR USE OF THE LICENSED SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY THEREOF.
5. Termination. You
may terminate this Agreement at any time by destroying your copy(ies) of the
Software Product. The Agreement will also terminate if you do not comply with
any of its terms and conditions, at which time you are required to destroy your
copy(ies) of the Software Product and cease all use.
6. Applicable Law.
This Agreement is governed by the laws of the State of