mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-22 14:16:50 +00:00
1423 lines
65 KiB
C
1423 lines
65 KiB
C
/*
|
|
File: Script.h
|
|
|
|
Contains: Script Manager interfaces
|
|
|
|
Version: QuickTime 7.3
|
|
|
|
Copyright: (c) 2007 (c) 1986-2001 by Apple Computer, Inc., all rights reserved
|
|
|
|
Bugs?: For bug reports, consult the following page on
|
|
the World Wide Web:
|
|
|
|
http://developer.apple.com/bugreporter/
|
|
|
|
*/
|
|
#ifndef __SCRIPT__
|
|
#define __SCRIPT__
|
|
|
|
#ifndef __MACTYPES__
|
|
#include <MacTypes.h>
|
|
#endif
|
|
|
|
#ifndef __INTLRESOURCES__
|
|
#include <IntlResources.h>
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if PRAGMA_ONCE
|
|
#pragma once
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if PRAGMA_IMPORT
|
|
#pragma import on
|
|
#endif
|
|
|
|
#if PRAGMA_STRUCT_ALIGN
|
|
#pragma options align=mac68k
|
|
#elif PRAGMA_STRUCT_PACKPUSH
|
|
#pragma pack(push, 2)
|
|
#elif PRAGMA_STRUCT_PACK
|
|
#pragma pack(2)
|
|
#endif
|
|
|
|
/* Meta script codes:*/
|
|
enum {
|
|
smSystemScript = -1, /* designates system script.*/
|
|
smCurrentScript = -2, /* designates current font script.*/
|
|
smAllScripts = -3 /* designates any script*/
|
|
};
|
|
|
|
/*
|
|
Script codes:
|
|
These specify a Mac OS encoding that is related to a FOND ID range.
|
|
Some of the encodings have several variants (e.g. for different localized systems)
|
|
which all share the same script code.
|
|
Not all of these script codes are currently supported by Apple software.
|
|
Notes:
|
|
- Script code 0 (smRoman) is also used (instead of smGreek) for the Greek encoding
|
|
in the Greek localized system.
|
|
- Script code 28 (smEthiopic) is also used for the Inuit encoding in the Inuktitut
|
|
system.
|
|
*/
|
|
enum {
|
|
smRoman = 0,
|
|
smJapanese = 1,
|
|
smTradChinese = 2, /* Traditional Chinese*/
|
|
smKorean = 3,
|
|
smArabic = 4,
|
|
smHebrew = 5,
|
|
smGreek = 6,
|
|
smCyrillic = 7,
|
|
smRSymbol = 8, /* Right-left symbol*/
|
|
smDevanagari = 9,
|
|
smGurmukhi = 10,
|
|
smGujarati = 11,
|
|
smOriya = 12,
|
|
smBengali = 13,
|
|
smTamil = 14,
|
|
smTelugu = 15,
|
|
smKannada = 16, /* Kannada/Kanarese*/
|
|
smMalayalam = 17,
|
|
smSinhalese = 18,
|
|
smBurmese = 19,
|
|
smKhmer = 20, /* Khmer/Cambodian*/
|
|
smThai = 21,
|
|
smLao = 22,
|
|
smGeorgian = 23,
|
|
smArmenian = 24,
|
|
smSimpChinese = 25, /* Simplified Chinese*/
|
|
smTibetan = 26,
|
|
smMongolian = 27,
|
|
smEthiopic = 28,
|
|
smGeez = 28, /* Synonym for smEthiopic*/
|
|
smCentralEuroRoman = 29, /* For Czech, Slovak, Polish, Hungarian, Baltic langs*/
|
|
smVietnamese = 30,
|
|
smExtArabic = 31, /* extended Arabic*/
|
|
smUninterp = 32 /* uninterpreted symbols, e.g. palette symbols*/
|
|
};
|
|
|
|
/* Extended script code for full Unicode input*/
|
|
enum {
|
|
smUnicodeScript = 0x7E
|
|
};
|
|
|
|
/* Obsolete script code names (kept for backward compatibility):*/
|
|
enum {
|
|
smChinese = 2, /* (Use smTradChinese or smSimpChinese)*/
|
|
smRussian = 7, /* Use smCyrillic*/
|
|
/* smMaldivian = 25: deleted, no code for Maldivian*/
|
|
smLaotian = 22, /* Use smLao */
|
|
smAmharic = 28, /* Use smEthiopic or smGeez*/
|
|
smSlavic = 29, /* Use smCentralEuroRoman*/
|
|
smEastEurRoman = 29, /* Use smCentralEuroRoman*/
|
|
smSindhi = 31, /* Use smExtArabic*/
|
|
smKlingon = 32
|
|
};
|
|
|
|
/*
|
|
Language codes:
|
|
These specify a language implemented using a particular Mac OS encoding.
|
|
Not all of these language codes are currently supported by Apple software.
|
|
*/
|
|
enum {
|
|
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, /* Greek script using smRoman script code*/
|
|
langIcelandic = 15, /* modified smRoman/Icelandic script*/
|
|
langMaltese = 16, /* Roman script*/
|
|
langTurkish = 17, /* modified smRoman/Turkish script*/
|
|
langCroatian = 18, /* modified smRoman/Croatian script*/
|
|
langTradChinese = 19, /* Chinese (Mandarin) in traditional characters*/
|
|
langUrdu = 20, /* smArabic script*/
|
|
langHindi = 21, /* smDevanagari script*/
|
|
langThai = 22, /* smThai script*/
|
|
langKorean = 23 /* smKorean script*/
|
|
};
|
|
|
|
enum {
|
|
langLithuanian = 24, /* smCentralEuroRoman script*/
|
|
langPolish = 25, /* smCentralEuroRoman script*/
|
|
langHungarian = 26, /* smCentralEuroRoman script*/
|
|
langEstonian = 27, /* smCentralEuroRoman script*/
|
|
langLatvian = 28, /* smCentralEuroRoman script*/
|
|
langSami = 29, /* language of the Sami people of N. Scandinavia */
|
|
langFaroese = 30, /* modified smRoman/Icelandic script */
|
|
langFarsi = 31, /* modified smArabic/Farsi script*/
|
|
langPersian = 31, /* Synonym for langFarsi*/
|
|
langRussian = 32, /* smCyrillic script*/
|
|
langSimpChinese = 33, /* Chinese (Mandarin) in simplified characters*/
|
|
langFlemish = 34, /* smRoman script*/
|
|
langIrishGaelic = 35, /* smRoman or modified smRoman/Celtic script (without dot above) */
|
|
langAlbanian = 36, /* smRoman script*/
|
|
langRomanian = 37, /* modified smRoman/Romanian script*/
|
|
langCzech = 38, /* smCentralEuroRoman script*/
|
|
langSlovak = 39, /* smCentralEuroRoman script*/
|
|
langSlovenian = 40, /* modified smRoman/Croatian script*/
|
|
langYiddish = 41, /* smHebrew script*/
|
|
langSerbian = 42, /* smCyrillic script*/
|
|
langMacedonian = 43, /* smCyrillic script*/
|
|
langBulgarian = 44, /* smCyrillic script*/
|
|
langUkrainian = 45, /* modified smCyrillic/Ukrainian script*/
|
|
langByelorussian = 46, /* smCyrillic script*/
|
|
langBelorussian = 46 /* Synonym for langByelorussian */
|
|
};
|
|
|
|
enum {
|
|
langUzbek = 47, /* Cyrillic script*/
|
|
langKazakh = 48, /* Cyrillic script*/
|
|
langAzerbaijani = 49, /* Azerbaijani in Cyrillic script*/
|
|
langAzerbaijanAr = 50, /* Azerbaijani in Arabic script*/
|
|
langArmenian = 51, /* smArmenian script*/
|
|
langGeorgian = 52, /* smGeorgian script*/
|
|
langMoldavian = 53, /* smCyrillic script*/
|
|
langKirghiz = 54, /* Cyrillic script*/
|
|
langTajiki = 55, /* Cyrillic script*/
|
|
langTurkmen = 56, /* Cyrillic script*/
|
|
langMongolian = 57, /* Mongolian in smMongolian script*/
|
|
langMongolianCyr = 58, /* Mongolian in Cyrillic script*/
|
|
langPashto = 59, /* Arabic script*/
|
|
langKurdish = 60, /* smArabic script*/
|
|
langKashmiri = 61, /* Arabic script*/
|
|
langSindhi = 62, /* Arabic 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*/
|
|
};
|
|
|
|
enum {
|
|
langOriya = 71, /* smOriya script*/
|
|
langMalayalam = 72, /* smMalayalam script*/
|
|
langKannada = 73, /* smKannada script*/
|
|
langTamil = 74, /* smTamil script*/
|
|
langTelugu = 75, /* smTelugu script*/
|
|
langSinhalese = 76, /* smSinhalese script*/
|
|
langBurmese = 77, /* smBurmese script*/
|
|
langKhmer = 78, /* smKhmer script*/
|
|
langLao = 79, /* smLao script*/
|
|
langVietnamese = 80, /* smVietnamese script*/
|
|
langIndonesian = 81, /* smRoman script*/
|
|
langTagalog = 82, /* Roman script*/
|
|
langMalayRoman = 83, /* Malay in smRoman script*/
|
|
langMalayArabic = 84, /* Malay in Arabic script*/
|
|
langAmharic = 85, /* smEthiopic script*/
|
|
langTigrinya = 86, /* smEthiopic script*/
|
|
langOromo = 87, /* smEthiopic script*/
|
|
langSomali = 88, /* smRoman script*/
|
|
langSwahili = 89, /* smRoman script*/
|
|
langKinyarwanda = 90, /* smRoman script*/
|
|
langRuanda = 90, /* synonym for langKinyarwanda*/
|
|
langRundi = 91, /* smRoman script*/
|
|
langNyanja = 92, /* smRoman script*/
|
|
langChewa = 92, /* synonym for langNyanja*/
|
|
langMalagasy = 93, /* smRoman script*/
|
|
langEsperanto = 94 /* Roman script*/
|
|
};
|
|
|
|
enum {
|
|
langWelsh = 128, /* modified smRoman/Celtic script*/
|
|
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, /* Cyrillic script*/
|
|
langUighur = 136, /* Arabic script*/
|
|
langDzongkha = 137, /* (lang of Bhutan) smTibetan script*/
|
|
langJavaneseRom = 138, /* Javanese in smRoman script*/
|
|
langSundaneseRom = 139, /* Sundanese in smRoman script*/
|
|
langGalician = 140, /* smRoman script*/
|
|
langAfrikaans = 141 /* smRoman script */
|
|
};
|
|
|
|
enum {
|
|
langBreton = 142, /* smRoman or modified smRoman/Celtic script */
|
|
langInuktitut = 143, /* Inuit script using smEthiopic script code */
|
|
langScottishGaelic = 144, /* smRoman or modified smRoman/Celtic script */
|
|
langManxGaelic = 145, /* smRoman or modified smRoman/Celtic script */
|
|
langIrishGaelicScript = 146, /* modified smRoman/Gaelic script (using dot above) */
|
|
langTongan = 147, /* smRoman script */
|
|
langGreekPoly = 148, /* smGreek script */
|
|
langGreenlandic = 149, /* smRoman script */
|
|
langAzerbaijanRoman = 150 /* Azerbaijani in Roman script */
|
|
};
|
|
|
|
enum {
|
|
langUnspecified = 32767 /* Special code for use in resources (such as 'itlm') */
|
|
};
|
|
|
|
/*
|
|
Obsolete language code names (kept for backward compatibility):
|
|
Misspelled, ambiguous, misleading, considered pejorative, archaic, etc.
|
|
*/
|
|
enum {
|
|
langPortugese = 8, /* Use langPortuguese*/
|
|
langMalta = 16, /* Use langMaltese*/
|
|
langYugoslavian = 18, /* (use langCroatian, langSerbian, etc.)*/
|
|
langChinese = 19, /* (use langTradChinese or langSimpChinese)*/
|
|
langLettish = 28, /* Use langLatvian */
|
|
langLapponian = 29, /* Use langSami*/
|
|
langLappish = 29, /* Use langSami*/
|
|
langSaamisk = 29, /* Use langSami */
|
|
langFaeroese = 30, /* Use langFaroese */
|
|
langIrish = 35, /* Use langIrishGaelic */
|
|
langGalla = 87, /* Use langOromo */
|
|
langAfricaans = 141 /* Use langAfrikaans */
|
|
};
|
|
|
|
/*
|
|
Region codes:
|
|
These typically specify a combination of a language code and a particular region.
|
|
Some of these numeric values are reserved just for extra resource IDs associated
|
|
with certain regions; these are not actual region codes, and are noted in the comments.
|
|
Not all of the region codes are currently supported by Apple software.
|
|
When relevant, the following list also provides:
|
|
- The Apple part number (P/N) code for software localized for the specified region.
|
|
- The two-letter ISO language and country codes (from ISO 639 and ISO 3166). The
|
|
language code (lowercase) is first, then '_', then the country code (uppercase).
|
|
*/
|
|
|
|
enum {
|
|
/* P/N ISO codes comments*/
|
|
verUS = 0, /* en_US*/
|
|
verFrance = 1, /* F fr_FR*/
|
|
verBritain = 2, /* B en_GB*/
|
|
verGermany = 3, /* D de_DE*/
|
|
verItaly = 4, /* T it_IT*/
|
|
verNetherlands = 5, /* N nl_NL*/
|
|
verFlemish = 6, /* FN nl_BE Flemish (Dutch) for Belgium */
|
|
verSweden = 7, /* S sv_SE*/
|
|
verSpain = 8, /* E es_ES Spanish for Spain*/
|
|
verDenmark = 9, /* DK da_DK*/
|
|
verPortugal = 10, /* PO pt_PT Portuguese for Portugal*/
|
|
verFrCanada = 11, /* C fr_CA French for Canada*/
|
|
verNorway = 12, /* H no_NO,nb_NO Bokm.l*/
|
|
verIsrael = 13, /* HB he_IL,iw_IL Hebrew*/
|
|
verJapan = 14, /* J ja_JP*/
|
|
verAustralia = 15, /* X en_AU English for Australia*/
|
|
verArabic = 16, /* AB ar Arabic for N Africa, Arabian peninsula, Levant*/
|
|
verFinland = 17, /* K fi_FI*/
|
|
verFrSwiss = 18, /* SF fr_CH French Swiss*/
|
|
verGrSwiss = 19, /* SD de_CH German Swiss*/
|
|
verGreece = 20, /* GR el_GR Monotonic Greek (modern)*/
|
|
verIceland = 21, /* IS is_IS*/
|
|
verMalta = 22, /* MA mt_MT*/
|
|
verCyprus = 23, /* CY _CY Greek or Turkish language? Checking...*/
|
|
verTurkey = 24, /* TU tr_TR*/
|
|
verYugoCroatian = 25 /* YU Croatian for Yugoslavia; now use verCroatia (68)*/
|
|
};
|
|
|
|
enum {
|
|
verNetherlandsComma = 26, /* ID for KCHR resource - Dutch*/
|
|
verBelgiumLuxPoint = 27, /* ID for KCHR resource - Belgium*/
|
|
verCanadaComma = 28, /* ID for KCHR resource - Canadian ISO*/
|
|
verCanadaPoint = 29, /* ID for KCHR resource - Canadian; now unused*/
|
|
vervariantPortugal = 30, /* ID for resource; now unused*/
|
|
vervariantNorway = 31, /* ID for resource; now unused*/
|
|
vervariantDenmark = 32 /* ID for KCHR resource - Danish Mac Plus*/
|
|
};
|
|
|
|
enum {
|
|
verIndiaHindi = 33, /* hi_IN Hindi for India*/
|
|
verPakistanUrdu = 34, /* UR ur_PK Urdu for Pakistan */
|
|
verTurkishModified = 35,
|
|
verItalianSwiss = 36, /* ST it_CH Italian Swiss*/
|
|
verInternational = 37, /* Z en English for international use */
|
|
/* 38 is unassigned*/
|
|
verRomania = 39, /* RO ro_RO*/
|
|
verGreecePoly = 40, /* grc Polytonic Greek (classical) */
|
|
verLithuania = 41, /* LT lt_LT*/
|
|
verPoland = 42, /* PL pl_PL*/
|
|
verHungary = 43, /* MG hu_HU*/
|
|
verEstonia = 44, /* EE et_EE*/
|
|
verLatvia = 45, /* LV lv_LV*/
|
|
verSami = 46, /* se */
|
|
verFaroeIsl = 47, /* FA fo_FO */
|
|
verIran = 48, /* PS fa_IR Persian/Farsi*/
|
|
verRussia = 49, /* RS ru_RU Russian*/
|
|
verIreland = 50, /* GA ga_IE Irish Gaelic for Ireland (without dot above) */
|
|
verKorea = 51, /* KH ko_KR*/
|
|
verChina = 52, /* CH zh_CN Simplified Chinese*/
|
|
verTaiwan = 53, /* TA zh_TW Traditional Chinese*/
|
|
verThailand = 54, /* TH th_TH*/
|
|
verScriptGeneric = 55, /* SS Generic script system (no language or script) */
|
|
verCzech = 56, /* CZ cs_CZ*/
|
|
verSlovak = 57, /* SL sk_SK*/
|
|
verFarEastGeneric = 58, /* FE Generic Far East system (no language or script) */
|
|
verMagyar = 59, /* Unused; see verHungary*/
|
|
verBengali = 60, /* bn Bangladesh or India*/
|
|
verByeloRussian = 61 /* BY be_BY*/
|
|
};
|
|
|
|
enum {
|
|
verUkraine = 62, /* UA uk_UA*/
|
|
/* 63 is unassigned*/
|
|
verGreeceAlt = 64, /* unused */
|
|
verSerbian = 65, /* SR sr_YU,sh_YU */
|
|
verSlovenian = 66, /* SV sl_SI */
|
|
verMacedonian = 67, /* MD mk_MK */
|
|
verCroatia = 68, /* CR hr_HR,sh_HR*/
|
|
/* 69 is unassigned*/
|
|
verGermanReformed = 70, /* de_DE Reformed orthography (used formerly unassigned 70) */
|
|
verBrazil = 71, /* BR pt_BR Portuguese for Brazil*/
|
|
verBulgaria = 72, /* BG bg_BG*/
|
|
verCatalonia = 73, /* CA ca_ES Catalan for Spain*/
|
|
verMultilingual = 74, /* ZM mul (no language or script)*/
|
|
verScottishGaelic = 75, /* GD gd*/
|
|
verManxGaelic = 76, /* GV gv Isle of Man*/
|
|
verBreton = 77, /* BZ br*/
|
|
verNunavut = 78, /* IU iu_CA Inuktitut for Canada*/
|
|
verWelsh = 79, /* CU cy*/
|
|
/* 80 is ID for KCHR resource - Canadian CSA*/
|
|
verIrishGaelicScript = 81, /* GS ga_IE Irish Gaelic for Ireland (using dot above)*/
|
|
verEngCanada = 82, /* V en_CA English for Canada*/
|
|
verBhutan = 83, /* BH dz_BT Dzongkha for Bhutan*/
|
|
verArmenian = 84, /* HY hy_AM*/
|
|
verGeorgian = 85, /* KR ka_GE*/
|
|
verSpLatinAmerica = 86, /* LA es Spanish for Latin America*/
|
|
/* 87 is ID for KCHR resource - Spanish ISO*/
|
|
verTonga = 88, /* TS to_TO*/
|
|
/* 89 is ID for KCHR resource - Polish Modified*/
|
|
/* 90 is ID for KCHR resource - Catalan ISO*/
|
|
verFrenchUniversal = 91, /* fr French generic*/
|
|
verAustria = 92, /* AU de_AT German for Austria*/
|
|
/* Y 93 is unused alternate for verSpLatinAmerica*/
|
|
verGujarati = 94, /* gu_IN*/
|
|
verPunjabi = 95, /* pa Pakistan or India*/
|
|
verIndiaUrdu = 96, /* ur_IN Urdu for India*/
|
|
verVietnam = 97 /* vi_VN*/
|
|
};
|
|
|
|
enum {
|
|
verFrBelgium = 98, /* BF fr_BE French for Belgium */
|
|
verUzbek = 99, /* BD uz_UZ */
|
|
verSingapore = 100, /* SG */
|
|
verNynorsk = 101, /* NY nn_NO Norwegian Nynorsk */
|
|
verAfrikaans = 102, /* AK af_ZA */
|
|
verEsperanto = 103, /* eo */
|
|
verMarathi = 104, /* mr_IN */
|
|
verTibetan = 105, /* bo */
|
|
verNepal = 106, /* ne_NP */
|
|
verGreenland = 107, /* kl */
|
|
verIrelandEnglish = 108 /* en_IE English for Ireland, with Euro for currency*/
|
|
};
|
|
|
|
/*
|
|
Other extra resource IDs assigned in the same number space:
|
|
179 is ID for KCHR & itl_ resources - Cornish
|
|
581 is ID for KCHR resource - Irish Gaelic script alternate
|
|
582 is ID for KCHR resource - Ogham
|
|
779 is ID for KCHR resource - Welsh alternate
|
|
1111 is ID for KCHR resource - French numeric
|
|
*/
|
|
|
|
/*
|
|
Obsolete region code names (kept for backward compatibility):
|
|
Misspelled or alternate form, ambiguous, misleading, considered pejorative, archaic, etc.
|
|
*/
|
|
enum {
|
|
verFrBelgiumLux = 6, /* Incorrect; 6 is Flemish, not French, for Belgium; use verFlemish */
|
|
verBelgiumLux = 6, /* Use verFlemish*/
|
|
verArabia = 16, /* Use verArabic*/
|
|
verYugoslavia = 25, /* Use verYugoCroatian (same number, now unused), or newer verCroatia*/
|
|
verIndia = 33, /* Use verIndiaHindi*/
|
|
verPakistan = 34, /* Use verPakistanUrdu */
|
|
verRumania = 39, /* Alternate for verRomania */
|
|
verGreekAncient = 40, /* Use verGreecePoly */
|
|
verLapland = 46, /* Use verSami */
|
|
verFaeroeIsl = 47, /* Use verFaroeIsl */
|
|
verGenericFE = 58, /* Use verFarEastGeneric */
|
|
verBelarus = 61, /* Alternate for verByelorussian */
|
|
verUkrania = 62, /* Use verUkraine*/
|
|
verAlternateGr = 64, /* Use verGreeceAlt */
|
|
verSerbia = 65, /* Alternate for verSerbian */
|
|
verSlovenia = 66, /* Alternate for verSlovenian */
|
|
verMacedonia = 67, /* Alternate for verMacedonian */
|
|
verBrittany = 77, /* Alternate for verBreton */
|
|
verWales = 79, /* Alternate for verWelsh */
|
|
verArmenia = 84, /* Alternate for verArmenian */
|
|
verGeorgia = 85, /* Alternate for verGeorgian */
|
|
verAustriaGerman = 92, /* Use verAustria */
|
|
verTibet = 105 /* Use verTibetan */
|
|
};
|
|
|
|
enum {
|
|
minCountry = verUS,
|
|
maxCountry = verGreenland
|
|
};
|
|
|
|
enum {
|
|
/* Calendar Codes */
|
|
calGregorian = 0,
|
|
calArabicCivil = 1,
|
|
calArabicLunar = 2,
|
|
calJapanese = 3,
|
|
calJewish = 4,
|
|
calCoptic = 5,
|
|
calPersian = 6
|
|
};
|
|
|
|
enum {
|
|
/* Integer Format Codes */
|
|
intWestern = 0,
|
|
intArabic = 1,
|
|
intRoman = 2,
|
|
intJapanese = 3,
|
|
intEuropean = 4,
|
|
intOutputMask = 0x8000
|
|
};
|
|
|
|
enum {
|
|
/* CharByte byte types */
|
|
smSingleByte = 0,
|
|
smFirstByte = -1,
|
|
smLastByte = 1,
|
|
smMiddleByte = 2
|
|
};
|
|
|
|
enum {
|
|
/* CharType field masks */
|
|
smcTypeMask = 0x000F,
|
|
smcReserved = 0x00F0,
|
|
smcClassMask = 0x0F00,
|
|
smcOrientationMask = 0x1000, /*two-byte script glyph orientation*/
|
|
smcRightMask = 0x2000,
|
|
smcUpperMask = 0x4000,
|
|
smcDoubleMask = 0x8000
|
|
};
|
|
|
|
enum {
|
|
/* 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*/
|
|
smCharNonContextualLR = 0x000A, /*Non-contextual left-right: Cyrillic, Greek*/
|
|
smCharHangul = 0x000C, /*Korean Hangul*/
|
|
smCharJamo = 0x000D, /*Korean Jamo*/
|
|
smCharBopomofo = 0x000E, /*Chinese Bopomofo*/
|
|
smCharGanaKana = 0x000F, /*Shared for Japanese Hiragana & Katakana*/
|
|
/* 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*/
|
|
smJamoBogMoeum = 0x0300 /*complex vowel char*/
|
|
};
|
|
|
|
enum {
|
|
/* 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
|
|
};
|
|
|
|
enum {
|
|
/* 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*/
|
|
};
|
|
|
|
enum {
|
|
/* TransliterateText source mask - general */
|
|
smMaskAll = (long)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*/
|
|
};
|
|
|
|
enum {
|
|
/* 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)*/
|
|
};
|
|
|
|
enum {
|
|
/* 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*/
|
|
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*/
|
|
};
|
|
|
|
enum {
|
|
/* 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 negative verbs for Get/SetScriptVariable that were associated with WorldScriptI */
|
|
/* move them here to be public */
|
|
enum {
|
|
/* WorldScript private verbs */
|
|
smLayoutCache = -309, /* HiWrd(param) is # entries, LoWrd is max input length*/
|
|
smOldVerbSupport = -311, /* param is added to old verbs to map to WSI verb*/
|
|
smSetKashidas = -291, /* param is ON or OFF, old verb = -36*/
|
|
smSetKashProp = -287, /* param is kashida proportion, old verb = -32*/
|
|
smScriptSysBase = -281, /* param is associated font to use w/ system font (old verb = -26)*/
|
|
smScriptAppBase = -283, /* param is associated font to use w/ app font (old verb = -28)*/
|
|
smScriptFntBase = -285, /* param is associated font to use w/ all other fonts (old verb = -30)*/
|
|
smScriptLigatures = -263, /* old verb = -8*/
|
|
smScriptNumbers = -267 /* old verb = -12*/
|
|
};
|
|
|
|
enum {
|
|
/* Special script code values for International Utilities */
|
|
iuSystemScript = -1, /* <obsolete> system script */
|
|
iuCurrentScript = -2 /* <obsolete> current script (for font of grafPort) */
|
|
};
|
|
|
|
enum {
|
|
/* 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 */
|
|
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 */
|
|
smKeySetDirRightLeft = -16, /* Set default line dir to right-left, align right */
|
|
smKeyRoman = -17 /* Set keyscript to Roman. Does nothing if Roman-only system, unlike KeyScript(smRoman) which forces an update to current default Roman keyboard */
|
|
};
|
|
|
|
/* Optional font and keyboard script synchronization */
|
|
enum {
|
|
/* One more flag in the smGenFlags long. */
|
|
smfDisableKeyScriptSync = 27 /*Disable font and keyboard script synchronization*/
|
|
};
|
|
|
|
enum {
|
|
/* We should define masks, too. */
|
|
smfDisableKeyScriptSyncMask = 1L << smfDisableKeyScriptSync /*Disable font and keyboard script synchronization mask*/
|
|
};
|
|
|
|
enum {
|
|
/* Force keyboard script switching flag and mask for zero and positive KeyScript verbs */
|
|
smKeyForceKeyScriptBit = 7, /* Force keyboard script switching flag */
|
|
smKeyForceKeyScriptMask = 1 << smKeyForceKeyScriptBit /* its mask */
|
|
};
|
|
|
|
enum {
|
|
/* 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*/
|
|
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*/
|
|
};
|
|
|
|
enum {
|
|
/* 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,
|
|
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,
|
|
overDot = 0xFA,
|
|
ringMark = 0xFB,
|
|
cedilla = 0xFC,
|
|
doubleAcute = 0xFD,
|
|
ogonek = 0xFE,
|
|
hachek = 0xFF
|
|
};
|
|
|
|
enum {
|
|
/* ScriptTokenType 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 = 0, /* TokenResults */
|
|
tokenOverflow = 1, /* TokenResults */
|
|
stringOverflow = 2, /* TokenResults */
|
|
badDelim = 3, /* TokenResults */
|
|
badEnding = 4, /* TokenResults */
|
|
crash = 5 /* TokenResults */
|
|
};
|
|
|
|
typedef SInt8 TokenResults;
|
|
typedef char CharByteTable[256];
|
|
/* "TokenType" was renamed to "ScriptTokenType" because of a name collisions*/
|
|
typedef short ScriptTokenType;
|
|
#if TARGET_OS_MAC
|
|
typedef ScriptTokenType TokenType;
|
|
#endif /* TARGET_OS_MAC */
|
|
|
|
typedef ScriptTokenType DelimType[2];
|
|
typedef ScriptTokenType CommentType[4];
|
|
struct TokenRec {
|
|
ScriptTokenType 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?*/
|
|
ScriptTokenType leftDelims[2];
|
|
ScriptTokenType rightDelims[2];
|
|
ScriptTokenType leftComment[4];
|
|
ScriptTokenType rightComment[4];
|
|
ScriptTokenType escapeCode; /*escape symbol code*/
|
|
ScriptTokenType decimalCode;
|
|
Handle itlResource; /*handle to itl4 resource of current script*/
|
|
long reserved[8]; /*must be zero!*/
|
|
};
|
|
typedef struct TokenBlock TokenBlock;
|
|
typedef TokenBlock * TokenBlockPtr;
|
|
/*
|
|
* GetSysDirection()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( short )
|
|
GetSysDirection(void) TWOWORDINLINE(0x3EB8, 0x0BAC);
|
|
|
|
|
|
/*
|
|
* SetSysDirection()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( void )
|
|
SetSysDirection(short value) TWOWORDINLINE(0x31DF, 0x0BAC);
|
|
|
|
|
|
/*
|
|
* FontScript()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( short )
|
|
FontScript(void) FOURWORDINLINE(0x2F3C, 0x8200, 0x0000, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* IntlScript()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( short )
|
|
IntlScript(void) FOURWORDINLINE(0x2F3C, 0x8200, 0x0002, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* FontToScript()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( short )
|
|
FontToScript(short fontNumber) FOURWORDINLINE(0x2F3C, 0x8202, 0x0006, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* GetScriptManagerVariable()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( long )
|
|
GetScriptManagerVariable(short selector) FOURWORDINLINE(0x2F3C, 0x8402, 0x0008, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* SetScriptManagerVariable()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( OSErr )
|
|
SetScriptManagerVariable(
|
|
short selector,
|
|
long param) FOURWORDINLINE(0x2F3C, 0x8206, 0x000A, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* GetScriptVariable()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( long )
|
|
GetScriptVariable(
|
|
short script,
|
|
short selector) FOURWORDINLINE(0x2F3C, 0x8404, 0x000C, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* SetScriptVariable()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( OSErr )
|
|
SetScriptVariable(
|
|
short script,
|
|
short selector,
|
|
long param) FOURWORDINLINE(0x2F3C, 0x8208, 0x000E, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* CharacterByteType()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( short )
|
|
CharacterByteType(
|
|
Ptr textBuf,
|
|
short textOffset,
|
|
ScriptCode script) FOURWORDINLINE(0x2F3C, 0xC206, 0x0010, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* CharacterType()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( short )
|
|
CharacterType(
|
|
Ptr textBuf,
|
|
short textOffset,
|
|
ScriptCode script) FOURWORDINLINE(0x2F3C, 0xC206, 0x0012, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* TransliterateText()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( OSErr )
|
|
TransliterateText(
|
|
Handle srcHandle,
|
|
Handle dstHandle,
|
|
short target,
|
|
long srcMask,
|
|
ScriptCode script) FOURWORDINLINE(0x2F3C, 0xC20E, 0x0018, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* FillParseTable()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( Boolean )
|
|
FillParseTable(
|
|
CharByteTable table,
|
|
ScriptCode script) FOURWORDINLINE(0x2F3C, 0xC204, 0x0022, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* GetIntlResource()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( Handle )
|
|
GetIntlResource(short theID) THREEWORDINLINE(0x3F3C, 0x0006, 0xA9ED);
|
|
|
|
|
|
/*
|
|
* ClearIntlResourceCache()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( void )
|
|
ClearIntlResourceCache(void) THREEWORDINLINE(0x3F3C, 0x0018, 0xA9ED);
|
|
|
|
|
|
/*
|
|
* GetIntlResourceTable()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( void )
|
|
GetIntlResourceTable(
|
|
ScriptCode script,
|
|
short tableCode,
|
|
Handle * itlHandle,
|
|
long * offset,
|
|
long * length) THREEWORDINLINE(0x3F3C, 0x0024, 0xA9ED);
|
|
|
|
|
|
#if CALL_NOT_IN_CARBON
|
|
/*
|
|
* GetScriptUtilityAddress()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: not available
|
|
* Mac OS X: not available
|
|
*/
|
|
EXTERN_API( UniversalProcPtr )
|
|
GetScriptUtilityAddress(
|
|
short selector,
|
|
Boolean Before,
|
|
ScriptCode script) FOURWORDINLINE(0x2F3C, 0xC404, 0x0038, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* SetScriptUtilityAddress()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: not available
|
|
* Mac OS X: not available
|
|
*/
|
|
EXTERN_API( void )
|
|
SetScriptUtilityAddress(
|
|
short selector,
|
|
Boolean Before,
|
|
UniversalProcPtr routineAddr,
|
|
ScriptCode script) FOURWORDINLINE(0x2F3C, 0xC008, 0x003A, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* GetScriptQDPatchAddress()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: not available
|
|
* Mac OS X: not available
|
|
*/
|
|
EXTERN_API( UniversalProcPtr )
|
|
GetScriptQDPatchAddress(
|
|
short trapNum,
|
|
Boolean Before,
|
|
Boolean forPrinting,
|
|
ScriptCode script) FOURWORDINLINE(0x2F3C, 0xC406, 0x003C, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* SetScriptQDPatchAddress()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: not available
|
|
* Mac OS X: not available
|
|
*/
|
|
EXTERN_API( void )
|
|
SetScriptQDPatchAddress(
|
|
short trapNum,
|
|
Boolean Before,
|
|
Boolean forPrinting,
|
|
UniversalProcPtr routineAddr,
|
|
ScriptCode script) FOURWORDINLINE(0x2F3C, 0xC00A, 0x003E, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* SetIntlResource()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: not available
|
|
* Mac OS X: not available
|
|
*/
|
|
EXTERN_API( void )
|
|
SetIntlResource(
|
|
short refNum,
|
|
short theID,
|
|
Handle intlHandle) THREEWORDINLINE(0x3F3C, 0x0008, 0xA9ED);
|
|
|
|
|
|
/*
|
|
* CharByte()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: not available
|
|
* Mac OS X: not available
|
|
*/
|
|
EXTERN_API( short )
|
|
CharByte(
|
|
Ptr textBuf,
|
|
short textOffset) FOURWORDINLINE(0x2F3C, 0x8206, 0x0010, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* CharType()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: not available
|
|
* Mac OS X: not available
|
|
*/
|
|
EXTERN_API( short )
|
|
CharType(
|
|
Ptr textBuf,
|
|
short textOffset) FOURWORDINLINE(0x2F3C, 0x8206, 0x0012, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* Transliterate()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: not available
|
|
* Mac OS X: not available
|
|
*/
|
|
EXTERN_API( OSErr )
|
|
Transliterate(
|
|
Handle srcHandle,
|
|
Handle dstHandle,
|
|
short target,
|
|
long srcMask) FOURWORDINLINE(0x2F3C, 0x820E, 0x0018, 0xA8B5);
|
|
|
|
|
|
/*
|
|
* ParseTable()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: not available
|
|
* Mac OS X: not available
|
|
*/
|
|
EXTERN_API( Boolean )
|
|
ParseTable(CharByteTable table) FOURWORDINLINE(0x2F3C, 0x8204, 0x0022, 0xA8B5);
|
|
|
|
|
|
|
|
#endif /* CALL_NOT_IN_CARBON */
|
|
|
|
/*
|
|
* IntlTokenize()
|
|
*
|
|
* Availability:
|
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
|
* CarbonLib: in CarbonLib 1.0 and later
|
|
* Mac OS X: in version 10.0 and later
|
|
*/
|
|
EXTERN_API( TokenResults )
|
|
IntlTokenize(TokenBlockPtr tokenParam) FOURWORDINLINE(0x2F3C, 0x8204, 0xFFFA, 0xA8B5);
|
|
|
|
|
|
#if OLDROUTINENAMES
|
|
#define SetSysJust(newJust) SetSysDirection(newJust)
|
|
#define GetSysJust() GetSysDirection()
|
|
#define Font2Script(fontNumber) FontToScript(fontNumber)
|
|
#define GetEnvirons(verb) GetScriptManagerVariable(verb)
|
|
#define SetEnvirons(verb, param) SetScriptManagerVariable(verb, param)
|
|
#define GetScript(script, verb) GetScriptVariable(script, verb)
|
|
#define SetScript(script, verb, param) SetScriptVariable(script, verb, param)
|
|
#define IUGetIntl(theID) GetIntlResource(theID)
|
|
#define IUSetIntl(refNum, theID, intlHandle) SetIntlResource(refNum, theID, intlHandle)
|
|
#define IUClearCache() ClearIntlResourceCache()
|
|
#define IUGetItlTable(script, tableCode, itlHandle, offset, length) \
|
|
GetIntlResourceTable(script, tableCode, itlHandle, offset, length)
|
|
#endif /* OLDROUTINENAMES */
|
|
|
|
|
|
|
|
#if PRAGMA_STRUCT_ALIGN
|
|
#pragma options align=reset
|
|
#elif PRAGMA_STRUCT_PACKPUSH
|
|
#pragma pack(pop)
|
|
#elif PRAGMA_STRUCT_PACK
|
|
#pragma pack()
|
|
#endif
|
|
|
|
#ifdef PRAGMA_IMPORT_OFF
|
|
#pragma import off
|
|
#elif PRAGMA_IMPORT
|
|
#pragma import reset
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __SCRIPT__ */
|
|
|