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

📄 add_string.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
#ifndef lintstatic	char	sccsid[] = "@(#)add_string.c 1.1 92/07/30";#endif/* *	Name:		add_string.c * *	Description:	Add a string to a menu object.  Allocates a menu *		string structure using menu_alloc() and initializes the fields. *		Returns a pointer to the menu string. * *		There are several ways to add strings to menu objects. * *		1)	A separate routine could be written for each object. *			This would be would allow only the needed routines to *			be loaded. *		2)	The address of the menu_string list for the object *			could be passed as a parameter.  This was tried in *			an earlier version of the library, but has been *			discarded as too messy. *		3)	A generic object pointer could be passed.  The routine *			could decode the object pointer and the menu string *			could be added to the appropriate place. * *		The final solution was chosen.  This implementation does *		not cause any extra routines to be loaded and it does not *		require numerous routines. * *	Call syntax:	string_p = add_menu_string(obj_p, active, y_coord, *					           x_coord, attribute, data_p); * *	Parameters:	pointer *	obj_p; *			char		active; *			menu_coord	y_coord; *			menu_coord	x_coord; *			menu_attr	attribute; *			char *		data_p; * *	Return value:	menu_string *	string_p; */#include "menu.h"#include "menu_impl.h"menu_string *add_menu_string(obj_p, active, y_coord, x_coord, attribute, data_p)	pointer		obj_p;	char		active;	menu_coord	y_coord;	menu_coord	x_coord;	menu_attr	attribute;	char *		data_p;{	menu_string **	str_pp;			/* ptr to new string pointer */	switch (((menu_core *) obj_p)->m_type) {	case MENU_OBJ_BUTTON:		str_pp = &((form_button *) obj_p)->fb_mstrings;		break;	case MENU_OBJ_FIELD:		str_pp = &((form_field *) obj_p)->ff_mstrings;		break;	case MENU_OBJ_FILE:		str_pp = &((menu_file *) obj_p)->mf_mstrings;		break;	case MENU_OBJ_FORM:		str_pp = &((form *) obj_p)->f_mstrings;		break;			case MENU_OBJ_ITEM:		str_pp = &((menu_item *) obj_p)->mi_mstrings;		break;	case MENU_OBJ_MENU:		str_pp = &((menu *) obj_p)->m_mstrings;		break;	case MENU_OBJ_NOECHO:		str_pp = &((form_noecho *) obj_p)->fne_mstrings;		break;	case MENU_OBJ_RADIO:		str_pp = &((form_radio *) obj_p)->fr_mstrings;		break;			case MENU_OBJ_YESNO:		str_pp = &((form_yesno *) obj_p)->fyn_mstrings;		break;	}	while (*str_pp)		str_pp = &(*str_pp)->ms_next;	*str_pp = (menu_string *) menu_alloc(sizeof(**str_pp));	(*str_pp)->ms_active = active;	(*str_pp)->ms_x = x_coord;	(*str_pp)->ms_y = y_coord;	(*str_pp)->ms_attribute = attribute;	(*str_pp)->ms_data = data_p;	return(*str_pp);} /* end add_menu_string() */

⌨️ 快捷键说明

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