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

📄 panel.h

📁 操作系统SunOS 4.1.3版本的源码
💻 H
字号:
/*    @(#)panel.h 1.1 92/07/30 SMI      *//***********************************************************************//*	                      panel.h  				       *//*          Copyright (c) 1985 by Sun Microsystems, Inc.               *//***********************************************************************/#ifndef panel_DEFINED#define panel_DEFINED#include <sunwindow/attr.h>/***********************************************************************//*	        	Attributes 				       *//***********************************************************************/#define	PANEL_ATTR(type, ordinal)	ATTR(ATTR_PKG_PANEL, type, ordinal)/* panel specific attribute types */#define	PANEL_INDEX_STRING		ATTR_TYPE(ATTR_BASE_UNUSED_FIRST, 2)#define	PANEL_INDEX_PIXRECT_PTR		ATTR_TYPE(ATTR_BASE_UNUSED_FIRST + 1, 2)#define	PANEL_INDEX_BOOLEAN		ATTR_TYPE(ATTR_BASE_UNUSED_FIRST + 2, 2)#define	PANEL_INDEX_FONT		ATTR_TYPE(ATTR_BASE_UNUSED_FIRST + 3, 2)/* for compatability with previous releases */#define	PANEL_ATTRIBUTE_LIST		ATTR_LIST/* reserved for client use */#define	PANEL_ATTR_UNUSED_FIRST		0#define	PANEL_ATTR_UNUSED_LAST		31/* new attributes should start at PANEL_LAST_ATTR + 1 */#define	PANEL_LAST_ATTR			127typedef enum {    /* x-coordinates */    PANEL_ITEM_X		= PANEL_ATTR(ATTR_X, 32),    PANEL_ITEM_X_GAP		= PANEL_ATTR(ATTR_X, 33),    PANEL_LABEL_X		= PANEL_ATTR(ATTR_X, 34),    PANEL_VALUE_X		= PANEL_ATTR(ATTR_X, 35),    PANEL_SLIDER_WIDTH		= PANEL_ATTR(ATTR_X, 36),    PANEL_WIDTH			= PANEL_ATTR(ATTR_X, 37),        /* indexed x-coordinates */    PANEL_CHOICE_X		= PANEL_ATTR(ATTR_INDEX_X, 38),    PANEL_MARK_X		= PANEL_ATTR(ATTR_INDEX_X, 39),        /* lists of x-coordinates */    PANEL_CHOICE_XS	= PANEL_ATTR(ATTR_LIST_INLINE(ATTR_NULL, ATTR_X), 40),    PANEL_MARK_XS	= PANEL_ATTR(ATTR_LIST_INLINE(ATTR_NULL, ATTR_X), 41),      /* y-coordinates */    PANEL_ITEM_Y		= PANEL_ATTR(ATTR_Y, 42),    PANEL_ITEM_Y_GAP		= PANEL_ATTR(ATTR_Y, 43),    PANEL_LABEL_Y		= PANEL_ATTR(ATTR_Y, 44),    PANEL_VALUE_Y		= PANEL_ATTR(ATTR_Y, 45),    PANEL_HEIGHT		= PANEL_ATTR(ATTR_Y, 46),        /* indexed y-coordinates */    PANEL_CHOICE_Y		= PANEL_ATTR(ATTR_INDEX_Y, 47),    PANEL_MARK_Y		= PANEL_ATTR(ATTR_INDEX_Y, 48),        /* lists of y-coordinates */    PANEL_CHOICE_YS	= PANEL_ATTR(ATTR_LIST_INLINE(ATTR_NULL, ATTR_Y), 49),    PANEL_MARK_YS	= PANEL_ATTR(ATTR_LIST_INLINE(ATTR_NULL, ATTR_Y), 50),    /* integers */        PANEL_VALUE			= PANEL_ATTR(ATTR_INT,  51),    PANEL_LABEL_DISPLAY_LENGTH	= PANEL_ATTR(ATTR_INT,  52),    PANEL_VALUE_DISPLAY_LENGTH	= PANEL_ATTR(ATTR_INT,  53),    PANEL_VALUE_STORED_LENGTH	= PANEL_ATTR(ATTR_INT,  54),    PANEL_MIN_VALUE		= PANEL_ATTR(ATTR_INT,  55),    PANEL_MAX_VALUE		= PANEL_ATTR(ATTR_INT,  56),    PANEL_CHOICE_OFFSET		= PANEL_ATTR(ATTR_INT,  57),    PANEL_TIMER_SECS		= PANEL_ATTR(ATTR_INT, 58),    PANEL_TIMER_USECS		= PANEL_ATTR(ATTR_INT, 59),        /* lists of integers */    PANEL_MENU_CHOICE_VALUES	=         PANEL_ATTR(ATTR_LIST_INLINE(ATTR_NULL, ATTR_INT), 60),    /* booleans */    PANEL_VALUE_UNDERLINED	= PANEL_ATTR(ATTR_BOOLEAN, 61),    PANEL_LABEL_BOLD		= PANEL_ATTR(ATTR_BOOLEAN, 63),    PANEL_CHOICES_BOLD		= PANEL_ATTR(ATTR_BOOLEAN, 64),    PANEL_SHOW_ITEM		= PANEL_ATTR(ATTR_BOOLEAN, 65),    PANEL_SHOW_VALUE		= PANEL_ATTR(ATTR_BOOLEAN, 66),    PANEL_SHOW_RANGE		= PANEL_ATTR(ATTR_BOOLEAN, 67),    PANEL_SHOW_MENU		= PANEL_ATTR(ATTR_BOOLEAN, 68),    PANEL_SHOW_MENU_MARK	= PANEL_ATTR(ATTR_BOOLEAN, 69),    PANEL_CHOOSE_ONE		= PANEL_ATTR(ATTR_BOOLEAN, 70),    PANEL_ADJUSTABLE		= PANEL_ATTR(ATTR_BOOLEAN, 71),    PANEL_BLINK_CARET		= PANEL_ATTR(ATTR_BOOLEAN, 72),    PANEL_ACCEPT_KEYSTROKE	= PANEL_ATTR(ATTR_BOOLEAN, 73),    PANEL_LABEL_SHADED		= PANEL_ATTR(ATTR_BOOLEAN, 121),    PANEL_READ_ONLY             = PANEL_ATTR(ATTR_BOOLEAN, 124),    PANEL_BOXED                 = PANEL_ATTR(ATTR_BOOLEAN, 125),        /* indexed booleans */    PANEL_TOGGLE_VALUE		= PANEL_ATTR(PANEL_INDEX_BOOLEAN, 120),    /* enums */    PANEL_NOTIFY_LEVEL		= PANEL_ATTR(ATTR_ENUM, 74),    PANEL_DISPLAY_LEVEL		= PANEL_ATTR(ATTR_ENUM, 75),    PANEL_LAYOUT		= PANEL_ATTR(ATTR_ENUM, 76),    PANEL_FEEDBACK		= PANEL_ATTR(ATTR_ENUM, 77),    PANEL_PAINT			= PANEL_ATTR(ATTR_ENUM, 78),    PANEL_MOUSE_STATE		= PANEL_ATTR(ATTR_ENUM, 79),       /* characters */    PANEL_MASK_CHAR		= PANEL_ATTR(ATTR_CHAR, 80),    /* strings */    PANEL_LABEL_STRING		= PANEL_ATTR(ATTR_STRING, 81),    PANEL_VALUE_STRING		= PANEL_ATTR(ATTR_STRING, 82),    PANEL_NOTIFY_STRING		= PANEL_ATTR(ATTR_STRING, 83),    PANEL_MENU_TITLE_STRING	= PANEL_ATTR(ATTR_STRING, 84),    PANEL_NAME			= PANEL_ATTR(ATTR_STRING, 85),       /* lists of strings */    PANEL_CHOICE_STRINGS	=        PANEL_ATTR(ATTR_LIST_INLINE(ATTR_NULL, ATTR_STRING), 86),    PANEL_MENU_CHOICE_STRINGS	=         PANEL_ATTR(ATTR_LIST_INLINE(ATTR_NULL, ATTR_STRING), 87),    /* indexed strings */    PANEL_CHOICE_STRING		= PANEL_ATTR(PANEL_INDEX_STRING, 88),    /* indexed font */    PANEL_CHOICE_FONT		= PANEL_ATTR(PANEL_INDEX_FONT, 123),        /* pixrect pointers */    PANEL_LABEL_IMAGE		= PANEL_ATTR(ATTR_PIXRECT_PTR, 89),    PANEL_MENU_TITLE_IMAGE	= PANEL_ATTR(ATTR_PIXRECT_PTR, 90),    PANEL_MENU_MARK_IMAGE	= PANEL_ATTR(ATTR_PIXRECT_PTR, 91),    PANEL_MENU_NOMARK_IMAGE	= PANEL_ATTR(ATTR_PIXRECT_PTR, 92),    PANEL_TYPE_IMAGE		= PANEL_ATTR(ATTR_PIXRECT_PTR, 93),     /* lists of pixrect pointers */       PANEL_CHOICE_IMAGES		=         PANEL_ATTR(ATTR_LIST_INLINE(ATTR_NULL, ATTR_PIXRECT_PTR), 94),    PANEL_MENU_CHOICE_IMAGES	=                PANEL_ATTR(ATTR_LIST_INLINE(ATTR_NULL, ATTR_PIXRECT_PTR), 95),    PANEL_MARK_IMAGES		=         PANEL_ATTR(ATTR_LIST_INLINE(ATTR_NULL, ATTR_PIXRECT_PTR), 96),    PANEL_NOMARK_IMAGES		=        PANEL_ATTR(ATTR_LIST_INLINE(ATTR_NULL, ATTR_PIXRECT_PTR), 97),    /* indexed pixrect pointers */       PANEL_CHOICE_IMAGE		= PANEL_ATTR(PANEL_INDEX_PIXRECT_PTR, 98),    PANEL_MARK_IMAGE		= PANEL_ATTR(PANEL_INDEX_PIXRECT_PTR, 99),    PANEL_NOMARK_IMAGE		= PANEL_ATTR(PANEL_INDEX_PIXRECT_PTR, 100),    /* pixfont pointers */       PANEL_LABEL_FONT		= PANEL_ATTR(ATTR_PIXFONT_PTR, 101),    PANEL_VALUE_FONT		= PANEL_ATTR(ATTR_PIXFONT_PTR, 102),    PANEL_MENU_TITLE_FONT	= PANEL_ATTR(ATTR_PIXFONT_PTR, 103),    PANEL_FONT			= PANEL_ATTR(ATTR_PIXFONT_PTR, 104),    /* lists of fonts */        PANEL_CHOICE_FONTS		=        PANEL_ATTR(ATTR_LIST_INLINE(ATTR_NULL, ATTR_PIXFONT_PTR), 105),    PANEL_MENU_CHOICE_FONTS	=         PANEL_ATTR(ATTR_LIST_INLINE(ATTR_NULL, ATTR_PIXFONT_PTR), 106),    /* function pointers */        PANEL_NOTIFY_PROC		= PANEL_ATTR(ATTR_FUNCTION_PTR, 107),    PANEL_TIMER_PROC		= PANEL_ATTR(ATTR_FUNCTION_PTR, 108),    PANEL_EVENT_PROC		= PANEL_ATTR(ATTR_FUNCTION_PTR, 109),    PANEL_BACKGROUND_PROC	= PANEL_ATTR(ATTR_FUNCTION_PTR, 122),        /* rect pointers */    PANEL_ITEM_RECT		= PANEL_ATTR(ATTR_RECT_PTR, 110),        /* pixwin pointers */      PANEL_PIXWIN		= PANEL_ATTR(ATTR_PIXWIN_PTR, 111),    /* color panel item attributes */    PANEL_ITEM_COLOR		= PANEL_ATTR(ATTR_INT,126),    PANEL_PAINT_PIXWIN		= PANEL_ATTR(ATTR_PIXWIN_PTR,127),    /* opaque pointers */    PANEL_CLIENT_DATA		= PANEL_ATTR(ATTR_OPAQUE, 112),    PANEL_VERTICAL_SCROLLBAR	= PANEL_ATTR(ATTR_OPAQUE, 113),    PANEL_HORIZONTAL_SCROLLBAR	= PANEL_ATTR(ATTR_OPAQUE, 114),    PANEL_CURSOR		= PANEL_ATTR(ATTR_OPAQUE, 115),    PANEL_CARET_ITEM		= PANEL_ATTR(ATTR_OPAQUE, 116),    PANEL_FIRST_ITEM		= PANEL_ATTR(ATTR_OPAQUE, 117),    PANEL_NEXT_ITEM		= PANEL_ATTR(ATTR_OPAQUE, 118),    PANEL_PARENT_PANEL		= PANEL_ATTR(ATTR_OPAQUE, 119),    } Panel_attribute;/********* values for LEVEL attrs  *********************************/typedef enum {    PANEL_CLEAR,        /* painting */    PANEL_NO_CLEAR,     /* painting */    PANEL_NONE,		/* text notify, menu, display, painting */    PANEL_ALL,		/* text notify, slider notify, display */    PANEL_NON_PRINTABLE,/* text notify */    PANEL_SPECIFIED,	/* text notify */    PANEL_CURRENT,	/* display */    PANEL_DONE,		/* slider notify */    PANEL_MARKED,	/* feedback */    PANEL_VERTICAL,	/* layout */    PANEL_HORIZONTAL,	/* layout */    PANEL_INVERTED,	/* feedback */    /* values returnable by notify routines */    PANEL_INSERT,    PANEL_NEXT,    PANEL_PREVIOUS,    /* mouse state */    PANEL_NONE_DOWN,	/* no buttons are down */    PANEL_LEFT_DOWN,	/* left button is down */    PANEL_MIDDLE_DOWN,	/* middle button is down */    PANEL_RIGHT_DOWN,	/* right button is down */    PANEL_CHORD_DOWN	/* chord of buttons are down */} Panel_setting;/***********************************************************************//* opaque types for panel subwindows                                    *//***********************************************************************/typedef	caddr_t 	Panel;typedef	caddr_t 	Panel_item;typedef	caddr_t 	Panel_attribute_value;/***********************************************************************//* external declarations                                               *//***********************************************************************//* for window wrapper */#define PANEL panel_window_object#define PANEL_TYPE ATTR_PKG_PANELextern caddr_t panel_window_object();/* for PANEL_CYCLE choice item */extern struct pixrect	panel_cycle_pr;/* Panel routines */extern Panel		 panel_begin();extern caddr_t		 panel_advance_caret();extern caddr_t		 panel_backup_caret();/* Panel & Panel_item routines */extern Panel_attribute_value panel_get();extern int               panel_set();extern                   panel_paint();extern			 panel_free();extern			 panel_destroy_item();/* event mapping routines */extern			 panel_handle_event();extern			 panel_default_handle_event();extern			 panel_cancel();/* Panel_item action routines */extern			 panel_begin_preview();extern			 panel_update_preview();extern			 panel_accept_preview();extern			 panel_cancel_preview();extern			 panel_accept_menu();extern			 panel_accept_key();/* utilities */extern Panel_setting	 panel_text_notify();extern struct pixrect   *panel_button_image();/* routines to translate event coordinates * Note that struct inputevent * is the same as * Event *, this is used for compatability with previous * releases. */extern struct inputevent	*panel_window_event();extern struct inputevent	*panel_event();/***********************************************************************//* external declarations for item creation routines.                   *//***********************************************************************/extern Panel_item	panel_create_item();extern Panel_item	panel_button();extern Panel_item	panel_choice();extern Panel_item 	panel_message();extern Panel_item	panel_slider();extern Panel_item	panel_text();extern Panel_item	panel_line();/***********************************************************************//* Values for type argument to panel_create_item()                     *//***********************************************************************/#define	PANEL_MESSAGE	panel_message#define	PANEL_BUTTON	panel_button#define	PANEL_CHOICE	panel_choice#define	PANEL_SLIDER	panel_slider#define	PANEL_TEXT	panel_text#define	PANEL_TOGGLE	PANEL_CHOICE, PANEL_CHOOSE_ONE, FALSE#define	PANEL_LINE	panel_line#define PANEL_CYCLE	PANEL_CHOICE,	\    			PANEL_MARK_IMAGES,          &panel_cycle_pr, 0, \    			PANEL_NOMARK_IMAGES,        0,              \    			PANEL_FEEDBACK,             PANEL_MARKED,   \    			PANEL_DISPLAY_LEVEL,        PANEL_CURRENT /***********************************************************************//* various utility macros                                              *//***********************************************************************/#define	panel_get_value(ip) 		panel_get((ip), PANEL_VALUE)#define	panel_set_value(ip, val)	panel_set((ip), PANEL_VALUE, (val), 0)#define	panel_fit_height(panel)	panel_set((panel), PANEL_HEIGHT, \					PANEL_FIT_ITEMS, 0)#define	panel_fit_width(panel)	panel_set((panel), PANEL_WIDTH, \					PANEL_FIT_ITEMS, 0)#define	panel_each_item(panel, ip)	\   { Panel_item _next; \   for ((ip) = (Panel_item) panel_get((panel), PANEL_FIRST_ITEM),\	_next = (Panel_item) panel_get((ip), PANEL_NEXT_ITEM);\	(ip); \	(ip) = _next, _next = (Panel_item) panel_get((ip), PANEL_NEXT_ITEM)) {#define	panel_end_each	}}/* functions for backward compatability */extern struct toolsw	*panel_create();extern caddr_t          *panel_make_list();/* PANEL_CU() is provided for backward  * compatability. */#define	PANEL_CU(n)		(ATTR_COL(n))#define PANEL_FIT_ITEMS 	(15000) 	/* for panel width and height *//***********************************************************************//* miscellaneous constants                                             *//***********************************************************************/#define PANEL_ITEM_X_START    4       /* offset from left edge */#define PANEL_ITEM_Y_START    4       /* offset from top edge *//* Panel defined events. * These are given to the Panel's or Panel_item's event proc */#define	PANEL_EVENT_FIRST	vuid_first(PANEL_DEVID)		/* 32000 */#define	PANEL_EVENT_CANCEL	(PANEL_EVENT_FIRST + 0)		/* 32000 */#define	PANEL_EVENT_MOVE_IN	(PANEL_EVENT_FIRST + 1)		/* 32001 */#define	PANEL_EVENT_DRAG_IN	(PANEL_EVENT_FIRST + 2)		/* 32002 *//***********************************************************************/#endif not panel_DEFINED

⌨️ 快捷键说明

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