Main Page   Modules   Data Structures   Globals   Appendix  

フェース
[GUI API]

フェースとは、M-text の見栄えを制御するオブジェクトである. [詳細]

データ構造

struct  MFaceHLineProp
 フェースの水平線指定用型宣言. [詳細]
struct  MFaceBoxProp
 フェースの囲み枠指定用型宣言. [詳細]

変数: フェースプロパティのキー

MSymbol Mforeground
 前景色を指定するフェースプロパティーのキー.
MSymbol Mbackground
 背景色を指定するためのフェースプロパティーのキー.
MSymbol Mvideomode
 ビデオモードを指定するためのフェースプロパティーのキー.
MSymbol Mratio
 フォントのサイズの比率を指定するためのフェースプロパティーのキー.
MSymbol Mhline
 水平線を指定するためのフェースプロパティーのキー.
MSymbol Mbox
 囲み枠を指定するためのフェースプロパティーのキー.
MSymbol Mfontset
 フォントセットを指定するためのフェースプロパティーのキー.
MSymbol Mhook_func
 フックを指定するためのフェースプロパティーのキー.
MSymbol Mhook_arg
 フックの引数を指定するためのフェースプロパティーのキー.

変数: フェースの #Mvideomode プロパティの可能な値

MSymbol Mnormal
MSymbol Mreverse

変数: 定義済みフェース

MFacemface_normal_video
 標準ビデオフェース.
MFacemface_reverse_video
 リバースビデオフェース.
MFacemface_underline
 下線フェース.
MFacemface_medium
 ミディアムフェース.
MFacemface_bold
 ボールドフェース.
MFacemface_italic
 イタリックフェース.
MFacemface_bold_italic
 ボールドイタリックフェース.
MFacemface_xx_small
 最小のフェース.
MFacemface_x_small
 もっと小さいフェース.
MFacemface_small
 小さいフェース.
MFacemface_normalsize
 標準の大きさのフェース.
MFacemface_large
 大きいフェース.
MFacemface_x_large
 もっと大きいフェース.
MFacemface_xx_large
 最大のフェース.
MFacemface_black
 黒フェース.
MFacemface_white
 白フェース.
MFacemface_red
 赤フェース.
MFacemface_green
 緑フェース.
MFacemface_blue
 青フェース.
MFacemface_cyan
 シアンフェース.
MFacemface_yellow
 黄フェース.
MFacemface_magenta
 マゼンタフェース.

変数: フェースを取り扱うためのその他のシンボル

MSymbol Mface
 フェースを指定するテキストプロパティのキー.

型定義

typedef MFace MFace
 フェースの型宣言.
typedef void(* MFaceHookFunc )(MFace *face, void *arg, void *info)
 フェースのフック関数の型宣言.

関数

MFacemface ()
 新しいフェースをつくる.
MFacemface_copy (MFace *face)
 フェースのコピーを作る.
MFacemface_merge (MFace *dst, MFace *src)
 フェースを統合する.
MFacemface_from_font (MFont *font)
 フォントからフェースを作る.
void * mface_get_prop (MFace *face, MSymbol key)
 フェースのプロパティの値を得る.
int mface_put_prop (MFace *face, MSymbol key, void *val)
 フェースプロパティの値を設定する.
void mface_update (MFrame *frame, MFace *face)
 フェースを更新する.

説明

フェースMFace 型のオブジェクトであり、M-text の表示方法 を制御する。フェースは固定個数の フェースプロパティ を持つ。 フェースプロパティはキーと値からなる。キーは以下のシンボルのいずれかである。

Mforeground, Mbackground, Mvideomode, Mhline, Mbox, Mfoundry, Mfamily, Mweight, Mstyle, Mstretch, Madstyle, Msize, Mfontset, Mratio, Mhook_func, Mhook_arg

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

M-text の表示関数は、まず最初にその M-text からキーがシンボル Mface であるようなテキストプロパティを探し、次にその値に従って M-text を表示する。この値はフェースオブジェクトへのポインタでなけ ればならない。

M-text が、Mface をキーとするテキストプロパティを複数持っており、 かつそれらの値の間に衝突がないならば、フェース情報は組み合わされて 用いられる。

あるテキスト属性がどのフェースによっても指定されていない場合は、デ フォルトフェースの値が用いられる。


型定義

typedef struct MFace MFace
 

MFace 型はフェースオブジェクトのための構造体である。内部構造は アプリケーションプログラムからは見えない。

typedef void(* MFaceHookFunc)(MFace *face, void *arg, void *info)
 

MFaceHookFunc はフェースの #Mhook プロパティを指定する型である。 このプロパティの値は、この型の関数でなくてはならない。


関数

MFace* mface  ) 
 

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

戻り値:
この関数は作ったフェースへのポインタを返す。

MFace* mface_copy MFace face  ) 
 

関数 mface_copy() はフェース face のコピーを作り、そのコピーへの ポインタを返す。

MFace* mface_merge MFace dst,
MFace src
 

関数 mface_merge() は、フェース src のプロパティをフェース dst に統合する。

戻り値:
この関数は dst を返す。

MFace* mface_from_font MFont font  ) 
 

関数 mface_from_font() はフォント font のプロパティをプロパティ として持つ新しいフェースを作り、それを返す。

void* mface_get_prop MFace face,
MSymbol  key
 

関数 mface_get_prop() は、フェース face が持つフェースプロパティ の内、キーが key であるものの値を返す。key は下記のいずれかでな ければならない。

Mforeground, Mbackground, Mvideomode, Mhline, Mbox, Mfoundry, Mfamily, Mweight, Mstyle, Mstretch, Madstyle, Msize, Mfontset, Mratio, Mhook_func, Mhook_arg

戻り値:
戻り値の型は key に依存する。上記のキーの説明を参照するこ と。エラーが検出された場合は NULL を返し、外部変数 merror_code にエラーコードを設定する。
参照:
mface_put_prop()
エラー:
MERROR_FACE

int mface_put_prop MFace face,
MSymbol  key,
void *  val
 

関数 mface_put_prop() は、フェース face 内でキーが key であるプ ロパティの値を val に設定する。key は以下のいずれかでなくてはな らない。

Mforeground, Mbackground, Mvideomode, Mhline, Mbox, Mfoundry, Mfamily, Mweight, Mstyle, Mstretch, Madstyle, Msize, Mfontset, Mratio, Mhook_func, Mhook_arg.

これらのうちの、フォント関連のプロパティ (Mfamily から Msize まで) は、フェースのフォントセット中のフォントに関するデフォルト値 となり、個々のフォントが値を指定しなかった場合に用いられる。

戻り値の型は key に依存する。上記のキーの説明を参照すること。

戻り値:
処理が成功した場合、mface_put_prop() は 0 を返す。失敗した場合は -1 を返し、外部変数 merror_code にエラーコードを設定する。
参照:
mface_get_prop()
エラー:
MERROR_FACE

void mface_update MFrame frame,
MFace face
 

関数 mface_update() はフレーム frame のフェース faceface のフック関数を(あれば)呼んで更新する。


変数

MSymbol Mforeground
 

変数 Mforeground はフェースプロパティのキーとして用いられる。 プロパティの値は、色名を名前として持つシンボルか Mnil である。

Mnil の場合、前景色は指定されない。そうでなければ M-text の前景は 指定された色で表示される。

MSymbol Mbackground
 

変数 Mbackground はフェースプロパティのキーとして用いられる。 プロパティの値は、色名を名前として持つシンボルか Mnil である。

Mnil の場合、背景色は指定されない。そうでなければ M-text の背景は 指定された色で表示される。

MSymbol Mvideomode
 

変数 Mvideomode はフェースプロパティのキーとして用いられる。 プロパティの値は、Mnormal, Mreverse, Mnil のいずれかでなくてはならない。

Mnormal の場合は、M-text は標準のビデオモード(前景を前景色で、背 景を背景色で)で表示する。

Mreverse の場合はリバースビデオモードで(前景を背景色で、背景を前 景色で)表示する。

Mnil の場合はビデオモードは指定されない。

MSymbol Mratio
 

変数 Mratio はフェースプロパティのキーとして用いられる。値 RATIO は整数値でなくてはならない。

値が0ならば、フォントサイズは指定されない。そうでなければ、M-text は(FONTSIZE * RATIO / 100) というサイズのフォントで表示される。こ こで FONTSIZE はフェースプロパティー Msize で指定されたサイズであ る。

MSymbol Mhline
 

変数 Mhline はフェースプロパティのキーとして用いられる。値は MFaceHLineProp 型オブジェクトへのポインタか NULL でなくてはな らない。

値が NULL ならば、このプロパティは指定されない。そうでなければ値 が指すオブジェクトに指定されたように水平線を付加して M-text を表示 する。

MSymbol Mbox
 

変数 Mbox はフェースプロパティのキーとして用いられる。値は MFaceBoxProp 型オブジェクトへのポインタか NULL でなくてはなら ない。

値が NULL ならば、このプロパティは指定されない。そうでなければ値 が指すオブジェクトに指定されたように囲み枠を付加して M-text を表示 する。

MSymbol Mfontset
 

変数 Mfontset はフェースプロパティのキーとして用いられる。値は Mfontset 型オブジェクトへのポインタか NULL でなくてはならない。

値が NULL ならば、フォントセットは指定されない。そうでなければ値 が指すオブジェクトに指定されたフォントセットから選んだフォントで M-text を表示する。

MSymbol Mhook_func
 

変数 Mhook_func はフェースプロパティのキーとして用いられる。値は MFaceHookFunc 型の関数か NULL でなくてはならない。

値が NULL ならば、フックは指定されない。そうでなければフェースを 実現する前に指定した関数が呼ばれる。

MSymbol Mhook_arg
 

変数 Mhook_arg はフェースプロパティのキーとして用いられる。値は 何でもよく、フェースプロパティ Mhook_func で指定される関数に渡さ れる。

MSymbol Mnormal
 

変数 Mvideomode の説明を参照のこと。

MSymbol Mreverse
 

変数 Mvideomode の説明を参照のこと。

MFace* mface_normal_video
 

変数 mface_normal_videoMvideomode プロパティの値が Mnormal であるフェースを指すポインタである。他のプロパティは指定されない。 このフェースで表示されるM-text は標準の色 (すなわち前景は前景色、 背景は背景色)で描かれる。

MFace* mface_reverse_video
 

変数 mface_reverse_videoMvideomode プロパティの値が Mreverse であるフェースを指すポインタである。他のプロパティは指定 されない。このフェースで表示されるM-text は前景色と背景色が入れ替 わって (すなわち前景は背景色、背景は前景色)描かれる。

MFace* mface_underline
 

変数 mface_underlineMhline プロパテイの値が MFaceHLineProp 型オブジェクトへのポインタであるフェースを指すポインタである。オブ ジェクトのメンバは以下の通り。

    メンバ  値
    -----   -----
    type    MFACE_HLINE_UNDER
    width   1
    color   Mnil

他のプロパティは指定されない。このフェースを持つ M-text は下線付き で表示される。

MFace* mface_medium
 

変数 mface_mediumMweight プロパテイの値が "medium" という名 前をもつシンボルであるようなフェースを指すポインタである。他のプロ パティは指定されない。このフェースを持つ M-text は、ミディアムウェ イトのフォントで表示される。

MFace* mface_bold
 

変数 mface_boldMweight プロパテイの値が "bold" という名前を もつシンボルであるようなフェースを指すポインタである。他のプロパティ は指定されない。このフェースを持つ M-text は、ボールドのフォントで 表示される。

MFace* mface_italic
 

変数 mface_italicMstyle プロパテイの値が "italic" という名前 をもつシンボルであるようなフェースを指すポインタである。他のプロパ ティは指定されない。このフェースを持つ M-text は、イタリック体で表 示される。

MFace* mface_bold_italic
 

変数 mface_bold_italic は、Mweight プロパテイの値が "bold" とい う名前をもつシンボルであり、かつ Mstyle プロパテイの値が "italic" という名前をもつシンボルであるようなフェースを指すポインタである。 他のプロパティは指定されない。このフェースを持つ M-text は、ボール ドイタリック体で表示される。

MFace* mface_xx_small
 

変数 mface_xx_small は、Mratio プロパティの値が 50 であるフェー スを指すポインタである。他のプロパティは指定されない。このフェース を持つ M-text は標準の 50% の大きさのフォントを用いて表示される。

MFace* mface_x_small
 

変数 mface_x_small は、Mratio プロパティの値が 66 であるフェー スを指すポインタである。他のプロパティは指定されない。このフェース を持つ M-text は標準の 66% の大きさのフォントを用いて表示される。

MFace* mface_small
 

変数 mface_small は、Mratio プロパティの値が 75 であるフェースを 指すポインタである。他のプロパティは指定されない。このフェースを持 つ M-text は標準の 75% の大きさのフォントを用いて表示される。

MFace* mface_normalsize
 

変数 mface_normalsize は、Mratio プロパティの値が 100 であるフェー スを指すポインタである。他のプロパティは指定されない。このフェース を持つ M-text は標準と同じ大きさのフォントを用いて表示される。

MFace* mface_large
 

変数 mface_large は、Mratio プロパティの値が 120 であるフェース を指すポインタである。他のプロパティは指定されない。このフェースを 持つ M-text は標準の 120% の大きさのフォントを用いて表示される。

MFace* mface_x_large
 

変数 mface_x_large は、Mratio プロパティの値が 150 であるフェー スを指すポインタである。他のプロパティは指定されない。このフェース を持つ M-text は標準の 150% の大きさのフォントを用いて表示される。

MFace* mface_xx_large
 

変数 mface_xx_large は、Mratio プロパティの値が 200 であるフェー スを指すポインタである。他のプロパティは指定されない。このフェース を持つ M-text は標準の 200% の大きさのフォントを用いて表示される。

MFace* mface_black
 

変数 mface_black は、Mforeground プロパティの値として "black" と いう名前のシンボルを持つようなフェースを指すポインタである。他のプ ロパティは指定されない。このフェースを持つ M-text は前景色を黒とし て表示される。

MFace* mface_white
 

変数 mface_white は、Mforeground プロパティの値として "white" と いう名前のシンボルを持つようなフェースを指すポインタである。他のプ ロパティは指定されない。このフェースを持つ M-text は前景色を白とし て表示される。

MFace* mface_red
 

変数 mface_red は、Mforeground プロパティの値として "red" という 名前のシンボルを持つようなフェースを指すポインタである。他のプロパ ティは指定されない。このフェースを持つ M-text は前景色を赤として表 示される。

MFace* mface_green
 

変数 mface_green は、Mforeground プロパティの値として "green" と いう名前のシンボルを持つようなフェースを指すポインタである。他のプ ロパティは指定されない。このフェースを持つ M-text は前景色を緑とし て表示される。

MFace* mface_blue
 

変数 mface_blue は、Mforeground プロパティの値として "blue" とい う名前のシンボルを持つようなフェースを指すポインタである。他のプロ パティは指定されない。このフェースを持つ M-text は前景色を青として 表示される。

MFace* mface_cyan
 

変数 mface_cyan は、Mforeground プロパティの値として "cyan" とい う名前のシンボルを持つようなフェースを指すポインタである。他のプロ パティは指定されない。このフェースを持つ M-text は前景色をシアンと して表示される。

MFace* mface_yellow
 

変数 mface_yellow は、Mforeground プロパティの値として "yellow" という名前のシンボルを持つようなフェースを指すポインタである。他の プロパティは指定されない。このフェースを持つ M-text は前景色を黄色 として表示される。

MFace* mface_magenta
 

変数 mface_magenta は、Mforeground プロパティの値として "magenta" という名前のシンボルを持つようなフェースを指すポインタで ある。他のプロパティは指定されない。このフェースを持つ M-text は前 景色をマゼンタとして表示される。

MSymbol Mface
 

変数 Mface"face" という名前を持つシンボルである。こ のシンボルをキーとするテキストプロパティは、MFace 型のオブジェク トへのポインタを持たなければならない。これは管理キーである。


このページの先頭

Main Page   Modules   Data Structures   Globals   Appendix  

mulemark mule-aist@m17n.org