⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uimenu.h

📁 嵌入工linux开发的源码
💻 H
字号:
/*********************************************************************/
//	文 件 名:	uiMenu.h
//	程序说明:	菜单
//	程序设计:	张学平
//				2001.10.23		设计完成		说明文档:R004-S234-0001
//	程序审查:	宋军霞
//				2002.01.28		审查完成		说明文档:R004-S234-0001
//	项目编号:	R004-S234
//	版	  本:	V1.0
//	版    权:	Reality Plus Technology (ShenZhen) Co.,Ltd.
/*********************************************************************/
#ifndef _GUI_MENU_H
#define _GUI_MENU_H

#include <pr2k.h>
#include <sys/syscall.h>

#include <typedefine.h>
#include <uiGui_Cfg.h>
#include <uiWm_Queue.h>
#include <uiFont.h>
#include <uiControl.h>

#define MENU_SYSTEM		0x0000
#define MENU_TITLE		0x0001
#define MENU_NORMAL		0x0002
#define MENU_TYPEMASK	0x0003

#define MENU_FLAG_RIGHT	0x0000
#define MENU_FLAG_LEFT	0x0004
#define MENU_FLAG_NONE	0x0008
#define MENU_FLAGMASK	0x00c0

#define MENU_SHRINK		0x0000
#define MENU_POPUP		0x0001

#define MAX_MENUITEM_COUNT		8			// 最大菜单项数
#define GUI_MENU_CAPTION_SIZE	31			// 菜单标题的最大字符数
#define GUI_MENU_ITEM_SIZE		15			// 菜单标题的最大字符数

#define MENUITEM_TOP_GAP        2			// 菜单项与顶端之间的距离
#define MENUITEM_HEIGHT_GAP     4			// 菜单项之间的距离

typedef struct tagMenuItemInfo	// 调用创建窗口函数时传递参数用
{
	BYTE  *caption;		// 菜单项显示字串
	short command;		// 菜单项命令字,作为消息MENU_CLICK的x参数, 由用户指定,但不能为0。
} TMenuItemInfo;

typedef struct tagMenuItem	// 菜单中的菜单项链表
{
	char caption[GUI_MENU_ITEM_SIZE+1];	// 菜单项内容
	short check;						// 菜单项是否具有Check属性
	short command;						// 消息MENU_CLICK中x的参数,不能为0
	struct tagMenuItem *next;			// 指向同一菜单中的下一个菜单项
} TMenuItem;

typedef struct tagGuiMenu
{
	TGuiControl base;
	short popupFlag;		// 状态标志,展开:非0,收回:0
	short activeItem;		// 被激活的菜单项序号,初始值为-1
	short color;			// 前景色,缺省为黑色
	short backColor;		// 背景色,缺省为白色
	short countItem;		// 菜单项数
	short popup_left, popup_top, popup_right, popup_bottom;	// 展开时的座标
	char  caption[GUI_MENU_CAPTION_SIZE+1];	// 标题
	TMenuItem *pMenuList;					// 菜单项结构链表
} TGuiMenu;

// 创建菜单
DLL_EXP(HNDL) guiMenu_Create(short left,short top,short right,short bottom,const char* caption, WORD style);

// 添加一个菜单项
DLL_EXP(STATUS) guiMenu_AppendItem(HNDL hMenu, const char *szItem, short nCommand);

// 插入一个菜单项
DLL_EXP(STATUS) guiMenu_InsertItem(HNDL hMenu, const char *szItem, short nCommand, short nPos );

// 删除一个菜单项
DLL_EXP(STATUS) guiMenu_DeleteItem(HNDL hMenu, short nPos);

// 设置菜单标题
DLL_EXP(STATUS) guiMenu_SetCaption(HNDL hMenu,const char *caption);

// 获取菜单标题
DLL_EXP(char *) guiMenu_GetCaption(HNDL hMenu);

// 展开菜单
DLL_EXP(STATUS) guiMenu_Popup(HNDL hMenu);

// 收回已展开的菜单
DLL_EXP(void) guiMenu_Shrink(void);

// 内部函数
// 删除菜单及其中的内容
STATUS  _guiMenu_Delete(HNDL hMenu);

// 显示菜单(名称及其标志)
STATUS  _guiMenu_Show(HNDL hMenu);

// 菜单控件对消息的响应
void  _guiMenu_Action(HNDL hMenu, WORD message, short x , short y);

// 系统对菜单的处理
BOOL _guiMenuHandler( WORD type, short x, short y );

#endif  // end of #ifdef _GUI_MENU_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -