Ejemplo n.º 1
0
int snns_getCurrentUnit(stEval *args, stEval *result, void *instance) {
  int currUnit;

  STINT(result) = krui_getCurrentUnit();
  return EC_OK;
}
Ejemplo n.º 2
0
/*****************************************************************************
  FUNCTION : o_createOszi

  PURPOSE  : creates the  window GRAPH
  RETURNS  : void
  NOTES    :

  UPDATE   : 08.03.95
******************************************************************************/
void o_createOszi (void)
{
    Widget       menu,mItem,form,w1,w2,printlab;
    Widget       Done_oszi, clear_oszi, print_oszi;
    Arg          arg[5];
    Cardinal     n;
    char         buf[40];
    Colormap     o_graph_col;
    unsigned long foreground,background;
    int          curr_unit,test_unit,
    count_unit = 0;


    o_graph_error_scale = GRAPH_SSE;

    /* test whether there are output units defined. Since no error can be 
       computed in the opposit case, the graph tool can not be used */
    curr_unit  = krui_getCurrentUnit();
    test_unit  = krui_getFirstUnit();
    do{
	n=krui_getUnitTType(test_unit);
	if( (n == 2) || (n == 7) ) count_unit = 1;
    }while((test_unit  = krui_getNextUnit()) && (count_unit == 0));
    curr_unit  = krui_setCurrentUnit(curr_unit);
 
    if(count_unit == 0){
	ui_confirmOk("No Output units defined!\nAn error can neither be\ncomputed nor displayed!");
	return;
    }


    if(o_open) {
	XRaiseWindow (XtDisplay (o_displayMainWidget), 
		      XtWindow (o_displayMainWidget));
	return;
    }
	
    o_open = 1; 
    o_init();
    
    sprintf (buf, "SNNS graph");
    n = 0;  

    XtSetArg(arg[n],XtNminWidth,460); n++;  
    XtSetArg(arg[n],XtNminHeight,200); n++;
    XtSetArg(arg[n],XtNheight,o_WindowHeight+58); n++;
    XtSetArg(arg[n],XtNwidth,o_WindowWidth+10); n++;
    XtSetArg(arg[n],XtNborderWidth,1); n++;
    
    o_displayMainWidget = XtCreatePopupShell(buf, topLevelShellWidgetClass,
					     ui_toplevel, arg, n); 
    n = 0;  
    form = XtCreateManagedWidget ("form", formWidgetClass, 
				  o_displayMainWidget, arg, n);

    grid_oszi = ui_xCreateToggleItem ("grid",form,NULL,NULL,NULL);
    ui_xSetToggleState (grid_oszi, FALSE) ; 
    XtAddCallback (grid_oszi, XtNcallback, (XtCallbackProc) o_gridProc, NULL);

    print_oszi = ui_xCreateButtonItem ("print",form,grid_oszi,NULL);
    XtAddCallback(print_oszi, XtNcallback, (XtCallbackProc) o_printProc, NULL);

    if(strlen(o_printfile) == 0)sprintf(o_printfile,"./graph.ps");
    printlab = ui_xCreateLabelItem("Print to file:",form,14*8,print_oszi,NULL); 
    o_printW = ui_xCreateDialogItem ("o_printW",form,o_printfile,0,
				     printlab,NULL);

    Done_oszi = ui_xCreateButtonItem ("done",form,NULL,grid_oszi);
    XtAddCallback(Done_oszi,XtNcallback,(XtCallbackProc) o_DoneProc,NULL);

    clear_oszi = ui_xCreateButtonItem ("clear",form,Done_oszi,grid_oszi);
    XtAddCallback(clear_oszi,XtNcallback,(XtCallbackProc) o_clearProc,NULL);

    w1 = ui_xCreateLabelItem ("Scale X:",form,7*8,print_oszi,grid_oszi); 
    w2 = ui_xCreateButtonItem ("prev",form,w1,grid_oszi);
    XtAddCallback(w2,XtNcallback,(XtCallbackProc) o_XForwardProc,NULL);
    w1 = ui_xCreateButtonItem ("next",form,w2,grid_oszi);
    XtAddCallback(w1,XtNcallback,(XtCallbackProc) o_XBackProc,NULL);

    w2 = ui_xCreateLabelItem ("  Scale Y:",form,9*8,w1,grid_oszi); 
    w1 = ui_xCreateButtonItem ("prev",form,w2,grid_oszi); 
    XtAddCallback(w1,XtNcallback,(XtCallbackProc) o_YBackProc,NULL);
    w2 = ui_xCreateButtonItem ("next",form,w1,grid_oszi);
    XtAddCallback(w2,XtNcallback,(XtCallbackProc) o_YForwardProc,NULL);

    w1 = ui_xCreateLabelItem ("  Display:",form,9*8,w2,grid_oszi); 
    o_scaleWidget = ui_xCreateMenuButtonItem("   SSE  ",form,w1,grid_oszi);
    menu  = XtCreatePopupShell("menu",simpleMenuWidgetClass,o_scaleWidget,
			       NULL,ZERO);
    mItem = XtCreateManagedWidget("  SSE",smeBSBObjectClass,menu,NULL,ZERO);
    XtAddCallback(mItem,XtNcallback,(XtCallbackProc)o_set_err_scale,(caddr_t)1);
    mItem = XtCreateManagedWidget("  MSE",smeBSBObjectClass,menu,NULL,ZERO);
    XtAddCallback(mItem,XtNcallback,(XtCallbackProc)o_set_err_scale,(caddr_t)2);
    mItem = XtCreateManagedWidget("SSE/#out", smeBSBObjectClass,menu,NULL,ZERO);
    XtAddCallback(mItem,XtNcallback,(XtCallbackProc)o_set_err_scale,(caddr_t)3);

    o_DisplayWidget = o_xCreateScreenItem("screen",form,o_WindowWidth,
					  o_WindowHeight,NULL,clear_oszi);
    XtAddEventHandler(o_DisplayWidget,StructureNotifyMask | ExposureMask, 
		      FALSE,(XtEventHandler) o_eventProc,o_display);

    XtAddEventHandler(form,KeyPressMask,FALSE,
		      (XtEventHandler)ui_key_control,(Cardinal *) 0);

    ui_checkWindowPosition(o_displayMainWidget);
    XtPopup (o_displayMainWidget, XtGrabNone);

    o_display = XtDisplay (o_DisplayWidget); 
    o_window = XtWindow (o_DisplayWidget);
    o_fontStruct = XLoadQueryFont(o_display, "6x12");

    o_gc[label_gc] = XCreateGC (o_display, o_window, ZERO, NULL);
    o_gc[train_gc] = XCreateGC (o_display, o_window, ZERO, NULL);
    o_gc[test_gc] = XCreateGC (o_display, o_window, ZERO, NULL);
    XSetFont(o_display,o_gc[label_gc],(*o_fontStruct).fid);
    o_screen = DefaultScreen (o_display);
    o_depth = DisplayPlanes(o_display,o_screen);
    o_graph_col = DefaultColormap(o_display, o_screen);

    if(ui_col_monochromeMode == FALSE){
	/* settings for black learning curve */
	fg.red = 0; fg.green = 0; fg.blue = 0; 
	fg2.red = 65535; fg2.green = 0; fg2.blue = 0;

    }else{
	XSetLineAttributes(o_display, o_gc[test_gc],1,LineDoubleDash,
			   CapButt,JoinMiter);
	fg.red = 0; fg.green = 0; fg.blue = 0;
	fg2.red = 0; fg2.green = 0; fg2.blue = 0;
    }
    background = WhitePixel (o_display, o_screen);
    XSetBackground (o_display, o_gc[train_gc], background);
    XSetBackground (o_display, o_gc[test_gc],  background);
    XSetBackground (o_display, o_gc[label_gc], background);
    XAllocColor(o_display,o_graph_col,&fg);
    XAllocColor(o_display,o_graph_col,&fg2);
    foreground = BlackPixel (o_display, o_screen); 
    XSetForeground (o_display, o_gc[train_gc], fg.pixel); 
    XSetForeground (o_display, o_gc[test_gc],  fg2.pixel); 
    XSetForeground (o_display, o_gc[label_gc], foreground); 

    XSetGraphicsExposures(o_display,o_gc[label_gc],0);
    XSetGraphicsExposures(o_display,o_gc[train_gc],0);
    XSetGraphicsExposures(o_display,o_gc[test_gc],0);

    o_Pixmap = XCreatePixmap(o_display,o_window, (unsigned int) o_PixmapWidth, 
			     (unsigned int) o_PixmapHeight, 
			     (unsigned int) o_depth);
    o_ClearPixmap(o_display,o_Pixmap,o_gc[train_gc],fg.pixel,o_screen,0,0,
		  o_PixmapWidth,o_PixmapHeight); 
    o_ClearPixmap(o_display,o_Pixmap,o_gc[test_gc],fg2.pixel,o_screen,0,0,
		  o_PixmapWidth,o_PixmapHeight); 
    XClearArea(o_display,o_window,o_OsziXPos,o_OsziYPos, 
	       (unsigned int) o_OsziWidth-1, (unsigned int) o_OsziHeight,1);
    o_PressPossible = 1;
}