home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 3 / FREEWARE.BIN / towns_os / fildlg22 / button.h < prev    next >
C/C++ Source or Header  |  1980-01-02  |  3KB  |  139 lines

  1. /*
  2.  *    button.h
  3.  */
  4. #ifndef    _BUTTON_H
  5. #define    _BUTTON_H
  6.  
  7.  
  8. typedef    struct    button    {
  9.     struct button    *next;
  10.     char        *string;    /* ボタン内に表示する文字列 */
  11.     int        btnId;
  12.     int        enable;        /* 0:文字列は灰色表示, !0:黒表示 */
  13.     int        on;
  14.     int        repeat;        /* repeat属性 */
  15.     int        luX;        /* ボタンの左上X座標 */
  16.     int        luY;        /* ボタンの左上Y座標 */
  17. }    button_t;
  18. /*
  19.     ★--------------------------+    ★: luX, luY
  20.     |             8        |
  21.     |   +-------------------+   |
  22.     |   |             |    |   |
  23.     | 8 |    文字列        16    | 8 |    周囲2ドットはオンオフ反転領域
  24.     |   |             |    |   |
  25.     |   +-------------------+   |
  26.     |             8        |
  27.     +---------------------------+
  28. */
  29.  
  30.  
  31. extern    int
  32. BTN_create(
  33.     button_t    *btn);
  34. /*
  35.  *    PURPOSE
  36.  *        指定されたパラメタでボタンを作成,表示し,ボタンIDを返す.
  37.  *        指定すべきパラメタ(button_tのメンバ名)は以下の通り.
  38.  *            string, enable, repeat, luX, luY
  39.  *    RETURNS
  40.  *        >= 0    : ボタンID
  41.  *        -1    : ボタンの生成不可
  42.  *    NOTICE
  43.  *        本関数はパラメタで渡されたボタン構造体の
  44.  *        メンバstringをそのまま保持するため,
  45.  *        呼出元はstringが指す先の文字列を破壊してはならない.
  46.  *    IMPLEMENT
  47.  *        本来は動的にメモリを確保すべきだが,
  48.  *        ここではとりあえず固定領域を使用する.
  49.  */
  50. extern    void
  51. BTN_allDestroy(void);
  52. /*
  53.  *    PURPOSE
  54.  *        全ボタンを削除する.
  55.  *    IMPLEMENT
  56.  *        本来は個別のボタンをひとつずつ解放していくべきだが,
  57.  *        ここでは_BT_NextButtonを初期化するだけとする.
  58.  */
  59. extern    int
  60. BTN_setName(
  61.     int    btnId,
  62.     char    *string);    /* 変更後のボタン名 */
  63. /*
  64.  *    PURPOSE
  65.  *        指定されたボタンのボタン名を消去後,
  66.  *        指定された文字列をボタン名として表示する.
  67.  *        旧ボタン名と新ボタン名の長さは等しいこと.
  68.  *    RETURNS
  69.  *        0    : 正常終了
  70.  *        -1    : ボタンIDが正しくない
  71.  *    NOTICE
  72.  *        本関数はパラメタstringをそのまま保持するため,
  73.  *        呼出元はstringが指す先の文字列を破壊してはならない.
  74.  */
  75. extern    int
  76. BTN_enable(
  77.     int    btnId,
  78.     int    enable);
  79. /*
  80.  *    PURPOSE
  81.  *        指定されたボタンの有効状態を変更し,表示する.
  82.  *    RETURNS
  83.  *        0    : 正常終了
  84.  *        -1    : ボタンIDが正しくない
  85.  */
  86. extern    int
  87. BTN_reverse(
  88.     int    btnId);
  89. /*
  90.  *    PURPOSE
  91.  *        指定したボタンのオンオフを反転し,表示する.
  92.  *    RETURNS
  93.  *        0    : 正常終了
  94.  *        -1    : ボタンIDが正しくない
  95.  */
  96. extern    int
  97. BTN_posCheck(
  98.     int    btnId,
  99.     int    x,
  100.     int    y);
  101. /*
  102.  *    PURPOSE
  103.  *        指定した座標がボタン内か否かを判定し,その結果を通知する.
  104.  *        指定したボタンがenableでなければ,その旨を通知する.
  105.  *    RETURNS
  106.  *        1    : 指定座標はボタン内
  107.  *        0    : ボタン外
  108.  *        -1    : ボタンIDが正しくない
  109.  *        -2    : ボタンがenableでない
  110.  */
  111. extern    int
  112. BTN_isRepeat(
  113.     int    btnId);
  114. /*
  115.  *    PURPOSE
  116.  *        指定したボタンがRepeat属性を持つか否かを通知する.
  117.  *    RETURNS
  118.  *        1    : Repeat属性を持つ
  119.  *        0    : Repeat属性を持たない
  120.  *        -1    : ボタンIDが正しくない
  121.  */
  122. extern    int
  123. BTN_getButtonEvent(
  124.     int    buttonIds[]);
  125. /*
  126.  *    PURPOSE
  127.  *        マウスでクリックされたダイアログボタンの
  128.  *        配列インデックス(イベントID)を通知する.
  129.  *        押下をチェックするダイアログボタンのIDは,
  130.  *        buttonIds[]で指定する.
  131.  *        最終IDの次の要素には-1を格納しておくこと.
  132.  *    RETURNS
  133.  *        配列インデックス(イベントID)
  134.  */
  135.  
  136.  
  137. #endif
  138. /*****    button.h  *****/
  139.