Пример #1
0
/*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);
}
Пример #2
0
Файл: Command.c Проект: aosm/X11
/*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;
}
Пример #3
0
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;
}
Пример #5
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;
}
Пример #6
0
/*
 * 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;
}
Пример #7
0
/*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 */
}
Пример #8
0
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 ;
}
Пример #9
0
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");	
}
Пример #10
0
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);
}
Пример #11
0
/*ARGSUSED*/
static void 
LoseManager(Widget w, Atom *selection)
{
    XtError("another clipboard has taken over control\n");
}
Пример #12
0
/****************************************************************
 *
 *  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);
}
Пример #13
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 );
    }
}
Пример #14
0
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;
}
Пример #15
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);
    }
}