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

📄 icon.h

📁 操作系统SunOS 4.1.3版本的源码
💻 H
字号:
/*	@(#)icon.h 1.1 92/07/30 SMI	*//*****************************************************************************//*                                 icon.h                                    *//*                   Copyright (c) 1985 by Sun Microsystems, Inc.            *//*****************************************************************************/#ifndef icon_DEFINED#define icon_DEFINED#include <sunwindow/attr.h>/*****************************************************************************//*                            Attributes                                     *//*****************************************************************************/#define ICON_ATTR(type, ordinal)       ATTR(ATTR_PKG_ICON, type, ordinal)#define ICON_ATTR_LIST(ltype, type, ordinal) \        ICON_ATTR(ATTR_LIST_INLINE((ltype), (type)), (ordinal))typedef enum {   ICON_X		= ICON_ATTR(ATTR_X, 1),   ICON_Y		= ICON_ATTR(ATTR_Y, 2),   ICON_WIDTH		= ICON_ATTR(ATTR_X, 3),   ICON_HEIGHT		= ICON_ATTR(ATTR_Y, 4),   ICON_IMAGE_RECT	= ICON_ATTR(ATTR_RECT_PTR, 5),   ICON_LABEL_RECT	= ICON_ATTR(ATTR_RECT_PTR, 6),   ICON_IMAGE		= ICON_ATTR(ATTR_PIXRECT_PTR, 7),   ICON_LABEL		= ICON_ATTR(ATTR_STRING, 8),   ICON_FONT		= ICON_ATTR(ATTR_PIXFONT_PTR, 9)} Icon_attribute;#define icon_attr_next(attr) (Icon_attribute *)attr_next((caddr_t *)attr)/*****************************************************************************//* icon struct                                                               *//*****************************************************************************/struct icon {	short	 	ic_width, ic_height;	/* overall icon dimensions */	struct pixrect *ic_background;	/* background pattern (mem pixrect) */	Rect		ic_gfxrect;	/* where the graphic goes */	struct pixrect *ic_mpr;		/* the graphic (a memory pixrect) */	Rect		ic_textrect;	/* where text goes */	char	       *ic_text;	/* the text */	struct pixfont *ic_font;	/* Font with which to display text */	int		ic_flags;};/* flag values */#define	ICON_BKGRDPAT	0x02		/* use ic_background to prepare image*/#define	ICON_BKGRDGRY	0x04		/* use std gray to prepare image*/#define	ICON_BKGRDCLR	0x08		/* clear to prepare image*/#define	ICON_BKGRDSET	0x10		/* set to prepare image*/#define	ICON_FIRSTPRIV	0x0100		/* start of private flags range */#define	ICON_LASTPRIV	0x8000		/* end of private flags range */#define	ICON_DEFAULT_WIDTH	64#define	ICON_DEFAULT_HEIGHT	64/*****************************************************************************//* typedefs                                                                  *//*****************************************************************************/typedef caddr_t      Icon;typedef struct icon *icon_handle;/*****************************************************************************//* external functions for attribute/value interface                          *//*****************************************************************************/extern Icon	icon_create();extern caddr_t	icon_get();extern int	icon_set();extern int	icon_destroy();extern void	icon_display(); /* how are icons undisplayed? *//*****************************************************************************//* DEFINE_ICON_FROM_IMAGE macro                                              *//*****************************************************************************/#ifdef i386#define	DEFINE_ICON_FROM_IMAGE(name, image)				\	static struct mpr_data CAT(name,_data) = {			\	    mpr_linebytes(ICON_DEFAULT_WIDTH,1), (short *)(image),	\	    {0, 0}, 0, MP_STATIC};						\	extern struct pixrectops mem_ops;				\	static struct pixrect CAT(name,_mpr) = {			\	    &mem_ops, ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT, 1,	\	    (caddr_t)&CAT(name,_data)};					\	static struct icon name = {					\	    ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT,			\	    (struct pixrect *)0,					\	    0, 0, ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT,		\	    &CAT(name,_mpr),						\	    0, 0, ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT,		\	    NULL, (struct pixfont *)0, ICON_BKGRDGRY};#else #define	DEFINE_ICON_FROM_IMAGE(name, image)				\	static struct mpr_data CAT(name,_data) = {			\	    mpr_linebytes(ICON_DEFAULT_WIDTH,1), (short *)(image),	\	    {0, 0}, 0, 0};						\	extern struct pixrectops mem_ops;				\	static struct pixrect CAT(name,_mpr) = {			\	    &mem_ops, ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT, 1,	\	    (caddr_t)&CAT(name,_data)};					\	static struct icon name = {					\	    ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT,			\	    (struct pixrect *)0,					\	    0, 0, ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT,		\	    &CAT(name,_mpr),						\	    0, 0, ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT,		\	    NULL, (struct pixfont *)0, ICON_BKGRDGRY};#endif#endif ~icon_DEFINED

⌨️ 快捷键说明

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