home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 3
/
FREEWARE.BIN
/
towns_os
/
fildlg22
/
button.h
< prev
next >
Wrap
C/C++ Source or Header
|
1980-01-02
|
3KB
|
139 lines
/*
* button.h
*/
#ifndef _BUTTON_H
#define _BUTTON_H
typedef struct button {
struct button *next;
char *string; /* ボタン内に表示する文字列 */
int btnId;
int enable; /* 0:文字列は灰色表示, !0:黒表示 */
int on;
int repeat; /* repeat属性 */
int luX; /* ボタンの左上X座標 */
int luY; /* ボタンの左上Y座標 */
} button_t;
/*
★--------------------------+ ★: luX, luY
| 8 |
| +-------------------+ |
| | | | |
| 8 | 文字列 16 | 8 | 周囲2ドットはオンオフ反転領域
| | | | |
| +-------------------+ |
| 8 |
+---------------------------+
*/
extern int
BTN_create(
button_t *btn);
/*
* PURPOSE
* 指定されたパラメタでボタンを作成,表示し,ボタンIDを返す.
* 指定すべきパラメタ(button_tのメンバ名)は以下の通り.
* string, enable, repeat, luX, luY
* RETURNS
* >= 0 : ボタンID
* -1 : ボタンの生成不可
* NOTICE
* 本関数はパラメタで渡されたボタン構造体の
* メンバstringをそのまま保持するため,
* 呼出元はstringが指す先の文字列を破壊してはならない.
* IMPLEMENT
* 本来は動的にメモリを確保すべきだが,
* ここではとりあえず固定領域を使用する.
*/
extern void
BTN_allDestroy(void);
/*
* PURPOSE
* 全ボタンを削除する.
* IMPLEMENT
* 本来は個別のボタンをひとつずつ解放していくべきだが,
* ここでは_BT_NextButtonを初期化するだけとする.
*/
extern int
BTN_setName(
int btnId,
char *string); /* 変更後のボタン名 */
/*
* PURPOSE
* 指定されたボタンのボタン名を消去後,
* 指定された文字列をボタン名として表示する.
* 旧ボタン名と新ボタン名の長さは等しいこと.
* RETURNS
* 0 : 正常終了
* -1 : ボタンIDが正しくない
* NOTICE
* 本関数はパラメタstringをそのまま保持するため,
* 呼出元はstringが指す先の文字列を破壊してはならない.
*/
extern int
BTN_enable(
int btnId,
int enable);
/*
* PURPOSE
* 指定されたボタンの有効状態を変更し,表示する.
* RETURNS
* 0 : 正常終了
* -1 : ボタンIDが正しくない
*/
extern int
BTN_reverse(
int btnId);
/*
* PURPOSE
* 指定したボタンのオンオフを反転し,表示する.
* RETURNS
* 0 : 正常終了
* -1 : ボタンIDが正しくない
*/
extern int
BTN_posCheck(
int btnId,
int x,
int y);
/*
* PURPOSE
* 指定した座標がボタン内か否かを判定し,その結果を通知する.
* 指定したボタンがenableでなければ,その旨を通知する.
* RETURNS
* 1 : 指定座標はボタン内
* 0 : ボタン外
* -1 : ボタンIDが正しくない
* -2 : ボタンがenableでない
*/
extern int
BTN_isRepeat(
int btnId);
/*
* PURPOSE
* 指定したボタンがRepeat属性を持つか否かを通知する.
* RETURNS
* 1 : Repeat属性を持つ
* 0 : Repeat属性を持たない
* -1 : ボタンIDが正しくない
*/
extern int
BTN_getButtonEvent(
int buttonIds[]);
/*
* PURPOSE
* マウスでクリックされたダイアログボタンの
* 配列インデックス(イベントID)を通知する.
* 押下をチェックするダイアログボタンのIDは,
* buttonIds[]で指定する.
* 最終IDの次の要素には-1を格納しておくこと.
* RETURNS
* 配列インデックス(イベントID)
*/
#endif
/***** button.h *****/