mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-26 01:49:19 +00:00
1150 lines
47 KiB
C
1150 lines
47 KiB
C
|
||
/************************************************************
|
||
|
||
Created: Saturday, July 27, 1991 at 6:16 PM
|
||
Script.h
|
||
C Interface to the Macintosh Libraries
|
||
|
||
|
||
Copyright Apple Computer, Inc. 1986-1992
|
||
All rights reserved
|
||
|
||
|
||
Change History (most recent first):
|
||
|
||
<74> 10/23/92 HA For New Inside Mac we want to add langSaamisk=29 as the
|
||
preferred synonym for langLappish, based on some naming info we
|
||
have from the Norwegian consulate. (per PKE)
|
||
<73> 9/25/92 DCL Changed Get(Set)SMVariable to Get(Set)ScriptManagerVariable.
|
||
(for NIIM)
|
||
<72> 8/28/92 DCL Fixed enums with commas before the closing brace. MPW now
|
||
complains.
|
||
<71> 7/2/92 SMB #1029263: Added new flag, smsfSynchUnstyledTE, to the 'itlb'
|
||
flags field to handle font & keyboard synchronization for
|
||
unstyled TE.
|
||
<70> 5/29/92 DCL Moved Intl resource constants to IntlResources. Moved Findword
|
||
stuff to TextUtils. Tweaked some comments to reflect new names.
|
||
<69> 5/7/92 DCL NIIM: Attempting to blow away DateTime.
|
||
<68> 5/5/92 DCL Typos. Damn those little commas. Keep tripping over 'em.
|
||
<67> 5/5/92 DCL For New Inside Mac: removing 'sc' prefixes from some calls,
|
||
moving some calls from script to TextUtils, and moving some from
|
||
TextUtils & QuickDraw to QuickdrawText. Weeeeeeee!
|
||
<66> 4/20/92 DCL Added typedef thingy for RuleBasedTrslRecord whachamacallit.
|
||
<65> 4/20/92 DCL More stuff from before.
|
||
<64> 4/20/92 DCL #1027048 Added smCharBopomofo, smTransRuleBaseFormat,
|
||
smTransHangulFormat, smTransPreDoubleByting,
|
||
smTransPreLowerCasing, Itl5, RuleBasedTrslRecord.
|
||
<63> 4/16/92 DCL For New Inside Mac: Added Get&SetSysDirection as synonyms for
|
||
Get&SetSysJust. Moved Read&WriteLocation from Script to OSUtils.
|
||
<62> 4/15/92 DCL For New Inside Mac: Moved GetDefFontSize, GetSysFont, and
|
||
GetAppFont from Script to Fonts.
|
||
<61> 4/15/92 DCL For New Inside Mac: Moved many definitions from Script to
|
||
TextUtils. And added new synonyms. #1025005
|
||
<61> 4/15/92 DCL For New Inside Mac: Moved many definitions to TextUtils. And
|
||
added new synonyms. #1025005
|
||
<60> 4/8/92 PKE #1026516,<cv>: Move SCxxx interfaces for some ScriptMgr routines
|
||
from private interfaces (ScriptPriv.h) to public (here).
|
||
<59> 4/3/92 gbm Change smKeyDisabState to a kinder, gentler spelling.
|
||
(smKeyDisableState)
|
||
<58> 4/3/92 DCL PKE #1026378: Add CharType constants smCharContextualLR and
|
||
smCharNonContextualLR; already used for Thai and Cyrillic.
|
||
<57> 4/3/92 DCL For New Inside Mac: Moved declarations from Script.[aph] to
|
||
TextUtils.[aph]. Moved Language Codes back into Script.
|
||
#1025005
|
||
<56> 3/30/92 DCL Moved IUGetItlTable to Script.[hap]
|
||
<55> 3/30/92 DCL PKE 1022875, Add smKeyRoman verb for KeyScript (for use in KSWP)
|
||
that sets keyboard script to Roman if multiple scripts are
|
||
installed (otherwise KSWP key combination is not stripped from
|
||
event queue).
|
||
<54> 3/30/92 DCL For New Inside Mac: Added New Improved Better Names for the same
|
||
old calls. #1025005
|
||
<53> 3/26/92 DCL For New Inside Mac: Moved all of the Date & Time stuff to the
|
||
New DateTime include file. And Included the new DateTime
|
||
include file. #1025005
|
||
<52> 3/20/92 DCL #1025005,<KSM>:
|
||
Included Language.h because: For New IM: Moved some declarations
|
||
and routines from Packages.[ph] to Script.[ph] #1025005
|
||
<51> 3/19/92 DCL For New IM: Moved date & time declarations declarations to
|
||
Script.[ph]
|
||
<50> 2/28/92 DCL Moved GetMBarHeight from Script.h to Menus.h
|
||
<49> 2/17/92 MH change refs to extended to extended80
|
||
<48> 2/10/92 YS 1014691, added a flag 'smfUseAssocFontInfo' in smGenFlags.
|
||
<47> 1/13/92 PKE 1019369, add smKeyDisabState verb for GetEnvirons to get the
|
||
current keyboard disable state.
|
||
<46> 12/11/91 PKE Define new public interfaces SCGetScriptRoutineAddr,
|
||
SCSetScriptRoutineAddr, SCGetQDPatchAddr, SCSetQDPatchAddr which
|
||
are implemented by one-byte script extension.
|
||
<45> 12/6/91 JTK Add script code for latest member of the Federation.
|
||
<44> 12/2/91 PKE Fix ValidDate interface (MPW bug #1016029): selector was wrong
|
||
and first param is not VAR (should be const).
|
||
<43> 11/25/91 PKE Define new smScriptFlags bit smsfUnivExt. Define new KeyScript
|
||
verbs smKeySetDirLeftRight, smKeySetDirRightLeft.
|
||
<42> 11/6/91 MH positions parameter for FormatStatus from TripleInt * to
|
||
TripleInt. Since TripleInt is an array, it is incorrect to
|
||
specify the reference parameter as a pointer to it. A parameter
|
||
of type TripleInt is already a pointer. The call was difficult
|
||
if not impossible to use in its previous form. see K&R pg 28.
|
||
<41> 9/27/91 SMB For Cube-E (and Bruges) - define system direction bit,
|
||
itlcSysDirection, for itlcSysFlags and added bit definitions,
|
||
itlcShowIcon and itlcDualCaret, for the itlcFlags.
|
||
<40> 9/25/91 PKE For Cube-E (and Bruges): Add itlcSysFlags field to ItlcRecord.
|
||
<39> 8/20/91 KSM pke,#Bruges: Added a new script code smAllScripts to indicate
|
||
meaning no preference for script code or any script code.
|
||
<38> 7/31/91 JL Updated Copyright. Restored Comments.
|
||
<37> 6/14/91 JL Checked in official MPW 3.2ƒ version. Removed the comma after
|
||
the constant declaration of smMiddleStyleRun. Lost updated
|
||
copyright date but this will be resolved later.
|
||
<36> 1/30/91 LN Checked in Database Generated File from DSG. removed unnecessary
|
||
"struct" from FindScriptRun
|
||
<35> 1/28/91 PKE bbm: Add constants for use with CharType and Transliterate on
|
||
Chinese and Korean systems.
|
||
<34> 1/10/91 PKE (csd) Change names for “ring” and “breve” constants (too
|
||
ambiguous) to “ringMark” and “breveMark”.
|
||
<33> 1/2/91 PKE (bbm) Updated comments and rearranged a few constants to match
|
||
latest Inside Mac summary. Added tokenCaret as correct spelling
|
||
for tokenCarat.
|
||
<32> 12/20/90 JL changed constStr255Parameter to ConstStr255Param
|
||
<31> 12/15/90 PKE (KSM) Update some new constants used with 2-byte script systems.
|
||
<30> 12/14/90 SMB (csd) I forgot the approval signature for the previous change.
|
||
<29> 12/14/90 SMB Moving KeyScript verb, smKeyModalDialog, to ScriptPriv.h.
|
||
<28> 11/7/90 JL Changed all #defines to anonymous enums
|
||
<27> 11/4/90 dba use constStr255Parameter
|
||
<26> 10/30/90 dba make smaller version of low-memory access routines
|
||
<25> 9/16/90 PKE In NItl4Rec, rename ‘resHeader1’ field to ‘format’, since that
|
||
is how we now use it.
|
||
<24> 9/10/90 PKE Add smCurrentScript constant. Add more FIS constants from Joel
|
||
Cannon.
|
||
<23> 8/31/90 SMB Added new KeyScript verb for ModalDialogs so that the About
|
||
Keyboards menu item can be disabled. Added new KeyScript verb to
|
||
disable the keyboard switching when a KCHR is being moved into
|
||
or out of the System file.
|
||
<22> 8/24/90 PKE (per JT) Restored smFISClassXXX constants to original values
|
||
(backed out of part of change <6>).
|
||
<21> 8/2/90 PKE Added smSystem constant (meta-script code, designates the system
|
||
script). Moved obsolete script codes to end of their section.
|
||
Added constants for values of scriptRedraw field. Cleaned up
|
||
negative KeyScript verbs: deleted smKeyLastScript synonym, added
|
||
smKeyDisableKybds and smKeyEnableKybds, renumbered
|
||
smKeyNextInputMethod and smKeySwapInputMethod.
|
||
<20> 7/17/90 PKE Changed reserved field in ItlbRecord to itlbEncoding (contains
|
||
ID of itl5, optional char encoding resource), and changed name
|
||
of corresponding GetScript verb. Fixed a few comments.
|
||
<19> 6/22/90 PKE Moved language codes to a new file, Language.h, and rearranged
|
||
the new ones. Added smExtArabic as synonym for smSindhi,
|
||
smEastEurRoman as synonym for smSlavic.
|
||
<18> 6/20/90 PKE Changed tentative value for smCharFISHangul to eliminate
|
||
conflict with Arabic/Hebrew; added smCharExtAscii and
|
||
smCharBidirect. Added smEthiopic (synonym for smGeez) plus about
|
||
80 new language codes covering most languages we are likely to
|
||
handle; also added some synonyms for existing language codes.
|
||
Changed resLength6 field in NItl4Rec to whtSpListLength.
|
||
<17> 6/12/90 PKE Added new calendar code calPersian, per Hani Abdelazim. Added
|
||
smKeySwapScript as synonym for smKeyLastScript (using new
|
||
terminology), and added several new KeyScript verbs that may be
|
||
implemented by script systems.
|
||
<16> 5/31/90 PKE Added new GetScript verbs: smScriptValidStyles,
|
||
smScriptAliasStyle. Added new fields to ItlbExtRecord:
|
||
itlbValidStyles, itlbAliasStyle.
|
||
<15> 5/24/90 PKE Added numer/denom scaling parameters to NPortionText, NDrawJust,
|
||
NMeasureJust, NChar2Pixel, and NPixel2Char.
|
||
<14> 5/21/90 PKE Added new tokens tokenEllipsis and tokenCenterDot. Fixed
|
||
spelling of tokenTilde. Changed truncMarkOffset to
|
||
whtSpListOffset in NItl4Rec. Added smfNameTagEnab constant for
|
||
flag bit, enables script tag in Finder names.
|
||
<13> 5/11/90 PKE Added new constants smTradChinese, smSimpChinese,
|
||
langTradChinese, langSimpChinese. Deleted smMaldivian!
|
||
<12> 5/1/90 PKE Added constants for negative KeyScript verbs and for
|
||
TruncText/TruncString results.
|
||
<11> 3/23/90 PKE Added smScriptAppFondSize and smScriptHelpFondSize verbs for
|
||
GetScript/SetScript. Defined smsfAutoInit bit for script flags.
|
||
Deleted special roman font equates that were new for 7.0, since
|
||
we now get this information from a resource. Added ItlbExtRecord
|
||
structure for new-format 'itlb' resource.
|
||
<10> 3/21/90 PKE Rearranged the length fields in NItl4Rec to be correct.
|
||
<9> 3/7/90 JAL Official MPW version
|
||
<8> 3/5/90 PKE For MPW release: Updated the TruncString and TruncText
|
||
interfaces to look like their NTruncXxx forms, then deleted the
|
||
NTruncXxx forms. This change should put this file into
|
||
releasable shape.
|
||
<7> 3/4/90 PKE Change new implementation of UprText to be UpperText so we can
|
||
remove last conditionals. Add LowerText as synonym for LwrText.
|
||
Changed StripUprText to StripUpperText. Removed all conditionals
|
||
and bigBangEquates symbol. Still need to fix up TruncX/NTruncX
|
||
variants.
|
||
<6> 3/2/90 PKE Removed version number constants: smgrVers (Script Mgr),
|
||
romanVers (Roman script system). Removed conditionalized
|
||
definitions of private constants: smLastEVerb, smLastSVerb.
|
||
Corrected smFISClassXXX constants. Removed 7.0
|
||
conditionalization in itlcRecord, and renamed the now-shortened
|
||
reserved area from itlcReserved2 to itlcReserved3. Gave new name
|
||
‘NItl4Rec’ to the extended version of Itl4Rec, and
|
||
unconditionalized the old versions so they don’t change. Added
|
||
corresponding NItl4Ptr and NItl4Handle. Removed all conditionals
|
||
on bigBangEquates except implementation change for UprText; need
|
||
to fix this by renaming the new one (also change trap opword).
|
||
<5> 1/23/90 PKE Moved IULDateString and IULTimeString interfaces from here to
|
||
Packages.h, where they should have been all along. Removed
|
||
auto-include of Packages.h, since it isn't necessary and it
|
||
causes problems since we now need to auto-include Script.h in
|
||
Packages.h (i.e., the other way around). Instead, auto-include
|
||
OSUtils.h (which was previously included via Packages.h) to get
|
||
definition of DateTimeRec.
|
||
<4> 1/17/90 PKE Added itlcRegionCode field to itlcRecord.
|
||
<3> 1/17/90 PKE Added new constants: smCyrillic as synonym for smRussian, new
|
||
smRegionCode verb for GetEnvirons (and older smKCHRCache verb
|
||
that was never in here), and several new langXxx constants.
|
||
<2> 1/11/90 PKE Added new interfaces: NPortionText, NDrawJust, NMeasureJust,
|
||
NChar2Pixel, and NPixel2Char. Added smXxxStyleRun constants and
|
||
JustStyleCode typedef used in new interfaces. Updated header to
|
||
be in BBS format.
|
||
<1> 12/17/89 CCH Adding for the first time into BBS.
|
||
(BBS versions above, EASE versions below)
|
||
<2.1> 11/8/89 PKE Add temporary interfaces NTruncString and NTruncText for the
|
||
new-style Trunc routines that expect a truncWhere parameter.
|
||
Eventually, the standard Trunc routine interfaces will be
|
||
changed to use this parameter. Add TruncCode type and related
|
||
constants for truncWhere parameter.
|
||
<2.0> 10/3/89 PKE Changed bigbangEquates to bigBangEquates for consistency with
|
||
Packages.h.
|
||
<1.9> 9/22/89 PKE Define bigBangEquates if SysVers is not defined, as in non
|
||
System file builds.
|
||
<1.8> 9/19/89 PKE Added StripText and StripUprText, modified UprText to use
|
||
_UprText trap (instead of _UprString) for localizability. Made
|
||
bigBangEquates symbol actually depend on SysVers. Changed
|
||
Itl4Rec: defined truncMarkOffset field (was resOffset6), added 8
|
||
shorts at end for table/code lengths. Defined NBreakTable and
|
||
NBreakTablePtr, made NFindWord use NBreakTablePtr. NOTE: The
|
||
NBreakTable definition here matches the itl2 break table headers
|
||
in the current Reality sources, which have changed since the D13
|
||
build. Since no one is presently using the NBreakTable
|
||
structure, this shouldn't cause any problems.
|
||
<1.7> 9/17/89 PKE Added langKorean. Added new Get/SetEnvirons verb smDoubleByte.
|
||
Deleted smLastEVerb, smLastSVerb. Updated romanVers for 7.0.
|
||
<1.6> 9/15/89 PKE Actually, the NFindWord interface is useful as a direct call,
|
||
even if it is not a replacement for the old FindWord interface,
|
||
so put it back in. Also add interfaces for TruncText,
|
||
TruncString, and ReplaceText.
|
||
<1.5> 9/5/89 PKE Get rid of NFindWord interface; it was a bad idea. The 7.0 glue
|
||
code now routes calls with the old FindWord selector to the new
|
||
FindWord when possible. Leave conditionals for future use.
|
||
<1.4> 9/4/89 PKE Add NFindWord for 7.0 testing. Eventually, FindWord will be a
|
||
synonym for NFindWord, but for now we will keep them separate so
|
||
that we can do 6.0.4 and 6.0.5 builds.
|
||
<1.3> 6/23/89 PKE For 7.0: Make Script Manager version 7.xx for Big Bang, add new
|
||
GetScript/SetScript verbs for font info, add new font constants
|
||
for Roman.
|
||
<1.2> 6/6/89 PKE Update from MPW 3.0 level to MPW 3.1 level. Mostly this just
|
||
adds new constants, but there are some changes to what was
|
||
already in the file: (1) Changed the value of smgrVers, (2)
|
||
Corrected the value of smTransCase, (3) Changed the
|
||
ToggleResults type from unsigned char (with enumerated values)
|
||
to short (with values specified by #defines), (4) Converted some
|
||
of the reserved space in ItlcRecord to named fields.
|
||
<1.1> 11/9/88 CCH Fixed headers and removed projector resource.
|
||
<1.0> 11/9/88 CCH Adding to EASE.
|
||
|
||
To Do:
|
||
|
||
************************************************************/
|
||
|
||
|
||
#ifndef __SCRIPT__
|
||
#define __SCRIPT__
|
||
|
||
#ifndef __TYPES__
|
||
#include <Types.h>
|
||
#endif
|
||
|
||
#ifndef __QUICKDRAW__
|
||
#include <Quickdraw.h>
|
||
#endif
|
||
|
||
#ifndef __INTLRESOURCES__
|
||
#include <IntlResources.h>
|
||
#endif
|
||
|
||
|
||
enum {
|
||
|
||
|
||
/* Script System constants */
|
||
smSystemScript = -1, /*designates system script.*/
|
||
smCurrentScript = -2, /*designates current font script.*/
|
||
smAllScripts = -3, /*designates any script <39>*/
|
||
|
||
smRoman = 0, /*Roman*/
|
||
smJapanese = 1, /*Japanese*/
|
||
smTradChinese = 2, /*Traditional Chinese*/
|
||
smKorean = 3, /*Korean*/
|
||
smArabic = 4, /*Arabic*/
|
||
smHebrew = 5, /*Hebrew*/
|
||
smGreek = 6, /*Greek*/
|
||
smCyrillic = 7, /*Cyrillic*/
|
||
smRSymbol = 8, /*Right-left symbol*/
|
||
smDevanagari = 9, /*Devanagari*/
|
||
smGurmukhi = 10, /*Gurmukhi*/
|
||
smGujarati = 11, /*Gujarati*/
|
||
smOriya = 12, /*Oriya*/
|
||
smBengali = 13, /*Bengali*/
|
||
smTamil = 14, /*Tamil*/
|
||
smTelugu = 15, /*Telugu*/
|
||
smKannada = 16, /*Kannada/Kanarese*/
|
||
smMalayalam = 17 /*Malayalam*/
|
||
};
|
||
enum {
|
||
smSinhalese = 18, /*Sinhalese*/
|
||
smBurmese = 19, /*Burmese*/
|
||
smKhmer = 20, /*Khmer/Cambodian*/
|
||
smThai = 21, /*Thai*/
|
||
smLaotian = 22, /*Laotian*/
|
||
smGeorgian = 23, /*Georgian*/
|
||
smArmenian = 24, /*Armenian*/
|
||
smSimpChinese = 25, /*Simplified Chinese*/
|
||
smTibetan = 26, /*Tibetan*/
|
||
smMongolian = 27, /*Mongolian*/
|
||
smGeez = 28, /*Geez/Ethiopic*/
|
||
smEthiopic = 28, /*Synonym for smGeez*/
|
||
smEastEurRoman = 29, /*Synonym for smSlavic*/
|
||
smVietnamese = 30, /*Vietnamese*/
|
||
smExtArabic = 31, /*extended Arabic*/
|
||
smUninterp = 32, /*uninterpreted symbols, e.g. palette symbols*/
|
||
smKlingon = 32, /*Klingon*/ /*<45>*/
|
||
|
||
/*Obsolete names for script systems (kept for backward compatibility)*/
|
||
smChinese = 2, /*(use smTradChinese or smSimpChinese)*/
|
||
smRussian = 7, /*(old name for smCyrillic)*/
|
||
|
||
/* smMaldivian = 25; (no more smMaldivian!)*/
|
||
smAmharic = 28, /*(old name for smGeez)*/
|
||
smSlavic = 29 /*(old name for smEastEurRoman)*/
|
||
};
|
||
enum {
|
||
smSindhi = 31, /*(old name for smExtArabic)*/
|
||
|
||
|
||
/* Language Codes */
|
||
langEnglish = 0, /* smRoman script */
|
||
langFrench = 1, /* smRoman script */
|
||
langGerman = 2, /* smRoman script */
|
||
langItalian = 3, /* smRoman script */
|
||
langDutch = 4, /* smRoman script */
|
||
langSwedish = 5, /* smRoman script */
|
||
langSpanish = 6, /* smRoman script */
|
||
langDanish = 7, /* smRoman script */
|
||
langPortuguese = 8, /* smRoman script */
|
||
langNorwegian = 9, /* smRoman script */
|
||
langHebrew = 10, /* smHebrew script */
|
||
langJapanese = 11, /* smJapanese script */
|
||
langArabic = 12, /* smArabic script */
|
||
langFinnish = 13, /* smRoman script */
|
||
langGreek = 14, /* smGreek script */
|
||
langIcelandic = 15, /* extended Roman script */
|
||
langMaltese = 16, /* extended Roman script */
|
||
langTurkish = 17, /* extended Roman script */
|
||
langCroatian = 18, /* Serbo-Croatian in extended Roman script */
|
||
langTradChinese = 19 /* Chinese in traditional characters */
|
||
};
|
||
enum {
|
||
langUrdu = 20, /* smArabic script */
|
||
langHindi = 21, /* smDevanagari script */
|
||
langThai = 22, /* smThai script */
|
||
langKorean = 23, /* smKorean script */
|
||
langLithuanian = 24, /* smEastEurRoman script */
|
||
langPolish = 25, /* smEastEurRoman script */
|
||
langHungarian = 26, /* smEastEurRoman script */
|
||
langEstonian = 27, /* smEastEurRoman script */
|
||
langLettish = 28, /* smEastEurRoman script */
|
||
langLatvian = 28, /* Synonym for langLettish */
|
||
langSaamisk = 29, /* ext. Roman script, lang. of the Sami/Lapp people of Scand. */
|
||
langLappish = 29, /* Synonym for langSaamisk */
|
||
langFaeroese = 30, /* smRoman script */
|
||
langFarsi = 31, /* smArabic script */
|
||
langPersian = 31, /* Synonym for langFarsi */
|
||
langRussian = 32, /* smCyrillic script */
|
||
langSimpChinese = 33, /* Chinese in simplified characters */
|
||
langFlemish = 34, /* smRoman script */
|
||
langIrish = 35, /* smRoman script */
|
||
langAlbanian = 36 /* smRoman script */
|
||
};
|
||
enum {
|
||
langRomanian = 37, /* smEastEurRoman script */
|
||
langCzech = 38, /* smEastEurRoman script */
|
||
langSlovak = 39, /* smEastEurRoman script */
|
||
langSlovenian = 40, /* smEastEurRoman script */
|
||
langYiddish = 41, /* smHebrew script */
|
||
langSerbian = 42, /* Serbo-Croatian in smCyrillic script */
|
||
langMacedonian = 43, /* smCyrillic script */
|
||
langBulgarian = 44, /* smCyrillic script */
|
||
langUkrainian = 45, /* smCyrillic script */
|
||
langByelorussian = 46, /* smCyrillic script */
|
||
langUzbek = 47, /* smCyrillic script */
|
||
langKazakh = 48, /* smCyrillic script */
|
||
langAzerbaijani = 49, /* Azerbaijani in smCyrillic script (USSR) */
|
||
langAzerbaijanAr = 50, /* Azerbaijani in smArabic script (Iran) */
|
||
langArmenian = 51, /* smArmenian script */
|
||
langGeorgian = 52, /* smGeorgian script */
|
||
langMoldavian = 53, /* smCyrillic script */
|
||
langKirghiz = 54, /* smCyrillic script */
|
||
langTajiki = 55, /* smCyrillic script */
|
||
langTurkmen = 56 /* smCyrillic script */
|
||
};
|
||
enum {
|
||
langMongolian = 57, /* Mongolian in smMongolian script */
|
||
langMongolianCyr = 58, /* Mongolian in smCyrillic script */
|
||
langPashto = 59, /* smArabic script */
|
||
langKurdish = 60, /* smArabic script */
|
||
langKashmiri = 61, /* smArabic script */
|
||
langSindhi = 62, /* smExtArabic script */
|
||
langTibetan = 63, /* smTibetan script */
|
||
langNepali = 64, /* smDevanagari script */
|
||
langSanskrit = 65, /* smDevanagari script */
|
||
langMarathi = 66, /* smDevanagari script */
|
||
langBengali = 67, /* smBengali script */
|
||
langAssamese = 68, /* smBengali script */
|
||
langGujarati = 69, /* smGujarati script */
|
||
langPunjabi = 70, /* smGurmukhi script */
|
||
langOriya = 71, /* smOriya script */
|
||
langMalayalam = 72, /* smMalayalam script */
|
||
langKannada = 73, /* smKannada script */
|
||
langTamil = 74, /* smTamil script */
|
||
langTelugu = 75, /* smTelugu script */
|
||
langSinhalese = 76 /* smSinhalese script */
|
||
};
|
||
enum {
|
||
langBurmese = 77, /* smBurmese script */
|
||
langKhmer = 78, /* smKhmer script */
|
||
langLao = 79, /* smLaotian script */
|
||
langVietnamese = 80, /* smVietnamese script */
|
||
langIndonesian = 81, /* smRoman script */
|
||
langTagalog = 82, /* smRoman script */
|
||
langMalayRoman = 83, /* Malay in smRoman script */
|
||
langMalayArabic = 84, /* Malay in smArabic script */
|
||
langAmharic = 85, /* smEthiopic script */
|
||
langTigrinya = 86, /* smEthiopic script */
|
||
langGalla = 87, /* smEthiopic script */
|
||
langOromo = 87, /* Synonym for langGalla */
|
||
langSomali = 88, /* smRoman script */
|
||
langSwahili = 89, /* smRoman script */
|
||
langRuanda = 90, /* smRoman script */
|
||
langRundi = 91, /* smRoman script */
|
||
langChewa = 92, /* smRoman script */
|
||
langMalagasy = 93, /* smRoman script */
|
||
langEsperanto = 94, /* extended Roman script */
|
||
langWelsh = 128 /* smRoman script */
|
||
};
|
||
enum {
|
||
langBasque = 129, /* smRoman script */
|
||
langCatalan = 130, /* smRoman script */
|
||
langLatin = 131, /* smRoman script */
|
||
langQuechua = 132, /* smRoman script */
|
||
langGuarani = 133, /* smRoman script */
|
||
langAymara = 134, /* smRoman script */
|
||
langTatar = 135, /* smCyrillic script */
|
||
langUighur = 136, /* smArabic script */
|
||
langDzongkha = 137, /* (lang of Bhutan) smTibetan script */
|
||
langJavaneseRom = 138, /* Javanese in smRoman script */
|
||
langSundaneseRom = 139, /* Sundanese in smRoman script */
|
||
|
||
/* Obsolete names, kept for backward compatibility */
|
||
langPortugese = 8, /* old misspelled version, kept for compatibility */
|
||
langMalta = 16, /* old misspelled version, kept for compatibility */
|
||
langYugoslavian = 18, /* (use langCroatian, langSerbian, etc.) */
|
||
langChinese = 19, /* (use langTradChinese or langSimpChinese) */
|
||
langLapponian = 29 /* Synonym for langSaamisk, not correct name */
|
||
};
|
||
|
||
|
||
enum {
|
||
/* Regional version codes */
|
||
verUS = 0,
|
||
verFrance = 1,
|
||
verBritain = 2,
|
||
verGermany = 3,
|
||
verItaly = 4,
|
||
verNetherlands = 5,
|
||
verFrBelgiumLux = 6, /* French for Belgium & Luxembourg */
|
||
verSweden = 7,
|
||
verSpain = 8,
|
||
verDenmark = 9,
|
||
verPortugal = 10,
|
||
verFrCanada = 11,
|
||
verNorway = 12
|
||
};
|
||
enum {
|
||
verIsrael = 13,
|
||
verJapan = 14,
|
||
verAustralia = 15,
|
||
verArabic = 16, /* synonym for verArabia */
|
||
verFinland = 17,
|
||
verFrSwiss = 18, /* French Swiss */
|
||
verGrSwiss = 19, /* German Swiss */
|
||
verGreece = 20,
|
||
verIceland = 21,
|
||
verMalta = 22,
|
||
verCyprus = 23,
|
||
verTurkey = 24,
|
||
verYugoCroatian = 25, /* Croatian system for Yugoslavia */
|
||
verIndiaHindi = 33, /* Hindi system for India */
|
||
verPakistan = 34,
|
||
verLithuania = 41,
|
||
verPoland = 42,
|
||
verHungary = 43,
|
||
verEstonia = 44,
|
||
verLatvia = 45
|
||
};
|
||
enum {
|
||
verLapland = 46,
|
||
verFaeroeIsl = 47,
|
||
verIran = 48,
|
||
verRussia = 49,
|
||
verIreland = 50, /* English-language version for Ireland */
|
||
verKorea = 51,
|
||
verChina = 52,
|
||
verTaiwan = 53,
|
||
verThailand = 54
|
||
};
|
||
|
||
#define minCountry verUS
|
||
#define maxCountry verThailand
|
||
|
||
/*Obsolete region code names, kept for backward compatibility*/
|
||
|
||
enum {
|
||
verBelgiumLux = 6, /* (use verFrBelgiumLux instead, less ambiguous) */
|
||
verArabia = 16,
|
||
verYugoslavia = 25, /* (use verYugoCroatian instead, less ambiguous) */
|
||
verIndia = 33, /* (use verIndiaHindi instead, less ambiguous) */
|
||
|
||
|
||
|
||
/* Calendar Codes */
|
||
calGregorian = 0,
|
||
calArabicCivil = 1,
|
||
calArabicLunar = 2,
|
||
calJapanese = 3,
|
||
calJewish = 4,
|
||
calCoptic = 5,
|
||
calPersian = 6,
|
||
|
||
/* Integer Format Codes */
|
||
intWestern = 0,
|
||
intArabic = 1,
|
||
intRoman = 2,
|
||
intJapanese = 3,
|
||
intEuropean = 4,
|
||
intOutputMask = 0x8000,
|
||
|
||
/* CharByte byte types */
|
||
smSingleByte = 0,
|
||
smFirstByte = -1,
|
||
smLastByte = 1,
|
||
smMiddleByte = 2,
|
||
|
||
/* CharType field masks */
|
||
smcTypeMask = 0x000F,
|
||
smcReserved = 0x00F0
|
||
};
|
||
enum {
|
||
smcClassMask = 0x0F00,
|
||
smcOrientationMask = 0x1000, /*two-byte script glyph orientation*/
|
||
smcRightMask = 0x2000,
|
||
smcUpperMask = 0x4000,
|
||
smcDoubleMask = 0x8000,
|
||
|
||
/* Basic CharType character types */
|
||
smCharPunct = 0x0000,
|
||
smCharAscii = 0x0001,
|
||
smCharEuro = 0x0007,
|
||
smCharExtAscii = 0x0007, /* More correct synonym for smCharEuro */
|
||
|
||
/* Additional CharType character types for script systems */
|
||
smCharKatakana = 0x0002, /*Japanese Katakana*/
|
||
smCharHiragana = 0x0003, /*Japanese Hiragana*/
|
||
smCharIdeographic = 0x0004, /*Hanzi, Kanji, Hanja*/
|
||
smCharTwoByteGreek = 0x0005, /*2-byte Greek in Far East systems*/
|
||
smCharTwoByteRussian = 0x0006, /*2-byte Cyrillic in Far East systems*/
|
||
smCharBidirect = 0x0008, /*Arabic/Hebrew*/
|
||
smCharContextualLR = 0x0009, /*Contextual left-right: Thai, Indic scripts*/ /*<58>*/
|
||
smCharNonContextualLR = 0x000A, /*Non-contextual left-right: Cyrillic, Greek*/ /*<58>*/
|
||
smCharHangul = 0x000C, /*Korean Hangul*/
|
||
smCharJamo = 0x000D, /*Korean Jamo*/
|
||
smCharBopomofo = 0x000E, /*Chinese Bopomofo*/
|
||
|
||
/* old names for some of above, for backward compatibility */
|
||
smCharFISKana = 0x0002, /*Katakana*/
|
||
smCharFISGana = 0x0003, /*Hiragana*/
|
||
smCharFISIdeo = 0x0004 /*Hanzi, Kanji, Hanja*/
|
||
};
|
||
enum {
|
||
smCharFISGreek = 0x0005, /*2-byte Greek in Far East systems*/
|
||
smCharFISRussian = 0x0006, /*2-byte Cyrillic in Far East systems*/
|
||
|
||
/* CharType classes for punctuation (smCharPunct) */
|
||
smPunctNormal = 0x0000,
|
||
smPunctNumber = 0x0100,
|
||
smPunctSymbol = 0x0200,
|
||
smPunctBlank = 0x0300,
|
||
|
||
/* Additional CharType classes for punctuation in two-byte systems */
|
||
smPunctRepeat = 0x0400, /* repeat marker */
|
||
smPunctGraphic = 0x0500, /* line graphics */
|
||
|
||
/* CharType Katakana and Hiragana classes for two-byte systems */
|
||
smKanaSmall = 0x0100, /*small kana character*/
|
||
smKanaHardOK = 0x0200, /*can have dakuten*/
|
||
smKanaSoftOK = 0x0300, /*can have dakuten or han-dakuten*/
|
||
|
||
/* CharType Ideographic classes for two-byte systems */
|
||
smIdeographicLevel1 = 0x0000, /*level 1 char*/
|
||
smIdeographicLevel2 = 0x0100, /*level 2 char*/
|
||
smIdeographicUser = 0x0200, /*user char*/
|
||
|
||
/* old names for above, for backward compatibility */
|
||
smFISClassLvl1 = 0x0000, /*level 1 char*/
|
||
smFISClassLvl2 = 0x0100, /*level 2 char*/
|
||
smFISClassUser = 0x0200, /*user char*/
|
||
|
||
/* CharType Jamo classes for Korean systems */
|
||
smJamoJaeum = 0x0000, /*simple consonant char*/
|
||
smJamoBogJaeum = 0x0100, /*complex consonant char*/
|
||
smJamoMoeum = 0x0200 /*simple vowel char*/
|
||
};
|
||
enum {
|
||
smJamoBogMoeum = 0x0300, /*complex vowel char*/
|
||
|
||
/* CharType glyph orientation for two-byte systems */
|
||
smCharHorizontal = 0x0000, /* horizontal character form, or for both */
|
||
smCharVertical = 0x1000, /* vertical character form */
|
||
|
||
/* CharType directions */
|
||
smCharLeft = 0x0000,
|
||
smCharRight = 0x2000,
|
||
|
||
/* CharType case modifers */
|
||
smCharLower = 0x0000,
|
||
smCharUpper = 0x4000,
|
||
|
||
/* CharType character size modifiers (1 or multiple bytes). */
|
||
smChar1byte = 0x0000,
|
||
smChar2byte = 0x8000,
|
||
|
||
/* TransliterateText target types for Roman */
|
||
smTransAscii = 0, /*convert to ASCII*/
|
||
smTransNative = 1, /*convert to font script*/
|
||
smTransCase = 0xFE, /*convert case for all text*/
|
||
smTransSystem = 0xFF, /*convert to system script*/
|
||
|
||
/* TransliterateText target types for two-byte scripts */
|
||
smTransAscii1 = 2, /*1-byte Roman*/
|
||
smTransAscii2 = 3, /*2-byte Roman*/
|
||
smTransKana1 = 4, /*1-byte Japanese Katakana*/
|
||
smTransKana2 = 5 /*2-byte Japanese Katakana*/
|
||
};
|
||
enum {
|
||
smTransGana2 = 7, /*2-byte Japanese Hiragana (no 1-byte Hiragana)*/
|
||
smTransHangul2 = 8, /*2-byte Korean Hangul*/
|
||
smTransJamo2 = 9, /*2-byte Korean Jamo*/
|
||
smTransBopomofo2 = 10, /*2-byte Chinese Bopomofo*/
|
||
|
||
/* TransliterateText target modifiers */
|
||
smTransLower = 0x4000, /*target becomes lowercase*/
|
||
smTransUpper = 0x8000, /*target becomes uppercase*/
|
||
|
||
/* TransliterateText resource format numbers */
|
||
smTransRuleBaseFormat = 1, /*Rule based trsl resource format */
|
||
smTransHangulFormat = 2, /*Table based Hangul trsl resource format*/
|
||
|
||
/* TransliterateText property flags */
|
||
smTransPreDoubleByting = 1, /*Convert all text to double byte before transliteration*/
|
||
smTransPreLowerCasing = 2, /*Convert all text to lower case before transliteration*/
|
||
|
||
/* TransliterateText source mask - general */
|
||
smMaskAll = 0xFFFFFFFF, /*Convert all text*/
|
||
|
||
/* TransliterateText source masks */
|
||
smMaskAscii = 0x00000001, /*2^smTransAscii*/
|
||
smMaskNative = 0x00000002, /*2^smTransNative*/
|
||
|
||
/* TransliterateText source masks for two-byte scripts */
|
||
smMaskAscii1 = 0x00000004, /*2^smTransAscii1*/
|
||
smMaskAscii2 = 0x00000008, /*2^smTransAscii2*/
|
||
smMaskKana1 = 0x00000010, /*2^smTransKana1*/
|
||
smMaskKana2 = 0x00000020, /*2^smTransKana2*/
|
||
smMaskGana2 = 0x00000080, /*2^smTransGana2*/
|
||
smMaskHangul2 = 0x00000100, /*2^smTransHangul2*/
|
||
smMaskJamo2 = 0x00000200, /*2^smTransJamo2*/
|
||
smMaskBopomofo2 = 0x00000400, /*2^smTransBopomofo2*/
|
||
|
||
/* Result values from GetScriptManagerVariable and SetScriptManagerVariable calls. */
|
||
smNotInstalled = 0, /*routine not available in script*/
|
||
smBadVerb = -1, /*Bad verb passed to a routine*/
|
||
smBadScript = -2 /*Bad script code passed to a routine*/
|
||
};
|
||
enum {
|
||
|
||
/* Values for script redraw flag. */
|
||
smRedrawChar = 0, /*Redraw character only*/
|
||
smRedrawWord = 1, /*Redraw entire word (2-byte systems)*/
|
||
smRedrawLine = -1, /*Redraw entire line (bidirectional systems)*/
|
||
|
||
/* GetScriptManagerVariable and SetScriptManagerVariable verbs */
|
||
smVersion = 0, /*Script Manager version number*/
|
||
smMunged = 2, /*Globals change count*/
|
||
smEnabled = 4, /*Count of enabled scripts, incl Roman*/
|
||
smBidirect = 6, /*At least one bidirectional script*/
|
||
smFontForce = 8, /*Force font flag*/
|
||
smIntlForce = 10, /*Force intl flag*/
|
||
smForced = 12, /*Script was forced to system script*/
|
||
smDefault = 14, /*Script was defaulted to Roman script*/
|
||
smPrint = 16, /*Printer action routine*/
|
||
smSysScript = 18, /*System script*/
|
||
smLastScript = 20, /*Last keyboard script*/
|
||
smKeyScript = 22, /*Keyboard script*/
|
||
smSysRef = 24, /*System folder refNum*/
|
||
smKeyCache = 26, /*obsolete*/
|
||
smKeySwap = 28, /*Swapping table handle*/
|
||
smGenFlags = 30, /*General flags long*/
|
||
smOverride = 32 /*Script override flags*/
|
||
};
|
||
enum {
|
||
smCharPortion = 34, /*Ch vs SpExtra proportion*/
|
||
|
||
/* New for System 7.0: */
|
||
smDoubleByte = 36, /*Flag for double-byte script installed*/
|
||
smKCHRCache = 38, /*Returns pointer to KCHR cache*/
|
||
smRegionCode = 40, /*Returns current region code (verXxx)*/
|
||
smKeyDisableState = 42, /*Returns current keyboard disable state*/ /*<47>*/
|
||
|
||
/* GetScriptVariable and SetScriptVariable verbs.
|
||
Note: Verbs private to script systems are negative, while
|
||
those general across script systems are non-negative. */
|
||
smScriptVersion = 0, /*Script software version*/
|
||
smScriptMunged = 2, /*Script entry changed count*/
|
||
smScriptEnabled = 4, /*Script enabled flag*/
|
||
smScriptRight = 6, /*Right to left flag*/
|
||
smScriptJust = 8, /*Justification flag*/
|
||
smScriptRedraw = 10, /*Word redraw flag*/
|
||
smScriptSysFond = 12, /*Preferred system font*/
|
||
smScriptAppFond = 14, /*Preferred Application font*/
|
||
smScriptBundle = 16, /*Beginning of itlb verbs*/
|
||
smScriptNumber = 16, /*Script itl0 id*/
|
||
smScriptDate = 18, /*Script itl1 id*/
|
||
smScriptSort = 20, /*Script itl2 id*/
|
||
smScriptFlags = 22, /*flags word*/
|
||
smScriptToken = 24, /*Script itl4 id*/
|
||
smScriptEncoding = 26, /*id of optional itl5, if present*/
|
||
smScriptLang = 28 /*Current language for script*/
|
||
};
|
||
enum {
|
||
smScriptNumDate = 30, /*Script Number/Date formats.*/
|
||
smScriptKeys = 32, /*Script KCHR id*/
|
||
smScriptIcon = 34, /*ID # of SICN or kcs#/kcs4/kcs8 suite*/
|
||
smScriptPrint = 36, /*Script printer action routine*/
|
||
smScriptTrap = 38, /*Trap entry pointer*/
|
||
smScriptCreator = 40, /*Script file creator*/
|
||
smScriptFile = 42, /*Script file name*/
|
||
smScriptName = 44, /*Script name*/
|
||
|
||
/* There is a hole here for old Kanji private verbs 46-76
|
||
|
||
New for System 7.0: */
|
||
smScriptMonoFondSize = 78, /*default monospace FOND (hi) & size (lo)*/
|
||
smScriptPrefFondSize = 80, /*preferred FOND (hi) & size (lo)*/
|
||
smScriptSmallFondSize = 82, /*default small FOND (hi) & size (lo)*/
|
||
smScriptSysFondSize = 84, /*default system FOND (hi) & size (lo)*/
|
||
smScriptAppFondSize = 86, /*default app FOND (hi) & size (lo)*/
|
||
smScriptHelpFondSize = 88, /*default Help Mgr FOND (hi) & size (lo)*/
|
||
smScriptValidStyles = 90, /*mask of valid styles for script*/
|
||
smScriptAliasStyle = 92, /*style (set) to use for aliases*/
|
||
|
||
/* Special script code values for International Utilities */
|
||
iuSystemScript = -1, /* <obsolete> system script */
|
||
iuCurrentScript = -2, /* <obsolete> current script (for font of grafPort) */
|
||
|
||
/* Negative verbs for KeyScript */
|
||
smKeyNextScript = -1, /* Switch to next available script */
|
||
smKeySysScript = -2, /* Switch to the system script */
|
||
smKeySwapScript = -3, /* Switch to previously-used script */
|
||
|
||
/* New for System 7.0: */
|
||
smKeyNextKybd = -4 /* Switch to next keyboard in current keyscript */
|
||
};
|
||
enum {
|
||
smKeySwapKybd = -5, /* Switch to previously-used keyboard in current keyscript */
|
||
|
||
smKeyDisableKybds = -6, /* Disable keyboards not in system or Roman script */
|
||
smKeyEnableKybds = -7, /* Re-enable keyboards for all enabled scripts */
|
||
smKeyToggleInline = -8, /* Toggle inline input for current keyscript */
|
||
smKeyToggleDirection = -9, /* Toggle default line direction (TESysJust) */
|
||
smKeyNextInputMethod = -10, /* Switch to next input method in current keyscript */
|
||
smKeySwapInputMethod = -11, /* Switch to last-used input method in current keyscript */
|
||
|
||
smKeyDisableKybdSwitch = -12, /* Disable switching from the current keyboard */
|
||
|
||
smKeySetDirLeftRight = -15, /* Set default line dir to left-right, align left */ /*<43>*/
|
||
smKeySetDirRightLeft = -16, /* Set default line dir to right-left, align right */ /*<43>*/
|
||
smKeyRoman = -17, /* Set keyscript to Roman. Does nothing if Roman-only
|
||
system, unlike KeyScript(smRoman) which forces
|
||
an update to current default Roman keyboard */ /*<55>*/
|
||
|
||
|
||
/* Bits in the smScriptFlags word
|
||
(bits above 8 are non-static) */
|
||
smsfIntellCP = 0, /*Script has intelligent cut & paste*/
|
||
smsfSingByte = 1, /*Script has only single bytes*/
|
||
smsfNatCase = 2, /*Native chars have upper & lower case*/
|
||
smsfContext = 3, /*Script is contextual*/
|
||
smsfNoForceFont = 4, /*Script will not force characters*/
|
||
smsfB0Digits = 5, /*Script has alternate digits at B0-B9*/
|
||
smsfAutoInit = 6, /*Auto initialize the script*/
|
||
smsfUnivExt = 7, /*Script is handled by universal extension*/ /*<43>*/
|
||
smsfSynchUnstyledTE = 8, /*Script synchronizes for unstyled TE*/
|
||
smsfForms = 13, /*Uses contextual forms for letters*/
|
||
smsfLigatures = 14, /*Uses contextual ligatures*/
|
||
smsfReverse = 15, /*Reverses native text, right-left*/
|
||
|
||
/* Bits in the smGenFlags long.
|
||
First (high-order) byte is set from itlc flags byte. */
|
||
smfShowIcon = 31, /*Show icon even if only one script*/
|
||
smfDualCaret = 30, /*Use dual caret for mixed direction text*/
|
||
smfNameTagEnab = 29, /*Reserved for internal use*/
|
||
smfUseAssocFontInfo = 28 /*Use the associated font info for FontMetrics calls */ /*<48>*/
|
||
|
||
};
|
||
enum {
|
||
|
||
/* Roman script constants
|
||
|
||
The following are here for backward compatibility, but should not be used.
|
||
This information should be obtained using GetScript. */
|
||
romanSysFond = 0x3FFF, /*system font id number*/
|
||
romanAppFond = 3, /*application font id number*/
|
||
romanFlags = 0x0007, /*roman settings*/
|
||
|
||
/* Script Manager font equates. */
|
||
smFondStart = 0x4000, /*start from 16K*/
|
||
smFondEnd = 0xC000, /*past end of range at 48K*/
|
||
|
||
/* Miscellaneous font equates. */
|
||
smUprHalfCharSet = 0x80, /*first char code in top half of std char set*/
|
||
|
||
/* Character Set Extensions */
|
||
diaeresisUprY = 0xD9,
|
||
fraction = 0xDA,
|
||
intlCurrency = 0xDB,
|
||
leftSingGuillemet = 0xDC,
|
||
rightSingGuillemet = 0xDD,
|
||
fiLigature = 0xDE,
|
||
flLigature = 0xDF,
|
||
dblDagger = 0xE0,
|
||
centeredDot = 0xE1,
|
||
baseSingQuote = 0xE2,
|
||
baseDblQuote = 0xE3,
|
||
perThousand = 0xE4,
|
||
circumflexUprA = 0xE5
|
||
};
|
||
enum {
|
||
circumflexUprE = 0xE6,
|
||
acuteUprA = 0xE7,
|
||
diaeresisUprE = 0xE8,
|
||
graveUprE = 0xE9,
|
||
acuteUprI = 0xEA,
|
||
circumflexUprI = 0xEB,
|
||
diaeresisUprI = 0xEC,
|
||
graveUprI = 0xED,
|
||
acuteUprO = 0xEE,
|
||
circumflexUprO = 0xEF,
|
||
appleLogo = 0xF0,
|
||
graveUprO = 0xF1,
|
||
acuteUprU = 0xF2,
|
||
circumflexUprU = 0xF3,
|
||
graveUprU = 0xF4,
|
||
dotlessLwrI = 0xF5,
|
||
circumflex = 0xF6,
|
||
tilde = 0xF7,
|
||
macron = 0xF8,
|
||
breveMark = 0xF9
|
||
};
|
||
enum {
|
||
overDot = 0xFA,
|
||
ringMark = 0xFB,
|
||
cedilla = 0xFC,
|
||
doubleAcute = 0xFD,
|
||
ogonek = 0xFE,
|
||
hachek = 0xFF,
|
||
|
||
|
||
/* TokenType values */
|
||
tokenIntl = 4, /*the itl resource number of the tokenizer*/
|
||
tokenEmpty = -1 /*used internally as an empty flag*/
|
||
};
|
||
enum {
|
||
tokenUnknown = 0, /*chars that do not match a defined token type*/
|
||
tokenWhite = 1, /*white space*/
|
||
tokenLeftLit = 2, /*literal begin*/
|
||
tokenRightLit = 3, /*literal end*/
|
||
tokenAlpha = 4, /*alphabetic*/
|
||
tokenNumeric = 5, /*numeric*/
|
||
tokenNewLine = 6, /*new line*/
|
||
tokenLeftComment = 7, /*open comment*/
|
||
tokenRightComment = 8, /*close comment*/
|
||
tokenLiteral = 9, /*literal*/
|
||
tokenEscape = 10, /*character escape (e.g. '\' in "\n", "\t")*/
|
||
tokenAltNum = 11, /*alternate number (e.g. $B0-B9 in Arabic,Hebrew)*/
|
||
tokenRealNum = 12, /*real number*/
|
||
tokenAltReal = 13, /*alternate real number*/
|
||
tokenReserve1 = 14, /*reserved*/
|
||
tokenReserve2 = 15, /*reserved*/
|
||
tokenLeftParen = 16, /*open parenthesis*/
|
||
tokenRightParen = 17, /*close parenthesis*/
|
||
tokenLeftBracket = 18, /*open square bracket*/
|
||
tokenRightBracket = 19 /*close square bracket*/
|
||
};
|
||
enum {
|
||
tokenLeftCurly = 20, /*open curly bracket*/
|
||
tokenRightCurly = 21, /*close curly bracket*/
|
||
tokenLeftEnclose = 22, /*open guillemet*/
|
||
tokenRightEnclose = 23, /*close guillemet*/
|
||
tokenPlus = 24,
|
||
tokenMinus = 25,
|
||
tokenAsterisk = 26, /*times/multiply*/
|
||
tokenDivide = 27,
|
||
tokenPlusMinus = 28, /*plus or minus symbol*/
|
||
tokenSlash = 29,
|
||
tokenBackSlash = 30,
|
||
tokenLess = 31, /*less than symbol*/
|
||
tokenGreat = 32, /*greater than symbol*/
|
||
tokenEqual = 33,
|
||
tokenLessEqual2 = 34, /*less than or equal, 2 characters (e.g. <=)*/
|
||
tokenLessEqual1 = 35, /*less than or equal, 1 character*/
|
||
tokenGreatEqual2 = 36, /*greater than or equal, 2 characters (e.g. >=)*/
|
||
tokenGreatEqual1 = 37, /*greater than or equal, 1 character*/
|
||
token2Equal = 38, /*double equal (e.g. ==)*/
|
||
tokenColonEqual = 39 /*colon equal*/
|
||
};
|
||
enum {
|
||
tokenNotEqual = 40, /*not equal, 1 character*/
|
||
tokenLessGreat = 41, /*less/greater, Pascal not equal (e.g. <>)*/
|
||
tokenExclamEqual = 42, /*exclamation equal, C not equal (e.g. !=)*/
|
||
tokenExclam = 43, /*exclamation point*/
|
||
tokenTilde = 44, /*centered tilde*/
|
||
tokenComma = 45,
|
||
tokenPeriod = 46,
|
||
tokenLeft2Quote = 47, /*open double quote*/
|
||
tokenRight2Quote = 48, /*close double quote*/
|
||
tokenLeft1Quote = 49, /*open single quote*/
|
||
tokenRight1Quote = 50, /*close single quote*/
|
||
token2Quote = 51, /*double quote*/
|
||
token1Quote = 52, /*single quote*/
|
||
tokenSemicolon = 53,
|
||
tokenPercent = 54,
|
||
tokenCaret = 55,
|
||
tokenUnderline = 56,
|
||
tokenAmpersand = 57,
|
||
tokenAtSign = 58,
|
||
tokenBar = 59 /*vertical bar*/
|
||
};
|
||
enum {
|
||
tokenQuestion = 60,
|
||
tokenPi = 61, /*lower-case pi*/
|
||
tokenRoot = 62, /*square root symbol*/
|
||
tokenSigma = 63, /*capital sigma*/
|
||
tokenIntegral = 64, /*integral sign*/
|
||
tokenMicro = 65,
|
||
tokenCapPi = 66, /*capital pi*/
|
||
tokenInfinity = 67,
|
||
tokenColon = 68,
|
||
tokenHash = 69, /*e.g. #*/
|
||
tokenDollar = 70,
|
||
tokenNoBreakSpace = 71, /*non-breaking space*/
|
||
tokenFraction = 72,
|
||
tokenIntlCurrency = 73,
|
||
tokenLeftSingGuillemet = 74,
|
||
tokenRightSingGuillemet = 75,
|
||
tokenPerThousand = 76,
|
||
tokenEllipsis = 77,
|
||
tokenCenterDot = 78,
|
||
tokenNil = 127
|
||
};
|
||
enum {
|
||
delimPad = -2,
|
||
|
||
/* obsolete, misspelled token names kept for backward compatibility */
|
||
tokenTilda = 44,
|
||
tokenCarat = 55
|
||
|
||
};
|
||
|
||
enum {
|
||
/* Table selectors for GetItlTable */
|
||
smWordSelectTable = 0, /* get word select break table from 'itl2' */
|
||
smWordWrapTable = 1, /* get word wrap break table from 'itl2' */
|
||
smNumberPartsTable = 2, /* get default number parts table from 'itl4' */
|
||
smUnTokenTable = 3, /* get unToken table from 'itl4' */
|
||
smWhiteSpaceList = 4, /* get white space list from 'itl4' */
|
||
|
||
iuWordSelectTable = 0, /* <obsolete> get word select break table from 'itl2' */
|
||
iuWordWrapTable = 1, /* <obsolete> get word wrap break table from 'itl2' */
|
||
iuNumberPartsTable = 2, /* <obsolete> get default number parts table from 'itl4' */
|
||
iuUnTokenTable = 3, /* <obsolete> get unToken table from 'itl4' */
|
||
iuWhiteSpaceList = 4 /* <obsolete> get white space list from 'itl4' */
|
||
};
|
||
|
||
/* end of stuff moved from Packages.h */
|
||
|
||
enum {tokenOK,tokenOverflow,stringOverflow,badDelim,badEnding,crash};
|
||
typedef unsigned char TokenResults;
|
||
|
||
|
||
typedef char CharByteTable[256];
|
||
|
||
|
||
typedef short TokenType;
|
||
typedef TokenType DelimType[2];
|
||
typedef TokenType CommentType[4];
|
||
|
||
struct TokenRec {
|
||
TokenType theToken;
|
||
Ptr position; /*pointer into original source*/
|
||
long length; /*length of text in original source*/
|
||
StringPtr stringPosition; /*Pascal/C string copy of identifier*/
|
||
};
|
||
|
||
typedef struct TokenRec TokenRec;
|
||
typedef TokenRec *TokenRecPtr;
|
||
|
||
struct TokenBlock {
|
||
Ptr source; /*pointer to stream of characters*/
|
||
long sourceLength; /*length of source stream*/
|
||
Ptr tokenList; /*pointer to array of tokens*/
|
||
long tokenLength; /*maximum length of TokenList*/
|
||
long tokenCount; /*number tokens generated by tokenizer*/
|
||
Ptr stringList; /*pointer to stream of identifiers*/
|
||
long stringLength; /*length of string list*/
|
||
long stringCount; /*number of bytes currently used*/
|
||
Boolean doString; /*make strings & put into StringList*/
|
||
Boolean doAppend; /*append to TokenList rather than replace*/
|
||
Boolean doAlphanumeric; /*identifiers may include numeric*/
|
||
Boolean doNest; /*do comments nest?*/
|
||
TokenType leftDelims[2];
|
||
TokenType rightDelims[2];
|
||
TokenType leftComment[4];
|
||
TokenType rightComment[4];
|
||
TokenType escapeCode; /*escape symbol code*/
|
||
TokenType decimalCode;
|
||
Handle itlResource; /*handle to itl4 resource of current script*/
|
||
long reserved[8]; /*must be zero!*/
|
||
};
|
||
|
||
typedef struct TokenBlock TokenBlock;
|
||
typedef TokenBlock *TokenBlockPtr;
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
pascal short FontScript(void)
|
||
= {0x2F3C,0x8200,0x0000,0xA8B5};
|
||
pascal short IntlScript(void)
|
||
= {0x2F3C,0x8200,0x0002,0xA8B5};
|
||
pascal void KeyScript(short code)
|
||
= {0x2F3C,0x8002,0x0004,0xA8B5};
|
||
pascal short CharByte(Ptr textBuf,short textOffset)
|
||
= {0x2F3C,0x8206,0x0010,0xA8B5};
|
||
pascal short CharType(Ptr textBuf,short textOffset)
|
||
= {0x2F3C,0x8206,0x0012,0xA8B5};
|
||
pascal OSErr Transliterate(Handle srcHandle,Handle dstHandle,short target,
|
||
long srcMask)
|
||
= {0x2F3C,0x820E,0x0018,0xA8B5};
|
||
pascal Boolean ParseTable(CharByteTable table)
|
||
= {0x2F3C,0x8204,0x0022,0xA8B5};
|
||
#define GetSysDirection() (* (short*) 0x0BAC)
|
||
#define GetSysJust() (* (short*) 0x0BAC)
|
||
pascal void SetSysDirection(short newDirection)
|
||
= {0x31DF,0x0BAC};
|
||
pascal void SetSysJust(short newJust)
|
||
= {0x31DF,0x0BAC};
|
||
|
||
pascal TokenResults IntlTokenize(TokenBlockPtr tokenParam)
|
||
= {0x2F3C,0x8204,0xFFFA,0xA8B5};
|
||
|
||
|
||
pascal short FontToScript(short fontNumber)
|
||
= {0x2F3C,0x8202,0x0006,0xA8B5};
|
||
pascal short Font2Script(short fontNumber)
|
||
= {0x2F3C,0x8202,0x0006,0xA8B5};
|
||
pascal long GetScriptManagerVariable(short selector)
|
||
= {0x2F3C,0x8402,0x0008,0xA8B5};
|
||
pascal long GetEnvirons(short verb)
|
||
= {0x2F3C,0x8402,0x0008,0xA8B5};
|
||
pascal OSErr SetScriptManagerVariable(short selector,long param)
|
||
= {0x2F3C,0x8206,0x000A,0xA8B5};
|
||
pascal OSErr SetEnvirons(short verb,long param)
|
||
= {0x2F3C,0x8206,0x000A,0xA8B5};
|
||
pascal long GetScriptVariable(short script,short selector)
|
||
= {0x2F3C,0x8404,0x000C,0xA8B5};
|
||
pascal long GetScript(short script,short verb)
|
||
= {0x2F3C,0x8404,0x000C,0xA8B5};
|
||
pascal OSErr SetScriptVariable(short script,short selector,long param)
|
||
= {0x2F3C,0x8208,0x000E,0xA8B5};
|
||
pascal OSErr SetScript(short script,short verb,long param)
|
||
= {0x2F3C,0x8208,0x000E,0xA8B5};
|
||
|
||
|
||
|
||
/* New for 7.1 */ /*<46>*/
|
||
|
||
pascal Ptr GetScriptUtilityAddress(short selector,Boolean Before,ScriptCode script)
|
||
= {0x2F3C,0xC404,0x0038,0xA8B5};
|
||
|
||
pascal void SetScriptUtilityAddress(short selector,Boolean Before,Ptr routineAddr,ScriptCode script)
|
||
= {0x2F3C,0xC008,0x003A,0xA8B5};
|
||
|
||
pascal Ptr GetScriptQDPatchAddress(short trapNum,Boolean Before,Boolean forPrinting,ScriptCode script)
|
||
= {0x2F3C,0xC406,0x003C,0xA8B5};
|
||
|
||
pascal void SetScriptQDPatchAddress(short trapNum,Boolean Before,Boolean forPrinting,Ptr routineAddr,ScriptCode script)
|
||
= {0x2F3C,0xC00A,0x003E,0xA8B5};
|
||
|
||
|
||
|
||
pascal short CharacterByteType(Ptr textBuf,short textOffset,ScriptCode script) /*<60>*/
|
||
= {0x2F3C,0xC206,0x0010,0xA8B5};
|
||
|
||
pascal short CharacterType(Ptr textBuf,short textOffset,ScriptCode script) /*<60>*/
|
||
= {0x2F3C,0xC206,0x0012,0xA8B5};
|
||
|
||
pascal OSErr TransliterateText(Handle srcHandle,Handle dstHandle,short target,
|
||
long srcMask,ScriptCode script) /*<60>*/
|
||
= {0x2F3C,0xC20E,0x0018,0xA8B5};
|
||
|
||
pascal Boolean FillParseTable(CharByteTable table,ScriptCode script) /*<60>*/
|
||
= {0x2F3C,0xC204,0x0022,0xA8B5};
|
||
|
||
/* moved from Packages.h */
|
||
|
||
pascal Handle GetIntlResource(short theID)
|
||
= {0x3F3C,0x0006,0xA9ED};
|
||
pascal Handle IUGetIntl(short theID) /* obsolete name */
|
||
= {0x3F3C,0x0006,0xA9ED};
|
||
pascal void IUSetIntl(short refNum,short theID,Handle intlHandle) /* obsolete name */
|
||
= {0x3F3C,0x0008,0xA9ED};
|
||
pascal void ClearIntlResourceCache(void)
|
||
= {0x3F3C,0x0018,0xA9ED};
|
||
pascal void IUClearCache(void) /* obsolete name */
|
||
= {0x3F3C,0x0018,0xA9ED};
|
||
|
||
pascal void GetIntlResourceTable(ScriptCode script,short tableCode,Handle *itlHandle,
|
||
long *offset,long *length)
|
||
= {0x3F3C,0x0024,0xA9ED};
|
||
pascal void IUGetItlTable(ScriptCode script,short tableCode,Handle *itlHandle, /* obsolete name */
|
||
long *offset,long *length)
|
||
= {0x3F3C,0x0024,0xA9ED};
|
||
|
||
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif
|