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

📄 cf.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
#ifndef lintstatic	char sccsid[] = "@(#)cf.c 1.1 92/07/30 Copyright Sun Micro";#endif/* * Copyright (c) 1987 by Sun Microsystems, Inc. */#include "sundiag.h"#include <sys/time.h>#include <sunwindow/pixwin.h>#include <suntool/alert.h>static Frame		msg_popup=NULL;/*  confirmer package routines(forward references) */extern	int      confirm();static Frame    init_confirmer();static void     yes_no_ok();/****************************************************************************** * Confirmer with "no" and "yes" buttons.				      * ******************************************************************************/int	confirm_yes(message)char    *message;{        return confirm(message, FALSE);} /****************************************************************************** * Bring up the confirmer, and wait for user's response.		      * * Return: TRUE if ALERT_BUTTON_YES; FALSE otherwise.			      * ******************************************************************************/int	confirm(message, ok_only)char    *message;int     ok_only;{  int	result;	if (tty_mode)		/* running in TTY mode */	{	  tty_message(message);	  return(TRUE);	}	if (ok_only)	/* just acknownage it */	  result = alert_prompt(sundiag_frame, (Event *)NULL,		ALERT_MESSAGE_STRINGS, message, 0,		ALERT_BUTTON_YES,	"OK",		0);	else	  result = alert_prompt(sundiag_frame, (Event *)NULL,		ALERT_MESSAGE_STRINGS, message, 0,		ALERT_BUTTON_YES,	"Yes",		ALERT_BUTTON_NO,	"No",		0);	if (result == ALERT_YES)	  return(TRUE);	else	  return(FALSE);}/****************************************************************************** * "Done" button notify procedure for sundiag's message popup.		      * ******************************************************************************/static	int	*done_flag;static	void	done_proc(){        (void)window_set(msg_popup, FRAME_NO_CONFIRM, TRUE, 0);        (void)window_destroy(msg_popup);	*done_flag = TRUE;	msg_popup = NULL;}/****************************************************************************** * Brings up the popup with passed message in it(non-blocking mode).	      * * Input: msg, message to be displayed.					      * *	  waiting, pointer to a integer which is used as a flag to indicate   * *		   whether user has responded or not(== TRUE, if yes. And,    * *		   will be set by done_proc()).				      * * Output: TRUE, if successful; FALSE, if failed.			      * ******************************************************************************/int	popup_info(msg, waiting)char	*msg;int	*waiting;{        Panel           panel;        Panel_item      message_item;        int             left, top, width, height;        Rect            *r;        struct pixrect  *pr;	if (msg_popup != NULL)	  return(FALSE);  /* return error(FALSE) if popup is already used */        msg_popup = window_create(sundiag_frame, FRAME,			FRAME_DONE_PROC, done_proc,			0);        panel = window_create(msg_popup, PANEL, 0);        message_item = panel_create_item(panel, PANEL_MESSAGE,                PANEL_LABEL_STRING, msg, 0);        pr = panel_button_image(panel, "Done", 4, (Pixfont *)NULL);        width = pr->pr_width;        /* center the "Done" buttons under the message */        r = (Rect *) panel_get(message_item, PANEL_ITEM_RECT);        left = (r->r_width - width) / 2;        if (left < 0)          left = 0;        top = rect_bottom(r) + 5;        (void)panel_create_item(panel, PANEL_BUTTON,                        PANEL_ITEM_X, left, PANEL_ITEM_Y, top,                        PANEL_LABEL_IMAGE, pr,                        PANEL_NOTIFY_PROC, done_proc,        0);        window_fit(panel);        window_fit(msg_popup);        /* center the confirmer frame on the screen */        r = (Rect *) window_get(msg_popup, WIN_SCREEN_RECT);        width = (int) window_get(msg_popup, WIN_WIDTH);        height = (int) window_get(msg_popup, WIN_HEIGHT);        left = (r->r_width - width) / 2;        top = (r->r_height - height) / 2;        if (left < 0)                left = 0;        if (top < 0)                top = 0;	done_flag = waiting;        (void)window_set(msg_popup, WIN_X, left, WIN_Y, top, 0);	(void)window_set(msg_popup, WIN_SHOW, TRUE, 0);	/* non-blocking popup */	return(TRUE);}

⌨️ 快捷键说明

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