File:  [RetroPC.NET] / np2 / embed / menubase / menudlg.h
Revision 1.4: download - view: text, annotated - select for diffs
Thu Mar 24 13:40:33 2005 JST (20 years, 7 months ago) by yui
Branches: MAIN
CVS tags: VER_0_82_x64, VER_0_82, VER_0_81A, VER_0_81, HEAD
fix wince literals (T.Yui)


enum {
	DLGMSG_CREATE	= 0,
	DLGMSG_COMMAND,
	DLGMSG_CLOSE,
	DLGMSG_DESTROY
};

enum {
	DMSG_SETHIDE		= 0,
	DMSG_GETHIDE,
	DMSG_SETENABLE,
	DMSG_GETENABLE,
	DMSG_SETVAL,
	DMSG_GETVAL,
	DMSG_SETVRAM,
	DMSG_SETTEXT,
	DMSG_SETICON,
	DMSG_ITEMAPPEND,
	DMSG_ITEMRESET,
	DMSG_ITEMSET,
	DMSG_ITEMSETEX,
	DMSG_SETLISTPOS,
	DMSG_SETRECT,
	DMSG_GETRECT,
	DMSG_SETFONT,
	DMSG_GETFONT
};

enum {
	MSS_TOP				= 0x0020,
	MSS_BOTH			= 0x0010,
	MSS_POSMASK			= 0x0030,
	MSS_VERT			= 0x0040,

	MSL_VERT			= 0x0010,

	MST_LEFT			= 0x0000,
	MST_CENTER			= 0x0010,
	MST_RIGHT			= 0x0020,
	MST_POSMASK			= 0x0030
};


enum {
	DLGTYPE_BASE	= 0,
	DLGTYPE_CLOSE,
	DLGTYPE_BUTTON,
	DLGTYPE_LIST,

	DLGTYPE_SLIDER,

	DLGTYPE_TABLIST,
	DLGTYPE_RADIO,
	DLGTYPE_CHECK,

	DLGTYPE_FRAME,
	DLGTYPE_EDIT,
	DLGTYPE_TEXT,
	DLGTYPE_ICON,
	DLGTYPE_VRAM,
	DLGTYPE_LINE,
	DLGTYPE_BOX,

// ݊pc
	DLGTYPE_LTEXT,
	DLGTYPE_CTEXT,
	DLGTYPE_RTEXT
};

typedef struct {
	int		type;
	MENUID	id;
	MENUFLG	flg;
const void	*arg;
	int		posx;
	int		posy;
	int		width;
	int		height;
} MENUPRM;

typedef struct {
	UINT16		pos;
	UINT16		icon;
const OEMCHAR	*str;
} ITEMEXPRM;

#define SLIDERPOS(a, b)		(((UINT16)a) | (((UINT16)b) << 16))


#ifdef __cplusplus
extern "C" {
#endif

BRESULT menudlg_create(int width, int height, const OEMCHAR *str,
								int (*proc)(int msg, MENUID id, long param));
void menudlg_destroy(void);

BRESULT menudlg_appends(const MENUPRM *res, int count);
BRESULT menudlg_append(int type, MENUID id, MENUFLG flg, const void *arg,
								int posx, int posy, int width, int height);

void menudlg_moving(int x, int y, int btn);

void *menudlg_msg(int ctrl, MENUID id, void *arg);
void menudlg_setpage(MENUID page);
void menudlg_disppagehidden(MENUID page, BOOL hidden);

#ifdef __cplusplus
}
#endif


// ---- MACRO

#define menudlg_sethide(id, hidden)		\
					menudlg_msg(DMSG_SETHIDE, (id), (void *)(hidden))
#define menudlg_setenable(id, enable)	\
					menudlg_msg(DMSG_SETENABLE, (id), (void *)(enable))
#define menudlg_setval(id, val)			\
					menudlg_msg(DMSG_SETVAL, (id), (void *)(long)(val))
#define menudlg_getval(id)				\
					((int)menudlg_msg(DMSG_GETVAL, (id), NULL))
#define	menudlg_setvram(id, vram)		\
					((VRAMHDL)menudlg_msg(DMSG_SETVRAM, (id), (void *)(vram)))
#define menudlg_settext(id, arg)		\
					menudlg_msg(DMSG_SETTEXT, (id), (void *)(arg))
#define menudlg_seticon(id, val)		\
					menudlg_msg(DMSG_SETICON, (id), (void *)(long)(val))
#define menudlg_itemappend(id, arg)		\
					menudlg_msg(DMSG_ITEMAPPEND, (id), (void *)(arg))
#define menudlg_itemreset(id)			\
					menudlg_msg(DMSG_ITEMRESET, (id), NULL)
#define menudlg_itemsetex(id, arg)		\
					menudlg_msg(DMSG_ITEMSETEX, (id), (void *)(arg))
#define menudlg_setlistpos(id, num)		\
					menudlg_msg(DMSG_SETLISTPOS, (id), (void *)(num))
#define menudlg_setrect(id, rect)		\
					menudlg_msg(DMSG_SETRECT, (id), (rect))
#define menudlg_getrect(id)				\
					((RECT_T *)menudlg_msg(DMSG_GETRECT, (id), NULL))
#define menudlg_setfont(id, font)		\
					menudlg_msg(DMSG_SETFONT, (id), (font))
#define menudlg_getfont(id)				\
					menudlg_msg(DMSG_GETFONT, (id), NULL)

RetroPC.NET-CVS <cvs@retropc.net>