/*ARGSUSED*/ static void XawLabelInitialize(Widget request, Widget cnew, ArgList args, Cardinal *num_args) { LabelWidget lw = (LabelWidget)cnew; if (!lw->label.font) XtError("Aborting: no font found\n"); if (lw->simple.international && !lw->label.fontset) XtError("Aborting: no fontset found\n"); if (lw->label.label == NULL) lw->label.label = XtNewString(lw->core.name); else lw->label.label = XtNewString(lw->label.label); GetNormalGC(lw); GetGrayGC(lw); SetTextWidthAndHeight(lw); if (XtHeight(lw) == 0) XtHeight(lw) = lw->label.label_height + 2 * lw->label.internal_height; set_bitmap_info(lw); /* need core.height */ if (XtWidth(lw) == 0) /* need label.lbm_width */ XtWidth(lw) = lw->label.label_width + 2 * lw->label.internal_width + LEFT_OFFSET(lw); lw->label.label_x = lw->label.label_y = 0; (*XtClass(cnew)->core_class.resize)((Widget)lw); }
/*ARGSUSED*/ static void XawCommandInitialize(Widget request, Widget cnew, ArgList args, Cardinal *num_args) { CommandWidget cbw = (CommandWidget)cnew; int shape_event_base, shape_error_base; if (!cbw->label.font) XtError("Aborting: no font found\n"); if (cbw->command.shape_style != XawShapeRectangle && !XShapeQueryExtension(XtDisplay(cnew), &shape_event_base, &shape_error_base)) cbw->command.shape_style = XawShapeRectangle; if (cbw->command.highlight_thickness == DEFAULT_SHAPE_HIGHLIGHT) { if (cbw->command.shape_style != XawShapeRectangle) cbw->command.highlight_thickness = 0; else cbw->command.highlight_thickness = DEFAULT_HIGHLIGHT_THICKNESS; } cbw->command.normal_GC = Get_GC(cbw, cbw->label.foreground, cbw->core.background_pixel); cbw->command.inverse_GC = Get_GC(cbw, cbw->core.background_pixel, cbw->label.foreground); XtReleaseGC(cnew, cbw->label.normal_GC); cbw->label.normal_GC = cbw->command.normal_GC; cbw->command.set = False; cbw->command.highlighted = HighlightNone; }
void RegisterRateDialog(void) { static MrmRegisterArg regvec[] = { {"CancelRateDialogCB",(XtPointer)CancelRateDialogCB}, {"SetRateCB" ,(XtPointer)SetRateCB}, }; static MrmCount regnum = sizeof(regvec)/sizeof(MrmRegisterArg); if (MrmRegisterNames (regvec, regnum) != MrmSUCCESS) XtError("Sorry : can't register RegisterArcChangeDialog names\n"); }
/* ARGSUSED */ static void XawMultiSinkInitialize(Widget request, Widget cnew, ArgList args, Cardinal *num_args) { MultiSinkObject sink = (MultiSinkObject)cnew; GetGC(sink); if (!sink->multi_sink.fontset) XtError("Aborting: no fontset found\n"); sink->multi_sink.cursor_position = 0; sink->multi_sink.laststate = XawisOff; sink->multi_sink.cursor_x = sink->multi_sink.cursor_y = 0; }
Widget createView (String fileName, Widget parent, Arg args[], int nargs) { Widget result; char widgetName[255]; Arg list[32]; int err, loop, nlist; char msg[256]; /* Read in grid to be viewed */ strcpy(theView.fileName, fileName); theView.grid = CreateGMTGrid(); Trace("Reading grid file..."); ReadGridFromFile((Grid *)theView.grid, fileName, &err); if (err) { sprintf(msg, "Unable to read file %s: C error code %d", fileName, err); XtError(msg); } /* Create scrolling view widget */ /* Copy supplied resources */ for (loop = 0; loop < nargs; loop ++) list[loop] = args[loop]; nlist = nargs; XtSetArg(list[nlist], XtNwidth, 640); nlist ++; XtSetArg(list[nlist], XtNheight, 480); nlist ++; result = XtCreateManagedWidget("view", pannerWidgetClass, parent, list, nlist); /* Derive widget name from grid file */ getBaseName(fileName, widgetName); nlist = 0; XtSetArg(list[nlist], XtNgrid, theView.grid); nlist ++; /* Purists avert eyes...hardcoded dimensions follow */ XtSetArg(list[nlist], XtNwidth, 640); nlist ++; XtSetArg(list[nlist], XtNheight, 480); nlist ++; theView.canvas = createTextView(widgetName, result, list, nlist); XtSetPannerCanvas(result, theView.canvas); /* Register exit action */ addQuitCallback(saveChanges, &theView); return result; }
/* * Load a font */ static XFontStruct *getFont(AngbandWidget widget, String font, Boolean fallback) { Display *dpy = XtDisplay((Widget) widget); char buf[256]; XFontStruct *fnt = NULL; if (!(fnt = XLoadQueryFont(dpy, font)) && fallback) { sprintf(buf, "Can't find the font \"%s\", trying fixed\n", font); XtWarning(buf); if (!(fnt = XLoadQueryFont(dpy, "fixed"))) { XtError("Can't fint the font \"fixed\"!, bailing out\n"); } } return fnt; }
/*ARGSUSED*/ static void XawSmeBSBInitialize(Widget request, Widget cnew, ArgList args, Cardinal *num_args) { SmeBSBObject entry = (SmeBSBObject)cnew; if (!entry->sme_bsb.font) XtError("Aborting: no font found\n"); if (entry->sme_bsb.label == NULL) entry->sme_bsb.label = XtName(cnew); else entry->sme_bsb.label = XtNewString(entry->sme_bsb.label); GetDefaultSize(cnew, &entry->rectangle.width, &entry->rectangle.height); CreateGCs(cnew); entry->sme_bsb.left_bitmap_width = entry->sme_bsb.left_bitmap_height = 0; entry->sme_bsb.right_bitmap_width = entry->sme_bsb.right_bitmap_height = 0; GetBitmapInfo(cnew, True); /* Left Bitmap Info */ GetBitmapInfo(cnew, False); /* Right Bitmap Info */ }
static void InsertChild( Widget w ) { CompositeWidget p = (CompositeWidget) XtParent (w); XtWidgetProc insert_child; /* * Make sure we only have a rectObj, a VendorObject, and * maybe an Input Method (CoreClass) object as children. */ if (!XtIsRectObj(w)) return; else { if( (w->core.widget_class != coreWidgetClass) /* The Input Method child is a CoreClass object. */ && GetRectObjKid( p) ) { /* we need _XmError() too! */ XtError(MSG1); } else { /* * make sure we're realized so people won't core dump when * doing incorrect managing prior to realize */ XtRealizeWidget((Widget) p); } } _XmProcessLock(); insert_child = ((CompositeWidgetClass) compositeWidgetClass) ->composite_class.insert_child; _XmProcessUnlock(); (*insert_child)(w); return ; }
void RegisterMenuValues(void) { static MrmRegisterArg regvec[] = { /*Menu File Values*/ {"FILE_NEW_MITEM",(XtPointer) FILE_NEW_MITEM}, {"FILE_OPEN_MITEM",(XtPointer) FILE_OPEN_MITEM}, {"FILE_MERGE_MITEM",(XtPointer) FILE_MERGE_MITEM}, {"FILE_SAVE_MITEM",(XtPointer) FILE_SAVE_MITEM}, {"FILE_SAVEAS_MITEM",(XtPointer) FILE_SAVEAS_MITEM}, {"FILE_REMOVE_RESULTS_MITEM",(XtPointer) FILE_REMOVE_RESULTS_MITEM}, {"FILE_REMOVE_ALL_MITEM",(XtPointer) FILE_REMOVE_ALL_MITEM}, {"FILE_COMMENT_MITEM",(XtPointer) FILE_COMMENT_MITEM}, {"FILE_OPTIONS_MITEM",(XtPointer) FILE_OPTIONS_MITEM}, {"FILE_PRINT_MITEM",(XtPointer) FILE_PRINT_MITEM}, {"FILE_EXIT_MITEM",(XtPointer) FILE_EXIT_MITEM}, /*Menu Edit Values*/ {"EDIT_UNDO_MITEM",(XtPointer) EDIT_UNDO_MITEM}, {"EDIT_ADD_MITEM",(XtPointer) EDIT_ADD_MITEM}, {"EDIT_CUT_MITEM",(XtPointer) EDIT_CUT_MITEM}, {"EDIT_PASTE_MITEM",(XtPointer) EDIT_PASTE_MITEM}, {"EDIT_MOVE_MITEM",(XtPointer) EDIT_MOVE_MITEM}, {"EDIT_MODIFY_MITEM",(XtPointer) EDIT_MODIFY_MITEM}, {"EDIT_LAYERS_MITEM",(XtPointer) EDIT_LAYERS_MITEM}, {"EDIT_MODIFY_CLOCKWISE_MITEM",(XtPointer) EDIT_MODIFY_CLOCKWISE_MITEM}, {"EDIT_MODIFY_FLIPX_MITEM",(XtPointer) EDIT_MODIFY_FLIPX_MITEM}, {"EDIT_MODIFY_FLIPY_MITEM",(XtPointer) EDIT_MODIFY_FLIPY_MITEM}, {"EDIT_MIRROR_MITEM",(XtPointer) EDIT_MIRROR_MITEM}, {"FLIP_XAXIS",(XtPointer) FLIP_XAXIS}, {"FLIP_YAXIS",(XtPointer) FLIP_YAXIS}, {"ROTATE45",(XtPointer) ROTATE45}, {"ROTATE90",(XtPointer) ROTATE90}, {"ROTATE135",(XtPointer) ROTATE135}, {"ROTATE180",(XtPointer) ROTATE180}, {"ROTATEM135",(XtPointer) ROTATEM135}, {"ROTATEM90",(XtPointer) ROTATEM90}, {"ROTATEM45",(XtPointer) ROTATEM45}, /*Menu Popup Values*/ {"ADD_MITEM",(XtPointer) ADD_MITEM}, {"CHANGE_MITEM",(XtPointer) CHANGE_MITEM}, {"SELECT_MITEM",(XtPointer) SELECT_MITEM}, {"MOVE_MITEM",(XtPointer) MOVE_MITEM}, {"DELETE_MITEM",(XtPointer) DELETE_MITEM}, {"SHOW_MITEM",(XtPointer) SHOW_MITEM}, {"PASTE_MITEM",(XtPointer) PASTE_MITEM}, {"ROTATE_MITEM",(XtPointer) ROTATE_MITEM}, {"ENDSHOW_MITEM",(XtPointer) ENDSHOW_MITEM}, {"PRINTAREA_MITEM",(XtPointer) PRINTAREA_MITEM}, {"REDRAW_MITEM",(XtPointer) REDRAW_MITEM}, /*Menu View Values*/ {"VIEW_SPLINE_MITEM",(XtPointer) VIEW_SPLINE_MITEM}, {"VIEW_TAG_MITEM",(XtPointer) VIEW_TAG_MITEM}, {"VIEW_RATE_MITEM",(XtPointer) VIEW_RATE_MITEM}, {"VIEW_OVERVIEW_MITEM",(XtPointer) VIEW_OVERVIEW_MITEM}, {"VIEW_SEARCH_MITEM",(XtPointer) VIEW_SEARCH_MITEM}, {"VIEW_PRINTAREA_MITEM",(XtPointer) VIEW_PRINTAREA_MITEM}, {"VIEW_LAYERS_MITEM",(XtPointer) VIEW_LAYERS_MITEM}, /*Menu Grid Values*/ {"GRID_NONE_MITEM",(XtPointer) GRID_NONE_MITEM}, {"GRID_5_MITEM",(XtPointer) GRID_5_MITEM}, {"GRID_10_MITEM",(XtPointer) GRID_10_MITEM}, {"GRID_20_MITEM",(XtPointer) GRID_20_MITEM}, {"GRID_30_MITEM",(XtPointer) GRID_30_MITEM}, {"GRID_40_MITEM",(XtPointer) GRID_40_MITEM}, {"GRID_50_MITEM",(XtPointer) GRID_50_MITEM}, /*Menu Zoom Values*/ {"ZOOM_1_MITEM",(XtPointer) ZOOM_1_MITEM}, {"ZOOM_3_2_MITEM",(XtPointer) ZOOM_3_2_MITEM}, {"ZOOM_2_MITEM",(XtPointer) ZOOM_2_MITEM}, {"ZOOM_1_2_MITEM",(XtPointer) ZOOM_1_2_MITEM}, {"ZOOM_3_4_MITEM",(XtPointer) ZOOM_3_4_MITEM}, /*Menu Rescale Values*/ {"RESCALE_05_MITEM",(XtPointer) RESCALE_05_MITEM}, {"RESCALE_06_MITEM",(XtPointer) RESCALE_06_MITEM}, {"RESCALE_07_MITEM",(XtPointer) RESCALE_07_MITEM}, {"RESCALE_08_MITEM",(XtPointer) RESCALE_08_MITEM}, {"RESCALE_09_MITEM",(XtPointer) RESCALE_09_MITEM}, {"RESCALE_10_MITEM",(XtPointer) RESCALE_10_MITEM}, {"RESCALE_11_MITEM",(XtPointer) RESCALE_11_MITEM}, {"RESCALE_12_MITEM",(XtPointer) RESCALE_12_MITEM}, {"RESCALE_13_MITEM",(XtPointer) RESCALE_13_MITEM}, {"RESCALE_14_MITEM",(XtPointer) RESCALE_14_MITEM}, {"RESCALE_15_MITEM",(XtPointer) RESCALE_15_MITEM}, {"RESCALE_16_MITEM",(XtPointer) RESCALE_16_MITEM}, {"RESCALE_17_MITEM",(XtPointer) RESCALE_17_MITEM}, {"RESCALE_18_MITEM",(XtPointer) RESCALE_18_MITEM}, {"RESCALE_19_MITEM",(XtPointer) RESCALE_19_MITEM}, {"RESCALE_20_MITEM",(XtPointer) RESCALE_20_MITEM}, /*Menu Net Values*/ {"NET_STRUCT_PINV_MITEM",(XtPointer) NET_STRUCT_PINV_MITEM}, {"NET_STRUCT_TINV_MITEM",(XtPointer) NET_STRUCT_TINV_MITEM}, {"NET_STRUCT_MINDEAD_MITEM",(XtPointer) NET_STRUCT_MINDEAD_MITEM}, {"NET_STRUCT_MINTRAP_MITEM",(XtPointer) NET_STRUCT_MINTRAP_MITEM}, {"NET_STRUCT_ECS_MITEM",(XtPointer) NET_STRUCT_ECS_MITEM}, {"NET_STRUCT_STRUBOU_MITEM",(XtPointer) NET_STRUCT_STRUBOU_MITEM}, {"NET_SOLVE_TRG_MITEM",(XtPointer) NET_SOLVE_TRG_MITEM}, {"NET_SOLVE_EMC_MITEM",(XtPointer) NET_SOLVE_EMC_MITEM}, {"NET_SOLVE_GSPN_STST_MITEM",(XtPointer) NET_SOLVE_GSPN_STST_MITEM}, {"NET_SOLVE_GSPN_TRAN_MITEM",(XtPointer) NET_SOLVE_GSPN_TRAN_MITEM}, {"NET_SIMULATION_MITEM",(XtPointer) NET_SIMULATION_MITEM}, /****11/6/10 MDD by Marco***/ {"GSPN_MDD",(XtPointer) GSPN_MDD}, /****11/6/10 MDD by Marco***/ /*Menu SWN Values*/ {"SWN_SYM_SIMULATION",(XtPointer) SWN_SYM_SIMULATION}, {"SWN_SYM_COMPUTERG",(XtPointer) SWN_SYM_COMPUTERG}, {"SWN_SYM_TRANSIENT",(XtPointer) SWN_SYM_TRANSIENT}, {"SWN_ORD_SIMULATION",(XtPointer) SWN_ORD_SIMULATION}, {"SWN_ORD_COMPUTERG",(XtPointer) SWN_ORD_COMPUTERG}, {"SWN_ORD_TRANSIENT",(XtPointer) SWN_ORD_TRANSIENT}, {"SWN_ORD_UNFOLD",(XtPointer) SWN_ORD_UNFOLD}, /****17/7/08 ESRG by Marco***/ {"SWN_ESRG",(XtPointer) SWN_ESRG}, {"SWN_DSRG",(XtPointer) SWN_DSRG}, /****17/7/08 ESRG by Marco***/ {"EGSPN_SIMULATION",(XtPointer) EGSPN_SIMULATION}, {"EGSPN_COMPUTERG",(XtPointer) EGSPN_COMPUTERG}, {"EGSPN_TRANSIENT",(XtPointer) EGSPN_TRANSIENT}, /*Pinv Popup Menu Values*/ {"PINV_MITEM",(XtPointer) PINV_MITEM}, {"MINDEAD_MITEM",(XtPointer) MINDEAD_MITEM}, {"MINTRAPS_MITEM",(XtPointer) MINTRAPS_MITEM}, {"IMPPLACES_MITEM",(XtPointer) IMPPLACES_MITEM}, {"ABSMB_MITEM",(XtPointer) ABSMB_MITEM}, {"AVEMB_MITEM",(XtPointer) AVEMB_MITEM}, /*Tinv Popup Menu Values*/ {"TINV_MITEM",(XtPointer) TINV_MITEM}, {"ECS_MITEM",(XtPointer) ECS_MITEM}, {"ME_MITEM",(XtPointer) ME_MITEM}, {"SC_MITEM",(XtPointer) SC_MITEM}, {"CC_MITEM",(XtPointer) CC_MITEM}, {"UNBSEQ_MITEM",(XtPointer) UNBSEQ_MITEM}, {"ACTLIVBOUND_MITEM",(XtPointer) ACTLIVBOUND_MITEM}, {"LIVBOUND_MITEM",(XtPointer) LIVBOUND_MITEM}, {"THRBOUND_MITEM",(XtPointer) THRBOUND_MITEM}, /*Menu Hep Values*/ {"HELP_MOUSE_HELP_MITEM",(XtPointer) HELP_MOUSE_HELP_MITEM}, {"HELP_ABOUT_MITEM",(XtPointer) HELP_ABOUT_MITEM} }; static MrmCount regnum = sizeof(regvec)/sizeof(MrmRegisterArg); if (MrmRegisterNames (regvec, regnum) != MrmSUCCESS) XtError("Sorry : can't register RegisterMenuValues names\n"); }
int main(int argc, char *argv[]) { Arg args[4]; Cardinal n; XtAppContext xtcontext; Widget parent; XtSetLanguageProc(NULL, NULL, NULL); top = XtAppInitialize( &xtcontext, "XClipboard", table, XtNumber(table), &argc, argv, fallback_resources, NULL, 0); XtGetApplicationResources(top, (XtPointer)&userOptions, resources, XtNumber(resources), NULL, 0); XtAppAddActions (xtcontext, xclipboard_actions, XtNumber (xclipboard_actions)); /* CLIPBOARD_MANAGER is a non-standard mechanism */ ManagerAtom = XInternAtom(XtDisplay(top), "CLIPBOARD_MANAGER", False); ClipboardAtom = XA_CLIPBOARD(XtDisplay(top)); if (XGetSelectionOwner(XtDisplay(top), ManagerAtom)) XtError("another clipboard is already running\n"); parent = XtCreateManagedWidget("form", formWidgetClass, top, NULL, ZERO); (void) XtCreateManagedWidget("quit", Command, parent, NULL, ZERO); (void) XtCreateManagedWidget("delete", Command, parent, NULL, ZERO); (void) XtCreateManagedWidget("new", Command, parent, NULL, ZERO); (void) XtCreateManagedWidget("save", Command, parent, NULL, ZERO); nextButton = XtCreateManagedWidget("next", Command, parent, NULL, ZERO); prevButton = XtCreateManagedWidget("prev", Command, parent, NULL, ZERO); indexLabel = XtCreateManagedWidget("index", Label, parent, NULL, ZERO); n=0; XtSetArg(args[n], XtNtype, XawAsciiString); n++; XtSetArg(args[n], XtNeditType, XawtextEdit); n++; if (userOptions.wrap) { XtSetArg(args[n], XtNwrap, XawtextWrapWord); n++; XtSetArg(args[n], XtNscrollHorizontal, False); n++; } text = XtCreateManagedWidget( "text", Text, parent, args, n); currentClip = NewClip (text, (ClipPtr) 0); set_button_state (); fileDialogShell = XtCreatePopupShell("fileDialogShell", transientShellWidgetClass, top, NULL, ZERO); fileDialog = XtCreateManagedWidget ("fileDialog", dialogWidgetClass, fileDialogShell, NULL, ZERO); XawDialogAddButton(fileDialog, "accept", NULL, NULL); XawDialogAddButton(fileDialog, "cancel", NULL, NULL); failDialogShell = XtCreatePopupShell("failDialogShell", transientShellWidgetClass, top, NULL, ZERO); failDialog = XtCreateManagedWidget ("failDialog", dialogWidgetClass, failDialogShell, NULL, ZERO); XawDialogAddButton (failDialog, "continue", NULL, NULL); XtRealizeWidget(top); XtRealizeWidget(fileDialogShell); XtRealizeWidget(failDialogShell); XtOwnSelection(top, ManagerAtom, CurrentTime, RefuseSelection, LoseManager, NULL); if (XGetSelectionOwner (XtDisplay(top), ClipboardAtom)) { LoseSelection (top, &ClipboardAtom); } else { XtOwnSelection(top, ClipboardAtom, CurrentTime, ConvertSelection, LoseSelection, NULL); } wm_delete_window = XInternAtom(XtDisplay(top), "WM_DELETE_WINDOW", False); wm_protocols = XInternAtom(XtDisplay(top), "WM_PROTOCOLS", False); (void) XSetWMProtocols(XtDisplay(top), XtWindow(top), &wm_delete_window,1); (void) XSetWMProtocols(XtDisplay(top), XtWindow(fileDialogShell), &wm_delete_window,1); (void) XSetWMProtocols(XtDisplay(top), XtWindow(failDialogShell), &wm_delete_window,1); XtAppMainLoop(xtcontext); exit(0); }
/*ARGSUSED*/ static void LoseManager(Widget w, Atom *selection) { XtError("another clipboard has taken over control\n"); }
/**************************************************************** * * Main program. Fetch UIL interface description and enter * event loop. * ****************************************************************/ int main(int argc, char *argv[]) { XtAppContext app_context; Widget top_level, helloworld_main; MrmCode mrm_class; char * applresdir; /* * This demo requires XAPPLRESDIR to be set to '.'. Mrm * will only report that l_strings.uid could not be found, * so, to be a little more friendly, we help the user. This * it not a check that normally would be done, since the uid * files would be installed in the appropriate directory. */ if ((applresdir = (char *)getenv("XAPPLRESDIR")) == NULL || strcmp(applresdir, ".") != 0) { XtError("Environment variable XAPPLRESDIR must be set to \".\"\n"); } /* * Set up language environment. */ XtSetLanguageProc(NULL, NULL, NULL); /* * Initialize MRM */ MrmInitialize (); /* * Initialize Xt and create a resizable shell */ top_level = XtVaAppInitialize(&app_context, "XmdHelloInt", NULL, 0, &argc, argv, NULL, XmNallowShellResize, True, NULL); /* * Create the Mrm hierarchy */ if (MrmOpenHierarchy (XtNumber(uid_vec), /* number of files */ uid_vec, /* files */ NULL, /* os_ext_list (null) */ &s_mrm_hierarchy) /* ptr to returned id */ != MrmSUCCESS) { XtError ("can't open hierarchy\n"); } /* * Register our callback routines so that the resource manager can * resolve them at widget-creation time. */ if (MrmRegisterNames (reg_vec, XtNumber(reg_vec)) != MrmSUCCESS) { XtError("can't register names\n"); } /* * Call MRM to fetch and create the widgets */ if (MrmFetchWidget (s_mrm_hierarchy, "helloworld_main", top_level, &helloworld_main, &mrm_class) != MrmSUCCESS) { XtError ("can't fetch interface\n"); } /* * Manage the widget returned by Mrm. */ XtManageChild(helloworld_main); /* * Realize the widget tree. */ XtRealizeWidget(top_level); /* * Loop and process events */ XtAppMainLoop(app_context); /* UNREACHABLE */ return (0); }
Widget CreateMenu ( MenuType menuType, char *name, Widget parent, MenuDescription *desc, XtPointer defaultClientData ) { Widget w; /* * Create the basic menu widget, based on the type of * menu requested. Do any special setup required * and then call CreateMenuChildren() to populate the menu. */ switch ( menuType ) { case POPUP: /* * Popups must have an event handler registered with the * parent to display the menu when button 3 is pressed. */ w = XmCreatePopupMenu ( parent, name, NULL, 0 ); AttachPopup ( parent, w ); CreateMenuChildren ( w, desc, defaultClientData ); return ( w ); case MENUBAR: /* * For menu bars, just create the menu bar, and then * add children. All direct children are expected * to be pulldown menus. */ w = XmCreateMenuBar ( parent, name, NULL, 0 ); CreateMenuChildren ( w, desc, defaultClientData ); XtManageChild ( w ); return ( w ); case OPTION: { /* * All option menus have a pulldown, but it is nicer to hide * this, allowing the programmer to just specify the contents * of the pane. So, create the option menu, create and attach * a pulldown pane, and then call CreateMenuChildren() to * populate the pulldown menu pane. */ Widget option = XmCreateOptionMenu ( parent, name, NULL, 0 ); w = XmCreatePulldownMenu ( parent, name, NULL, 0 ); XtVaSetValues ( option, XmNsubMenuId, w, NULL ); CreateMenuChildren ( w, desc, defaultClientData ); XtManageChild ( option ); return ( option ); } default: XtError ( "Invalid Menu Type" ); return ( NULL ); } }
int main( int argc, char *argv[]) { MrmInitialize(); appshell = XtAppInitialize(&appContext,"GreatSPN_Motif",NULL,0,&argc,argv,fallback,NULL,0); #ifdef Linux /* Enables the application to talk with editres. For debug purposes only */ /* XmdRegisterEditres(appshell);*/ #endif OpenHierarchy(); if (MrmRegisterNames (regvec, regnum) != MrmSUCCESS) XtError("can't register names\n"); RegisterArcChangeDialog(); RegisterColorChangeDialog(); RegisterPlaceChangeDialog(); RegisterTransChangeDialog(); RegisterShowDialog(); RegisterResultDialog(); RegisterRateDialog(); RegisterPrintDialog(); RegisterMDGrammarDialog(); RegisterMarkDialog(); RegisterViewLayerDialog(); RegisterEditLayerDialog(); RegisterConsoleDialog(); RegisterCommentDialog(); RegisterZooomMenuCallbacks(); RegisterMenuCallbacks(); RegisterRescale(); RegisterGrid(); RegisterMenuValues(); RegisterOptionsDialog(); RegisterSimulationDialog(); RegisterSwnSimOptionsDialog(); RegisterSwnRGOptionsDialog(); RegisterSwnUnfoldOptionsDialog(); /* puts(" ... start FetchWidget"); fflush(stdout);*/ mainwin = FetchWidget(appshell,"MainWin"); /* puts(" ... start InitMainWindow"); fflush(stdout);*/ InitMainWindow(); /* puts(" ... start InitWorkWindow"); fflush(stdout);*/ InitWorkWindow(); /* puts(" ... start InitFonts"); fflush(stdout);*/ InitFonts(); /* puts(" ... start InitMenuBar"); fflush(stdout);*/ InitMenuBar(); /* puts(" ... start InitPopups"); fflush(stdout);*/ InitPopups(); /* puts(" ... start XtManageChild"); fflush(stdout);*/ XtManageChild( mainwin ); /* puts(" ... start XtRealizeWidget"); fflush(stdout);*/ XtRealizeWidget( appshell ); /* puts(" ... start InitFilesPath"); fflush(stdout);*/ InitFilesPath(); /* puts(" ... start InitGSPNShellErrors"); fflush(stdout);*/ InitGSPNShellErrors(); /* puts(" ... start gdiInitEngine"); fflush(stdout);*/ gdiInitEngine(appshell); /* puts(" ... start gdiInitDrawingAreaGC"); fflush(stdout);*/ gdiInitDrawingAreaGC(); /* puts(" ... start InitOther"); fflush(stdout);*/ InitOther(); /* InitMsgDB(); */ /* puts(" ... start XmUpdateDisplay"); fflush(stdout);*/ XmUpdateDisplay(mainwin); /* puts(" ... start XtAppMainLoop"); fflush(stdout);*/ XtAppMainLoop(appContext); return 0; }
/* * Implementation */ static void XawAsciiInitialize(Widget request, Widget cnew, ArgList args, Cardinal *num_args) { AsciiWidget w = (AsciiWidget)cnew; int i; int tabs[TAB_COUNT], tab; MultiSinkObject sink; /* superclass Initialize can't set the following, * as it didn't know the source or sink when it was called */ if (XtHeight(request) == DEFAULT_TEXT_HEIGHT) XtHeight(cnew) = DEFAULT_TEXT_HEIGHT; /* This is the main change for internationalization */ if (w->simple.international == True) { /* The multi* are international */ if (w->text.sink == NULL) w->text.sink = XtCreateWidget("textSink", multiSinkObjectClass, cnew, args, *num_args); else if (!XtIsSubclass(w->text.sink, multiSinkObjectClass)) XtError("Sink object is not a subclass of multiSink"); if (w->text.source == NULL) w->text.source = XtCreateWidget("textSource", multiSrcObjectClass, cnew, args, *num_args); else if (!XtIsSubclass(w->text.source, multiSrcObjectClass)) XtError("Source object is not a subclass of multiSrc"); #ifndef OLDXAW else _XawSourceAddText(w->text.source, cnew); #endif } else { if (w->text.sink == NULL) w->text.sink = XtCreateWidget("textSink", asciiSinkObjectClass, cnew, args, *num_args); else if (!XtIsSubclass(w->text.source, asciiSinkObjectClass)) XtError("Sink object is not a subclass of asciiSink"); if (w->text.source == NULL) w->text.source = XtCreateWidget("textSource", asciiSrcObjectClass, cnew, args, *num_args); else if (!XtIsSubclass(w->text.source, asciiSrcObjectClass)) XtError("Source object is not a subclass of asciiSrc"); #ifndef OLDXAW else _XawSourceAddText(w->text.source, cnew); #endif } if (XtHeight(w) == DEFAULT_TEXT_HEIGHT) XtHeight(w) = VMargins(w) + XawTextSinkMaxHeight(w->text.sink, 1); for (i = 0, tab = 0; i < TAB_COUNT; i++) tabs[i] = (tab += 8); XawTextSinkSetTabs(w->text.sink, TAB_COUNT, tabs); XawTextDisableRedisplay(cnew); XawTextEnableRedisplay(cnew); _XawImRegister(cnew); /* If we are using a MultiSink we need to tell the input method stuff */ if (w->simple.international == True) { Arg list[4]; Cardinal ac = 0; sink = (MultiSinkObject)w->text.sink; XtSetArg(list[ac], XtNfontSet, sink->multi_sink.fontset); ac++; XtSetArg(list[ac], XtNinsertPosition, w->text.insertPos); ac++; XtSetArg(list[ac], XtNforeground, sink->text_sink.foreground); ac++; XtSetArg(list[ac], XtNbackground, sink->text_sink.background); ac++; _XawImSetValues(cnew, list, ac); } }