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)
 フェースのコピーを作る.
int mface_equal (MFace *face1, MFace *face2)
MFacemface_merge (MFace *dst, MFace *src)
 フェースを統合する.
MFacemface_from_font (MFont *font)
 フォントからフェースを作る.
void * mface_get_prop (MFace *face, MSymbol key)
 フェースのプロパティの値を得る.
MFaceHookFunc mface_get_hook (MFace *face)
 フェースのフック関数を得る.
int mface_put_prop (MFace *face, MSymbol key, void *val)
 フェースプロパティの値を設定する.
int mface_put_hook (MFace *face, MFaceHookFunc func)
 フェースのフック関数を設定する.
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 はフェースのフック関数の型である。


関数

MFace* mface (  ) 

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

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

MFace* mface_copy ( MFace face  ) 

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

int mface_equal ( MFace face1,
MFace face2 
)

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_arg

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

MFaceHookFunc mface_get_hook ( MFace face  ) 

関数 mface_get_hook() はフェース 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

int mface_put_hook ( MFace face,
MFaceHookFunc  func 
)

関数 mface_set_hook() は、フェース face のフック関数をfunc に設 定する。

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