gecko-dev/cmd/macfe/utility/uintl.cp

117 строки
5.3 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "uintl.h"
#include "resgui.h"
#include "uprefd.h"
#include "intl_csi.h"
#include "intlpriv.h"
INTL_Encoding_ID ScriptToEncoding(ScriptCode script)
{
switch(script)
{
case smRoman: return CS_MAC_ROMAN; // = 0, /*Roman*/
case smJapanese: return CS_SJIS; // = 1, /*Japanese*/
case smTradChinese: return CS_BIG5; // = 2, /*Traditional Chinese*/
case smKorean: return CS_KSC_8BIT; // = 3, /*Korean*/
// case smArabic: // = 4, /*Arabic*/
// case smHebrew: // = 5, /*Hebrew*/
case smGreek: return CS_MAC_GREEK; // = 6, /*Greek*/
case smCyrillic: return CS_MAC_CYRILLIC; // = 7, /*Cyrillic*/
// case smRSymbol: // = 8, /*Right-left symbol*/
// case smDevanagari: // = 9, /*Devanagari*/
// case smGurmukhi: // = 10, /*Gurmukhi*/
// case smGujarati: // = 11, /*Gujarati*/
// case smOriya: // = 12, /*Oriya*/
// case smBengali: // = 13, /*Bengali*/
// case smTamil: // = 14, /*Tamil*/
// case smTelugu: // = 15, /*Telugu*/
// case smKannada: // = 16, /*Kannada/Kanarese*/
// case smMalayalam: // = 17 /*Malayalam*/
// case smSinhalese: // = 18, /*Sinhalese*/
// case smBurmese: // = 19, /*Burmese*/
// case smKhmer: // = 20, /*Khmer/Cambodian*/
// case smThai: // = 21, /*Thai*/
// case smLaotian: // = 22, /*Laotian*/
// case smGeorgian: // = 23, /*Georgian*/
// case smArmenian: // = 24, /*Armenian*/
case smSimpChinese: return CS_GB_8BIT; // = 25, /*Simplified Chinese*/
// case smTibetan: // = 26, /*Tibetan*/
// case smMongolian: // = 27, /*Mongolian*/
// case smGeez: // = 28, /*Geez/Ethiopic*/
// case smEthiopic: // = 28, /*Synonym for smGeez*/
case smEastEurRoman: return CS_MAC_CE; // = 29, /*Synonym for smSlavic*/
// case smVietnamese: // = 30, /*Vietnamese*/
// case smExtArabic: // = 31, /*extended Arabic*/
// case smUninterp: // = 32, /*uninterpreted symbols, e.g. palette symbols*/
default: return CS_MAC_ROMAN;
}
}
// Returns default document csid which is the current
// selection of the encoding menu.
//
uint16 FE_DefaultDocCharSetID(iDocumentContext context)
{
#pragma unused(context)
uint16 csid;
CommandT iCommand;
ResIDT outMENUid;
MenuHandle outMenuHandle;
Int16 outItem;
CharParameter markChar;
for (csid = CS_DEFAULT, iCommand = ENCODING_BASE; iCommand <= ENCODING_CEILING; iCommand++)
{
LMenuBar::GetCurrentMenuBar()->FindMenuItem(iCommand, outMENUid, outMenuHandle, outItem);
::GetItemMark (outMenuHandle, outItem, &markChar);
if (checkMark == markChar)
{
csid = (uint16) CPrefs::CmdNumToDocCsid(iCommand);
break;
}
}
XP_ASSERT(csid != CS_DEFAULT); // no check mark in the encoding menu
return csid;
}
INTLCharSetID FE_GetCharSetID(INTL_CharSetID_Selector selector)
{
INTLCharSetID charsetID = CS_DEFAULT;
switch (selector)
{
case INTL_FileNameCsidSel:
charsetID = (INTLCharSetID) ScriptToEncoding(GetScriptManagerVariable(smSysScript));
break;
case INTL_OldBookmarkCsidSel:
case INTL_DefaultTextWidgetCsidSel:
case INTL_MenuCsidSel:
charsetID = (INTLCharSetID) ScriptToEncoding(FontToScript(applFont));
break;
default:
break;
}
XP_ASSERT(charsetID != CS_DEFAULT);
return charsetID;
}