Main Page   Modules   Data Structures   Globals   Appendix  

フォント
[GUI API]

フォントオブジェクト. [詳細]

変数: フォントプロパティを指定する定義済みシンボル

MSymbol Mfoundry
 開発元を指定するフォントプロパティのキー.
MSymbol Mfamily
 ファミリを指定するフォントプロパティのキー.
MSymbol Mweight
 太さを指定するフォントプロパティのキー.
MSymbol Mstyle
 スタイルを指定するフォントプロパティのキー.
MSymbol Mstretch
 幅を指定するフォントプロパティのキー.
MSymbol Madstyle
 adstyle を指定するフォントプロパティのキー.
MSymbol Mspacing
 spacing を指定するフォントプロパティのキー.
MSymbol Mregistry
 レジストリを指定するフォントプロパティのキー.
MSymbol Msize
 サイズを指定するフォントプロパティのキー.
MSymbol Motf
 開発元を指定するフォントプロパティのキー.
MSymbol Mfontfile
 フォントファイルを指定するフォントプロパティのキー.
MSymbol Mresolution
 解像度を指定するフォントプロパティのキー.
MSymbol Mmax_advance
 開発元を指定するフォントプロパティのキー.
MSymbol Mfontconfig
 "fontconfig" という名前を持つシンボル.
MSymbol Mx
 "x" という名前を持つシンボル.
MSymbol Mfreetype
 "freetype" という名前を持つシンボル.
MSymbol Mxft
 "xft" という名前を持つシンボル.

型定義

typedef MFont MFont
 フォントの型宣言.

関数

MFontmfont ()
 新しいフォントを作る.
MFontmfont_parse_name (const char *name, MSymbol format)
 フォント名からフォントを作る.
char * mfont_unparse_name (MFont *font, MSymbol format)
 フォントからフォント名を作る.
MFontmfont_copy (MFont *font)
 フォントのコピーを作る.
void * mfont_get_prop (MFont *font, MSymbol key)
 フォントのプロパティの値を得る.
int mfont_put_prop (MFont *font, MSymbol key, void *val)
 フォントのプロパティに値を設定する.
MSymbolmfont_selection_priority ()
 フォント選択の優先度を返す.
int mfont_set_selection_priority (MSymbol *keys)
 フォント選択優先度を設定する.
MFontmfont_find (MFrame *frame, MFont *spec, int *score, int max_size)
 フォントを探す.
int mfont_set_encoding (MFont *font, MSymbol encoding_name, MSymbol repertory_name)
 フォントのエンコーディングを設定する.
char * mfont_name (MFont *font)
 フォント名からフォントを作る.
MFontmfont_from_name (const char *name)
 フォントからフォント名を作る.
int mfont_resize_ratio (MFont *font)
 フォントのリサイズ情報を得る
MPlistmfont_list (MFrame *frame, MFont *font, MSymbol language, int maxnum)
 フォントのリストを得る
MPlistmfont_list_family_names (MFrame *frame)
int mfont_check (MFrame *frame, MFontset *fontset, MSymbol script, MSymbol language, MFont *font)
int mfont_match_p (MFont *font, MFont *spec)
MFontmfont_open (MFrame *frame, MFont *font)
MFontmfont_encapsulate (MFrame *frame, MSymbol data_type, void *data)
int mfont_close (MFont *font)

変数

MPlistmfont_freetype_path
 フォントファイルとフォントファイルを含むディレクトリのリスト.

説明

m17n GUI API はフォントを MFont 型のオブジェクトとして表現する。 フォントは フォントプロパティ を持つことができる。他のタイプのプ ロパティ同様、フォントプロパティはキーと値からなり、キーは以下のシ ンボルのいずれかである。

Mfoundry, Mfamily, Mweight, Mstyle, Mstretch, Madstyle, Mregistry, Msize, Mresolution, Mspacing

フォントプロパティのキーが Msize あるいは Mresolution の場合、値は整数値であり、キーがそれ以外の場合、値はシンボルである。

「フォント F のフォントプロパティのうちキーが Mxxx であるもの」のことを簡単に「F の xxx プロパティ」と呼ぶことがある。

foundry プロパティの値は、adobe, misc 等のフォントの開発元情報を示すシンボルである。

family プロパティの値は、times, helvetica 等のフォントファミリーを示すシンボルである。

weight プロパティの値は、normal, bold 等の太さに関する情報を示すシンボルである。

style プロパティの値は、normal, italic 等のスタイルに関する情報を示すシンボルである。

stretch プロパティの値は、normal, semicondensed 等の文字幅に関する情報を示すシンボルである。

adstyle プロパティの値は、serif, sans-serif 等の抽象的なフォントファミリーに関する情報を示すシンボルである。

registry プロパティの値は、iso10646, iso8895-1 等のレジストリ情報を示すシンボルである。

size プロパティの値は、フォントのデザインサイズを表わす整数値であり、 単位は1/10 ポイントである。

resolution プロパティの値は、想定されているデバイスの解像度を表わす 整数値であり、単位はdots per inch (dpi) である。

type プロパティの値は、フォントドライバを指示し、現在 Mx もしくは Mfreetype である。

m17n ライブラリはフォントオブジェクトを2つの目的で用いている。アプ リケーションプログラムからフォントの指定を受け取る目的と、アプリケー ションプログラムに利用可能なフォントを提示する目的である。アプリケー ションプログラムに対して提示を行う際には、フォントプロパティはすべ て具体的な値を持つ。

m17n ライブラリは Window システムフォント、FreeTypeフォント、 OpenTypeフォントの3種類をサポートしている。


型定義

typedef struct MFont MFont

MFont 型はフォント指定用の構造体であり、フォントのプロパティである foundry, family, weight, style, stretch, adstyle, registry, size, resolution に関する情報を含む。

この構造体はフォントセット内のフォントを指定する際と、使用可能なシステムフォントの情報を格納する際の両方に用いられる。

内部構造はアプリケーションプログラムからは見えない。

参照:
mfont(), mfont_from_name(), mfont_find().


関数

MFont* mfont (  ) 

関数 mfont() はプロパティを一切持たない新しいフォントをオブジェクトを作る。

戻り値:
この関数は作ったフォントオブジェクトへのポインタを返す。

MFont* mfont_parse_name ( const char *  name,
MSymbol  format 
)

関数 mfont_parse_name() は、フォント名 name から取り出されたプロパティを持つ、新しいフォントオブジェクトを作る。

formatname のフォーマットを指定する。formatMx であれば、 name は XLFD (X Logical Font Description) に従って解析される。 formatMfontconfig であれば name は Fontfonfig のフォントテキスト表現に従って解析される。formatMnil であれば、まず XLFD に従って解析され、それに失敗したら Fontconfig に従って解析される。

戻り値:
処理が成功すれば mfont_parse_name() は新しく作られたフォントへのポインタを返す。そうでなければ NULL を返す。

char* mfont_unparse_name ( MFont font,
MSymbol  format 
)

関数 mfont_unparse_name() は フォント名の文字列をフォント font を元にformat に従って作る。

formatMx または Mfontconfig である。 Mx ならばフォント名は XLFD (X Logical Font Description) に従う。 Mfontconfig ならばフォント名は Fontconfig のフォントテキスト表現に従う。

戻り値:
この関数は新たにアロケートしたフォント名の文字列を返す。文字列は、ユーザが free() によって明示的に解放しない限り解放されない。

MFont* mfont_copy ( MFont font  ) 

関数 Mfont_copy() はフォント font のコピーを作り、それを返す。

void* mfont_get_prop ( MFont font,
MSymbol  key 
)

関数 mfont_get_prop() はフォント font のプロパティのうち、キーが key であるものの値を返す。key は以下のシンボルのいずれかでなけれ ばならない。

Mfoundry, Mfamily, Mweight, Mstyle, Mstretch, Madstyle, Mregistry, Msize, Mresolution, Mspacing.

戻り値: keyMfoundry, Mfamily, Mweight, Mstyle,
Mstretch, Madstyle, Mregistry, Mspacing のいずれかであれば、 相当する値をシンボルとして返す。フォントがそのプロパティを持たない 場合にはMnil を返す。keyMsize あるいは Mresolution の 場合には、相当する値をは整数値として返す。フォントがそのプロパティ を持たない場合には 0 を返す。key がそれ以外のものであれば、NULL を返し、外部変数 merror_code にエラーコードを設定する。

int mfont_put_prop ( MFont font,
MSymbol  key,
void *  val 
)

関数 mfont_put_prop() は、フォント font のキーがkey であるプロパ ティの値を val に設定する。key は以下のシンボルのいずれかである。

Mfoundry, Mfamily, Mweight, Mstyle, Mstretch, Madstyle, Mregistry, Msize, Mresolution.

keyMsizeMresolution であれば val は整数値でなくては らない。それ以外の場合、val はプロパティ値の名前のシンボルでなくて はならない。ただしもしその名前が "nil" の場合は、名前が "Nil" のシ ンボルでなくてはならない。

MSymbol* mfont_selection_priority (  ) 

関数 mfont_selection_priority() は 6 つのシンボルからなる配列を作って返す。 配列の要素は、以下のフォントプロパティのキーを優先度順に並べたものである。

Mfamily, Mweight, Mstyle, Mstretch, Madstyle, Msize.

m17n ライブラリはこの配列に従って、最も合致するフォントを選択する。 目的のフォントと、それぞれ違うプロパティの値が合致しないフォントがあった場合、優先度の低いプロパティの値が合致しないフォント(優先度の高いプロパティの値が合致しているフォント)が選択される。

int mfont_set_selection_priority ( MSymbol keys  ) 

関数 mfont_set_selection_priority() は、6つのシンボルの配列 keys にしたがってフォント選択優先度を設定する。配列は以下の各要素を適切 な順番で並べたものである。

Mfamily, Mweight, Mstyle, Mstretch, Madstyle, Msize.

詳細は関数 mfont_selection_priority() の説明を参照のこと。

MFont* mfont_find ( MFrame frame,
MFont spec,
int *  score,
int  max_size 
)

関数 mfont_find() は、フレーム frame 上でフォント定義 spec にもっとも合致する利用可能なフォントへのポインタを返す。

score は NULL であるか、見つかったフォントが spec にどれほど合っているかを示すスコアを保存する場所へのポインタである。 スコアが小さいほど良く合っていることを意味する。

int mfont_set_encoding ( MFont font,
MSymbol  encoding_name,
MSymbol  repertory_name 
)

関数 mfont_set_encoding() はフォント font のエンコーディング情報を設定する。

encoding_name はフォントと同じエンコーディングを持つ文字セットを示すシンボルである。

repertory_nameMnil であるか、フォントと同じエンコーディングを持つ文字セットを示すシンボルである。 Mnil であれば、個々の文字がそのフォントでサポートされているかどうかは、各々のフォントドライバに問い合わせる。

戻り値:
処理が成功すればこの関数は 0 を返す。そうでなければ -1 を返し、外部変数 merror_code にエラーコードを設定する。

char* mfont_name ( MFont font  ) 

この関数は廃止予定である。 mfont_unparse_name() を使用のこと。

MFont* mfont_from_name ( const char *  name  ) 

これは関数は廃止予定である。 mfont_parse_name() を使用のこと。

int mfont_resize_ratio ( MFont font  ) 

関数 mfont_resize_ratio は m17n データベース <font, reisize> を検索し、フォント FONT のリサイズの比率(パーセンテージ) を返す。たとえば返す値が 150 であれば、m17n ライブラリは指定されたサイズの 1.5 倍のフォントを使用することを意味する。

MPlist* mfont_list ( MFrame frame,
MFont font,
MSymbol  language,
int  maxnum 
)

関数 mfont_list() はフレーム frame で利用可能なフォントのリストを 返す。font が NULL でなければ、font と合致する利用可能なフォント のリストを返す。languageMnil でなければ、language をサポー トする利用可能なフォントのリストを返す。maxnum は、0 より大きい場 合には、返すフォントの数の上限である。

ただし、引数 language は旧版との整合性のためだけにあり、その使用は 勧められない。フォントの Mlanguage プロパティを使うべきである。も し font がすでにこのプロパティを持っていたら、引数 language は無

戻り値:
この関数はキーがフォントファミリ名であり値が MFont オブジェクトへの ポインタであるようなplist を返す。plist は m17n_object_unref() で 解放する必要がある。フォントが見つからなければNULL を返す。

MPlist* mfont_list_family_names ( MFrame frame  ) 

int mfont_check ( MFrame frame,
MFontset fontset,
MSymbol  script,
MSymbol  language,
MFont font 
)

int mfont_match_p ( MFont font,
MFont spec 
)

MFont* mfont_open ( MFrame frame,
MFont font 
)

MFont* mfont_encapsulate ( MFrame frame,
MSymbol  data_type,
void *  data 
)

int mfont_close ( MFont font  ) 


変数

MSymbol Mfoundry

変数 Mfoundry"fonudry" という名前を持つシンボルであり、フォントプロパティとフェースプロパティのキーとして用いられる。 値は、フォントの開発元名を名前として持つシンボルである。

MSymbol Mfamily

変数 Mfamily"family" という名前を持つシンボルであり、フォントプロパティとフェースプロパティのキーとして用いられる。 値は、フォントのファミリ名を名前として持つシンボルである。

MSymbol Mweight

変数 Mweight"weight" という名前を持つシンボルであり、フォントプロパティとフェースプロパティのキーとして用いられる。 値は、フォントの太さ名 ( "medium", "bold" 等) を名前として持つシンボルである。

MSymbol Mstyle

変数 Mstyle"style" という名前を持つシンボルであり、フォントプロパティとフェースプロパティのキーとして用いられる。 値は、フォントのスタイル名 ("r", "i", "o" 等)を名前として持つシンボルである。

MSymbol Mstretch

変数 Mstretch"stretch" という名前を持つシンボルであり、フォントプロパティとフェースプロパティのキーとして用いられる。 値は、フォントの文字幅名 ( "normal", "condensed" 等)を名前として持つシンボルである。

MSymbol Madstyle

変数 Madstyle"adstyle" という名前を持つシンボルであり、フォントプロパティとフェースプロパティのキーとして用いられる。 値は、フォントの adstyle 名("serif", "", "sans" 等)を名前として持つシンボルである。

MSymbol Mspacing

変数 Mspacing"spacing" という名前を持つシンボルであり、 フォントプロパティのキーとして用いられる。値は、フォントの spacing 特性を示す名前 ("p", "m" 等)を持つシンボルである。

MSymbol Mregistry

変数 Mregistry"registry" という名前を持つシンボルであり、フォントプロパティとフェースプロパティのキーとして用いられる。 値は、フォントのレジストリ名 ( "iso8859-1", "jisx0208.1983-0" 等) を名前として持つシンボルである。

MSymbol Msize

変数 Msize"size" という名前を持つシンボルであり、フォントプロパティとフェースプロパティのキーとして用いられる。値は、 100 dpi のディスプレイ上でのフォントのデザインサイズを 1/10 ポイント単位で示す整数値である。

MSymbol Motf

変数 Mfoundry"fonudry" という名前を持つシンボルであり、フォントプロパティとフェースプロパティのキーとして用いられる。 値は、フォントの開発元名を名前として持つシンボルである。

MSymbol Mfontfile

変数 Mfontfile"fontfile" という名前を持つシンボルであ り、フォントプロパティのキーとして用いられる。値は、フォントファイ ル名を名前として持つとするシンボルである。

MSymbol Mresolution

変数 Mresolution"resolution" という名前を持つシンボルであり、フォントプロパティとフェースプロパティのキーとして用いられる。 値は、フォントの解像度を dots per inch (dpi) 単位で示す整数値である。

MSymbol Mmax_advance

変数 Mfoundry"fonudry" という名前を持つシンボルであり、フォントプロパティとフェースプロパティのキーとして用いられる。 値は、フォントの開発元名を名前として持つシンボルである。

MSymbol Mfontconfig

変数 Mfontconfig は関数 mfont_parse_name()mfont_unparse_name() の引数として用いられる。

MSymbol Mx

変数 Mx は構造 MDrawGlyph のメンバ <type> の値として用いられ、メンバ <fontp> の型が実際には (XFontStruct *) であることを表す.

MSymbol Mfreetype

変数 Mfreetype は構造 MDrawGlyph のメンバ <type> の値として用いられ、メンバ <fontp> の型が実際には FT_Face であることを表す。

MSymbol Mxft

変数 Mxft は構造 MDrawGlyph のメンバ <type> の値として用いられ、メンバ <fontp> の型が実際には (XftFont *) であることを表す。

MPlist* mfont_freetype_path

変数 mfont_freetype_path は、フォントファイルとフォントファイルを含むディレクトリの plist である。各要素のキーは Mstring であり、値はフォントファイルかディレクトリを示す文字列である。

マクロ M17N_INIT() によって、この変数は m17n データベースと環境変数 "M17NDIR" 双方のサブディレクトリ "fonts" を含むように設定される。 mframe() の最初の呼び出しの際に、この変数から実際に使用できるフォントの内部リストが作られる。 そこでアプリケーションプログラムは、mframe() を呼ぶ前に(必要ならば)この変数を変更しなくてはならない。 新しい要素を追加する場合には、その値は安全に開放できる文字列でなくてはならない。

m17n ライブラリが FreeType ライブラリを使うように設定されてない場合には、この変数は用いられない。


このページの先頭

Main Page   Modules   Data Structures   Globals   Appendix  

mulemark