📄 dna3.cc
字号:
a.boxwidget[j][3] = 0; w[wc++] = addlabel(form,boxstring,LEFT,LABELSTART,y,LABELEND,y+bspacing); XtManageChild(boxbutton[j]); XtAddCallback(boxbutton[j], XmNvalueChangedCallback, (XtCBP)dialogstringcb, (XtP)&a); XtAddCallback(boxbutton[j], XmNfocusCallback, (XtCBP)dialogcursorcb, (XtP)&a); y+=0.4*bspacing; break; case TOGGLESTRING: //// Toggle button portion - The callback f1 must unset other //// buttons, gray out unwanted options, etc. - it is not done //// automatically. n = 0; XtSetArg(args[n], XmNmarginLeft, 15); n++; XtSetArg(args[n], XmNresizable, False); n++; XtSetArg(args[n], XmNspacing, 0); n++; XtSetArg(args[n], XmNleftPosition, BOXSTART); n++; XtSetArg(args[n], XmNtopPosition, y); n++; XtSetArg(args[n], XmNbottomPosition, y+bspacing); n++; XtSetArg(args[n], XmNrightPosition, BOXSTART+CHECKWIDTH); n++; XtSetArg(args[n], XmNfractionBase, 100); n++; // Use percentages XtSetArg(args[n], XmNtopAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNleftAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_POSITION); n++; #ifdef MOTIF2 XtSetArg(args[n], XmNindicatorOn, XmINDICATOR_CROSS_BOX); n++; #endif XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++; if(a.boxset[j]){ XtSetArg(args[n], XmNset, True); n++; } else { XtSetArg(args[n], XmNset, False); n++; } //// Stop Motif from trying to grab another color if none are available. if(g.want_colormaps) { XtSetArg(args[n], XmNbackground, g.main_bcolor); n++; XtSetArg(args[n], XmNforeground, g.main_fcolor); n++; } w[wc++] = boxbutton[j] =XmCreateToggleButton(form," ",args,n); a.boxwidget[j][0] = boxbutton[j]; XtManageChild(boxbutton[j]); //// Set up callbacks for each box button XtAddCallback(a.boxwidget[j][0], XmNarmCallback,(XtCBP)armboxcb, (XtP)&a); XtAddCallback(a.boxwidget[j][0], XmNvalueChangedCallback, (XtCBP)toggleboxcb, (XtP)&a); if(a.boxset[j]) XmToggleButtonSetState(a.boxwidget[j][0], True, False); //// String portion n = 0; XtSetArg(args[n], XmNresizable, False); n++; XtSetArg(args[n], XmNresizeWidth, False); n++; XtSetArg(args[n], XmNspacing, 0); n++; XtSetArg(args[n], XmNleftPosition, BOXSTART+CHECKWIDTH); n++; XtSetArg(args[n], XmNtopPosition, y); n++; XtSetArg(args[n], XmNbottomPosition, y+bspacing); n++; XtSetArg(args[n], XmNrightPosition, BOXEND); n++; XtSetArg(args[n], XmNfractionBase, 100); n++; // Use percentages XtSetArg(args[n], XmNtopAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNleftAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNrows, 1); n++; XtSetArg(args[n], XmNcolumns, 10); n++; XtSetArg(args[n], XmNmarginHeight, 1); n++; XtSetArg(args[n], XmNmarginWidth, 1); n++; XtSetArg(args[n], XmNmaxLength, 256); n++; XtSetArg(args[n], XmNvalue, a.answer[j]);n++; XtSetArg(args[n], XmNcursorPosition,(int)strlen(a.answer[j])); n++; //// Stop Motif from trying to grab another color if none are available. if(g.want_colormaps) { XtSetArg(args[n], XmNbackground, g.main_bcolor); n++; XtSetArg(args[n], XmNforeground, g.main_fcolor); n++; } widget = w[wc++] = XmCreateText(form, boxstring, args, n); w[wc++] = addlabel(form,boxstring,LEFT,LABELSTART,y,LABELEND,y+bspacing); a.boxwidget[j][1] = widget; a.boxwidget[j][2] = 0; a.boxwidget[j][3] = 0; XtManageChild(widget); XtAddCallback(widget, XmNvalueChangedCallback, (XtCBP)dialogstringcb, (XtP)&a); break; case INTCLICKBOX: // Pushbutton calling a clickbox (Slider) n = 0; XtSetArg(args[n], XmNmarginLeft, 4); n++; XtSetArg(args[n], XmNresizable, False); n++; XtSetArg(args[n], XmNspacing, 0); n++; XtSetArg(args[n], XmNleftPosition, BOXSTART); n++; XtSetArg(args[n], XmNtopPosition, y); n++; XtSetArg(args[n], XmNbottomPosition, y+bspacing); n++; XtSetArg(args[n], XmNrightPosition, BOXEND); n++; XtSetArg(args[n], XmNfractionBase, 100); n++; XtSetArg(args[n], XmNtopAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNleftAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNresizable, False); n++; XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++; XtSetArg(args[n], XmNlabelString, xms = XmStringCreateSimple(a.answer[j]));n++; XtSetArg(args[n], XmNmarginWidth, 1); n++; //// Stop Motif from trying to grab another color if none are available. if(g.want_colormaps) { XtSetArg(args[n], XmNbackground, g.main_bcolor); n++; XtSetArg(args[n], XmNforeground, g.main_fcolor); n++; } boxbutton[j] = w[wc++] = XmCreatePushButton(form,boxstring,args,n); a.boxwidget[j][0] = boxbutton[j]; a.boxwidget[j][1] = 0; a.boxwidget[j][2] = 0; a.boxwidget[j][3] = 0; XtManageChild(boxbutton[j]); XmStringFree(xms); w[wc++] = addlabel(form,boxstring,LEFT,LABELSTART,y,LABELEND,y+bspacing); clickboxdata[j].title = boxstring; clickboxdata[j].answer = atoi(a.answer[j]); clickboxdata[j].startval = atoi(a.answer[j]); clickboxdata[j].minval = a.boxmin[j]; clickboxdata[j].maxval = a.boxmax[j]; clickboxdata[j].type = INTEGER; clickboxdata[j].wantpreview = 0; clickboxdata[j].widget[0] = boxbutton[j]; clickboxdata[j].dirmask = 0; clickboxdata[j].f1 = null; clickboxdata[j].f2 = null; clickboxdata[j].f3 = null; a.c[j] = &clickboxdata[j]; XtAddCallback(boxbutton[j], XmNactivateCallback, (XtCBP)dialogclickboxcb, (XtP)&a); XtAddCallback(boxbutton[j], XmNarmCallback, (XtCBP)armboxcb, (XtP)&a); break; case FILENAME: // Get filename case MULTIFILENAME: // Get list of filenames, dont forget to // free the arrays. if((int)a.answer[j][0]==0) strcpy(a.answer[j],"none "); else strcpy(tempstring, basefilename(a.answer[j])); n = 0; XtSetArg(args[n], XmNresizable, False); n++; XtSetArg(args[n], XmNspacing, 0); n++; XtSetArg(args[n], XmNleftPosition, BOXSTART); n++; // % of width from left XtSetArg(args[n], XmNtopPosition, y); n++; // % of height from top XtSetArg(args[n], XmNbottomPosition, y+bspacing); n++; // % of width from top XtSetArg(args[n], XmNrightPosition, BOXEND); n++; // % of height from left XtSetArg(args[n], XmNfractionBase, 100); n++; // Use percentages XtSetArg(args[n], XmNtopAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNleftAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNresizable, False); n++; XtSetArg(args[n], XmNalignment, XmALIGNMENT_END); n++; XtSetArg(args[n], XmNlabelString, xms=XmStringCreateSimple(tempstring)); n++; XtSetArg(args[n], XmNcursorPosition,(int)strlen(tempstring)); n++; //// Stop Motif from trying to grab another color if none are available. if(g.want_colormaps) { XtSetArg(args[n], XmNbackground, g.main_bcolor); n++; XtSetArg(args[n], XmNforeground, g.main_fcolor); n++; } boxbutton[j] = w[wc++] = XmCreatePushButton(form,boxstring,args,n); a.boxwidget[j][0] = boxbutton[j]; a.boxwidget[j][1] = 0; a.boxwidget[j][2] = 0; a.boxwidget[j][3] = 0; w[wc++] = addlabel(form,boxstring,LEFT,LABELSTART,y,LABELEND,y+bspacing); clickboxdata[j].title = a.answer[j]; clickboxdata[j].widget[1] = boxbutton[j]; clickboxdata[j].f1 = null; clickboxdata[j].f2 = null; clickboxdata[j].f3 = null; clickboxdata[j].wc = 0; clickboxdata[j].w = new Widget[DCOUNT]; clickboxdata[j].form = form; clickboxdata[j].list = NULL; clickboxdata[j].dirmask = new char[FILENAMELENGTH]; clickboxdata[j].path = a.path; strcpy(clickboxdata[j].dirmask, dirmask); if(a.boxtype[j] == MULTIFILENAME) clickboxdata[j].type = MULTIPLE; else clickboxdata[j].type = SINGLE; clickboxdata[j].count = 0; a.c[j] = &clickboxdata[j]; XtAddCallback(boxbutton[j], XmNactivateCallback, (XtCBP)dialogfilenamecb, (XtP)&a); XtAddCallback(boxbutton[j], XmNarmCallback, (XtCBP)armboxcb, (XtP)&a); XtManageChild(boxbutton[j]); XmStringFree(xms); startpos = strlen(tempstring); startpos = max(0,startpos-36); break; case MULTICLICKBOX: // RGB multi clickbox - Display 3 boxes that all n = 0; // change the same data. XtSetArg(args[n], XmNresizable, False); n++; XtSetArg(args[n], XmNspacing, 0); n++; XtSetArg(args[n], XmNleftPosition, BOXSTART); n++; // % of width from left XtSetArg(args[n], XmNtopPosition, y); n++; // % of height from top XtSetArg(args[n], XmNbottomPosition, y+bspacing); n++; // % of width from top XtSetArg(args[n], XmNrightPosition, BOXEND); n++; // % of height from left XtSetArg(args[n], XmNfractionBase, 100); n++; // Use percentages XtSetArg(args[n], XmNtopAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNleftAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_POSITION); n++; //// Stop Motif from trying to grab another color if none are available. if(g.want_colormaps) { XtSetArg(args[n], XmNbackground, g.main_bcolor); n++; XtSetArg(args[n], XmNforeground, g.main_fcolor); n++; } value = atoi(a.answer[j]); ///valuetoRGB(value,color[1],color[2],color[3],a.bpp); clickboxdata[j].title = boxstring; clickboxdata[j].answer = atoi(a.answer[j]); clickboxdata[j].startval = atoi(a.answer[j]); clickboxdata[j].minval = a.boxmin[j]; clickboxdata[j].maxval = a.boxmax[j]; clickboxdata[j].type = INTEGER; clickboxdata[j].wantpreview = 0; clickboxdata[j].wantdragcb = 1; clickboxdata[j].f1 = null; clickboxdata[j].f2 = null; clickboxdata[j].f3 = null; a.c[j] = &clickboxdata[j]; a.boxwidget[j][0] = 0; for(k=1;k<4;k++) { XtSetArg(args[n], XmNleftPosition, BOXSTART+(k-1)*7); n++; XtSetArg(args[n], XmNtopPosition, y); n++; XtSetArg(args[n], XmNrightPosition, BOXSTART+k*7-1); n++; XtSetArg(args[n], XmNresizable, False); n++; XtSetArg(args[n], XmNspacing, 0); n++; XtSetArg(args[n], XmNalignment, XmALIGNMENT_BEGINNING); n++; XtSetArg(args[n], XmNresizable, False); n++; XtSetArg(args[n], XmNfractionBase, 100); n++; // Use percentages XtSetArg(args[n], XmNtopAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNleftAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNbottomAttachment, XmATTACH_POSITION); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_POSITION); n++; itoa(color[k],temp,10); XtSetArg(args[n], XmNlabelString,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -