フォントセットは文字からフォントへの対応付けを行うオブジェクトである. [詳細]
関数 | |
| MFontset * | mfontset (char *name) |
| フォントセットを返す. | |
| MSymbol | mfontset_name (MFontset *fontset) |
| フォントセットの名前を返す. | |
| MFontset * | mfontset_copy (MFontset *fontset, char *name) |
| フォントセットのコピーを作る. | |
| int | mfontset_modify_entry (MFontset *fontset, MSymbol script, MSymbol language, MSymbol charset, MFont *spec, MSymbol layouter_name, int how) |
| フォントセットの内容を変更する. | |
| MPlist * | mfontset_lookup (MFontset *fontset, MSymbol script, MSymbol language, MSymbol charset) |
| フォントセットを検索する. | |
フォントセットは文字からフォントへの対応付けを行うオブジェクトである.
フォントセット は MFontset 型のオブジェクトである。M-text の表示の際、フォントセットは以下の情報を用いて M-text 中の個々の文字にどのフォントを用いるか決める規則を与える。
これらの情報がどのように用いられるかは mdraw_text() の説明を参照のこと。
| MFontset * mfontset | ( | char * | name | ) |
フォントセットを返す.
関数 mfontset() は名前 name を持つフォントセットオブジェクトへのポインタを返す。 name が NULL ならば、デフォルトフォントセットへのポインタを返す。
name という名前を持つフォントセットがなければ、新しいものが作られる。その際、 m17n データベースに <fontset, name> というデータがあれば、フォントセットはそのデータに沿って初期化される。 なければ、空のままにされる。
マクロ M17N_INIT() はデフォルトのフォントセットを作る。アプリケーションプログラムは mframe() を初めて呼ぶまでの間はデフォルトフォントセットを変更することができる。
フォントセットの名前を返す.
関数 mfontset_name() はフォントセット fontset の名前を返す。
フォントセットのコピーを作る.
関数 mfontset_copy() はフォントセット fontset のコピーを作って、名前 name を与え、そのコピーへのポインタを返す。name は既存のフォントセットの名前であってはならない。そのような場合にはコピーを作らずに NULL を返す。
| int mfontset_modify_entry | ( | MFontset * | fontset, | |
| MSymbol | script, | |||
| MSymbol | language, | |||
| MSymbol | charset, | |||
| MFont * | spec, | |||
| MSymbol | layouter_name, | |||
| int | how | |||
| ) |
フォントセットの内容を変更する.
関数 mfontset_modify_entry() は、language と script の組み合わせ、または charset に対して font のコピーを使うように、フォントセット fontset を設定する。
フォントセット中の各フォントは、特定のスクリプトと言語のペア、特定の文字セット、シンボル Mnil のいずれかと関連付けられている。同じものと関連付けられたフォントはグループを構成する。
script は Mnil であるか、スクリプトを特定するシンボルである。 シンボルである場合には、language は言語を特定するシンボルか Mnil であり、font はthe script / language ペアに関連付けられる。
charset は Mnil であるか、文字セットオブジェクトを表すシンボルである。 シンボルである場合には font はその文字セットと関連付けられる。
script と charset の双方が Mnil でない場合には font のコピーが2つ作られ、それぞれ script / language ペアと文字セットに関連付けられる。
script と charset の双方が Mnil ならば、 font は Mnil と関連付けられる。この種のフォントは fallback font と呼ばれる。
引数 how は font の優先度を指定する。how が正ならば、font は同じものと関連付けられたグループ中で最高の優先度を持つ。how が負ならば、最低の優先度を持つ。how が 0 ならば、font は関連付けられたものに対する唯一の利用可能なフォントとなり、他のフォントはグループから取り除かれる。
layouter_name は Mnil であるか、フォントレイアウトテーブル (フォントレイアウトテーブル)を示すシンボルである。シンボルであれば、font を用いて M-text を表示する際には、そのフォントレイアウトテーブルを使って文字列からグリフコード列を生成する。
MERROR_SYMBOL フォントセットを検索する.
関数 mfontset_lookup() は fontset を検索し、fontset の内容のうち指定したスクリプト、言語、文字セットに対応する部分を表す plist を返す。
script が Mt ならば、返す plist のキーはフォントが指定されているスクリプト名のシンボルであり、値は NULL である。
script がスクリプト名のシンボルであれば、返す plist は languageによって定まる。
Mt ならば、plist のキーはフォントが指定されている言語名のシンボルであり、値は NULL である。キーは Mt であることもあり、その場合そのスクリプトにフォールバックフォントがあることを意味する。FONT-GROUP である。FONT-GROUP とは、キーが FLT (FontLayoutTable) 名のシンボルであり、値が MFont へのポインタであるような plist である。ただしフォントに FLT が対応付けられていない時には、キーは Mt になる。Mnil ならば、plist はそのスクリプト用のフォールバック FONT-GROUP である。script が Mnil ならば、返す plist は以下のように定まる。
Mt ならば、plist のキーはフォントが指定されている文字セット名のシンボルであり、値は NULL である。FONT-GROUP である。Mnil ならば、plist はフォールバック FONT-GROUP である。