Newer
Older
scim-wnn / honoka / plugins / compose.h
@tamra tamra on 27 Apr 2006 12 KB Compose処理実装。
//
// XorgのComposeデータをコード化したですよ。
//

namespace Honoka {
struct MultiKeySequence {
    String first;
    String second;
    wchar_t character;
};

MultiKeySequence multikey_table[] = {
	{"plus", "plus",		 '#'},
	{"apostrophe", "space",	 '\''},
	{"space", "apostrophe",	 '\''},
	{"A", "T",	 '@'},
	{"parenleft", "parenleft",	 '['},
	{"slash", "slash",		 '\\'},
	{"slash", "less",		 '\\'},
	{"less", "slash",		 '\\'},
	{"parenright", "parenright",	 ']'},
	{"asciicircum", "space",	 '^'},
	{"space", "asciicircum",	 '^'},
	{"greater", "space",		 '^'},
	{"space", "greater",		 '^'},
	{"grave", "space",		 '`'},
	{"space", "grave",		 '`'},
	{"parenleft", "minus",		 '{'},
	{"minus", "parenleft",		 '{'},
	{"slash", "asciicircum",	 '|'},
	{"asciicircum", "slash",	 '|'},
	{"V", "L",	 '|'},
	{"L", "V",	 '|'},
	{"v", "l",	 '|'},
	{"l", "v",	 '|'},
	{"parenright", "minus",	 '}'},
	{"minus", "parenright",	 '}'},
	{"asciitilde", "space",	 '~'},
	{"space", "asciitilde",	 '~'},
	{"minus", "space",		 '~'},
	{"space", "minus",		 '~'},
	{"exclam", "exclam",		 0241},
	{"c", "slash",	 0242},
	{"slash", "c",	 0242},
	{"C", "slash",	 0242},
	{"slash", "C",	 0242},
	{"C", "bar",	 0242},
	{"bar", "C",	 0242},
	{"c", "bar",	 0242},
	{"bar", "c",	 0242},
	{"l", "minus",	 0243},
	{"minus", "l",	 0243},
	{"L", "minus",	 0243},
	{"minus", "L",	 0243},
	{"l", "equal",	 0243},
	{"equal", "l",	 0243},
	{"L", "equal",	 0243},
	{"equal", "L",	 0243},
	{"y", "minus",	 0245},
	{"minus", "y",	 0245},
	{"Y", "minus",	 0245},
	{"minus", "Y",	 0245},
	{"y", "equal",	 0245},
	{"equal", "y",	 0245},
	{"Y", "equal",	 0245},
	{"equal", "Y",	 0245},
	{"s", "o",	 0247},
	{"o", "s",	 0247},
	{"S", "O",	 0247},
	{"O", "S",	 0247},
	{"S", "exclam",		 0247},
	{"exclam", "S",		 0247},
	{"s", "exclam",		 0247},
	{"exclam", "s",		 0247},
	{"S", "0",	 0247},
	{"0", "S",	 0247},
	{"s", "0",	 0247},
	{"0", "s",	 0247},
	{"x", "o",	 0244},
	{"o", "x",	 0244},
	{"X", "O",	 0244},
	{"O", "X",	 0244},
	{"x", "O",	 0244},
	{"O", "x",	 0244},
	{"X", "o",	 0244},
	{"o", "X",	 0244},
	{"x", "0",	 0244},
	{"0", "x",	 0244},
	{"X", "0",	 0244},
	{"0", "X",	 0244},
	{"c", "o",	 0251},
	{"o", "c",	 0251},
	{"C", "O",	 0251},
	{"O", "C",	 0251},
	{"c", "O",	 0251},
	{"O", "c",	 0251},
	{"C", "o",	 0251},
	{"o", "C",	 0251},
	{"c", "0",	 0251},
	{"0", "c",	 0251},
	{"C", "0",	 0251},
	{"0", "C",	 0251},
	{"parenleft", "c",		 0251},
	{"a", "underscore",		 0252},
	{"underscore", "a",		 0252},
	{"A", "underscore",		 0252},
	{"underscore", "A",		 0252},
	{"o", "underscore",		 0272},
	{"underscore", "o",		 0272},
	{"O", "underscore",		 0272},
	{"underscore", "O",		 0272},
	{"less", "less",		 0253},
	{"greater", "greater",		 0273},
	{"0", "asciicircum",		 0260},
	{"asciicircum", "0",		 0260},
	{"0", "asterisk",		 0260},
	{"asterisk", "0",		 0260},
	{"plus", "minus",		 0261},
	{"minus", "plus",		 0261},
	{"slash", "u",	 0265},
	{"u", "slash",	 0265},
	{"slash", "U",	 0265},
	{"U", "slash",	 0265},
	{"1", "asciicircum",		 0271},
	{"asciicircum", "1",		 0271},
	{"S", "1",	 0271},
	{"1", "S",	 0271},
	{"s", "1",	 0271},
	{"1", "s",	 0271},
	{"2", "asciicircum",		 0262},
	{"asciicircum", "2",		 0262},
	{"S", "2",	 0262},
	{"2", "S",	 0262},
	{"s", "2",	 0262},
	{"2", "s",	 0262},
	{"3", "asciicircum",		 0263},
	{"asciicircum", "3",		 0263},
	{"S", "3",	 0263},
	{"3", "S",	 0263},
	{"s", "3",	 0263},
	{"3", "s",	 0263},
	{"p", "exclam",		 0266},
	{"exclam", "p",		 0266},
	{"P", "exclam",		 0266},
	{"exclam", "P",		 0266},
	{"period", "asciicircum",	 0267},
	{"asciicircum", "period",	 0267},
	{"period", "period",		 0267},
	{"1", "4",	 0274},
	{"1", "2",	 0275},
	{"3", "4",	 0276},
	{"question", "question",	 0277},
	{"space", "space",		 0240},
	{"bar", "bar",	 0246},
	{"exclam", "asciicircum",	 0246},
	{"asciicircum", "exclam",	 0246},
	{"V", "B",	 0246},
	{"B", "V",	 0246},
	{"v", "b",	 0246},
	{"b", "v",	 0246},
	{"minus", "comma",		 0254},
	{"comma", "minus",		 0254},
	{"minus", "minus",		 0255},
	{"R", "O",	 0256},
	{"O", "R",	 0256},
	{"parenleft", "r",		 0256},
	{"minus", "asciicircum",	 0257},
	{"asciicircum", "minus",	 0257},
	{"underscore", "asciicircum",	 0257},
	{"asciicircum", "underscore",	 0257},
	{"underscore", "underscore",	 0257},
	{"minus", "colon",		 0367},
	{"colon", "minus",		 0367},
	{"x", "x",	 0327},
	{"apostrophe", "apostrophe",	 0264},
	{"comma", "comma",		 0270},
	{"quotedbl", "quotedbl",	 0250},
// Accented Alphabet
	{"A", "grave",	 0300},
	{"grave", "A",	 0300},
	{"A", "acute",	 0301},
	{"acute", "A",	 0301},
	{"A", "apostrophe",		 0301},
	{"apostrophe", "A",		 0301},
	{"A", "asciicircum",		 0302},
	{"asciicircum", "A",		 0302},
	{"A", "greater",		 0302},
	{"greater", "A",		 0302},
	{"A", "asciitilde",		 0303},
	{"asciitilde", "A",		 0303},
	{"A", "minus",	 0303},
	{"minus", "A",	 0303},
	{"A", "quotedbl",		 0304},
	{"quotedbl", "A",		 0304},
	{"A", "diaeresis",		 0304},
	{"diaeresis", "A",		 0304},
	{"A", "asterisk",		 0305},
	{"asterisk", "A",		 0305},
	{"A", "A",	 0305},
	{"A", "O",	 0305},
	{"A", "E",	 0306},
	{"a", "grave",	 0340},
	{"grave", "a",	 0340},
	{"a", "acute",	 0341},
	{"acute", "a",	 0341},
	{"a", "apostrophe",		 0341},
	{"apostrophe", "a",		 0341},
	{"a", "asciicircum",		 0342},
	{"asciicircum", "a",		 0342},
	{"a", "greater",		 0342},
	{"greater", "a",		 0342},
	{"a", "asciitilde",		 0343},
	{"asciitilde", "a",		 0343},
	{"a", "minus",	 0343},
	{"minus", "a",	 0343},
	{"a", "quotedbl",		 0344},
	{"quotedbl", "a",		 0344},
	{"a", "diaeresis",		 0344},
	{"diaeresis", "a",		 0344},
	{"a", "asterisk",		 0345},
	{"asterisk", "a",		 0345},
	{"a", "a",	 0345},
	{"a", "o",	 0345},
	{"a", "e",	 0346},
	{"acute", "C",	 0307},
	{"acute", "c",	 0347},
	{"C", "comma",	 0307},
	{"comma", "C",	 0307},
	{"c", "comma",	 0347},
	{"comma", "c",	 0347},
	{"minus", "D",	 0320},
	{"D", "minus",	 0320},
	{"minus", "d",	 0360},
	{"d", "minus",	 0360},
	{"E", "grave",	 0310},
	{"grave", "E",	 0310},
	{"E", "acute",	 0311},
	{"acute", "E",	 0311},
	{"E", "apostrophe",		 0311},
	{"apostrophe", "E",		 0311},
	{"E", "asciicircum",		 0312},
	{"asciicircum", "E",		 0312},
	{"E", "greater",		 0312},
	{"greater", "E",		 0312},
	{"E", "quotedbl",		 0313},
	{"quotedbl", "E",		 0313},
	{"E", "diaeresis",		 0313},
	{"diaeresis", "E",		 0313},
	{"e", "grave",	 0350},
	{"grave", "e",	 0350},
	{"e", "acute",	 0351},
	{"acute", "e",	 0351},
	{"e", "apostrophe",		 0351},
	{"apostrophe", "e",		 0351},
	{"e", "asciicircum",		 0352},
	{"asciicircum", "e",		 0352},
	{"e", "greater",		 0352},
	{"greater", "e",		 0352},
	{"e", "quotedbl",		 0353},
	{"quotedbl", "e",		 0353},
	{"e", "diaeresis",		 0353},
	{"diaeresis", "e",		 0353},
	{"I", "grave",	 0314},
	{"grave", "I",	 0314},
	{"I", "acute",	 0315},
	{"acute", "I",	 0315},
	{"I", "apostrophe",		 0315},
	{"apostrophe", "I",		 0315},
	{"I", "asciicircum",		 0316},
	{"asciicircum", "I",		 0316},
	{"I", "greater",		 0316},
	{"greater", "I",		 0316},
	{"I", "quotedbl",		 0317},
	{"quotedbl", "I",		 0317},
	{"I", "diaeresis",		 0317},
	{"diaeresis", "I",		 0317},
	{"i", "grave",	 0354},
	{"grave", "i",	 0354},
	{"i", "acute",	 0355},
	{"acute", "i",	 0355},
	{"i", "apostrophe",		 0355},
	{"apostrophe", "i",		 0355},
	{"i", "asciicircum",		 0356},
	{"asciicircum", "i",		 0356},
	{"i", "greater",		 0356},
	{"greater", "i",		 0356},
	{"i", "quotedbl",		 0357},
	{"quotedbl", "i",		 0357},
	{"i", "diaeresis",		 0357},
	{"diaeresis", "i",		 0357},
	{"N", "asciitilde",		 0321},
	{"asciitilde", "N",		 0321},
	{"N", "minus",	 0321},
	{"minus", "N",	 0321},
	{"n", "asciitilde",		 0361},
	{"asciitilde", "n",		 0361},
	{"n", "minus",	 0361},
	{"minus", "n",	 0361},
	{"O", "grave",	 0322},
	{"grave", "O",	 0322},
	{"O", "acute",	 0323},
	{"acute", "O",	 0323},
	{"O", "apostrophe",		 0323},
	{"apostrophe", "O",		 0323},
	{"O", "asciicircum",		 0324},
	{"asciicircum", "O",		 0324},
	{"O", "greater",		 0324},
	{"greater", "O",		 0324},
	{"O", "asciitilde",		 0325},
	{"asciitilde", "O",		 0325},
	{"O", "minus",	 0325},
	{"minus", "O",	 0325},
	{"O", "quotedbl",		 0326},
	{"quotedbl", "O",		 0326},
	{"O", "diaeresis",		 0326},
	{"diaeresis", "O",		 0326},
	{"O", "slash",	 0330},
	{"slash", "O",	 0330},
	{"o", "grave",	 0362},
	{"grave", "o",	 0362},
	{"o", "acute",	 0363},
	{"acute", "o",	 0363},
	{"o", "apostrophe",		 0363},
	{"apostrophe", "o",		 0363},
	{"o", "asciicircum",		 0364},
	{"asciicircum", "o",		 0364},
	{"o", "greater",		 0364},
	{"greater", "o",		 0364},
	{"o", "asciitilde",		 0365},
	{"asciitilde", "o",		 0365},
	{"o", "minus",	 0365},
	{"minus", "o",	 0365},
	{"o", "quotedbl",		 0366},
	{"quotedbl", "o",		 0366},
	{"o", "diaeresis",		 0366},
	{"diaeresis", "o",		 0366},
	{"o", "slash",	 0370},
	{"slash", "o",	 0370},
	{"U", "grave",	 0331},
	{"grave", "U",	 0331},
	{"U", "acute",	 0332},
	{"acute", "U",	 0332},
	{"U", "apostrophe",		 0332},
	{"apostrophe", "U",		 0332},
	{"U", "asciicircum",		 0333},
	{"asciicircum", "U",		 0333},
	{"U", "greater",		 0333},
	{"greater", "U",		 0333},
	{"U", "quotedbl",		 0334},
	{"quotedbl", "U",		 0334},
	{"U", "diaeresis",		 0334},
	{"diaeresis", "U",		 0334},
	{"u", "grave",	 0371},
	{"grave", "u",	 0371},
	{"u", "acute",	 0372},
	{"acute", "u",	 0372},
	{"u", "apostrophe",		 0372},
	{"apostrophe", "u",		 0372},
	{"u", "asciicircum",		 0373},
	{"asciicircum", "u",		 0373},
	{"u", "greater",		 0373},
	{"greater", "u",		 0373},
	{"u", "quotedbl",		 0374},
	{"quotedbl", "u",		 0374},
	{"u", "diaeresis",		 0374},
	{"diaeresis", "u",		 0374},
	{"s", "s",	 0337},
	{"T", "H",	 0336},
	{"t", "h",	 0376},
	{"Y", "acute",	 0335},
	{"acute", "Y",	 0335},
	{"Y", "apostrophe",		 0335},
	{"apostrophe", "Y",		 0335},
	{"y", "acute",	 0375},
	{"acute", "y",	 0375},
	{"y", "apostrophe",		 0375},
	{"apostrophe", "y",		 0375},
	{"y", "quotedbl",		 0377},
	{"quotedbl", "y",		 0377},
	{"y", "diaeresis",		 0377},
	{"diaeresis", "y",		 0377},
// dead key accent keysyms
// Special Character
	{"dead_circumflex", "slash",		 '|'},
	{"dead_circumflex", "space",		 '^'},
	{"dead_circumflex", "dead_circumflex",	 '^'},
	{"dead_tilde", "space",	 '~'},
	{"dead_tilde", "dead_tilde",		 '~'},
	{"dead_grave", "space",	 '`'},
	{"dead_grave", "dead_grave",		 '`'},
// These are for us_intl, that does not have diaeresis, etc
	{"dead_acute", "space",	 '\''},
	{"dead_acute", "dead_acute",		 0264},
	{"dead_diaeresis", "space",		 '\"'},
	{"dead_diaeresis", "dead_diaeresis",	 0250},
	{"dead_doubleacute", "space",		 '\"'},
	{"dead_abovering", "space",		 0260},
	{"dead_abovering", "dead_abovering",	 0260},
	{"dead_circumflex", "0",	 0260},
	{"dead_circumflex", "1",	 0271},
	{"dead_circumflex", "2",	 0262},
	{"dead_circumflex", "3",	 0263},
	{"dead_circumflex", "period",		 0267},
	{"dead_circumflex", "exclam",		 0246},
	{"dead_cedilla", "minus",	 0254},
	{"dead_circumflex", "minus",		 0257},
	{"dead_circumflex", "underscore",		 0257},
	{"dead_acute", "apostrophe",		 0264},
	{"dead_cedilla", "comma",	 0270},
	{"dead_diaeresis", "quotedbl",		 0250},
// Accented Alphabet
	{"dead_abovering", "A",	 0305},
	{"dead_grave", "A",	 0300},
	{"dead_acute", "A",	 0301},
	{"dead_circumflex", "A",	 0302},
	{"dead_tilde", "A",	 0303},
	{"dead_diaeresis", "A",	 0304},
	{"dead_abovering", "a",	 0345},
	{"dead_grave", "a",	 0340},
	{"dead_acute", "a",	 0341},
	{"dead_circumflex", "a",	 0342},
	{"dead_tilde", "a",	 0343},
	{"dead_diaeresis", "a",	 0344},
	{"dead_cedilla", "C",	 0307},
	{"dead_cedilla", "c",	 0347},
	{"dead_grave", "E",	 0310},
	{"dead_acute", "E",	 0311},
	{"dead_circumflex", "E",	 0312},
	{"dead_diaeresis", "E",	 0313},
	{"dead_grave", "e",	 0350},
	{"dead_acute", "e",	 0351},
	{"dead_circumflex", "e",	 0352},
	{"dead_diaeresis", "e",	 0353},
	{"dead_grave", "I",	 0314},
	{"dead_acute", "I",	 0315},
	{"dead_circumflex", "I",	 0316},
	{"dead_diaeresis", "I",	 0317},
	{"dead_grave", "i",	 0354},
	{"dead_acute", "i",	 0355},
	{"dead_circumflex", "i",	 0356},
	{"dead_diaeresis", "i",	 0357},
	{"dead_tilde", "N",	 0321},
	{"dead_tilde", "n",	 0361},
	{"dead_grave", "O",	 0322},
	{"dead_acute", "O",	 0323},
	{"dead_circumflex", "O",	 0324},
	{"dead_tilde", "O",	 0325},
	{"dead_diaeresis", "O",	 0326},
	{"dead_grave", "o",	 0362},
	{"dead_acute", "o",	 0363},
	{"dead_circumflex", "o",	 0364},
	{"dead_tilde", "o",	 0365},
	{"dead_diaeresis", "o",	 0366},
	{"dead_grave", "U",	 0331},
	{"dead_acute", "U",	 0332},
	{"dead_circumflex", "U",	 0333},
	{"dead_doubleacute", "U",	 0334},
	{"dead_diaeresis", "U",	 0334},
	{"dead_grave", "u",	 0371},
	{"dead_acute", "u",	 0372},
	{"dead_circumflex", "u",	 0373},
	{"dead_doubleacute", "u",	 0374},
	{"dead_diaeresis", "u",	 0374},
	{"dead_acute", "Y",	 0335},
	{"dead_acute", "y",	 0375},
	{"dead_diaeresis", "y",	 0377},
// Useful for portuguese language
	{"dead_acute", "C",	 0307},
	{"dead_acute", "c",	 0347},
    {"","",0000}
};

}