/* ARGSUSED */ static void SecondaryObjectCreate( Widget req, Widget new_w, ArgList args, Cardinal *num_args ) { XmBaseClassExt *cePtr; Arg myArgs[1]; ArgList mergedArgs; XtSetArg(myArgs[0] ,XmNlogicalParent, new_w); if (*num_args) mergedArgs = XtMergeArgLists(args, *num_args, myArgs, XtNumber(myArgs)); else mergedArgs = myArgs; cePtr = _XmGetBaseClassExtPtr(XtClass(new_w), XmQmotif); (void) XtCreateWidget(XtName(new_w), (*cePtr)->secondaryObjectClass, XtParent(new_w) ? XtParent(new_w) : new_w, mergedArgs, *num_args + 1); if (mergedArgs != myArgs) XtFree( (char *) mergedArgs); }
/* * Function: * AsciiStringSourceCreate * * Parameters: * parent - widget that will own this source * args - the argument list * num_args - "" * * Description: * Creates a string source. * * Returns: * A pointer to the new text source. */ Widget XawStringSourceCreate(Widget parent, ArgList args, Cardinal num_args) { XawTextSource src; ArgList ascii_args; Arg temp[2]; XtSetArg(temp[0], XtNtype, XawAsciiString); XtSetArg(temp[1], XtNuseStringInPlace, True); ascii_args = XtMergeArgLists(temp, TWO, args, num_args); src = XtCreateWidget("genericAsciiString", asciiSrcObjectClass, parent, ascii_args, num_args + TWO); XtFree((char *)ascii_args); return (src); }
void x_message (Widget parent, string s, ArgList args, Cardinal n_args) { Dimension parent_height; Position popup_x, popup_y; Widget popup; XtAppContext app_con = XtWidgetToApplicationContext (parent); Arg parent_args[] = { { XtNheight, (XtArgVal) &parent_height }, }; Arg popup_args[] = { { XtNx, 0 }, /* We assign to the position below. */ { XtNy, 0 }, { XtNgeometry, NULL }, /* Don't use the parent's geometry. */ }; Arg default_args[] = { { XtNlabel, (XtArgVal) s } }; ArgList all_args = XtMergeArgLists (args, n_args, default_args, XtNumber (default_args)); /* Put the message at the left edge of and about halfway down PARENT's window. We pass the address of true Position variables rather than the address of the Arg values; in the latter case, the endianness of the computer determines which half of the word the answers get stored in, which is clearly bad. */ XtGetValues (parent, parent_args, XtNumber (parent_args)); XtTranslateCoords (parent, 0, parent_height / 2, &popup_x, &popup_y); popup_args[0].value = popup_x; popup_args[1].value = popup_y; popup = XtCreatePopupShell ("message shell", transientShellWidgetClass, parent, popup_args, XtNumber (popup_args)); /* We can't use XtNumber on `all_args', since it's a pointer. */ (void) XtCreateManagedWidget ("message", labelWidgetClass, popup, all_args, n_args + XtNumber (default_args)); /* XtPopup realizes the window, etc. */ XtPopup (popup, XtGrabNone); /* Leave the message there for five seconds. */ (void) XtAppAddTimeOut (app_con, 5000, message_over, popup); }
Widget XmdsCreateDisplay(Widget parent, String name, ArgList args, Cardinal argcount) { XmdsDisplayPart info = {-1,0}; Widget w; Arg lab_args[] = {{XmNlabelString, 0}, {XmNuserData, DisplayUserData}}; Arg *merged_args; int nid; XmdsSetSubvalues(&info, resources, XtNumber(resources), args, argcount); if (info.nid == -1) info.nid = XmdsGetDeviceNid(); if (info.nid != -1) nid = info.nid + info.nid_offset; else nid = -1; if (nid != -1) { static struct descriptor_d display_dsc = {0, DTYPE_T, CLASS_D, 0}; static struct descriptor_xd xd = {0, DTYPE_DSC, CLASS_XD, 0, 0}; struct descriptor nid_dsc = {sizeof(int), DTYPE_NID, CLASS_S, (char *)0}; int status; nid_dsc.pointer = (char *)&nid; status = TdiEvaluate(&nid_dsc, &xd MDS_END_ARG); if (status&1) { status = TdiDecompile(&xd, &display_dsc MDS_END_ARG); if (status&1) { static DESCRIPTOR(zero_dsc, "\0"); StrConcat((struct descriptor *)&display_dsc, (struct descriptor *)&display_dsc, &zero_dsc MDS_END_ARG); lab_args[0].value = (long)XmStringCreateSimple(display_dsc.pointer); } else lab_args[0].value = (long)XmStringCreateSimple("Error - Decomp"); } else lab_args[0].value = (long)XmStringCreateSimple("Error - Eval"); } merged_args = XtMergeArgLists(args, argcount, lab_args, XtNumber(lab_args)); w = XmCreateLabel(parent, name, merged_args, XtNumber(lab_args) + argcount); XtFree((char *)lab_args[0].value); XtFree((char *)merged_args); return w; }
/* * Function: * AsciiDiskSourceCreate * * Parameters: * parent - widget that will own this source * args - argument list * num_args - "" * * Description: * Creates a disk source. * * Returns: * A pointer to the new text source */ Widget XawDiskSourceCreate(Widget parent, ArgList args, Cardinal num_args) { XawTextSource src; ArgList ascii_args; Arg temp[1]; int i; XtSetArg(temp[0], XtNtype, XawAsciiFile); ascii_args = XtMergeArgLists(temp, ONE, args, num_args); num_args++; for (i = 0; i < num_args; i++) if (streq(ascii_args[i].name, XtNfile) || streq(ascii_args[i].name, XtCFile)) ascii_args[i].name = XtNstring; src = XtCreateWidget("genericAsciiDisk", asciiSrcObjectClass, parent, ascii_args, num_args); XtFree((char *)ascii_args); return (src); }
static void secondary_object_create(Widget req, Widget new_w, ArgList args, Cardinal *num_args) { XmBaseClassExt *bce; Arg argl[1]; ArgList merged; DEBUGOUT(_LtDebug(__FILE__, new_w, "XmGadget secondary_object_create\n")); XtSetArg(argl[0], XmNlogicalParent, new_w); if (*num_args) { merged = XtMergeArgLists(args, *num_args, argl, XtNumber(argl)); bce = _XmGetBaseClassExtPtr(XtClass(new_w), XmQmotif); XtCreateWidget(XtName(new_w), (*bce)->secondaryObjectClass, XtParent(new_w) ? XtParent(new_w) : new_w, merged, *num_args + 1); XtFree((char *)merged); } else { bce = _XmGetBaseClassExtPtr(XtClass(new_w), XmQmotif); XtCreateWidget(XtName(new_w), (*bce)->secondaryObjectClass, XtParent(new_w) ? XtParent(new_w) : new_w, argl, 1); } }
/*-------------------------------------------------------------------------*/ static Widget CreateListTree( Widget parent, String name, ArgList arglist, Cardinal argcount ) { Widget lw; Pixmap branch; Pixmap leaf; Pixmap branch_open; Pixmap leaf_open; Arg args[10]; ArgList arg_list; int ac; branch = qmonGetIcon("branch"); branch_open = qmonGetIcon("branch_open"); leaf = qmonGetIcon("leaf"); leaf_open = qmonGetIcon("leaf_open"); ac = 0; XtSetArg(args[ac], XtNbranchPixmap, branch); ac++; XtSetArg(args[ac], XtNbranchOpenPixmap, branch_open); ac++; XtSetArg(args[ac], XtNleafPixmap, leaf); ac++; XtSetArg(args[ac], XtNleafOpenPixmap, leaf_open); ac++; XtSetArg(args[ac], XtNdoIncrementalHighlightCallback, True); ac++; XtSetArg(args[ac], XtNhighlightPath, False); ac++; XtSetArg(args[ac], XtNindent, 5); ac++; arg_list = XtMergeArgLists(arglist, argcount, args, ac); argcount += ac; lw = XmCreateScrolledListTree(parent, name, arg_list, argcount); return lw; }