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

📄 xpig.c

📁 Programs in the irregular grid design package described in this manual are used to carry out five ma
💻 C
📖 第 1 页 / 共 5 页
字号:
	switch(*tag) {	case DEBUGTOGGLE:		IPigDebugToggle();		iXPigDebugToggle();		break;	default:		stat = (*(FuncPtrs.MenuFnc)) (tag);	}	iXPig_unblock_callbacks();	return stat;}static Long iXPig_call_init(void){	Long stat = MOUSE_EVENT;	if(FuncPtrs.InitFnc == NULL) 		return stat;	if(iXPig_blocking_callbacks() == TRUE)		return stat;	/* show_message(" "); */	stat = (*(FuncPtrs.InitFnc)) ();	iXPig_unblock_callbacks();	return stat;}static void iXPigRepaint(Long menu_id){	/* Long menu_id = REPAINT; */	Long stat;	if(FuncPtrs.MenuFnc == NULL) return;	/* disable menu here */	iXPig_disable_menus();	stat = iXPig_call_menu(&menu_id);	XFlush(XtDisplay(MainXCanvas));	switch (stat) {		case NULL_EVENT:			PIGDBG2("NULL_EVENT return code %li\n",(long)stat);			break;		case MOUSE_EVENT:			PIGDBG2("MOUSE_EVENT return code %li\n",(long)stat);			break;		case MENU_EVENT:			PIGDBG2("MENU_EVENT return code %li\n",(long)stat);			break;		case QUIT_EVENT:			PIGDBG2("QUIT_EVENT return code %li\n",(long)stat);			WPigExit();			break;		case KEYBOARD_EVENT:			PIGDBG2("KEYBOARD_EVENT return code %li\n",(long)stat);			break;		case STRING_EVENT:			PIGDBG2("STRING_EVENT return code %li\n",(long)stat);			break;		case PRINT_EVENT:			PIGDBG2("PRINT_EVENT return code %li\n",(long)stat);			break;		default:			PIGDBG4("Unrecognised return code %li\n",(long)stat);			break;	}	/* if(last_mainw == PIG_MAIN_WIN) */		/* stat = iXPig_call_mouse */			/* (&last_mainw, &last_mainb, &last_mainx, &last_mainy); */	/* enable menu here */	iXPig_enable_menus();}/*----------------------------------------------------------------------------*//* static void iXPigCanvasCB(Widget widget, */    /* XtPointer client_data, */    /* XtPointer call_data) *//*  *//* {  */	/* int				width, height; */	/* XmDrawingAreaCallbackStruct*	ptr; *//*  *//* PIGDBG("iXPigCanvasCB(widget, client_data, call_data) (%li, %li, %li)\n",  */			/* (long) widget, (long) client_data, (long)call_data); *//*  */	/* ptr = (XmDrawingAreaCallbackStruct*) call_data; *//*  */	/* if (ptr != NULL) { */		/* switch(ptr->reason) { */			/* case XmCR_RESIZE: *//* PIGDBG2("THE Resize part of iXPigCanvasCB\n"); */				/* Get size of Window */				/* XtVaGetValues(widget, */                                        /* XmNwidth, width, */                                        /* XmNheight, height, */					/* NULL); */				/* LET PIG KNOW!!!!!!! *//* PIGDBG("New Window Dimensions: (%d x %d)\n", width, height); */				/* break; */		/*  */			/* case XmCR_EXPOSE: *//* PIGDBG2("THE Expose part of iXPigCanvasCB\n"); */				/*				 *  We draw when all expose events are in <---- ??????				 */				/* if (ptr->event->xexpose.count == 0) { *//* need repaint here *//* PIGDBG2("Calling iXPigRepaint() int WinPigMain() \n"); */					/* iXPigRepaint(); */                                /* } else { */					/* PIGDBG2("WAITING FOR THIS THING TO HIT ZERO\n\n\n\n\n\n\n\n\n\n\n"); */				/* } */				/* break; *//*  */			/* case XmCR_INPUT: *//* PIGDBG2("THE Input part of iXPigCanvasCB\n"); */				/* break; *//*  */			/* default: *//* PIGDBG2("THE Default part of iXPigCanvasCB\n"); */				/* break; *//*  */		/* } */	/* } *//* PIGDBG2("Leaving iXPigCanvasCB\n"); */	/* return; *//* } */static void menu_CB( Widget w,	XtPointer client_data, XtPointer call_data){	Long	tag = get_client_data((Long *)client_data);	Long stat;	char *cname;	XmPushButtonCallbackStruct *ptr = 		(XmPushButtonCallbackStruct *)call_data;	{		XmString name = NULL;		XtVaGetValues( w, 			XmNlabelString, &name, 			NULL);		XmStringGetLtoR(name,			XmSTRING_DEFAULT_CHARSET,			&cname);		XmStringFree(name); 	}	switch(ptr->reason) {	case XmCR_ARM:		PIGDBG2("menu_event_handler CR_ARM: Widget %s # %li, tag %li\n", 			cname, (long) w, tag); 		{			char message[100];			sprintf(message, "Menu item %s highlighted",cname);			/* show_message(message); */		}			break;	case XmCR_DISARM:		PIGDBG2("menu_event_handler CR_DISARM: Widget %li, tag %li\n", 			(long) w, tag); 		/* show_message(" "); */			break;	case XmCR_ACTIVATE:		PIGDBG3("****************\n*\n* Menu_event_handler CR_ACTIVATE: Widget %s # %li, tag %li\n*\n*\n****************\n",			cname, (long) w, tag); 		{			char message[100];			sprintf(message, "Menu item %s selected",cname);			/* show_message(message); */			if(debug())				add_to_command_history(message);			/* disable menu here */			iXPig_disable_menus();// agd 28/May/1998 need to add trap to process Repeat menu item			stat = iXPig_call_menu(&tag);// agd 28/May/1998 need to add memory for last event, in order to process Repeat menu item
			switch(stat) {			case QUIT_EVENT:				WPigExit();				break;			case KEYBOARD_EVENT:				PIGDBG2("KEYBOARD_EVENT return code %li\n",(long)stat);				break;			case STRING_EVENT:				PIGDBG2("STRING_EVENT return code %li\n",(long)stat);				break;			case REPAINT_EVENT:				PIGDBG2("REPAINT_EVENT return code %li\n",(long)stat);				iXPigRepaint(REPAINT_ALL);				break;			case PRINT_EVENT:				PIGDBG2("PRINT_EVENT return code %li\n",(long)stat);				}			/* enable menu here */			iXPig_enable_menus();		}			break;	default:		PIGDBG3("callback reason not understood %li", (long)ptr->reason);	}	XtFree(cname); } /*----------------------------------------------------------------------------*/static void iXPigExitCB(Widget widget,    XtPointer client_data,    XtPointer call_data){   /* exitCB */    exit(0);}   /* exitCB *//* extern char *strdup(const char *); *//*----------------------------------------------------------------------------*/static void selection_okCB(Widget widget, XtPointer client_data, XtPointer call_data){	XPigXCallback_data*   ptr = (XPigXCallback_data *) client_data;	XmSelectionBoxCallbackStruct* ptr2 = (XmSelectionBoxCallbackStruct *) call_data;	XmStringGetLtoR(ptr2->value, XmSTRING_DEFAULT_CHARSET, &ptr->answer);	PIGDBG2("selection_okCB %s\n", ptr->answer);	if(strlen(ptr->answer) > 0)		ptr->reason = xpOK;	PIGDBG2("selection_okCB %s\n", ptr->answer);}/* static void okCB(Widget widget, XtPointer client_data, XtPointer call_data) *//* { */	/* XPigXCallback_data*   ptr = (XPigXCallback_data *) client_data; */	/* XmSelectionBoxCallbackStruct* ptr2 = (XmSelectionBoxCallbackStruct *) call_data; *//*  */	/* XmStringGetLtoR(ptr2->value, XmSTRING_DEFAULT_CHARSET, &ptr->answer); *//*  */	/* ptr->reason = xpOK; */	/* PIGDBG2("okCB %s\n", ptr->answer); *//* } */static void cancelCB(Widget widget, XtPointer client_data, XtPointer call_data){	XPigXCallback_data*   ptr = (XPigXCallback_data *) client_data;;	ptr->reason = xpCANCEL;	PIGDBG2("cancelCB %s\n", ptr->name);}static void yesno_yesCB(Widget widget, XtPointer client_data, XtPointer call_data){	XPigXCallback_data*   ptr = (XPigXCallback_data *) client_data;;	ptr->reason = xpOK;	PIGDBG2("yesno_yesCB %s\n", ptr->name);}static void fatal_okCB(Widget widget, XtPointer client_data, XtPointer call_data){	XPigXCallback_data*   ptr = (XPigXCallback_data *) client_data;;	ptr->reason = xpOK;	PIGDBG2("fatal_okCB %s\n", ptr->name);}static void files_cancelCB(Widget widget, XtPointer client_data, XtPointer call_data){	XmFileSelectionBoxCallbackStruct*   ptr = (XmFileSelectionBoxCallbackStruct*) call_data;	XPigXCallback_data*   ptr2 = (XPigXCallback_data *) client_data;	char 		*string1;	char 		*string2;	char 		*string3;	char 		*string4;	XmStringGetLtoR(ptr->value, XmSTRING_DEFAULT_CHARSET, &ptr2->answer);	XmStringGetLtoR(ptr->value, XmSTRING_DEFAULT_CHARSET, &string1);	XmStringGetLtoR(ptr->mask, XmSTRING_DEFAULT_CHARSET, &string2);	XmStringGetLtoR(ptr->dir, XmSTRING_DEFAULT_CHARSET, &string3);	XmStringGetLtoR(ptr->pattern, XmSTRING_DEFAULT_CHARSET, &string4);	PIGDBG2("selected file named [%s]\n\n", string1);	PIGDBG2("mask named          [%s]\n\n", string2);	PIGDBG2("directory named     [%s]\n\n", string3);	PIGDBG2("pattern named       [%s]\n\n", string4);	XtFree(string1);	XtFree(string2);	XtFree(string3);	XtFree(string4);	callback_data.reason = xpCANCEL;	/* PIGDBG2("files_okCB %s\n", ptr->name); */}static void files_okCB(Widget widget, XtPointer client_data, XtPointer call_data){	XmFileSelectionBoxCallbackStruct*   ptr = (XmFileSelectionBoxCallbackStruct*) call_data;	XPigXCallback_data*   ptr2 = (XPigXCallback_data *) client_data;;	/* char 		*string1; */	/* char 		*string2; */	/* char 		*string3; */	/* char 		*string4; */	XmStringGetLtoR(ptr->value, XmSTRING_DEFAULT_CHARSET, &ptr2->answer);	/* XmStringGetLtoR(ptr->value, XmSTRING_DEFAULT_CHARSET, &string1); */	/* XmStringGetLtoR(ptr->mask, XmSTRING_DEFAULT_CHARSET, &string2); */	/* XmStringGetLtoR(ptr->dir, XmSTRING_DEFAULT_CHARSET, &string3); */	/* XmStringGetLtoR(ptr->pattern, XmSTRING_DEFAULT_CHARSET, &string4); */	/* PIGDBG2("selected file named [%s]\n\n", string1); */	/* PIGDBG2("mask named          [%s]\n\n", string2); */	/* PIGDBG2("directory named     [%s]\n\n", string3); */	/* PIGDBG2("pattern named       [%s]\n\n", string4); */	/* XtFree(string1); */	/* XtFree(string2); */	/* XtFree(string3); */	/* XtFree(string4); */	callback_data.reason = xpOK;	/* PIGDBG2("files_okCB %s\n", ptr->name); */}static void string_okCB(Widget widget, XtPointer client_data, XtPointer call_data){	XmString	the_string;	XPigXCallback_data*   ptr = (XPigXCallback_data *) client_data;	ptr->reason = xpOK;	PIGDBG2("string_yesCB %s\n", ptr->name);	XtVaGetValues(widget, XmNtextString, &the_string, NULL);	/* XmStringGetLtoR(the_string, XmSTRING_DEFAULT_CHARSET, &ptr2->answer); */	XmStringGetLtoR(the_string, XmSTRING_DEFAULT_CHARSET, &ptr->answer);	XmStringFree(the_string);	PIGDBG2("string_okCB answer = ---%s---\n", ptr->answer);}static void helpCB(Widget widget, XtPointer client_data, XtPointer call_data){	iWPigFatal("helpCB called!");}void AddCallbacks( Widget widget, XtPointer client_data, XtCallbackProc okCB,	XtCallbackProc cancelCB, XtCallbackProc helpCB    ){   /* AddCallbacks */	XtAddCallback(widget, XmNokCallback,		okCB,		client_data);	XtAddCallback(widget, XmNcancelCallback,		cancelCB,		client_data);	XtAddCallback(widget, XmNhelpCallback,		helpCB,		client_data);}   /* AddCallbacks *//*----------------------------------------------------------------------------*/static Widget iXPigCreatePushbutton(    Widget parent,    const char* name,    XtCallbackProc callback,    XtPointer client_data){   /* CreatePushbutton */	Widget    push;	Arg       args[20];	Cardinal  n;	n = 0;	/* XtSetArg(args[n], XmNshadowThickness, 0); n++; */	push = XmCreatePushButton(parent, name, args, n);	/* Set up callbacks. */        XtAddCallback(push,                XmNarmCallback,                callback,                client_data);        XtAddCallback(push,                XmNdisarmCallback,                callback,                client_data);	XtAddCallback(push,      /* widget */		XmNactivateCallback, /* which callback */		callback,            /* callback function */		client_data);        /* extra data to pass */	XtManageChild(push);        PIGDBG2("Added item %s, tag %li\n", name, (long)client_data);	return push;}   /* CreatePushbutton *//*----------------------------------------------------------------------------*/void WPigMainInit(void){PIGDBG3("void WPigMainInit(void)\n");	{		static void XPigMainDummy(void);		XPigMainDummy();	}PIGDBG3("Setting widgets in the application's window\n");	XtVaSetValues(MainXCanvas,		XmNrightAttachment, XmATTACH_WIDGET,		XmNrightWidget, ControlXCanvas,		NULL);	XtVaSetValues(manager,		XmNmessageWindow, MessageWindow,		XmNcommandWindowLocation, XmCOMMAND_BELOW_WORKSPACE,		NULL);PIGDBG3("The XmMainWindowSetAreas Call\n");	XmMainWindowSetAreas( manager, 		menu_bar, 

⌨️ 快捷键说明

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