mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-07 20:17:37 +00:00
117 lines
5.3 KiB
C++
117 lines
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;
|
|
}
|