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

📄 walkmenu.h

📁 操作系统SunOS 4.1.3版本的源码
💻 H
字号:
/*    @(#)walkmenu.h 1.1 92/07/30 SMI      *//***********************************************************************//*	                      walkmenu.h			       *//*          Copyright (c) 1985 by Sun Microsystems, Inc.               *//***********************************************************************/#ifndef walkmenu_DEFINED#define walkmenu_DEFINED#include <sunwindow/attr.h>/***********************************************************************//*	        	Attributes 				       *//***********************************************************************/#define	MENU_ATTR(type, ordinal)	ATTR(ATTR_PKG_MENU, type, ordinal)#define MENU_ATTR_LIST(ltype, type, ordinal) \	MENU_ATTR(ATTR_LIST_INLINE((ltype), (type)), (ordinal))/* Fake types -- This should be resolved someday */#define ATTR_MENU			ATTR_OPAQUE#define ATTR_IMAGE			ATTR_OPAQUE#define ATTR_MENU_ITEM			ATTR_OPAQUE#define ATTR_MENU_ITEM_PAIR		ATTR_INT_PAIR#define ATTR_STRING_VALUE_PAIR		ATTR_INT_PAIR#define ATTR_IMAGE_VALUE_PAIR		ATTR_INT_PAIR#define ATTR_STRING_MENU_PAIR		ATTR_INT_PAIR#define ATTR_IMAGE_MENU_PAIR		ATTR_INT_PAIR#define ATTR_STRING_FUNCTION_PAIR	ATTR_INT_PAIR#define ATTR_IMAGE_FUNCTION_PAIR	ATTR_INT_PAIR#define ATTR_INT_MENU_ITEM_PAIR		ATTR_INT_PAIR/* Reserved for future use */#define	MENU_ATTR_UNUSED_FIRST		 0#define	MENU_ATTR_UNUSED_LAST		31typedef enum {        MENU_ACTION_PROC		= MENU_ATTR(ATTR_FUNCTION_PTR, 32),    MENU_ACTION			= MENU_ACTION_PROC,    MENU_ACTION_IMAGE		= MENU_ATTR(ATTR_IMAGE_FUNCTION_PAIR, 33),    MENU_ACTION_ITEM		= MENU_ATTR(ATTR_STRING_FUNCTION_PAIR, 34),    MENU_APPEND_ITEM		= MENU_ATTR(ATTR_MENU_ITEM, 35),    MENU_APPEND			= MENU_APPEND_ITEM,     MENU_BOXED			= MENU_ATTR(ATTR_BOOLEAN, 56),    MENU_CENTER			= MENU_ATTR(ATTR_BOOLEAN, 156),    MENU_CLIENT_DATA		= MENU_ATTR(ATTR_OPAQUE, 36),    MENU_COLUMN_MAJOR		= MENU_ATTR(ATTR_BOOLEAN, 136),        MENU_DEFAULT		= MENU_ATTR(ATTR_INT, 37),    MENU_DEFAULT_ITEM		= MENU_ATTR(ATTR_MENU_ITEM, 38),    MENU_DEFAULT_IMAGE		= MENU_ATTR(ATTR_IMAGE, 39),     MENU_DISABLE_ITEM		= MENU_ATTR(ATTR_ENUM, 40), /* NYI */    MENU_DEFAULT_SELECTION	= MENU_ATTR(ATTR_ENUM, 41),    MENU_DESCEND_FIRST		= MENU_ATTR(ATTR_BOOLEAN, 141), /* menu_find */        MENU_FEEDBACK		= MENU_ATTR(ATTR_BOOLEAN, 42),     MENU_FIRST_EVENT		= MENU_ATTR(ATTR_NO_VALUE, 43), /* Get only */    MENU_FONT			= MENU_ATTR(ATTR_PIXFONT_PTR, 44),        MENU_GEN_PULLRIGHT		= MENU_ATTR(ATTR_FUNCTION_PTR, 45),     MENU_GEN_PULLRIGHT_IMAGE	= MENU_ATTR(ATTR_IMAGE_FUNCTION_PAIR, 46),     MENU_GEN_PULLRIGHT_ITEM	= MENU_ATTR(ATTR_STRING_FUNCTION_PAIR, 47),     MENU_GEN_PROC		= MENU_ATTR(ATTR_FUNCTION_PTR, 48),     MENU_GEN_PROC_IMAGE		= MENU_ATTR(ATTR_IMAGE_FUNCTION_PAIR, 49),     MENU_GEN_PROC_ITEM		= MENU_ATTR(ATTR_STRING_FUNCTION_PAIR, 50),         MENU_HEIGHT			= MENU_ATTR(ATTR_INT, 51),        MENU_IMAGE			= MENU_ATTR(ATTR_IMAGE, 52),    MENU_IMAGE_ITEM		= MENU_ATTR(ATTR_IMAGE_VALUE_PAIR, 53),    MENU_IMAGES			= MENU_ATTR_LIST(ATTR_NULL, ATTR_IMAGE, 54),    MENU_INITIAL_SELECTION	= MENU_ATTR(ATTR_ENUM, 55),/*     MENU_ACCELERATED_SELECTION	= MENU_INITIAL_SELECTION, /* OBS */    MENU_INITIAL_SELECTION_SELECTED = MENU_ATTR(ATTR_BOOLEAN, 57),    MENU_INITIAL_SELECTION_EXPANDED = MENU_ATTR(ATTR_BOOLEAN, 58),/*    MENU_DISPLAY_ONE_LEVEL	= MENU_ATTR(ATTR_INT, 59), !attr58 /* OBS */    MENU_INACTIVE		= MENU_ATTR(ATTR_BOOLEAN, 60),     MENU_INSERT			= MENU_ATTR(ATTR_INT_MENU_ITEM_PAIR, 61),    MENU_INSERT_ITEM		= MENU_ATTR(ATTR_MENU_ITEM_PAIR, 62),    MENU_ITEM			= MENU_ATTR_LIST(ATTR_RECURSIVE, ATTR_AV, 63),    MENU_INVERT			= MENU_ATTR(ATTR_BOOLEAN, 64),         MENU_JUMP_AFTER_SELECTION	= MENU_ATTR(ATTR_BOOLEAN, 65),    MENU_JUMP_AFTER_NO_SELECTION = MENU_ATTR(ATTR_BOOLEAN, 66),    MENU_LAST_EVENT		= MENU_ATTR(ATTR_NO_VALUE, 67), /* Get only */    MENU_LEFT_MARGIN		= MENU_ATTR(ATTR_INT, 68),    MENU_LIKE			= MENU_ATTR(ATTR_MENU, 69), /* NYI */        MENU_MARGIN			= MENU_ATTR(ATTR_INT, 70),    MENU_MENU			= MENU_ATTR(ATTR_NO_VALUE, 71), /* Type only */    MENU_NITEMS			= MENU_ATTR(ATTR_NO_VALUE, 72), /* Get only */    MENU_NOTIFY_PROC		= MENU_ACTION_PROC,    MENU_NTH_ITEM		= MENU_ATTR(ATTR_INT, 73), /* Origin 1 */    MENU_NCOLS			= MENU_ATTR(ATTR_INT, 74),    MENU_NROWS			= MENU_ATTR(ATTR_INT, 75),        MENU_PARENT			= MENU_ATTR(ATTR_NO_VALUE, 76), /* Get only */    MENU_PULLRIGHT		= MENU_ATTR(ATTR_MENU, 77),    MENU_PULLRIGHT_DELTA	= MENU_ATTR(ATTR_INT, 78),    MENU_PULLRIGHT_IMAGE	= MENU_ATTR(ATTR_IMAGE_MENU_PAIR, 79),    MENU_PULLRIGHT_ITEM		= MENU_ATTR(ATTR_STRING_MENU_PAIR, 80),        MENU_RELEASE		= MENU_ATTR(ATTR_NO_VALUE, 81),     MENU_RELEASE_IMAGE		= MENU_ATTR(ATTR_NO_VALUE, 82),     MENU_REMOVE			= MENU_ATTR(ATTR_INT, 83),    MENU_REMOVE_ITEM		= MENU_ATTR(ATTR_MENU_ITEM, 84),    MENU_REPLACE		= MENU_ATTR(ATTR_INT_MENU_ITEM_PAIR, 85),    MENU_REPLACE_ITEM		= MENU_ATTR(ATTR_MENU_ITEM_PAIR, 86),    MENU_RIGHT_MARGIN		= MENU_ATTR(ATTR_INT, 87),        MENU_SELECTED		= MENU_ATTR(ATTR_INT, 88),    MENU_SELECTED_ITEM		= MENU_ATTR(ATTR_MENU_ITEM, 89),    MENU_SHADOW			= MENU_ATTR(ATTR_PIXRECT_PTR, 90),    MENU_STAY_UP		= MENU_ATTR(ATTR_BOOLEAN, 190),    MENU_STRING			= MENU_ATTR(ATTR_STRING, 91),    MENU_STRING_ITEM		= MENU_ATTR(ATTR_STRING_VALUE_PAIR, 92),    MENU_STRINGS		= MENU_ATTR_LIST(ATTR_NULL, ATTR_STRING, 93),    MENU_TITLE_ITEM		= MENU_ATTR(ATTR_STRING, 94),    MENU_TITLE_IMAGE		= MENU_ATTR(ATTR_IMAGE, 95),    MENU_TYPE			= MENU_ATTR(ATTR_NO_VALUE, 96), /* Get only */        MENU_VALID_RESULT		= MENU_ATTR(ATTR_INT, 97),    MENU_VALUE			= MENU_ATTR(ATTR_OPAQUE, 98),/* union */        MENU_WIDTH			= MENU_ATTR(ATTR_INT, 99),    MENU_NOP			= MENU_ATTR(ATTR_NO_VALUE, 100),/* Used in menu_show() as named parameters */    MENU_BUTTON			= MENU_ATTR(ATTR_INT, 101),          /* Call */    MENU_FD			= MENU_ATTR(ATTR_INT, 102),          /* Call */    MENU_IE			= MENU_ATTR(ATTR_INT, 103),          /* Call */    MENU_POS			= MENU_ATTR(ATTR_INT_PAIR, 104),     /* Call *//* New Attributes for putting lines in between items */    MENU_LINE_AFTER_ITEM	= MENU_ATTR(ATTR_INT,105),    MENU_HORIZONTAL_LINE	= MENU_ATTR(ATTR_INT,106),    MENU_VERTICAL_LINE		= MENU_ATTR(ATTR_INT,107),} Menu_attribute;typedef enum {    MENU_PROVIDE_FEEDBACK,     MENU_REMOVE_FEEDBACK} Menu_feedback;/* This are obsolete generate names and should be removed someday */#define MENU_CREATE MENU_DISPLAY#define MENU_DESTROY MENU_DISPLAY_DONE#define MENU_NOTIFY_CREATE MENU_NOTIFY#define MENU_NOTIFY_DESTROY MENU_NOTIFY_DONE/* New generate names intended to be less confusing */typedef enum {    MENU_DISPLAY,     MENU_DISPLAY_DONE,     MENU_NOTIFY,     MENU_NOTIFY_DONE} Menu_generate;/***********************************************************************//*      opaque types for menus and useful constants                    *//***********************************************************************/typedef	caddr_t 	Menu;typedef	caddr_t 	Menu_item;#define MENU_BUT  	MS_RIGHT#define SELECT_BUT	MS_LEFT#define	MENU_NULL	((Menu)0)#define	MENU_ITEM_NULL	((Menu_item)0)#define MENU_NO_ITEM	MENU_ITEM_NULL#define MENU_NO_VALUE	0#define MENU_DEFAULT_SHADOW &menu_gray75_pr#define MENU_DEFAULT_NOTIFY_PROC menu_return_value#define MENU_DEFAULT_PULLRIGHT_DELTA 9999/***********************************************************************//*      external declarations                                          *//***********************************************************************/   extern Menu		menu_create();   extern Menu		menu_create_customizable();   extern Menu_item	menu_create_item();   extern caddr_t	menu_get();   extern int		menu_set();   extern void		menu_destroy();   extern void		menu_destroy_with_proc();   extern caddr_t	menu_show();   extern caddr_t	menu_show_using_fd();   extern Menu_item	menu_find();   extern caddr_t	menu_pullright_return_result();   extern caddr_t	menu_return_value();   extern caddr_t	menu_return_item();   extern caddr_t	menu_return_no_value();   extern caddr_t	menu_return_no_item();   extern struct pixrect menu_gray25_pr;   extern struct pixrect menu_gray50_pr;   extern struct pixrect menu_gray75_pr;   /***********************************************************************/#endif ~walkmenu_DEFINED

⌨️ 快捷键说明

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