version 1.3, 2000/09/09 03:18:03 |
version 1.8, 2000/11/13 13:36:00 |
Line 369 void vk_detach(struct virtual_key *vk,in |
|
Line 369 void vk_detach(struct virtual_key *vk,in |
|
clean_mode が true の場合は、再帰的に free します。 |
clean_mode が true の場合は、再帰的に free します。 |
|
|
|
|
|
void mgl_set_key_mode(int mode) |
|
|
|
mode に MGL_SK_RAW を指定することで、get_key を RAW モード |
|
にすることができます。 |
|
|
|
RAW モードでは、get_key() で得られる コードは、ASCII コードではなく、 |
|
キーそのものに対応した 7bit の キーコード と 1bit の状態 |
|
が 得られます。 |
|
|
|
例: |
|
ESC を 押した -> 0x01 |
|
ESC を 離した -> 0x81 |
|
|
|
元のモードにするには、 |
|
|
|
mode に MGL_SK_TRANSLATED |
|
|
|
を指定します。 |
|
|
|
また、MGL_SK_EXTRANSLATED を指定すると、 |
|
ASCII コード に モデファイヤー情報を付加した値が得られます。 |
|
|
|
得られるモデファイヤーは、 |
|
MGL_SKM_CAPS |
|
MGL_SKM_SHIFT |
|
MGL_SKM_CTRL |
|
MGL_SKM_ALT |
|
です。 |
|
|
|
また、モデファイヤーを取り除くには、 |
|
|
|
~MGL_SKM_MASK で & を取ってください。 |
|
|
|
例: |
|
c = get_key(-1); |
|
val = c & ~MGL_SKM_MASK; |
|
shift = c & MGL_SKM_SHIFT; |
|
|
|
注意) モデファイヤーを単独で押し/離した 場合 |
|
モディファイヤー情報 | MGL_SKM_NOTICE |
|
が得られます。MGL_SKM_NOTICE が立っている場合は、キーコードは |
|
意味を持ちません。 |
|
|
|
新API) |
|
MGL_SKM_RSHIFT |
|
MGL_SKM_RCTRL |
|
MGL_SKM_RALT |
|
|
|
MGL_SKM_MENU |
|
MGL_SKM_RMENU |
|
|
|
が追加になりました。R 付きの モデファイヤーはデフォルトでは得ることが |
|
できません。mgl_set_keymode(MGL_SK_EXMODIFIER_EVENT) |
|
で 拡張できるようにする予定です。 |
|
|
ge_key_im で使われる 入力メソッド(以下 im) とのインターフェイス |
ge_key_im で使われる 入力メソッド(以下 im) とのインターフェイス |
単純に get_key_im を呼ぶだけで、変換ウインドウが適当に出ますが |
単純に get_key_im を呼ぶだけで、変換ウインドウが適当に出ますが |
場所を多少コントロールできるようになりました。 |
場所を多少コントロールできるようになりました。 |
|
|
|
|
|
マウスイベントに関するモードを次のフラグで設定できます。 |
|
|
|
MGL_SK_EXMOUSE_EVENT |
|
|
|
いままで、ボタンを押している状態でないと マウス移動イベントは得られません |
|
でしたが、このフラグがセットされた場合、ボタンを離していても |
|
マウス移動イベントが得られます。 |
|
|
|
|
|
|
|
キーマップのための関数群。( 対応済は、netbsd+emcons のみ) |
|
|
|
void mgl_get_keymap(int code, char *sym1, char *sym2); |
|
|
|
mgl_get_keymap は、RAW_CODE(code) がどのように 変換されるかを返します。 |
|
sym1 に 通常の 変換シンボル (文字列) |
|
sym2 に シフトされたときの 変換シンボル (文字列) |
|
|
|
が返ります。シンボルの実際のコードが何かを調べるためには、mgl_get_keysym() |
|
を使います。 |
|
|
|
int mgl_get_keysym(char *name); |
|
|
|
シンボルのコードを返します。設定されていない場合 (-1) が返ります。 |
|
|
|
int mgl_set_keysym(char *name, int code); |
|
|
|
一部のシンボルは、mgl_set_keysym を呼ばないと得ることができません。 |
|
code には、任意のコード を指定できます。( virtual_key と同じように |
|
MK_VX を指定することを推奨 ) |
|
|
|
現在この対象になる シンボルは、 |
|
F13 - F24 KP_0 - KP_9 KP_plus KP_minus KP_mult KP_div |
|
KP_delete KP_insert KP_home KP_end KP_up KP_down KP_left KP_right |
|
KP_pageup KP_pagedown KP_begin KP_return KP_execute |
|
break pause print hanzen kanji nuhenkan numlock scrlock select |
|
です。 |
|
|
|
int mgl_set_keymap(int key,char *sym1,char *sym2); |
|
|
|
シンボルを使って keymap を設定します。 |
|
ただし、定義されていない シンボルを指定することはできません。 |
|
|
|
成功した場合: 0 失敗した場合: -1 が返ります。 |
|
|
void im_avoid_point(int x,int y,int clean) |
void im_avoid_point(int x,int y,int clean) |
|
|
im に対し、避けて欲しい矩形領域を通知します。 |
im に対し、避けて欲しい矩形領域を通知します。 |
|
|
1 避けるべきところを避けた。 |
1 避けるべきところを避けた。 |
2 割り当ててもらった領域内。 |
2 割り当ててもらった領域内。 |
|
|
|
|
|
|
|
スクリーン指定関数群 |
|
|
|
以下の関数は、第一引数に screen を指定します。 |
|
対象が current_screen から指定した screen に変更になる以外は、 |
|
上記 prefix なし関数と同じ動作をします。 |
|
|
|
void mgl2_clear_screen(struct screen *s); |
|
void mgl2_put_pixel(struct screen *s,int x, int y, int col); |
|
int mgl2_get_pixel(struct screen *s,int x, int y, int op); |
|
void mgl2_get_pixstream(struct screen *s,int x, int y,int *buf,int length,int dir,int op); |
|
void mgl2_put_pixstream(struct screen *s,int x, int y,int *buf,int length,int dir); |
|
void mgl2_put_pixstream_rect(struct screen *s,int x, int y,int *buf,int length,int dir,int op); |
|
void mgl2_set_color(struct screen *s,int col); |
|
void mgl2_draw_pixel(struct screen *s,int x, int y); |
|
int mgl2_draw_line(struct screen *s,int x1, int y1, int x2, int y2); |
|
void mgl2_draw_rect(struct screen *s,int x, int y, int xs, int ys); |
|
void mgl2_fill_rect(struct screen *s,int x, int y, int xs, int ys); |
|
void mgl2_set_font(struct screen *s,int size,int type); |
|
void mgl2_draw_font(struct screen *s,int x, int y, int code, int dir); |
|
void mgl2_draw_string(struct screen *s,int x, int y, char *str, int dir); |
|
|
-------- MGL1 から削除 |
-------- MGL1 から削除 |
|
|
draw_pixel_wc |
draw_pixel_wc |
|
|
write_screen_native |
write_screen_native |
|
|
---------- 追加/変更 予定のもの |
---------- 追加/変更 予定のもの |
変更はしない方針にしました。 |
|
|
|
1. screen 指定 API 。 |
|
ほとんどの関数が screen 指定可能になります。 |
|
引き数追加ではなく、別関数になるよてい。 |
|
|
|
多分 mgl_ ではない PREFIX が付きます。 |
|
mglws_ ? |
|
|
|
|
1. screen 指定 API 。(結局 追加しました。) |
|
|
2. virtual_key 多分 API が少し変わります。 |
2. virtual_key 多分 API が少し変わります。 |
|
|
---- ここでおしまい。 |
---- ここでおしまい。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|