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

📄 printutils.c

📁 nedit 是一款linux下的开发源码的功能强大的编辑器
💻 C
📖 第 1 页 / 共 3 页
字号:
	argcnt = 0;	XtSetArg(args[argcnt], XmNlabelString, (st0=XmStringCreateLtoR(		"Number of copies (1)", XmSTRING_DEFAULT_CHARSET))); argcnt++;	XtSetArg(args[argcnt], XmNmnemonic, 'N'); argcnt++;	XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;	XtSetArg(args[argcnt], XmNtopOffset, LABEL_TEXT_DIFF+5); argcnt++;	XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;	XtSetArg(args[argcnt], XmNleftOffset, 8); argcnt++;	label1 = XmCreateLabelGadget(form, "label1", args, argcnt);	XmStringFree( st0 );	bwidgetarray[bwidgetcnt] = label1; bwidgetcnt++;    	argcnt = 0;	XtSetArg(args[argcnt], XmNshadowThickness, (short)2); argcnt++;	XtSetArg(args[argcnt], XmNcolumns, 3); argcnt++;	XtSetArg(args[argcnt], XmNrows, 1); argcnt++;	XtSetArg(args[argcnt], XmNvalue , Copies); argcnt++;	XtSetArg(args[argcnt], XmNmaxLength, 3); argcnt++;        XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;  	XtSetArg(args[argcnt], XmNtopOffset, 5); argcnt++;	XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++; 	XtSetArg(args[argcnt], XmNleftWidget, label1); argcnt++;	Text1 = XmCreateText(form, "text1", args, argcnt);	bwidgetarray[bwidgetcnt] = Text1; bwidgetcnt++; 	XtAddCallback(Text1, XmNmodifyVerifyCallback,		(XtCallbackProc)allowOnlyNumInput, NULL);	XtAddCallback(Text1, XmNvalueChangedCallback,		(XtCallbackProc)updatePrintCmd, NULL);	RemapDeleteKey(Text1);	topWidget = Text1;	XtVaSetValues(label1, XmNuserData, Text1, NULL); /* mnemonic procesing */    }        /************************ LABEL 2 and TEXT 2 ************************/    if (QueueOption[0] != '\0') {	argcnt = 0;	XtSetArg(args[argcnt], XmNlabelString, (st0=XmStringCreateLtoR(		    "  ", XmSTRING_DEFAULT_CHARSET))); argcnt++;	XtSetArg(args[argcnt], XmNmnemonic, 'Q'); argcnt++;	XtSetArg(args[argcnt], XmNrecomputeSize, True); argcnt++;	XtSetArg(args[argcnt], XmNtopAttachment,		topWidget==NULL?XmATTACH_FORM:XmATTACH_WIDGET); argcnt++;	XtSetArg(args[argcnt], XmNtopWidget, topWidget); argcnt++;	XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;	XtSetArg(args[argcnt], XmNtopOffset, LABEL_TEXT_DIFF+4); argcnt++;	XtSetArg(args[argcnt], XmNleftOffset, 8); argcnt++;	Label2 = XmCreateLabelGadget(form, "label2", args, argcnt);	XmStringFree(st0);	bwidgetarray[bwidgetcnt] = Label2; bwidgetcnt++;	setQueueLabelText();	argcnt = 0;	XtSetArg(args[argcnt], XmNshadowThickness, (short)2); argcnt++;	XtSetArg(args[argcnt], XmNcolumns, (short)17); argcnt++;	XtSetArg(args[argcnt], XmNmaxLength, MAX_QUEUE_STR); argcnt++;	XtSetArg(args[argcnt], XmNvalue, Queue); argcnt++;	XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;	XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++;	XtSetArg(args[argcnt], XmNleftWidget, Label2 ); argcnt++;	XtSetArg(args[argcnt], XmNtopAttachment,		topWidget==NULL?XmATTACH_FORM:XmATTACH_WIDGET); argcnt++;	XtSetArg(args[argcnt], XmNtopWidget, topWidget ); argcnt++;	XtSetArg(args[argcnt], XmNrightOffset, 8); argcnt++;	XtSetArg(args[argcnt], XmNtopOffset, 4); argcnt++;	Text2 = XmCreateText(form, "text2", args, argcnt);	XtAddCallback(Text2, XmNmodifyVerifyCallback,		(XtCallbackProc)noSpaceOrPunct, NULL);	XtAddCallback(Text2, XmNvalueChangedCallback,		(XtCallbackProc)updatePrintCmd, NULL);	bwidgetarray[bwidgetcnt] = Text2; bwidgetcnt++;	RemapDeleteKey(Text2);	XtVaSetValues(Label2, XmNuserData, Text2, NULL); /* mnemonic procesing */	topWidget = Text2;    }        /****************** LABEL 3 and TEXT 3 *********************/    if (HostOption[0] != '\0') {	argcnt = 0;	XtSetArg(args[argcnt], XmNlabelString, (st0=XmStringCreateLtoR(		   "  ", XmSTRING_DEFAULT_CHARSET))); argcnt++;	XtSetArg(args[argcnt], XmNmnemonic, 'H'); argcnt++;	XtSetArg(args[argcnt], XmNrecomputeSize, True); argcnt++;	XtSetArg(args[argcnt], XmNvalue , ""); argcnt++;	XtSetArg(args[argcnt], XmNtopAttachment,		topWidget==NULL?XmATTACH_FORM:XmATTACH_WIDGET); argcnt++;	XtSetArg(args[argcnt], XmNtopWidget, topWidget ); argcnt++;  	XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;	XtSetArg(args[argcnt], XmNleftOffset, 8); argcnt++;	XtSetArg(args[argcnt], XmNtopOffset, LABEL_TEXT_DIFF+4); argcnt++;	Label3 = XmCreateLabelGadget(form, "label3", args, argcnt);	XmStringFree(st0);	bwidgetarray[bwidgetcnt] = Label3; bwidgetcnt++;	setHostLabelText();      	argcnt = 0;	XtSetArg(args[argcnt], XmNcolumns, 17); argcnt++;	XtSetArg(args[argcnt], XmNrows, 1); argcnt++;	XtSetArg(args[argcnt], XmNvalue, Host); argcnt++;	XtSetArg(args[argcnt], XmNmaxLength, MAX_HOST_STR); argcnt++;	XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;	XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++;	XtSetArg(args[argcnt], XmNleftWidget, Label3 ); argcnt++;	XtSetArg(args[argcnt], XmNtopAttachment,		topWidget==NULL?XmATTACH_FORM:XmATTACH_WIDGET); argcnt++;	XtSetArg(args[argcnt], XmNtopWidget, topWidget ); argcnt++;  	XtSetArg(args[argcnt], XmNrightOffset, 8); argcnt++;    	XtSetArg(args[argcnt], XmNtopOffset, 4); argcnt++;	Text3 = XmCreateText(form, "Text3", args, argcnt);	XtAddCallback(Text3, XmNmodifyVerifyCallback,		(XtCallbackProc)noSpaceOrPunct, NULL);	XtAddCallback(Text3, XmNvalueChangedCallback,		(XtCallbackProc)updatePrintCmd, NULL);	bwidgetarray[bwidgetcnt] = Text3; bwidgetcnt++;     	RemapDeleteKey(Text3);	XtVaSetValues(Label3, XmNuserData, Text3, NULL); /* mnemonic procesing */    	topWidget = Text3;    }    /************************** TEXT 4 ***************************/    argcnt = 0;    XtSetArg(args[argcnt], XmNvalue, CmdText); argcnt++;    XtSetArg(args[argcnt], XmNcolumns, 50); argcnt++;    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;    XtSetArg(args[argcnt], XmNleftOffset, 8); argcnt++;    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;    XtSetArg(args[argcnt], XmNtopOffset, 8); argcnt++;    XtSetArg(args[argcnt], XmNtopWidget, topWidget ); argcnt++;    XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;    XtSetArg(args[argcnt], XmNrightOffset, 8); argcnt++;    Text4 = XmCreateText(form, "Text4", args, argcnt);    XtAddCallback(Text4, XmNmodifyVerifyCallback,	    (XtCallbackProc)printCmdModified, NULL);    bwidgetarray[bwidgetcnt] = Text4; bwidgetcnt++;     RemapDeleteKey(Text4);    topWidget = Text4;    if (!CmdFieldModified)    	updatePrintCmd(NULL, NULL, NULL);    /*********************** SEPARATOR **************************/    argcnt = 0;    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;    XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;    XtSetArg(args[argcnt], XmNtopOffset, 8); argcnt++;    XtSetArg(args[argcnt], XmNtopWidget, topWidget ); argcnt++;    separator = XmCreateSeparatorGadget(form, "separator", args, argcnt);    bwidgetarray[bwidgetcnt] = separator; bwidgetcnt++;     topWidget = separator;    /********************** CANCEL BUTTON *************************/    argcnt = 0;    XtSetArg(args[argcnt], XmNlabelString, (st0=XmStringCreateLtoR(		"Cancel", XmSTRING_DEFAULT_CHARSET))); argcnt++;    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_POSITION); argcnt++;    XtSetArg(args[argcnt], XmNleftPosition, 60); argcnt++;    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;    XtSetArg(args[argcnt], XmNtopWidget, topWidget ); argcnt++;      XtSetArg(args[argcnt], XmNtopOffset, 7); argcnt++;    printCancel = XmCreatePushButton(form, "printCancel", args, argcnt);    XmStringFree( st0 );    bwidgetarray[bwidgetcnt] = printCancel; bwidgetcnt++;    XtAddCallback (printCancel, XmNactivateCallback,    	    (XtCallbackProc)cancelButtonCB, NULL);    /*********************** PRINT BUTTON **************************/    argcnt = 0;    XtSetArg(args[argcnt], XmNlabelString, (st0=XmStringCreateLtoR(		"Print", XmSTRING_DEFAULT_CHARSET))); argcnt++;    XtSetArg(args[argcnt], XmNshowAsDefault, True); argcnt++;    XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_POSITION); argcnt++;    XtSetArg(args[argcnt], XmNrightPosition, 40); argcnt++;    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;    XtSetArg(args[argcnt], XmNtopWidget, topWidget ); argcnt++;      XtSetArg(args[argcnt], XmNtopOffset, 7); argcnt++;    printOk = XmCreatePushButton(form, "printOk", args, argcnt);    XmStringFree( st0 );    bwidgetarray[bwidgetcnt] = printOk; bwidgetcnt++;     XtAddCallback (printOk, XmNactivateCallback,    	    (XtCallbackProc)printButtonCB, NULL);    argcnt = 0;    XtSetArg(args[argcnt], XmNcancelButton, printCancel); argcnt++;    XtSetArg(args[argcnt], XmNdefaultButton, printOk); argcnt++;    XtSetValues(form, args, argcnt);    XtManageChildren(bwidgetarray, bwidgetcnt);    AddDialogMnemonicHandler(form, FALSE);    return form;}static void setQueueLabelText(void){    Arg args[15];    int	argcnt;    XmString	st0;    char        tmp_buf[MAX_QUEUE_STR+8];    if (DefaultQueue[0] != '\0')    	sprintf(tmp_buf, "Queue (%s)", DefaultQueue);    else    	sprintf(tmp_buf, "Queue");    argcnt = 0;    XtSetArg(args[argcnt], XmNlabelString, (st0=XmStringCreateLtoR(		tmp_buf, XmSTRING_DEFAULT_CHARSET))); argcnt++;    XtSetValues (Label2, args, argcnt);    XmStringFree( st0 );}static void setHostLabelText(void){    Arg args[15];    int	argcnt;    XmString st0;    char tmp_buf[MAX_HOST_STR+7];    if (strcmp(DefaultHost, ""))    	sprintf(tmp_buf, "Host (%s)", DefaultHost);    else    	sprintf(tmp_buf, "Host");    argcnt = 0;    XtSetArg(args[argcnt], XmNlabelString, (st0=XmStringCreateLtoR(		tmp_buf, XmSTRING_DEFAULT_CHARSET))); argcnt++;    XtSetValues (Label3, args, argcnt);    XmStringFree( st0 );}static void allowOnlyNumInput(Widget widget, caddr_t client_data,			      XmTextVerifyCallbackStruct *call_data){    int i, textInserted, nInserted;    nInserted = call_data->text->length;    textInserted = (nInserted > 0);    if ((call_data->reason == XmCR_MODIFYING_TEXT_VALUE) && textInserted) {	for (i=0; i<nInserted; i++) {            if (!isdigit((unsigned char)call_data->text->ptr[i])) {            	call_data->doit = False;            	return;            }        }    }    call_data->doit = True;}/*** Prohibit a relatively random sampling of characters that will cause** problems on command lines*/static void noSpaceOrPunct(Widget widget, caddr_t client_data,			      XmTextVerifyCallbackStruct *call_data){    int i, j, textInserted, nInserted;#ifndef VMS    static char prohibited[] = " \t,;|<>()[]{}!@?";#else    static char prohibited[] = " \t,;|@+";#endif    nInserted = call_data->text->length;    textInserted = (nInserted > 0);    if ((call_data->reason == XmCR_MODIFYING_TEXT_VALUE) && textInserted) {	for (i=0; i<nInserted; i++) {            for (j=0; j<(int)XtNumber(prohibited); j++) {        	if (call_data->text->ptr[i] == prohibited[j]) {            	    call_data->doit = False;            	    return;        	}            }        }    }    call_data->doit = True;}static void updatePrintCmd(Widget w, caddr_t client_data, caddr_t call_data){    char command[MAX_CMD_STR], copiesArg[MAX_OPT_STR+MAX_INT_STR];    char jobArg[MAX_NAME_STR], hostArg[MAX_OPT_STR+MAX_HOST_STR];    char queueArg[MAX_OPT_STR+MAX_QUEUE_STR];    char *str;    int nCopies;#ifdef VMS    char printJobName[VMS_MAX_JOB_NAME_STR+1];#endif /*VMS*/    /* read each text field in the dialog and generate the corresponding       command argument */    if (CopiesOption[0] == '\0') {    	copiesArg[0] = '\0';    } else {	str = XmTextGetString(Text1);	if (str[0] == '\0') {	    copiesArg[0] = '\0';	} else {	    if (sscanf(str, "%d", &nCopies) != 1) {            	copiesArg[0] = '\0';            } else {            	sprintf(copiesArg, " %s%s", CopiesOption, str);            }	}	XtFree(str);    }    if (QueueOption[0] == '\0') {    	queueArg[0] = '\0';    } else {	str = XmTextGetString(Text2);  	if (str[0] == '\0')	    queueArg[0] = '\0';	else 		    sprintf(queueArg, " %s%s", QueueOption, str);		XtFree(str);    }    if (HostOption[0] == '\0') {    	hostArg[0] = '\0';    } else {	str = XmTextGetString(Text3);  	if (str[0] == '\0')	    hostArg[0] = '\0';	else  		    sprintf(hostArg, " %s%s", HostOption, str);	XtFree(str);    }    if (NameOption[0] == '\0')    	jobArg[0] = '\0';    else {#ifdef VMS    /* truncate job name on VMS systems or it will cause problems */        strncpy(printJobName,PrintJobName,VMS_MAX_JOB_NAME_STR);        printJobName[VMS_MAX_JOB_NAME_STR] = '\0';        sprintf(jobArg, " %s\"%s\"", NameOption, printJobName);#else        sprintf(jobArg, " %s\"%s\"", NameOption, PrintJobName);#endif

⌨️ 快捷键说明

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