//	ＡＩＧライブラリ　メニューバー関数
//		Copyright (C) 1989-1994 by AIG-SOFT

#ifndef	__AIG_MENUBAR__
#define	__AIG_MENUBAR__	1

#include "mcolors.h"

/* 定数定義 */
#define	BRCODE	4	/* メニューバー内部データを返すint配列の要素数 */

/* メニューバー構造体 */
/* V2.0 : ビットフィールド */
/* V2.1 : unchar（高速化＋本体省メモリーのため）*/
typedef struct BAR_DATA { /* メニューバーモード */
	unchar	remake;		/* non remake menu : 0=none,1=項目再表示なし,2=再表示 */
	
	unchar	mouse;		/* mouse use (1) */
	unchar	cursor;		/* カーソル on(1)/off(0) */
	
	unchar	direct;		/* direct key jump : 0=none,1=select only,2=select&[RET] */
	unchar	downret;	/* return key : 0=[RET] only , 1=[RET]+↓ */
	
	unchar	floop;		/* select menues : 0=stop , 1=loop */
	unchar	ex_left;	/* left exit (1) : [1]選択時にleftを押すとﾘﾀｰﾝ */
	unchar	ex_right;	/* right exit(1) : [n]選択時にrightを押すとﾘﾀｰﾝ */
	
	unchar	md_non;		/* non select enable (1) */
	unchar	md_spcol;	/* special color enable (1) */
	
	unchar	md_revlen;	/* 項目反転モード：0=menu len , 1=mlen */
	unchar	md_mes;		/* 項目表示モード：0=左 , 1=中央 , 2=右 */
	unchar	md_each;	/* 0=自動等配分 , 1=項目幅配分 , 2=固定幅配分 */
	
	unchar	ti_mode;	/* タイトル表示モード : 0=左 , 1=右 */
	
	unsint	resv;		/* 汎用利用領域：１６ビット分 */
	
	/* その他 */
	unsint	wx;		/* 固定幅配分時の幅：0=maxlen , >0=その幅 */
	unsint	wcol;		/* 項目段間桁数 */
	
	unsint	resv2;		/*（現在は未使用）*/
	
	unsint	startx;		/* メニューバー移動可能範囲 */
	unsint	starty;
	unsint	endx;
	unsint	endy;
	
	/* 項目枠線 */
	unsint	cwaku;		/* 枠線モード：0=なし,1=あり */
	unsint	wptrn;		/* 枠パターン */
	
	/* 操作キー */
	unchar	*keys;		/* （現在は使っていない）*/
	unsint	exits;		/* 緊急脱出キーの数 */
	int	*exit;		/* 緊急脱出キーデータのあるアドレス */
} _BAR_DATA;


#ifdef	__cplusplus
// 95/11 : G++対応
extern	"C" {
#endif
#ifdef	__PROTO_TYPE
	int	menubar(int *,int *,int *,int,int,unchar **,int *
				,_BAR_DATA *,MCOLORS *,unchar *(*),int *);
	int	bar_width(int *,int *,int *,int,unchar **,_BAR_DATA *,int *,int *);
	int	bar_mouse(int,int *,int,int,int,int,int *,unchar **,int *,int);
	void	set_dbar_data(_BAR_DATA *);
#else
	int	menubar();
	int	bar_width();
	int	bar_mouse();
	void	set_dbar_data();
#endif
#ifdef	__cplusplus
}
#endif

#endif
