Data Structures | |
struct | MDrawControl |
テキスト表示制御の型宣言. More... | |
struct | MDrawMetric |
グリフとテキストの寸法の型宣言. More... | |
struct | MDrawGlyphInfo |
グリフに関する情報の型宣言. More... | |
struct | MDrawGlyph |
グリフの寸法とフォントに関する情報の型宣言. More... | |
Typedefs | |
typedef void * | MDrawWindow |
ウィンドウシステムに依存する、ウィンドウの型宣言. | |
typedef void * | MDrawRegion |
ウィンドウシステムに依存する、領域の型宣言. | |
Functions | |
int | mdraw_text (MFrame *frame, MDrawWindow win, int x, int y, MText *mt, int from, int to) |
ウィンドウに M-text を描画する. | |
int | mdraw_image_text (MFrame *frame, MDrawWindow win, int x, int y, MText *mt, int from, int to) |
ディスプレイにM-text を画像として描く. | |
int | mdraw_text_with_control (MFrame *frame, MDrawWindow win, int x, int y, MText *mt, int from, int to, MDrawControl *control) |
ディスプレイにM-text を詳細な制御つきで描く. | |
int | mdraw_text_extents (MFrame *frame, MText *mt, int from, int to, MDrawControl *control, MDrawMetric *overall_ink_return, MDrawMetric *overall_logical_return, MDrawMetric *overall_line_return) |
テキストの幅(ピクセル単位)を計算する. | |
int | mdraw_text_per_char_extents (MFrame *frame, MText *mt, int from, int to, MDrawControl *control, MDrawMetric *ink_array_return, MDrawMetric *logical_array_return, int array_size, int *num_chars_return, MDrawMetric *overall_ink_return, MDrawMetric *overall_logical_return) |
M-text の各文字の表示範囲を計算する. | |
int | mdraw_coordinates_position (MFrame *frame, MText *mt, int from, int to, int x_offset, int y_offset, MDrawControl *control) |
指定した座標に最も近い文字の文字位置を得る. | |
int | mdraw_glyph_info (MFrame *frame, MText *mt, int from, int pos, MDrawControl *control, MDrawGlyphInfo *info) |
グリフに関する情報を計算する. | |
int | mdraw_glyph_list (MFrame *frame, MText *mt, int from, int to, MDrawControl *control, MDrawGlyph *glyphs, int array_size, int *num_glyphs_return) |
グリフ列に関する情報を計算する. | |
void | mdraw_text_items (MFrame *frame, MDrawWindow win, int x, int y, MDrawTextItem *items, int nitems) |
textitem を表示する. | |
int | mdraw_default_line_break (MText *mt, int pos, int from, int to, int line, int y) |
改行位置を計算する. | |
void | mdraw_per_char_extents (MFrame *frame, MText *mt, MDrawMetric *array_return, MDrawMetric *overall_return) |
M-text の文字毎の表示範囲情報を得る. | |
void | mdraw_clear_cache (MText *mt) |
キャッシュ情報を消す. | |
Variables | |
int | mdraw_line_break_option |
表示に用いられるフォントは、フォントセットと face のプロパティに基づいて自動的に決定される。また、フォントのサイズや色や下線などの見栄えも face によって決まる。
M-text の描画フォーマットは多様な方法で制御できるので、強力な二次元レイアウト機能が実現できる。
|
MDrawWindow はウィンドウ、すなわち幾つかの点でスクリーンのミニチュアとして働く矩形領域用の型である。
実際に何を指すかはウィンドウシステムに依存する。 m17n X ライブラリを利用するプログラムは |
|
MDrawRegion は領域、すなわちスクリーン上の任意のピクセルの集合(典型的には矩形領域)用の型である。
実際に何を指すかはウィンドウシステムに依存する。 m17n X ライブラリを利用するプログラムは |
|
関数 mdraw_text() は、フレーム frame のウィンドウ win の座標 (x, y) に、M-text mt の from から to までのテキストを描画する。
テキストの見栄え(フォント、スタイル、色など)は、キーが M-text の各文字を表示するフォントは、フェースの fontset プロパティの値のうちから、以下のアルゴリズムで選ばれる。
以上のアルゴリズムでフォントが見つからなければ、この関数はその文字として空の四角形を表示する。 この関数が描画するのはグリフの前景だけである。背景色を指定するには、関数 mdraw_image_text() か関数 mdraw_text_with_control() を使うこと。
この関数は、X ウィンドウにおける関数
|
|
関数 mdraw_image_text() は、フレーム frame のウィンドウ win の座標 (x, y) に、M-text mt の from から to までのテキストを画像として描く。 テキストの描画方法は mdraw_text() とほぼ同じであるが、この関数ではフェースで指定された色で背景も描く点が異なっている。
この関数は、X ウィンドウにおける
|
|
関数 mdraw_text_with_control() は、フレーム frame のウィンドウ win の座標 (x, y) に、M-text mt の from から to までのテキス トを描く。 テキストの描画方法は mdraw_text() とほぼ同じであるが、この関数は描画制御用のオブジェクト control の指示にも従う点が異なっている。 たとえば control の <two_dimensional> がゼロでなければ、この関数は M-text を2次元的に描く。すなわち M-text 中の改行で行を改め、続く文字は次の行に描く。詳細は構造体 @ MDrawControl の説明を参照すること。 |
|
関数 mdraw_text_extents() は、関数 mdraw_text_with_control() が描画制御オブジェクト control を用いて M-text mt の from から to までをフレーム frame に表示する際に必要となる幅を返す。
overall_ink_return が
overall_logical_return が
overall_line_return が
|
|
関数 mdraw_text_per_char_extents() は、関数 mdraw_text_with_control() が描画制御オブジェクト control を用いて M-text mt の from から to までをフレーム frame に表示する際の各文字のサイズを計算する。 array_size によって ink_array_return とlogical_array_return のサイズを指定する。ink_array_return とlogical_array_return の各要素は、それぞれ文字の描画インクと論理サイズ(M-text の表示原点からの相対位値)によって順に埋められる。設定された ink_array_return と logical_array_return の要素の数は、num_chars_return に戻される。 array_size がすべての寸法を戻せないほど小さい場合には、関数は -1 を返し、必要な大きさを num_chars_return に返す。そうでなければ 0 を返す。
ポインタ overall_ink_return と overall_logical_return が control->two_dimensional が0でなければ、この関数は最初の行の文字のサイズだけを計算する。 |
|
関数 mdraw_coordinates_position() は、関数 mdraw_text_with_control() が描画制御オブジェクト control を用いて、 M-text mt の from から to までを座標 (0, 0) を起点として描画する際に、座標 (x, y) に描画される文字の文字位置を返す。ここで文字位置とは、当該 M-text 中においてその文字が最初から何番目かを示す整数である。ただし最初の文字の文字位置は0とする。 frame はデフォルトのフェースの情報を得るためだけに用いられる。
|
|
関数 mdraw_glyph_info() は、関数 mdraw_text_with_control() が描 画制御オブジェクト control を用いてM-text mt の from から to までをフレーム frame に描画した場合、M-text の文字位置 pos の文字を覆うグリフに関する情報を計算する。 情報はinfo のメンバに保持される。
|
|
関数 mdraw_glyph_list() は、関数 mdraw_text_with_control() が描画制御オブジェクト control を用いてM-text mt の from から to までをフレーム frame に描画した場合の、各グリフの情報を glyphs が指す配列に格納する。 array_size はその配列のサイズである。 もし array_size がすべてのグリフについての情報を格納するのに十分であれば、 num_glyphs_return が指す場所に実際に埋めた要素の数を設定し 0 を返す。 そうでなければ、num_glyphs_return が指す場所に必要な配列のサイズを設定し、 -1 を返す。
|
|
関数 mdraw_text_items() は、一個以上のテキストアイテムを、フレーム frame のウィンドウ win の座標 (x, y) に表示する。items は表示すべきテキストアイテムの配列であり、nitems はその個数である。
|
|
関数 mdraw_default_line_break() は、行が最大幅中に収まらない場合の改行位置を、行番号 line と座標 y に基づいて計算する。 pos は最大幅に収まる最後の文字の次の文字の位置である。 from はその行の最初の文字の位置、to は最大幅が指定されていなければその行に表示される最後の文字の位置である。 line と y は改行文字によって行が改まった際には 0 にリセットされ、最大幅によって行が改まった場合には 1 づつ増やされる。
|
|
関数 mdraw_per_char_extents() は、M-text mt 中の各文字の表示範囲を計算する。この計算に用いるフォントは、 mt のテキストプロパティで指定されたフェースと、フレーム frame のデフォルトフェースによって決まる。array_return の各要素は、mt 中の各文字の表示範囲情報によって順に埋められる。表示範囲情報とは、 表示原点からの相対位置と各文字の占める長方形である。array_return の要素数は、M-text 中の文字数以上でなければならない。
ポインタ overall_return が
|
|
関数 mdraw_clear_cache() は描画関数によって M-text mt に付加されたキャッシュ情報をすべて消去する。MDrawControl の `format' あるいは `line_break' メンバ関数の振舞いが変わった場合にはキャッシュを消去しなくてはならない。
|
|
|