Enable IBM Keyboard Layout, no update to xib yet
This commit is contained in:
parent
c300e9cc10
commit
beee34b96c
|
@ -721,15 +721,17 @@ const BopomofoKeyboardLayout* BopomofoKeyboardLayout::c_StandardLayout = 0;
|
||||||
const BopomofoKeyboardLayout* BopomofoKeyboardLayout::c_ETenLayout = 0;
|
const BopomofoKeyboardLayout* BopomofoKeyboardLayout::c_ETenLayout = 0;
|
||||||
const BopomofoKeyboardLayout* BopomofoKeyboardLayout::c_HsuLayout = 0;
|
const BopomofoKeyboardLayout* BopomofoKeyboardLayout::c_HsuLayout = 0;
|
||||||
const BopomofoKeyboardLayout* BopomofoKeyboardLayout::c_ETen26Layout = 0;
|
const BopomofoKeyboardLayout* BopomofoKeyboardLayout::c_ETen26Layout = 0;
|
||||||
|
const BopomofoKeyboardLayout* BopomofoKeyboardLayout::c_IBMLayout = 0;
|
||||||
const BopomofoKeyboardLayout* BopomofoKeyboardLayout::c_HanyuPinyinLayout = 0;
|
const BopomofoKeyboardLayout* BopomofoKeyboardLayout::c_HanyuPinyinLayout = 0;
|
||||||
|
|
||||||
void BopomofoKeyboardLayout::FinalizeLayouts()
|
void BopomofoKeyboardLayout::FinalizeLayouts()
|
||||||
{
|
{
|
||||||
#define FL(x) if (x) { delete x; } x = 0
|
#define FL(x) if (x) { delete x; } x = 0
|
||||||
FL(c_StandardLayout);
|
FL(c_StandardLayout);
|
||||||
FL(c_ETen26Layout);
|
FL(c_ETenLayout);
|
||||||
FL(c_HsuLayout);
|
FL(c_HsuLayout);
|
||||||
FL(c_ETen26Layout);
|
FL(c_ETen26Layout);
|
||||||
|
FL(c_IBMLayout);
|
||||||
FL(c_HanyuPinyinLayout);
|
FL(c_HanyuPinyinLayout);
|
||||||
#undef FL
|
#undef FL
|
||||||
}
|
}
|
||||||
|
@ -748,6 +750,9 @@ const BopomofoKeyboardLayout* BopomofoKeyboardLayout::LayoutForName(const string
|
||||||
if (OVWildcard::Match(name, "eten26"))
|
if (OVWildcard::Match(name, "eten26"))
|
||||||
return ETen26Layout();
|
return ETen26Layout();
|
||||||
|
|
||||||
|
if (OVWildcard::Match(name, "IBM"))
|
||||||
|
return IBMLayout();
|
||||||
|
|
||||||
if (OVWildcard::Match(name, "hanyupinyin") || OVWildcard::Match(name, "hanyu pinyin") || OVWildcard::Match(name, "hanyu-pinyin") || OVWildcard::Match(name, "pinyin"))
|
if (OVWildcard::Match(name, "hanyupinyin") || OVWildcard::Match(name, "hanyu pinyin") || OVWildcard::Match(name, "hanyu-pinyin") || OVWildcard::Match(name, "pinyin"))
|
||||||
return HanyuPinyinLayout();
|
return HanyuPinyinLayout();
|
||||||
|
|
||||||
|
@ -811,6 +816,59 @@ const BopomofoKeyboardLayout* BopomofoKeyboardLayout::StandardLayout()
|
||||||
|
|
||||||
return c_StandardLayout;
|
return c_StandardLayout;
|
||||||
}
|
}
|
||||||
|
const BopomofoKeyboardLayout* BopomofoKeyboardLayout::IBMLayout()
|
||||||
|
{
|
||||||
|
if (!c_IBMLayout) {
|
||||||
|
vector<BPMF::Component> vec;
|
||||||
|
BopomofoKeyToComponentMap ktcm;
|
||||||
|
|
||||||
|
ASSIGNKEY1(ktcm, vec, '1', BPMF::B);
|
||||||
|
ASSIGNKEY1(ktcm, vec, '2', BPMF::P);
|
||||||
|
ASSIGNKEY1(ktcm, vec, '3', BPMF::M);
|
||||||
|
ASSIGNKEY1(ktcm, vec, '4', BPMF::F);
|
||||||
|
ASSIGNKEY1(ktcm, vec, '5', BPMF::D);
|
||||||
|
ASSIGNKEY1(ktcm, vec, '6', BPMF::T);
|
||||||
|
ASSIGNKEY1(ktcm, vec, '7', BPMF::N);
|
||||||
|
ASSIGNKEY1(ktcm, vec, '8', BPMF::L);
|
||||||
|
ASSIGNKEY1(ktcm, vec, '9', BPMF::G);
|
||||||
|
ASSIGNKEY1(ktcm, vec, '0', BPMF::K);
|
||||||
|
ASSIGNKEY1(ktcm, vec, '-', BPMF::H);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'q', BPMF::J);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'w', BPMF::Q);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'e', BPMF::X);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'r', BPMF::ZH);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 't', BPMF::CH);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'y', BPMF::SH);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'u', BPMF::R);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'i', BPMF::Z);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'o', BPMF::C);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'p', BPMF::S);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'a', BPMF::I);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 's', BPMF::U);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'd', BPMF::UE);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'f', BPMF::A);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'g', BPMF::O);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'h', BPMF::ER);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'j', BPMF::E);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'k', BPMF::AI);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'l', BPMF::EI);
|
||||||
|
ASSIGNKEY1(ktcm, vec, ';', BPMF::AO);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'z', BPMF::OU);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'x', BPMF::AN);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'c', BPMF::EN);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'v', BPMF::ANG);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'b', BPMF::ENG);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'n', BPMF::ERR);
|
||||||
|
ASSIGNKEY1(ktcm, vec, 'm', BPMF::Tone2);
|
||||||
|
ASSIGNKEY1(ktcm, vec, ',', BPMF::Tone3);
|
||||||
|
ASSIGNKEY1(ktcm, vec, '.', BPMF::Tone4);
|
||||||
|
ASSIGNKEY1(ktcm, vec, '/', BPMF::Tone5);
|
||||||
|
|
||||||
|
c_IBMLayout = new BopomofoKeyboardLayout(ktcm, "IBM");
|
||||||
|
}
|
||||||
|
|
||||||
|
return c_IBMLayout;
|
||||||
|
}
|
||||||
|
|
||||||
const BopomofoKeyboardLayout* BopomofoKeyboardLayout::ETenLayout()
|
const BopomofoKeyboardLayout* BopomofoKeyboardLayout::ETenLayout()
|
||||||
{
|
{
|
||||||
|
@ -941,7 +999,6 @@ const BopomofoKeyboardLayout* BopomofoKeyboardLayout::ETen26Layout()
|
||||||
|
|
||||||
return c_ETen26Layout;
|
return c_ETen26Layout;
|
||||||
}
|
}
|
||||||
|
|
||||||
const BopomofoKeyboardLayout* BopomofoKeyboardLayout::HanyuPinyinLayout()
|
const BopomofoKeyboardLayout* BopomofoKeyboardLayout::HanyuPinyinLayout()
|
||||||
{
|
{
|
||||||
if (!c_HanyuPinyinLayout) {
|
if (!c_HanyuPinyinLayout) {
|
||||||
|
|
|
@ -268,9 +268,10 @@ namespace Formosa {
|
||||||
static const BopomofoKeyboardLayout* ETenLayout();
|
static const BopomofoKeyboardLayout* ETenLayout();
|
||||||
static const BopomofoKeyboardLayout* HsuLayout();
|
static const BopomofoKeyboardLayout* HsuLayout();
|
||||||
static const BopomofoKeyboardLayout* ETen26Layout();
|
static const BopomofoKeyboardLayout* ETen26Layout();
|
||||||
|
static const BopomofoKeyboardLayout* IBMLayout();
|
||||||
static const BopomofoKeyboardLayout* HanyuPinyinLayout();
|
static const BopomofoKeyboardLayout* HanyuPinyinLayout();
|
||||||
|
|
||||||
// recognizes (case-insensitive): standard, eten, hsu, eten26
|
// recognizes (case-insensitive): standard, eten, hsu, eten26, ibm
|
||||||
static const BopomofoKeyboardLayout* LayoutForName(const string& name);
|
static const BopomofoKeyboardLayout* LayoutForName(const string& name);
|
||||||
|
|
||||||
BopomofoKeyboardLayout(const BopomofoKeyToComponentMap& ktcm, const string& name)
|
BopomofoKeyboardLayout(const BopomofoKeyToComponentMap& ktcm, const string& name)
|
||||||
|
@ -462,6 +463,7 @@ namespace Formosa {
|
||||||
static const BopomofoKeyboardLayout* c_ETenLayout;
|
static const BopomofoKeyboardLayout* c_ETenLayout;
|
||||||
static const BopomofoKeyboardLayout* c_HsuLayout;
|
static const BopomofoKeyboardLayout* c_HsuLayout;
|
||||||
static const BopomofoKeyboardLayout* c_ETen26Layout;
|
static const BopomofoKeyboardLayout* c_ETen26Layout;
|
||||||
|
static const BopomofoKeyboardLayout* c_IBMLayout;
|
||||||
|
|
||||||
// this is essentially an empty layout, but we use pointer semantic to tell the differences--and pass on the responsibility to BopomofoReadingBuffer
|
// this is essentially an empty layout, but we use pointer semantic to tell the differences--and pass on the responsibility to BopomofoReadingBuffer
|
||||||
static const BopomofoKeyboardLayout* c_HanyuPinyinLayout;
|
static const BopomofoKeyboardLayout* c_HanyuPinyinLayout;
|
||||||
|
|
|
@ -268,6 +268,9 @@ public:
|
||||||
_bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::ETen26Layout());
|
_bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::ETen26Layout());
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
|
_bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::IBMLayout());
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
_bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::HanyuPinyinLayout());
|
_bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::HanyuPinyinLayout());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -1048,6 +1051,9 @@ public:
|
||||||
layout = string("Hsu_");
|
layout = string("Hsu_");
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
|
layout = string("IBM_");
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
layout = string("HanyuPinyin_");
|
layout = string("HanyuPinyin_");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in New Issue