245 lines
7.5 KiB
C
245 lines
7.5 KiB
C
/*******************************************************************
|
|
* Pilot Software
|
|
*
|
|
* Copyright (c) 1996-1997, Palm Computing Inc., All Rights Reserved
|
|
*
|
|
*-------------------------------------------------------------------
|
|
* FileName:
|
|
* AppLaunchCmd.h
|
|
*
|
|
* Description:
|
|
* Pilot launch commands for applications. Some launch commands
|
|
* are treated differently by different apps. The different
|
|
* parameter blocks used by the apps are kept here.
|
|
*
|
|
* History:
|
|
* 7/23/96 rsf - Created by Roger Flores
|
|
*
|
|
*******************************************************************/
|
|
|
|
#ifndef __APPLNCMD_H__
|
|
#define __APPLNCMD_H__
|
|
|
|
// Include elementary types
|
|
#include <Common.h>
|
|
|
|
|
|
#define AppLaunchWithCommand(appCreator, appCommand, appCommandParams) \
|
|
{ \
|
|
UInt cardNo; \
|
|
LocalID dbID; \
|
|
DmSearchStateType searchState; \
|
|
DmGetNextDatabaseByTypeCreator(true, &searchState, sysFileTApplication, \
|
|
appCreator, true, &cardNo, &dbID); \
|
|
ErrNonFatalDisplayIf(!dbID, "Could not find app"); \
|
|
if (dbID) { \
|
|
err = SysUIAppSwitch(cardNo, dbID, appCommand, appCommandParams); \
|
|
ErrNonFatalDisplayIf(err, "Could not launch app"); \
|
|
} \
|
|
}
|
|
|
|
#define AppCallWithCommand(appCreator, appCommand, appCommandParams) \
|
|
{ \
|
|
UInt cardNo; \
|
|
LocalID dbID; \
|
|
DmSearchStateType searchState; \
|
|
DWord result; \
|
|
Err err; \
|
|
DmGetNextDatabaseByTypeCreator(true, &searchState, sysFileTApplication, \
|
|
appCreator, true, &cardNo, &dbID); \
|
|
ErrNonFatalDisplayIf(!dbID, "Could not find app"); \
|
|
if (dbID) { \
|
|
err = SysAppLaunch(cardNo, dbID, 0, appCommand, (Ptr) appCommandParams, &result); \
|
|
ErrNonFatalDisplayIf(err, "Could not launch app"); \
|
|
} \
|
|
}
|
|
|
|
|
|
|
|
/************************************************************
|
|
* Param Block passsed with the sysAppLaunchCmdLookup Command
|
|
*************************************************************/
|
|
|
|
//-------------------------------------------------------------------
|
|
// sysAppLaunchCmdLookup parameter block for the Address Book
|
|
//-------------------------------------------------------------------
|
|
|
|
// This is a list of fields by which data may be looked up.
|
|
typedef enum {
|
|
addrLookupName,
|
|
addrLookupFirstName,
|
|
addrLookupCompany,
|
|
addrLookupAddress,
|
|
addrLookupCity,
|
|
addrLookupState,
|
|
addrLookupZipCode,
|
|
addrLookupCountry,
|
|
addrLookupTitle,
|
|
addrLookupCustom1,
|
|
addrLookupCustom2,
|
|
addrLookupCustom3,
|
|
addrLookupCustom4,
|
|
addrLookupNote, // This field is assumed to be < 4K
|
|
addrLookupWork,
|
|
addrLookupHome,
|
|
addrLookupFax,
|
|
addrLookupOther,
|
|
addrLookupEmail,
|
|
addrLookupMain,
|
|
addrLookupPager,
|
|
addrLookupMobile,
|
|
addrLookupSortField,
|
|
addrLookupListPhone,
|
|
addrLookupNoField = 0xff
|
|
} AddressLookupFields;
|
|
|
|
|
|
#define addrLookupStringLength 12
|
|
|
|
typedef struct
|
|
{
|
|
CharPtr title;
|
|
// Title to appear in the title bar. If NULL the default is used.
|
|
|
|
CharPtr pasteButtonText;
|
|
// Text to appear in paste button. If NULL "paste" is used.
|
|
|
|
Char lookupString[addrLookupStringLength];
|
|
// Buffer containing string to lookup. If the string matches
|
|
// only one record then that record is used without
|
|
// presenting the user with the lookup dialog.
|
|
|
|
AddressLookupFields field1;
|
|
// Field to search by. This field appears on the left side
|
|
// of the lookup dialog. If the field is the sort field then
|
|
// searches use a binary search. If the field isn't the sort
|
|
// field then the data does appear in sorted order and searching
|
|
// is performed by a linear search (can get slow).
|
|
|
|
AddressLookupFields field2;
|
|
// Field to display on the right. Often displays some
|
|
// information about the person. If it is a phone field
|
|
// and a record has multiple instances of the phone type
|
|
// then the person appears once per instance of the phone
|
|
// type. Either field1 or field2 may be a phone field but
|
|
// not both.
|
|
|
|
Boolean field2Optional;
|
|
// True means that the record need not have field2 for
|
|
// the record to be listed. False means that field2 is
|
|
// required in the record for it to be listed.
|
|
|
|
Boolean userShouldInteract;
|
|
// True means that the user should resolve non unique
|
|
// lookups. False means a non unique and complete lookup
|
|
// returns resultStringH set to 0 and recordID set to 0;
|
|
|
|
CharPtr formatStringP;
|
|
// When the user selects the paste button a string is generated
|
|
// to return data from the record. The format of the result string
|
|
// is controlled by this string. All characters which appear
|
|
// in this string are copied straight to the result string unless
|
|
// they are a field (a '^' follow by the field name). For
|
|
// example, the format string "^first - ^home" might result in
|
|
// "Roger - 123-4567".
|
|
|
|
// The field arguments are name, first, company, address, city
|
|
// state, zipcode, country, title, custom1, custom2, custom3,
|
|
// custom4, work, home, fax, other, email, main, pager, mobile,
|
|
// and listname.
|
|
|
|
Handle resultStringH;
|
|
// If there is a format string a result string is allocated on
|
|
// the dynamic heap and it's handle is returned here.
|
|
|
|
DWord uniqueID;
|
|
// The unique ID of the found record or 0 if none was found.
|
|
|
|
} AddrLookupParamsType;
|
|
|
|
typedef AddrLookupParamsType * AddrLookupParamsPtr;
|
|
|
|
|
|
|
|
|
|
/************************************************************
|
|
* Param Block passsed with the sysAppLaunchCmdSetActivePanel Command
|
|
*************************************************************/
|
|
|
|
#define prefAppLaunchCmdSetActivePanel (sysAppLaunchCmdCustomBase + 1)
|
|
// Record this panel so switching to the Prefs app
|
|
// causes this panel to execute.
|
|
|
|
typedef struct
|
|
{
|
|
DWord activePanel;
|
|
// The creator ID of a panel. Usually sent by a panel so the prefs
|
|
// apps will switch to it. This allows the last used panel to appear
|
|
// when switching to the Prefs app.
|
|
|
|
} PrefActivePanelParamsType;
|
|
|
|
typedef PrefActivePanelParamsType * PrefActivePanelParamsPtr;
|
|
|
|
|
|
|
|
/************************************************************
|
|
* Param Block passsed with the sysAppLaunchCmdAddRecord Command
|
|
*************************************************************/
|
|
|
|
//-------------------------------------------------------------------
|
|
// sysAppLaunchCmdAddRecord parameter block for the Mail application
|
|
//-------------------------------------------------------------------
|
|
// Param Block passsed with the sysAppLaunchCmdAddRecord Command
|
|
|
|
typedef enum { mailPriorityHigh, mailPriorityNormal, mailPriorityLow } MailMsgPriorityType;
|
|
|
|
typedef struct {
|
|
Boolean secret;
|
|
// True means that the message should be marked secret
|
|
|
|
Boolean signature;
|
|
// True means that signature from the Mail application's preferences
|
|
// should be attached to the message.
|
|
|
|
Boolean confirmRead;
|
|
// True means that a comfirmation should be sent when the message
|
|
// is read.
|
|
|
|
Boolean confirmDelivery;
|
|
// True means that a comfirmation should be sent when the message
|
|
// is deliveried
|
|
|
|
MailMsgPriorityType priority;
|
|
// high, normial, or low.
|
|
|
|
CharPtr subject;
|
|
// Message's subject, a null-terminated string (optional).
|
|
|
|
CharPtr from;
|
|
// Message's send, a null-terminated string (not currently used).
|
|
|
|
CharPtr to;
|
|
// Address the the recipient, a null-terminated string (required).
|
|
|
|
CharPtr cc;
|
|
// Copy Addresses, a null-terminated string (required).
|
|
|
|
CharPtr bcc;
|
|
// Blind copy Addresses, a null-terminated string (required).
|
|
|
|
CharPtr replyTo;
|
|
// Reply to address, a null-terminated string (required).
|
|
|
|
CharPtr body;
|
|
// The text of the message, a null-terminated string (required).
|
|
|
|
} MailAddRecordParamsType;
|
|
|
|
typedef MailAddRecordParamsType * MailAddRecordParamsPtr;
|
|
|
|
|
|
|
|
|
|
#endif //__APPLNCMD_H__
|