Pegasus Mail for Windows v3.0, configurable toolbar.
---------------------------------------------------------------------
Pegasus Mail System,
Copyright (c) 1990-98, David Harris, All Rights Reserved.


Under Pegasus Mail v3.0 and later, the button panel (toolbar) is
configurable via simple scripts. The use of scripts is not normally
intended to be exposed to end-users, and it is anticipated that a
GUI-based editor will be made available at some future time. In the
meantime, however, those willing to do a small amount of work with an
editor can customize the toolbar to suit their needs.

Pegasus Mail maintains internal definitions for the toolbar in its
resource file, WINPMAIL.DAT: these definitions are usually loaded and
parsed when the toolbar is created. The user can, however, create a text
file called TOOLBAR.PM in his home mailbox, containing the same scripting
commands. If TOOLBAR.PM is found, it is loaded in preference to the
internal resource script.

The format of the resource script in TOOLBAR.PM is simple: each line
defines a single toolbar element - a button, a separator, or a combobox.
Other elements may be added in future. Lines beginning with semicolon
characters are regarded as comments and ignored.

Command lines have the following general form:

   <type> [other parameters]

"type" is an integer that determines the type of the toolbar item. The
following values are defined:

   0    A standard 22x20 pixel bitmapped button
   1    An 8-pixel separator gap
   2    A combobox control

Each type of control has its own parameter list as follows:

Bitmapped buttons:

   ,<control_id>,<flags>,<bitmap_id>,<"tooltip">
   "control_id"    the internal activation code for this button
                   (see the list below for valid values)
   "flags"         an integer, currently unused but must be 0
   "bitmap_id"     the integer code for the internal bitmap for the
                   button (see the list below)
   "tooltip"       the tooltip text the button should display when the
                   mouse lingers over it for too long. This string
                   must appear in quotes.

Separators: No parameters


Combobox controls:

   ,<control_id>,<flags>
   "control_id"    the internal activation code for this button
                   (see the list below for valid values)
   "flags"         an integer, currently unused but must be 0


Note that for combobox and button controls, there must be a comma between
the "type" parameter and the control ID.


Control IDs:

Control IDs are internal tags used to tie a button to a given internal
function. The following control IDs are recognized:

Buttons:

801      Start a new mail message
802      Open or re-scan the new mail folder
803      Work with mail folders
804      Work with address books
805      Work with distribution lists
806      Get a list of local users on the system
807      Edit filters applied when the new mail folder is opened
808      Open noticeboards

820      Cut
821      Copy
822      Paste

823      Print the current window
824      Set a font for the current window
825      Save to disk
826      Read from disk

827      Get mail via the built-in POP3 transport
828      Send mail via the built-in SMTP transport
829      Get mail then send mail
835      Perform a selective download via the built-in POP3 transport

836      Start a new circulation message.
838      Switch to the folder manager window and add a mailbox

Comboboxes:

840      List of currently-defined identities on the system

You can create a button that triggers any standard menu item in the
Pegasus Mail menu hierarchy by adding 10000 to the menu item's code (see
Appendix A, below) then using that value as the button's control ID.



Bitmap IDs:

A number of bitmaps are built-in to Pegasus Mail and can be accessed in
buttons via special bitmap IDs. The following IDs are available: note
that the text describing each button is simple description - the control
ID is what decides what function is actually associated with a button.

1801      Start a new mail message
1802      Open or re-scan the new mail folder
1803      Work with mail folders
1804      Work with address books
1805      Work with distribution lists
1806      Get a list of local users on the system
1807      Edit filters applied when the new mail folder is opened
1808      Open noticeboards

1820      Cut
1821      Copy
1822      Paste

1823      Print the current window
1824      Set a font for the current window
1825      Save to disk
1826      Read from disk

1827      Get mail via the built-in POP3 transport
1828      Send mail via the built-in SMTP transport
1829      Get mail then send mail

1830      Connect/go online
1831      Disconnect/go offline

1835      Perform a selective download via the built-in POP3 transport

1836      Start a new circulation message.
1837      Open a saved message
1838      Mount a secondary mailbox
1839      Tools | Options
1840      Identities
1841      Review queued mail
1842      Find...
1843      Asterisk
1844      Yellow document icon
1845      Blue star
1846      Apply general rule set to folder



Example

The following fragment creates a simple toolbar

0,801,0,1801,"Compose a new mail message"
0,836,0,1836,"Create a new circulation message"
0,802,0,1802,"Open or re-scan your new mail folder"
0,803,0,1803,"Work with your mail folders"
0,804,0,1804,"Open or manage address books"
0,805,0,1805,"Edit or manage distribution (mailing) lists"
0,806,0,1806,"Open a list of local people on your system"
0,807,0,1807,"Create or manage rules for filtering your new mail"
0,808,0,1808,"Open or browse noticeboards"
1
2,840,0
1
0,823,0,1823,"Print the current window"
0,824,0,1824,"Select a font for the current window"
1
0,828,0,1828,"Send all queued mail"
0,827,0,1827,"Check your POP3 host for new mail"
0,829,0,1829,"Both check and send mail in one operation"



Appendix A: Menu codes for Pegasus Mail

The following integer values can be used to construct button panel
entries that trigger any menu entry in the program. Add 10000 to the
value shown, then use that value as the button's control ID.

------------------------------------------------------------------------
WinPMail Mnemonic       ID    Menu function (Which Menu)
------------------------------------------------------------------------
IDM_HELP                10    "Context-sensitive help" (HELP)
IDM_USING_HELP          11    "Using Help" (HELP)
IDM_HELPINDEX           12    "Help index" (HELP)
IDM_RMACRO              75    "Open glossary manager" (EDIT/GLOSSARY)
IDM_PMACRO              76    "Expand glossary entry" (EDIT/GLOSSARY)
IDM_NEWMESSAGE         101    "Start new message" (FILE)
IDM_READNEW            102    "Open new mail folder" (FILE)
IDM_OPENFOLDER         103    "Folders..." (FILE)
IDM_IMPORT             104    "Import into message" (MESSAGE)
IDM_SAVESESSION        105    "Save message as draft" (MESSAGE)
IDM_RESTORESESSION     106    "Open saved message" (FILE)
IDM_PRINT              107    "Print" (FILE)
IDM_PRINTSETUP         109    "Printer setup" (FILE)
IDM_FILTERS            110    "New mail filtering rules" (FILE)
IDM_EXIT               111    "Exit" (FILE)
IDM_PREF_GENERAL       121    "General settings" (FILE/PREFS)
IDM_PREF_SMF           122    "NetWare MHS settings" (FILE/PREFS)
IDM_PREF_SIGS          123    "Signatures..." (FILE/PREFS)
IDM_PREF_HOMEBOX       124    "Home mailbox location" (FILE/PREFS)
IDM_PREF_EXT           125    "Extended features" (FILE/PREFS)
IDM_UNDO               131    "Undo" (EDIT)
IDM_CUT                132    "Cut" (EDIT)
IDM_COPY               133    "Copy" (EDIT)
IDM_PASTE              134    "Paste" (EDIT)
IDM_CLEAR              135    "Clear" (EDIT)
IDM_SELECTALL          136    "Select all" (EDIT)
IDM_SPELLING           137    "Check spelling" (EDIT)
IDM_SERVER             138    "File servers..." (FILE)
IDM_LOCALUSERS         141    "Lookup local users" (ADDRESSES)
IDM_ADDRESSBOOKS       142    "Address books" (ADDRESSES)
IDM_MAILINGLISTS       143    "Distribution lists..." (ADDRESSES)
IDM_SORTBYKEY          144    "Sort by key" (ADDRESSBOOK)
IDM_SORTBYNAME         145    "Sort by name" (ADDRESSBOOK)
IDM_FIND               146    "Find text", (MESSAGE/FOLDER/READER/ADDRBK)
IDM_FINDAGAIN          147    "Find again", (MESSAGE/FOLDER/READER/ADDRBK)
IDM_PASTENAMES         148    "Paste names" (ADDRESSBOOK)
IDM_PASTEADDRESSES     149    "Paste addresses" (ADDRESSBOOK)
IDM_SAVESIZE           150    "Save window size" (Various)
IDM_OTHEROPTIONS       151    "Special message view" (MESSAGE)
IDM_SHOWHEADERS        153    "Show all headers" (READER)
IDM_EXTRACT            154    "Save messages to disk" (FOLDER/READER)
IDM_ATTACH             155    "Switch to attachments view" (MESSAGE)
IDM_MARKUNREAD         156    "Mark message as unread" (FOLDER and NB)
IDM_ALIASING           157    "Resolve aliases" (ADDRESSBOOK)
IDM_BPPREF             158    "Button panel preferences" (FILE/PREFS)
IDM_UUDECODE           160    "UUdecode message" (FOLDER/READER /SPECIAL)
IDM_UNBINHEX           161    "Un-BinHex message" (FOLDER/READER /SPECIAL)
IDM_LOCALSIG           162    "Signature for local mail" (FILE/PREFS)
IDM_INETSIG            163    "Signature for Internet mail" (FILE/PREFS)
IDM_MHSSIG             164    "Signature for MHS mail" (FILE/PREFS)
IDM_DELEXPIRED         165    "Delete expired messages" (FOLDER/SPECIAL)
IDM_EDMAIL             167    "Switch to message editor view" (MESSAGE)
IDM_QUICKLOOKUP        168    "Quick lookup" (ADDRESSES)
IDM_WORDWRAP           169    "Wrap long lines" (READER)
IDM_DELLINE            170    "Delete line" (MESSAGE)
IDM_REFORMAT           171    "Reformat paragraph" (MESSAGE)
IDM_INDENT             172    "Indent text" (MESSAGE)
IDM_REPLACE            173    "Search and replace" (MESSAGE)
IDM_DELWORD            174    "Delete word right" (MESSAGE)
IDM_APREFS             175    "Advanced settings" (FILE/PREFS)
IDM_ENLARGE            176    "Enlarge window" (WINDOW)
IDM_ABK_EXPORT         177    "Export addressbook" (ADDRESSBOOK)
IDM_ABK_IMPORT         178    "Import addressbook" (ADDRESSBOOK)
IDM_NOTICEBOARDS       179    "Noticeboards" (FILE)
IDM_ANN_EDIT           180    "Add/edit annotation" (FOLDER)
IDM_SRT_DATE           270    "Sort by date" (FOLDER)
IDM_SRT_REVDATE        271    "Sort by reverse date" (FOLDER)
IDM_SRT_SUBJECT        272    "Sort by subject" (FOLDER)
IDM_SRT_FROM           273    "Sort by sender's name" (FOLDER)
IDM_SRT_SUBJECT2       274    "Sort by subject/reverse date" (FOLDER)
IDM_SRT_COLOUR         275    "Sort by colour" (FOLDER)
IDM_FORMS              185    "Open Forms Manager" (FILE)
IDM_ANN_DELETE         186    "Delete annotation" (FOLDER)
IDM_REVIEWMAIL         187    "Review Queued Mail" (FILE)
IDM_TODISK             230    "Save to disk" (Various)
IDM_FROMDISK           231    "Read from disk" (Various)
IDM_EXTRACTFILE        240    "MHS directory service" (ADDRESSES)
IDM_LOGGED_IN          241    "Logged-in users" (ADDRESSES)
IDM_ADD_USER           242    "Add sender to list" (READER/SPECIAL)
IDM_REMOVE_USER        243    "Remove sender from list" (READER/SPECIAL)
IDM_FONT               299    "Font" (Various)
IDM_TILE               500    "Tile" (WINDOW)
IDM_CASCADE            501    "Cascade" (WINDOW)
IDM_ARRANGEICONS       502    "Arrange Icons" (WINDOW)
IDM_BUTTONPANEL        503    "Button panel" (WINDOW)
IDM_NETCONFIG          210    "Network Configuration" (FILE)
IDM_GETMAIL            211    "Check host for new mail" (FILE)
IDM_SENDMAIL           212    "Send all queued mail" (FILE)
IDM_GETANDSEND         189    "Check and send mail" (FILE)

IDM_MSGCOLOUR          260    "Set colour" (FOLDER)
IDM_UADMIN             322    "Manage users..." (ADDRESSES)
IDM_ONLINE             321    "Leave offline mode" (FILE)
IDM_OFFLINE            320    "Enter offline mode" (FILE)
IDM_QF_6               316    "Quick folder 6" (FILE/FOLDERS)
IDM_QF_5               315    "Quick folder 5" (FILE/FOLDERS)
IDM_QF_4               314    "Quick folder 4" (FILE/FOLDERS)
IDM_QF_3               313    "Quick folder 3" (FILE/FOLDERS)
IDM_QF_2               312    "Quick folder 2" (FILE/FOLDERS)
IDM_QF_1               311    "Quick folder 1" (FILE/FOLDERS)
IDM_QF_DEFINE          197    "Define quick folders" (FILE/FOLDERS)
IDM_EDIT_FLAGS         199    "Edit message flags" (FOLDER)
IDM_SRT_NEWTOTOP       198    "Sort unread before read" (FOLDER)
IDM_DLM_EXPORT         196    "Export to text file" (LISTS)
IDM_DLM_DUPLICATE      194    "Duplicate list" (LISTS)
IDM_DLM_EDIT           193    "Edit list" (LISTS)
IDM_DLM_DELETE         192    "Delete list" (LISTS)
IDM_DLM_ADD            191    "Add new list" (LISTS)
IDM_PREF_VIEW          190    "Attachment viewers" (FILE)
IDM_FULLSCREEN         188    "Enlarge message editor" (MESSAGE)

