/***************************************************************************** FILE : $Source: /projects/higgs1/SNNS/CVS/SNNS/xgui/sources/ui_control.c,v $ SHORTNAME : control.c SNNS VERSION : 4.2 PURPOSE : creates the widget containing all controls of the kernal. NOTES : is called only during initialisation AUTHOR : Tilman Sommer DATE : 20.7.1990 CHANGED BY : Michael Vogt, Guenter Mamier RCS VERSION : $Revision: 1.15 $ LAST CHANGE : $Date: 1998/04/20 11:55:08 $ Copyright (c) 1990-1995 SNNS Group, IPVR, Univ. Stuttgart, FRG Copyright (c) 1996-1998 SNNS Group, WSI, Univ. Tuebingen, FRG ******************************************************************************/ #include #include #include "ui.h" #include #include #include #include #include #include #include #include #include "kr_ui.h" #include "ui_controlP.h" #include "ui_xWidgets.h" #include "ui_main.h" /* ui_labelFontWidth */ #include "ui_mainP.h" /* ui_editPopup() */ #include "ui_utilP.h" /* ui_cutTrailingZeros() */ #include "ui_fileP.h" #ifdef MASPAR_KERNEL #include "ui_maspar.h" /* MASPAR Kernel Interface */ #endif #include "ui_control.ph" /***************************************************************************** FUNCTION : ui_xCreateControlPanel PURPOSE : creates a form widget for user input of unit data RETURNS : void NOTES : some constants are used (see below) to get a relativ positioning of the items. This is VERY useful after changings. UPDATE : 19.02.95 *****************************************************************************/ void ui_xCreateControlPanel (Widget parent) { /* tabs for data fields and small buttons */ static struct SimpleListType listSiteFType; /* site list in f-type edit panel */ static struct SimpleListType listSiteSite; /* site list in site edit panel */ static struct SimpleListType listLearnFunc; /* func list */ static struct SimpleListType listUpdateFunc; /* func list */ static struct SimpleListType listInitFunc; /* func list */ static struct SimpleListType listRemapFunc; /* func list */ Widget stepLabel, learnLabel, updateLabel, learn2Label, pattLabel; Widget sButton, button, menu, entry, mItem; Widget mdelButton,museButton, testLabel, initLabel, remapLabel; Arg args[10]; Cardinal n; int i; char buf[20]; /* int fontWidth = 8; */ int titelWidth = 7 * ui_labelFontWidth; int numberWidth = 7 * ui_labelFontWidth; int fileWidth = 26* ui_labelFontWidth; /***************************************************************************/ ui_controlPanel = XtCreateManagedWidget("rPanel", formWidgetClass, parent, NULL, ZERO); /**************************** Steps Line *********************************/ stepLabel = ui_xCreateLabelItem("STEPS", ui_controlPanel, titelWidth, NULL, NULL); sprintf(buf,"%d",ui_numberOfSteps); ui_numberOfStepsWidget = ui_xCreateDialogItem("numberOfSteps", ui_controlPanel, buf, numberWidth, stepLabel, NULL); sButton = ui_xCreateButtonItem("multiStep", ui_controlPanel, ui_numberOfStepsWidget, NULL); XtAddCallback(sButton, XtNcallback, (XtCallbackProc) ui_rem_stepsProc, (caddr_t) TRUE); sprintf(buf,"%d",ui_numberOfStepsDone); ui_numberOfStepsDoneWidget = ui_xCreateLabelItem(buf, ui_controlPanel, numberWidth, sButton,NULL); n = 0; XtSetArg(args[n], XtNborderWidth, 1); n++; XtSetArg(args[n], XtNinternalHeight, 3); n++; XtSetArg(args[n], XtNinternalWidth , 5); n++; XtSetArg(args[n], XtNhorizDistance, 5); n++; XtSetValues(ui_numberOfStepsDoneWidget, args, n); jogbutton = ui_xCreateButtonItem("jog", ui_controlPanel, ui_numberOfStepsDoneWidget, NULL); XtAddCallback(jogbutton, XtNcallback, (XtCallbackProc)ui_popupWeights,NULL); button = ui_xCreateButtonItem("init", ui_controlPanel, jogbutton, NULL); XtAddCallback(button, XtNcallback, (XtCallbackProc)ui_rem_doInitialization, NULL); button = ui_xCreateButtonItem("reset", ui_controlPanel, button, NULL); XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_rem_resetNet, NULL); button = ui_xCreateButtonItem("error", ui_controlPanel, button, NULL); XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_rem_errProc, NULL); button = ui_xCreateButtonItem("info", ui_controlPanel, button, NULL); XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_rem_getKernelInfo, NULL); /****************************** CYCLES ***********************************/ learnLabel = ui_xCreateLabelItem("CYCLES", ui_controlPanel, titelWidth, NULL, stepLabel); sprintf(buf,"%d",ui_numberOfCycles); ui_numberOfCyclesWidget = ui_xCreateDialogItem("numberOfCycles", ui_controlPanel, buf, numberWidth, learnLabel, stepLabel); button = ui_xCreateButtonItem("single", ui_controlPanel, ui_numberOfCyclesWidget, stepLabel); XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_rem_learnProc, (caddr_t) UI_LEARN_SINGLE); button = ui_xCreateButtonItem("all", ui_controlPanel, sButton, stepLabel); XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_rem_learnProc, (caddr_t) UI_LEARN_ALL); button = ui_xCreateButtonItem("stop", ui_controlPanel, button, stepLabel); XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_rem_stopProc, NULL); button = ui_xCreateButtonItem("test", ui_controlPanel, button, stepLabel); XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_rem_testProc, NULL); button = ui_xCreateToggleItem("shuffle", ui_controlPanel, NULL, button, stepLabel); XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_rem_shuffleProc, NULL); button = ui_xCreateMenuButtonItem("editors", ui_controlPanel, button, stepLabel); menu = XtCreatePopupShell("menu", simpleMenuWidgetClass, button, NULL, ZERO); mItem = XtCreateManagedWidget("edit f-types", smeBSBObjectClass, menu, NULL, ZERO); sprintf(listSiteFType.msg,"Edit f-type table"); listSiteFType.unitPtr = NULL; listSiteFType.widgetPtr= button; listSiteFType.listType = UI_LIST_FTYPE_SITE; XtAddCallback(mItem, XtNcallback, (XtCallbackProc) ui_editPopup, (caddr_t) &listSiteFType); mItem = XtCreateManagedWidget("edit sites", smeBSBObjectClass, menu, NULL, ZERO); sprintf(listSiteSite.msg,"Edit site table"); listSiteSite.unitPtr = NULL; listSiteSite.widgetPtr= button; listSiteSite.listType = UI_LIST_SITE; XtAddCallback(mItem, XtNcallback, (XtCallbackProc) ui_editSitePopup, (caddr_t) &listSiteSite); n=0; XtSetArg(args[n], XtNborderWidth, 1);n++; XtSetArg(args[n], XtNjustify, XtJustifyLeft); n++; XtSetArg(args[n], XtNinternalHeight, 0.99); n++; XtSetArg(args[n], XtNinternalWidth , 6); n++; XtSetArg(args[n], XtNfromVert , stepLabel); n++; XtSetArg(args[n], XtNfromHoriz, button); n++; XtSetArg(args[n], XtNvertDistance, 5); n++; ui_showModeLabel = XtCreateManagedWidget("show", menuButtonWidgetClass, ui_controlPanel, args,n); ui_rem_showModeProc(NULL, ui_patternLoadMode, NULL); n=0; XtSetArg(args[n], XtNvertDistance, -2); n++; menu = XtCreatePopupShell("menu",simpleMenuWidgetClass,ui_showModeLabel, args, n); entry = XtCreateManagedWidget("none", smeBSBObjectClass, menu,NULL,ZERO); XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_rem_showModeProc, (caddr_t) OUTPUT_NOTHING); entry = XtCreateManagedWidget("out", smeBSBObjectClass, menu,NULL,ZERO); XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_rem_showModeProc, (caddr_t) OUTPUT_OUT); entry = XtCreateManagedWidget("act", smeBSBObjectClass, menu,NULL,ZERO); XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_rem_showModeProc, (caddr_t) OUTPUT_ACT); #ifdef PARAGON_KERNEL button = ui_xCreateToggleItem("parallel", ui_controlPanel, NULL, button, stepLabel); XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_rem_SwitchParallel, NULL); #endif #ifdef MASPAR_KERNEL button = ui_xCreateButtonItem("maspar", ui_controlPanel, button, stepLabel); XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_masparPannel, (caddr_t) button); #endif /******************************* PATTERN **********************************/ pattLabel = ui_xCreateLabelItem("PATTERN", ui_controlPanel, titelWidth, NULL, learnLabel); sprintf(buf,"%d",ui_noOfCurrentPattern); ui_numberOfPatternWidget = ui_xCreateDialogItem("patternNo",ui_controlPanel, buf, numberWidth, pattLabel, learnLabel); button = ui_xCreateButtonItem("delete", ui_controlPanel, ui_numberOfPatternWidget, learnLabel); XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_rem_deletePatternProc, NULL); button = ui_xCreateButtonItem("modify", ui_controlPanel, button,learnLabel); XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_rem_modifyPatternProc, NULL); button = ui_xCreateButtonItem("new", ui_controlPanel, button, learnLabel); XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_rem_newPatternProc, NULL); button = ui_xCreateButtonItem("goto", ui_controlPanel, button, learnLabel); XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_rem_moveInPatternsProc, (caddr_t)UI_JUMP); button = ui_xCreateButtonItem("first", ui_controlPanel, button, learnLabel); XtAddCallback(button, XtNcallback, (XtCallbackProc)ui_rem_moveInPatternsProc,(caddr_t) UI_FIRST); button = ui_xCreateButtonItem("prev", ui_controlPanel, button, learnLabel); XtAddCallback(button, XtNcallback, (XtCallbackProc)ui_rem_moveInPatternsProc, (caddr_t) UI_PREVIOUS); button = ui_xCreateButtonItem("next", ui_controlPanel, button, learnLabel); XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_rem_moveInPatternsProc,(caddr_t) UI_NEXT); button = ui_xCreateButtonItem("last", ui_controlPanel, button, learnLabel); XtAddCallback(button, XtNcallback, (XtCallbackProc)ui_rem_moveInPatternsProc, (caddr_t)UI_LAST); button = ui_xCreateButtonItem("subpat", ui_controlPanel, button,learnLabel); XtAddCallback(button,XtNcallback, (XtCallbackProc)ui_rem_defSubPat, (caddr_t)0); /************************** SECOND PATTERN LINE ***************************/ mdelButton = ui_xCreateMenuButtonItem("del",ui_controlPanel, ui_numberOfPatternWidget,pattLabel); REM_DFileMenu = XtCreatePopupShell("menu", simpleMenuWidgetClass, mdelButton, NULL, ZERO); if(PATTERN_SET_FILE[CURR_PATTERN_SET] != NULL){ for(i=0; i