m17n ライブラリ 1.8.4
|
m17n ライブラリ イントロダクション. [詳解]
マクロ定義 | |
#define | M17NLIB_MAJOR_VERSION |
#define | M17NLIB_MINOR_VERSION |
#define | M17NLIB_PATCH_LEVEL |
#define | M17NLIB_VERSION_NAME |
#define | M17N_INIT() |
m17n ライブラリを初期化する. | |
#define | M17N_FINI() |
m17n ライブラリを終了する. | |
列挙型 | |
enum | M17NStatus { M17N_NOT_INITIALIZED , M17N_CORE_INITIALIZED , M17N_SHELL_INITIALIZED , M17N_GUI_INITIALIZED } |
m17n ライブラリの状態を示す列挙型. [詳解] | |
関数 | |
enum M17NStatus | m17n_status (void) |
m17n ライブラリのどの部分が初期化されたか報告する. | |
m17n ライブラリ イントロダクション.
APIのレベル
m17n ライブラリの API は以下の4種に分類されている。
コア API
M-text を扱うための基本的なモジュールを提供する。 この API を利用するためには、アプリケーションプログラムは <m17n-core.h> を include し、 -lm17n-core でリンクされなくてはならない。
シェル API
文字プロパティ、文字集合操作、コード変換等のためのモジュールを提供する。 これらのモジュールは、データベースから必要に応じて多様なデータをロードする。 この API を利用するためには、アプリケーションプログラムは <m17n.h> を include し、 -lm17n-core -lm17n でリンクされなくてはならない。
この API を使用すれば、コア API も自動的に使用可能となる。
FLT API
文字列表示に フォントレイアウトテーブル を用いるモジュールを提供する。この API を利用するためには、アプリケーションプログラムは <m17n.h> を include し、 -lm17n-core -lm17n-flt でリンクされなくてはならない。
この API を使用すれば、コア API も自動的に使用可能となる。
GUI API
グラフィックデバイス上で M-text を表示したり入力したりするための GUI モジュールを提供する。この API 自体はグラフィックデバイスとは独立であるが、 多くの関数は特定のグラフィックデバイス用に作成された MFrame を引数に取る。 現時点でサポートされているグラフィックデバイスは、ヌルデバイス、X ウィンドウシステム、および GD ライブラリのイメージデータ (gdImagePtr) である。
ヌルデバイスのフレーム上では表示も入力もできない。ただし mdraw_glyph_list() などの関数は使用可能である。
X ウィンドウシステムのフレーム上ではすべての GUI API が使用できる。
GD ライブラリのフレーム上では、描画用の API はすべて使用できるが、入力はできない。
この API を使用するためには、アプリケーションプログラムは <m17n-gui.h> を include し、-lm17n-core -lm17n -lm17n-gui でリンクされなくてはならない。
この API を使用すれば、コア API、シェル API、および FLT API も自動的に使用可能となる。
その他の API
エラー処理、デバッグ用のその他の関数を提供する。この API はそれだけでは使用できず、上記の他の API と共に使う。利用するためには、上記のいずれかのinclude ファイルに加えて、 <m17n-misc.h> をinclude しなくてはならない。
m17n-config(1) 節も参照。
環境変数
m17n ライブラリは以下の環境変数を参照する。
M17NDIR
m17n データベースのデータを格納したディレクトリの名前。詳細は データベース 参照。
MDEBUG_XXX
"MDEBUG_" で始まる名前を持つ環境変数はデバッグ情報の出力を制御する。 詳細は デバッグサポート 参照。
API の命名規則
m17n ライブラリは、関数、変数、マクロ、型を export する。それらは 'm' または 'M' のあとにオブジェクト名 ("symbol"、"plist" など) またはモジュール名 (draw, input など) を続けたものである。 M-text オブジェクトの名前は "mmtext" ではなくて "mtext" で始まることに注意。
関数 – mobject() または mobject_xxx()
'm' のあとに小文字でオブジェクト名が続く。単語間は '_' で区切られる。たとえば、msymbol(), mtext_ref_char(), mdraw_text() など。
シンボルでない変数 – mobject, または mobject_xxx
関数と同じ命名規則に従う。たとえば mface_large など。
シンボル変数 – Mname
MSymbol 型変数は、'M' の後に名前が続く。単語間は '_' で区切られる。たとえば Mlanguage (名前は "language"), Miso_2022 (名前は"iso-2022") など。
マクロ – MOBJECT_XXX
'M' の後に大文字でオブジェクト名が続く。単語間は '_' で区切られる。
タイプ – MObject または MObjectXxx
'M' の後に大文字で始まるオブジェクト名が続く。単語は連続して書かれ、 '_' は用いられない。たとえば MConverter, MInputDriver など。
#define M17NLIB_MAJOR_VERSION |
マクロ M17NLIB_MAJOR_VERSION は m17n ライブラリのメジャーバージョン番号を与える.
#define M17NLIB_MINOR_VERSION |
マクロ M17NLIB_MINOR_VERSION は m17n ライブラリのマイナーバージョン番号を与える.
#define M17NLIB_PATCH_LEVEL |
マクロ M17NLIB_PATCH_LEVEL は m17n ライブラリのパッチレベル番号を与える.
#define M17NLIB_VERSION_NAME |
マクロ M17NLIB_VERSION_NAME は m17n ライブラリのバージョン名を文字列として与える.
#define M17N_INIT | ( | ) |
m17n ライブラリを初期化する.
マクロ M17N_INIT() は m17n ライブラリを初期化する。m17n の関数を利用する前に、このマクロをまず呼ばなくてはならない。
このマクロを複数回呼んでも安全であるが、その場合メモリを解放するためにマクロ M17N_FINI() を同じ回数呼ぶ必要がある。
外部変数 merror_code は、初期化が成功すれば 0 に、そうでなければ -1 に設定される。
#define M17N_FINI | ( | ) |
m17n ライブラリを終了する.
マクロ M17N_FINI() は m17n ライブラリを終了する。m17n ライブラリが使った全てのメモリ領域は解放される。一度このマクロが呼ばれたら、マクロ M17N_INIT() が再度呼ばれるまで m17n 関数は使うべきでない。
マクロ M17N_INIT() が N 回呼ばれていた場合には、このマクロが N 回呼ばれて初めてメモリが解放される。
enum M17NStatus |
m17n ライブラリの状態を示す列挙型.
列挙型 M17NStatus は関数 m17n_status() の戻り値として用いられる。
列挙値 | |
---|---|
M17N_NOT_INITIALIZED | |
M17N_CORE_INITIALIZED | |
M17N_SHELL_INITIALIZED | |
M17N_GUI_INITIALIZED |
enum M17NStatus m17n_status | ( | void | ) |
m17n ライブラリのどの部分が初期化されたか報告する.
関数 m17n_status() は m17n ライブラリのどの部分が初期化されたかに応じて、以下の値のいずれかを返す。
M17N_NOT_INITIALIZED, M17N_CORE_INITIALIZED, M17N_SHELL_INITIALIZED, M17N_GUI_INITIALIZED