Widget _DtTermViewCreateGlobalOptionsDialog ( Widget parent ) { OptionsDialogType *options; Widget cursorFrame; Widget cursorForm; Widget backgroundFrame; Widget backgroundForm; Widget scrollFrame; Widget scrollForm; Widget bellFrame; Widget bellForm; Widget label; Widget pulldown; Widget tmp; Widget separator; Widget button; Widget cancel; Widget reset; XmString string; XmString helpString; XmString okString; XmString cancelString; XmString resetString; Arg al[20]; int ac; _DtTermViewLineupList *lineupList; DtTermViewWidget tw = (DtTermViewWidget) parent; options = (OptionsDialogType *) XtMalloc(sizeof(OptionsDialogType)); (void) memset(options, '\0', sizeof(*options)); options->dtterm = tw->termview.term; ac = 0; string = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewGlobalDialog,34, "Terminal - Global Options"))); okString = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewGlobalDialog,2, "OK"))); cancelString = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewGlobalDialog,3, "Cancel"))); helpString = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewGlobalDialog,4, "Help"))); resetString = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewGlobalDialog,33, "Reset"))); (void) XtSetArg(al[ac], XmNdialogTitle, string); ac++; (void) XtSetArg(al[ac], XmNokLabelString, okString); ac++; (void) XtSetArg(al[ac], XmNcancelLabelString, cancelString); ac++; (void) XtSetArg(al[ac], XmNhelpLabelString, helpString); ac++; (void) XtSetArg(al[ac], XmNautoUnmanage, False); ac++; options->dialog = XmCreateTemplateDialog(parent, (GETMESSAGE(NL_SETN_ViewGlobalDialog,5, "global")), al, ac); (void) XmStringFree(okString); (void) XmStringFree(cancelString); (void) XmStringFree(helpString); (void) XtSetArg(al[0], XmNlabelString, resetString); reset = XmCreatePushButtonGadget(options->dialog, "ResetButton", al, 1); XtManageChild(reset); (void) XmStringFree(resetString); (void) XtAddCallback(reset, XmNactivateCallback, MapGlobalOptionsDialogCallback, (XtPointer) options); (void) XtAddCallback(options->dialog, XmNokCallback, OkGlobalOptionsDialogCallback, (XtPointer) options); (void) XtAddCallback(options->dialog, XmNcancelCallback, CancelGlobalOptionsDialogCallback, (XtPointer) options); (void) XtAddCallback(options->dialog, XmNmapCallback, MapGlobalOptionsDialogCallback, (XtPointer) options); (void) XtAddCallback(options->dialog, XmNhelpCallback, HelpTerminalOptionsCallback, (XtPointer) tw); options->shell = XtParent(options->dialog); ac = 0; (void) XtSetArg(al[ac], XmNallowShellResize, False); ac++; (void) XtSetValues(options->shell, al, ac); ac = 0; options->form = XmCreateForm(options->dialog, "form", al, ac); (void) XtManageChild(options->form); /**************************************************************** **************************************************************** *** Cursor parameters... ***/ ac = 0; (void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], DtNmarginWidth, 5); ac++; (void) XtSetArg(al[ac], DtNmarginHeight, 5); ac++; cursorFrame = XmCreateFrame(options->form, "cursorFrame", al, ac); (void) XtManageChild(cursorFrame); ac = 0; string = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewGlobalDialog,6, "Cursor Control"))); (void) XtSetArg(al[ac], XmNlabelString, string); ac++; (void) XtSetArg(al[ac], XmNchildType, XmFRAME_TITLE_CHILD); ac++; (void) XtSetArg(al[ac], XmNtraversalOn, False); ac++; label = XmCreateLabelGadget(cursorFrame, "cursorFrameLabel", al, ac); (void) XmStringFree(string); (void) XtManageChild(label); ac = 0; cursorForm = XmCreateForm(cursorFrame, "cursorForm", al, ac); /**************************************************************** * option menu: type [ box | underline ] */ pulldown = _DtTermViewCreatePulldown(cursorForm, "cursorTypePulldown"); options->cursor.type.box = _DtTermViewCreatePushButton(pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,7, "Box")), NoSymbol, NULL, NULL, NULL, NULL); options->cursor.type.underline = _DtTermViewCreatePushButton(pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,8, "Underline")), NoSymbol, NULL, NULL, NULL, NULL); options->cursor.type.invisible = _DtTermViewCreatePushButton(pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,14, "Invisible")), NoSymbol, NULL, NULL, NULL, NULL); ac = 0; (void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; tmp = _DtTermViewCreateOptionMenu(cursorForm, pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,9, "Cursor Style")), NoSymbol, al, ac); options->cursor.type.option = tmp; /* add to the lineup list... */ lineupList = _DtTermViewLineupListCreate(); (void) _DtTermViewLineupListAddItem(lineupList, XmOptionLabelGadget(options->cursor.type.option), options->cursor.type.option, CORRECTION_OPTION_MENU); /**************************************************************** * option menu: blink [ on | off ] */ pulldown = _DtTermViewCreatePulldown(cursorForm, "cursorBlinkPulldown"); (void) XtAddCallback(pulldown, XmNentryCallback, CursorBlinkCallback, (XtPointer) options); options->cursor.blink.on = _DtTermViewCreatePushButton(pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,10, "Enabled")), NoSymbol, NULL, NULL, NULL, NULL); options->cursor.blink.off = _DtTermViewCreatePushButton(pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,11, "Disabled")), NoSymbol, NULL, NULL, NULL, NULL); ac = 0; (void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; (void) XtSetArg(al[ac], XmNtopWidget, tmp); ac++; (void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; tmp = _DtTermViewCreateOptionMenu(cursorForm, pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,12, "Blinking Cursor")), NoSymbol, al, ac); options->cursor.blink.option = tmp; /* add to the lineup list... */ (void) _DtTermViewLineupListAddItem(lineupList, XmOptionLabelGadget(options->cursor.blink.option), options->cursor.blink.option, CORRECTION_OPTION_MENU); /**************************************************************** * text field: blink rate _250_ */ ac = 0; string = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewGlobalDialog,13, "Blink Rate (milliseconds)"))); (void) XtSetArg(al[ac], XmNlabelString, string); ac++; (void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; (void) XtSetArg(al[ac], XmNtopWidget, tmp); ac++; (void) XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNtraversalOn, False); ac++; options->cursor.blinkRate.label = XmCreateLabelGadget(cursorForm, "blinkRateLabel", al, ac); (void) XmStringFree(string); (void) XtManageChild(options->cursor.blinkRate.label); ac = 0; (void) XtSetArg(al[ac], DtNcolumns, 4); ac++; (void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_WIDGET); ac++; (void) XtSetArg(al[ac], XmNleftWidget, options->cursor.blinkRate.label); ac++; (void) XtSetArg(al[ac], XmNleftOffset, CORRECTION_TEXT_OFFSET); ac++; (void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; (void) XtSetArg(al[ac], XmNtopWidget, tmp); ac++; (void) XtSetArg(al[ac], XmNnavigationType, XmNONE); ac++; options->cursor.blinkRate.text = XmCreateTextField(cursorForm, (GETMESSAGE(NL_SETN_ViewGlobalDialog,15, "blinkRate")), al, ac); (void) XtManageChild(options->cursor.blinkRate.text); options->cursor.blinkRate.oldBlinkRate = 0; /* make the label and textfield the same height... */ _DtTermViewEqualizeHeights(options->cursor.blinkRate.label, options->cursor.blinkRate.text); /* add to the lineup list... */ (void) _DtTermViewLineupListAddItem(lineupList, options->cursor.blinkRate.label, options->cursor.blinkRate.text, CORRECTION_LABEL); /* manage the cursor form... */ (void) XtManageChild(cursorForm); /**************************************************************** **************************************************************** **** Background parameters... ***/ ac = 0; (void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; (void) XtSetArg(al[ac], XmNtopWidget, cursorFrame); ac++; (void) XtSetArg(al[ac], XmNtopOffset, 5); ac++; (void) XtSetArg(al[ac], DtNmarginWidth, 5); ac++; (void) XtSetArg(al[ac], DtNmarginHeight, 5); ac++; backgroundFrame = XmCreateFrame(options->form, "backgroundFrame", al, ac); (void) XtManageChild(backgroundFrame); ac = 0; string = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewGlobalDialog,16, "Color Control"))); (void) XtSetArg(al[ac], XmNlabelString, string); ac++; (void) XtSetArg(al[ac], XmNchildType, XmFRAME_TITLE_CHILD); ac++; (void) XtSetArg(al[ac], XmNtraversalOn, False); ac++; label = XmCreateLabelGadget(backgroundFrame, "backgroundFrameLabel", al, ac); (void) XmStringFree(string); (void) XtManageChild(label); ac = 0; backgroundForm = XmCreateForm(backgroundFrame, "backgroundForm", al, ac); /**************************************************************** * option menu: inverse video [on | off ] */ pulldown = _DtTermViewCreatePulldown(backgroundForm, "inverseVideoPulldown"); options->background.inverse.off = _DtTermViewCreatePushButton(pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,18, "Normal")), NoSymbol, NULL, NULL, NULL, NULL); options->background.inverse.on = _DtTermViewCreatePushButton(pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,17, "Inverse")), NoSymbol, NULL, NULL, NULL, NULL); ac = 0; (void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM); ac++; tmp = _DtTermViewCreateOptionMenu(backgroundForm, pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,19, "Window Background")), NoSymbol, al, ac); options->background.inverse.option = tmp; /* add to the lineup list... */ (void) _DtTermViewLineupListAddItem(lineupList, XmOptionLabelGadget(options->background.inverse.option), options->background.inverse.option, CORRECTION_OPTION_MENU); /* manage the cursor form... */ (void) XtManageChild(backgroundForm); /**************************************************************** **************************************************************** **** Scroll parameters... ***/ ac = 0; (void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; (void) XtSetArg(al[ac], XmNtopWidget, backgroundFrame); ac++; (void) XtSetArg(al[ac], XmNtopOffset, 5); ac++; (void) XtSetArg(al[ac], DtNmarginWidth, 5); ac++; (void) XtSetArg(al[ac], DtNmarginHeight, 5); ac++; scrollFrame = XmCreateFrame(options->form, "scrollFrame", al, ac); (void) XtManageChild(scrollFrame); ac = 0; string = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewGlobalDialog,20, "Scroll Behavior"))); (void) XtSetArg(al[ac], XmNlabelString, string); ac++; (void) XtSetArg(al[ac], XmNchildType, XmFRAME_TITLE_CHILD); ac++; (void) XtSetArg(al[ac], XmNtraversalOn, False); ac++; label = XmCreateLabelGadget(scrollFrame, "scrollFrameLabel", al, ac); (void) XmStringFree(string); (void) XtManageChild(label); ac = 0; scrollForm = XmCreateForm(scrollFrame, "scrollForm", al, ac); /**************************************************************** * option menu: type [jump | smooth ] */ pulldown = _DtTermViewCreatePulldown(scrollForm, "ScrollTypePulldown"); options->scroll.type.jump = _DtTermViewCreatePushButton(pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,21, "Disabled")), NoSymbol, NULL, NULL, NULL, NULL); options->scroll.type.smooth = _DtTermViewCreatePushButton(pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,22, "Enabled")), NoSymbol, NULL, NULL, NULL, NULL); ac = 0; (void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM); ac++; tmp = _DtTermViewCreateOptionMenu(scrollForm, pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,23, "Smooth Scrolling")), NoSymbol, al, ac); options->scroll.type.option = tmp; /* add to the lineup list... */ (void) _DtTermViewLineupListAddItem(lineupList, XmOptionLabelGadget(options->scroll.type.option), options->scroll.type.option, CORRECTION_OPTION_MENU); /* manage the cursor form... */ (void) XtManageChild(scrollForm); /**************************************************************** **************************************************************** *** Bell parameters... ***/ ac = 0; (void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; (void) XtSetArg(al[ac], XmNtopWidget, scrollFrame); ac++; (void) XtSetArg(al[ac], XmNtopOffset, 5); ac++; (void) XtSetArg(al[ac], DtNmarginWidth, 5); ac++; (void) XtSetArg(al[ac], DtNmarginHeight, 5); ac++; bellFrame = XmCreateFrame(options->form, "bellFrame", al, ac); (void) XtManageChild(bellFrame); ac = 0; string = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewGlobalDialog,24, "Bell Control"))); (void) XtSetArg(al[ac], XmNlabelString, string); ac++; (void) XtSetArg(al[ac], XmNchildType, XmFRAME_TITLE_CHILD); ac++; (void) XtSetArg(al[ac], XmNtraversalOn, False); ac++; label = XmCreateLabelGadget(bellFrame, "bellFrameLabel", al, ac); (void) XmStringFree(string); (void) XtManageChild(label); ac = 0; bellForm = XmCreateForm(bellFrame, "bellForm", al, ac); /**************************************************************** * option menu: Type [audible | visible ] */ pulldown = _DtTermViewCreatePulldown(bellForm, "typePulldown"); options->bell.type.audible = _DtTermViewCreatePushButton(pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,25, "Audible")), NoSymbol, NULL, NULL, NULL, NULL); options->bell.type.visual = _DtTermViewCreatePushButton(pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,26, "Visible")), NoSymbol, NULL, NULL, NULL, NULL); ac = 0; (void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; tmp = _DtTermViewCreateOptionMenu(bellForm, pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,27, "Bell Type")), NoSymbol, al, ac); options->bell.type.option = tmp; /* add to the lineup list... */ (void) _DtTermViewLineupListAddItem(lineupList, XmOptionLabelGadget(options->bell.type.option), options->bell.type.option, CORRECTION_OPTION_MENU); /**************************************************************** * option menu: Margin Bell [on | off ] */ pulldown = _DtTermViewCreatePulldown(bellForm, "bellMarginPulldown"); (void) XtAddCallback(pulldown, XmNentryCallback, BellMarginCallback, (XtPointer) options); options->bell.bellMargin.on = _DtTermViewCreatePushButton(pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,28, "Enabled")), NoSymbol, NULL, NULL, NULL, NULL); options->bell.bellMargin.off = _DtTermViewCreatePushButton(pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,29, "Disabled")), NoSymbol, NULL, NULL, NULL, NULL); ac = 0; (void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; (void) XtSetArg(al[ac], XmNtopWidget, tmp); ac++; (void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++; tmp = _DtTermViewCreateOptionMenu(bellForm, pulldown, (GETMESSAGE(NL_SETN_ViewGlobalDialog,30, "Margin Warning")), NoSymbol, al, ac); options->bell.bellMargin.option = tmp; /* add to the lineup list... */ (void) _DtTermViewLineupListAddItem(lineupList, XmOptionLabelGadget(options->bell.bellMargin.option), options->bell.bellMargin.option, CORRECTION_OPTION_MENU); /**************************************************************** * text field: Margin _8_ */ ac = 0; string = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewGlobalDialog,31, "Margin Distance"))); (void) XtSetArg(al[ac], XmNlabelString, string); ac++; (void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; (void) XtSetArg(al[ac], XmNtopWidget, tmp); ac++; (void) XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM); ac++; (void) XtSetArg(al[ac], XmNtraversalOn, False); ac++; options->bell.bellMarginDistance.label = XmCreateLabelGadget(bellForm, "bellMarginDistanceLabel", al, ac); (void) XmStringFree(string); (void) XtManageChild(options->bell.bellMarginDistance.label); ac = 0; (void) XtSetArg(al[ac], DtNcolumns, 3); ac++; (void) XtSetArg(al[ac], XmNleftAttachment, XmATTACH_WIDGET); ac++; (void) XtSetArg(al[ac], XmNleftWidget, options->bell.bellMarginDistance.label); ac++; (void) XtSetArg(al[ac], XmNleftOffset, CORRECTION_TEXT_OFFSET); ac++; (void) XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++; (void) XtSetArg(al[ac], XmNtopWidget, tmp); ac++; (void) XtSetArg(al[ac], XmNnavigationType, XmNONE); ac++; options->bell.bellMarginDistance.text = XmCreateTextField(bellForm, "margin", al, ac); (void) XtManageChild(options->bell.bellMarginDistance.text); /* make the label and textfield the same height... */ _DtTermViewEqualizeHeights(options->bell.bellMarginDistance.label, options->bell.bellMarginDistance.text); /* add to the lineup list... */ (void) _DtTermViewLineupListAddItem(lineupList, options->bell.bellMarginDistance.label, options->bell.bellMarginDistance.text, CORRECTION_LABEL); /* manage the margin form... */ (void) XtManageChild(bellForm); /* lineup all the labels... */ (void) _DtTermViewLineupListLineup(lineupList); (void) _DtTermViewLineupListFree(lineupList); lineupList = (_DtTermViewLineupList *) 0; /* create the apply button... */ ac = 0; string = XmStringCreateLocalized((GETMESSAGE(NL_SETN_ViewGlobalDialog,32, "Apply"))); (void) XtSetArg(al[ac], XmNlabelString, string); ac++; button = XmCreatePushButtonGadget(options->dialog, "apply", al, ac); (void) XmStringFree(string); (void) XtAddCallback(button, XmNactivateCallback, ApplyGlobalOptionsDialogCallback, (XtPointer) options); (void) XtManageChild(button); ac = 0; (void) XtSetArg(al[ac], XmNmwmFunctions, MWM_FUNC_MOVE); ac++; (void) XtSetArg(al[ac], XmNmwmDecorations, MWM_DECOR_MENU | MWM_DECOR_BORDER | MWM_DECOR_TITLE); ac++; (void) XtSetValues(options->shell, al, ac); (void) XtManageChild(options->dialog); return(options->dialog); }
void selcharcd(Exc_data * ed) { Widget mainw, selcd, ok, cancel; Widget slctLabel, form; Arg args[20]; Cardinal n; char *oklabel; char *cancellabel; XmString *xmslist; extern ListData *ld; char *p; oklabel = GETMESSAGE(10, 6, "OK"); cancellabel = GETMESSAGE(10, 8, "Cancel"); n = 0; XtSetArg(args[n], XmNautoUnmanage, False); n++; XtSetArg(args[n], XmNtitle, maintitle); n++; mainw = XmCreateTemplateDialog(ed->toplevel, "mainw", args, n); n = 0; form = XmCreateForm( mainw, "form", args, n); XtManageChild(form); p = GETMESSAGE(10, 10, "glyph indexes"); n = 0; XtSetArg( args[n], XmNx, 20 ) ; n++; XtSetArg( args[n], XmNheight, 20 ) ; n++ ; XtSetArg( args[n], XmNtopAttachment, XmATTACH_FORM ) ; n++ ; XtSetArg( args[n], XmNtopOffset, 10 ) ; n++ ; slctLabel = XmCreateLabel( form, p, args, n); XtManageChild(slctLabel); n = 0; xmslist = setxmslist(ld); XtSetArg( args[n], XmNleftAttachment, XmATTACH_FORM ) ; n++ ; XtSetArg( args[n], XmNleftOffset, 20 ) ; n++ ; XtSetArg( args[n], XmNtopAttachment, XmATTACH_WIDGET ); n++ ; XtSetArg( args[n], XmNtopOffset, 5 ) ; n++ ; XtSetArg( args[n], XmNwidth, 200 ) ; n++ ; XtSetArg (args[n], XmNtopWidget, slctLabel ); n++; XtSetArg(args[n], XmNitems, xmslist); n++; XtSetArg(args[n], XmNitemCount, ld->existcode_num); n++; XtSetArg(args[n], XmNvisibleItemCount, 10); n++; XtSetArg(args[n], XmNlistSizePolicy, XmCONSTANT); n++; XtSetArg(args[n], XmNscrollBarDisplayPolicy, XmAS_NEEDED); n++; XtSetArg(args[n], XmNselectionPolicy, XmEXTENDED_SELECT); n++; selcd = XmCreateScrolledList(form, "Select codes", args, n); freexmslist(ld, xmslist); XtManageChild(selcd); ld->list = selcd; ok = excCreatePushButton(mainw, "ok", oklabel, (XtCallbackProc) selcharokCB, (XtPointer) ld); cancel = excCreatePushButton(mainw, "cancel", cancellabel, (XtCallbackProc) selcharcancelCB, (XtPointer) ld); XtManageChild(mainw); }
int NewDialog(char *player1, char *player2, float *SecPerMove) { Widget dialog,form,subform,label,text[3]; Arg args[6]; XmString ok,cancel,title; int i,n=0; char buf[32],*field1,*field2,*field3; ok = XmStringCreateLocalized("OK"); cancel = XmStringCreateLocalized("Cancel"); title = XmStringCreateLocalized("New Game"); XtSetArg(args[n],XmNautoUnmanage, False); n++; XtSetArg(args[n],XmNokLabelString, ok); n++; XtSetArg(args[n],XmNcancelLabelString, cancel); n++; XtSetArg(args[n],XmNdialogTitle, title); n++; XtSetArg(args[n],XmNdialogStyle, XmDIALOG_FULL_APPLICATION_MODAL); n++; dialog = (Widget) XmCreateTemplateDialog(mainWidget,"new",args,n); XtAddCallback(dialog,XmNokCallback, newcallback, NULL); XtAddCallback(dialog,XmNcancelCallback, newcallback, NULL); XmStringFree(ok); XmStringFree(cancel); XmStringFree(title); form = XtVaCreateWidget("form", xmFormWidgetClass,dialog, XmNautoUnmanage, False, NULL); for(i=0; i<3; i++) { subform = XtVaCreateWidget("subform", xmFormWidgetClass, form, XmNtopAttachment, i ? XmATTACH_WIDGET : XmATTACH_FORM, XmNtopWidget, subform, XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); if(i<2) sprintf(buf,"Player %d:",i+1); else sprintf(buf,"Seconds per move:"); label = XtVaCreateManagedWidget(buf, xmLabelGadgetClass, subform, XmNtopAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_FORM, XmNleftAttachment, XmATTACH_FORM, XmNalignment, XmALIGNMENT_BEGINNING, NULL); sprintf(buf, "text_%d",i); text[i] = XtVaCreateManagedWidget(buf, xmTextFieldWidgetClass, subform, XmNtopAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, XmNleftAttachment, XmATTACH_WIDGET, XmNleftWidget, label, XmNvalue, xval[i], NULL); XtManageChild(subform); } XtManageChild(dialog); XtManageChild(form); XtRealizeWidget(dialog); dialog_open = 1; cancelled = 0; while(dialog_open) HandleEvents(); field1 = XmTextFieldGetString(text[0]); field2 = XmTextFieldGetString(text[1]); field3 = XmTextFieldGetString(text[2]); XtDestroyWidget(dialog); strcpy(player1,field1); strcpy(xval[0],field1); XtFree(field1); strcpy(player2,field2); strcpy(xval[1],field2); XtFree(field2); *SecPerMove = (float) atof(field3); strcpy(xval[2],field3); XtFree(field3); if(cancelled) return 0; else return 1; }
void XFE_ReadAttachPanel::displayAttachmentProperties(int pos) { if (pos<0 || pos>=_numItems) return; if (!_propertiesDialog) { // create properties dialog Arg args[20]; int n; Visual *v=0; Colormap cmap=0; Cardinal depth=0; Widget shell=getBaseWidget(); while (!XtIsShell(shell)) shell=XtParent(shell); XtVaGetValues(shell,XtNvisual,&v,XtNcolormap,&cmap,XtNdepth,&depth,NULL); Pixel bg; XtVaGetValues(getBaseWidget(),XmNbackground,&bg,NULL); fe_icon attachIcon={ 0 }; fe_MakeIcon(_context,bg, &attachIcon, NULL, M_ToggleAttach.width, M_ToggleAttach.height, M_ToggleAttach.mono_bits, M_ToggleAttach.color_bits, M_ToggleAttach.mask_bits, FALSE); n=0; XtSetArg(args[n],XmNvisual,v); n++; XtSetArg(args[n],XmNdepth,depth); n++; XtSetArg(args[n],XmNcolormap,cmap); n++; XtSetArg(args[n],XmNdeleteResponse,XmUNMAP);n++; XtSetArg(args[n],XmNautoUnmanage,TRUE);n++; XtSetArg(args[n],XmNdialogStyle,XmDIALOG_MODELESS);n++; XtSetArg(args[n],XmNmwmFunctions,MWM_FUNC_MOVE|MWM_FUNC_CLOSE);n++; XtSetArg(args[n],XmNmwmDecorations,MWM_DECOR_BORDER|MWM_DECOR_TITLE|MWM_DECOR_MENU);n++; if (attachIcon.pixmap) { XtSetArg(args[n],XmNsymbolPixmap,attachIcon.pixmap);n++; } _propertiesDialog=XmCreateTemplateDialog(getBaseWidget(),"attachmentProps",args,n); fe_HackDialogTranslations(_propertiesDialog); fe_NukeBackingStore(_propertiesDialog); Widget form=XmCreateForm(_propertiesDialog,"form",NULL,0); XtManageChild(form); n=0; XtSetArg(args[n],XmNpacking,XmPACK_COLUMN); n++; XtSetArg(args[n],XmNnumColumns,1); n++; XtSetArg(args[n],XmNisAligned,FALSE); n++; XtSetArg(args[n],XmNalignment,XmVERTICAL); n++; XtSetArg(args[n],XmNleftAttachment,XmATTACH_FORM); n++; XtSetArg(args[n],XmNtopAttachment,XmATTACH_FORM); n++; XtSetArg(args[n],XmNbottomAttachment,XmATTACH_FORM); n++; Widget labelRC=XmCreateRowColumn(form,"labelRC",args,n); XtManageChild(labelRC); n=0; XtSetArg(args[n],XmNalignment,XmALIGNMENT_END);n++; _nameLabel=XmCreateLabelGadget(labelRC,"nameLabel",args,n); _typeLabel=XmCreateLabelGadget(labelRC,"typeLabel",args,n); _encLabel=XmCreateLabelGadget(labelRC,"encLabel",args,n); _descLabel=XmCreateLabelGadget(labelRC,"descLabel",args,n); n=0; XtSetArg(args[n],XmNpacking,XmPACK_COLUMN); n++; XtSetArg(args[n],XmNnumColumns,1); n++; XtSetArg(args[n],XmNisAligned,FALSE); n++; XtSetArg(args[n],XmNalignment,XmVERTICAL); n++; XtSetArg(args[n],XmNleftAttachment,XmATTACH_WIDGET); n++; XtSetArg(args[n],XmNleftWidget,labelRC); n++; XtSetArg(args[n],XmNrightAttachment,XmATTACH_FORM); n++; XtSetArg(args[n],XmNtopAttachment,XmATTACH_FORM); n++; XtSetArg(args[n],XmNbottomAttachment,XmATTACH_FORM); n++; Widget valueRC=XmCreateRowColumn(form,"valueRC",args,n); XtManageChild(valueRC); n=0; XtSetArg(args[n],XmNalignment,XmALIGNMENT_BEGINNING);n++; _nameValue=XmCreateLabelGadget(valueRC,"nameValue",args,n); _typeValue=XmCreateLabelGadget(valueRC,"typeValue",args,n); _encValue=XmCreateLabelGadget(valueRC,"encValue",args,n); _descValue=XmCreateLabelGadget(valueRC,"descValue",args,n); } // set value of data fields, manage/unmanage relevent fields XmString xs; // file name char *name=_attachments[pos].real_name; if (name) { xs=XmStringCreateLocalized(name); XtVaSetValues(_nameValue,XmNlabelString,xs,NULL); XmStringFree(xs); XtManageChild(_nameLabel); XtManageChild(_nameValue); } else { XtUnmanageChild(_nameLabel); XtUnmanageChild(_nameValue); } // mime type char *type=_attachments[pos].real_type; if (type) { xs=XmStringCreateLocalized(type); XtVaSetValues(_typeValue,XmNlabelString,xs,NULL); XmStringFree(xs); XtManageChild(_typeLabel); XtManageChild(_typeValue); } else { XtUnmanageChild(_typeLabel); XtUnmanageChild(_typeValue); } // encoding char *enc=_attachments[pos].real_encoding; if (enc) { xs=XmStringCreateLocalized(enc); XtVaSetValues(_encValue,XmNlabelString,xs,NULL); XmStringFree(xs); XtManageChild(_encLabel); XtManageChild(_encValue); } else { XtUnmanageChild(_encLabel); XtUnmanageChild(_encValue); } // long description char *desc=_attachments[pos].description; if (desc) { xs=XmStringCreateLocalized(desc); XtVaSetValues(_descValue,XmNlabelString,xs,NULL); XmStringFree(xs); XtManageChild(_descLabel); XtManageChild(_descValue); } else { XtUnmanageChild(_descLabel); XtUnmanageChild(_descValue); } // manage widget if not already managed XtManageChild(_propertiesDialog); }
Widget XmCreateTemplateDialog_TNK(Widget parent, String name, ArgList arglist,Cardinal argcount) { return XmCreateTemplateDialog(parent, name, arglist, argcount);}
Arg args[20]; int count; int n; Widget os_panel; Widget lang_frame, os_frame; char s[255]; int def_lang = 0; XmString msg, msg1, msg2; n = 0; XtSetArg(args[n], XmNmessageString, XmStringCreateSimple("Select a language, Verify your OS")); n++; XtSetArg(args[n], XmNokLabelString, XmStringCreateSimple("Done")); n++; select_box = XmCreateTemplateDialog(theWidgetRoot, "search_box", args, n); XtAddCallback(select_box, XmNokCallback, (XtCallbackProc) DoneCallback, (XtPointer) this); n = 0; pick_form = XmCreateForm(select_box, "form", args, n); n = 0; XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++; XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM) ; n++; XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM) ; n++; lang_frame = XmCreateFrame(pick_form, "lang_frame", args, n); n = 0; XtSetArg(args[n], XmNframeChildType, XmFRAME_TITLE_CHILD); n++; XtSetArg(args[n], XmNlabelString, XmStringCreateSimple("Language")); n++; framed[0] = XmCreateLabel(lang_frame, "title", args, n); n = 0;