home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / SNNSV32.ZIP / SNNSv3.2 / xgui / sources / ui_xWidgets.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-04-25  |  45.0 KB  |  1,508 lines

  1. /*****************************************************************************
  2.   FILE           : ui_xWidgets.c
  3.   SHORTNAME      : xWidgets 
  4.   SNNS VERSION   : 3.2
  5.  
  6.   PURPOSE        : easy creating of labels, string-edit, buttons, radio-buttons
  7.   NOTES          :
  8.  
  9.   AUTHOR         : Tilman Sommer 
  10.   DATE           : 13.7.1990
  11.  
  12.   CHANGED BY     : Michael Vogt, Guenter Mamier
  13.   IDENTIFICATION : @(#)ui_xWidgets.c    1.23 3/2/94
  14.   SCCS VERSION   : 1.23 
  15.   LAST CHANGE    : 3/2/94  
  16.  
  17.              Copyright (c) 1990-1994  SNNS Group, IPVR, Univ. Stuttgart, FRG
  18.  
  19. ******************************************************************************/
  20. #include <stdlib.h>
  21. #include <stdio.h>
  22. #include <string.h>
  23.  
  24. #include "ui.h"
  25. #include "ui_action.h"
  26. #include "ui_main.h"
  27. #include "ui_mainP.h"
  28.  
  29. #include <X11/Shell.h>
  30. #include <X11/Xaw/Form.h>
  31. #include <X11/Xaw/List.h>
  32. #include <X11/Xaw/Command.h>
  33. #include <X11/Xaw/Toggle.h>
  34. #include <X11/Xaw/AsciiText.h>
  35. #include <X11/Xaw/AsciiSrc.h>
  36. #include <X11/Xaw/Label.h>
  37. #include <X11/Xaw/MenuButton.h>
  38. #include <X11/Xaw/Scrollbar.h>
  39.  
  40. #ifndef Widgets
  41. #include <X11/Intrinsic.h>
  42. #endif
  43.  
  44.  
  45. #include "windows.xbm"
  46. #include "selected.xbm"
  47. #include "flags.xbm"
  48. #include "ok.xbm"
  49. #include "yes.xbm"
  50. #include "no.xbm"
  51. #include "save.xbm"
  52. #include "load.xbm"
  53. #include "first.xbm"
  54. #include "prev.xbm"
  55. #include "next.xbm"
  56. #include "last.xbm"
  57. #include "def.xbm"
  58. #include "set.xbm"
  59. #include "done.xbm"
  60. #include "select.xbm"
  61. #include "add.xbm"
  62. #include "delete.xbm"
  63. #include "choose.xbm"
  64. #include "new.xbm"
  65. #include "newL.xbm"
  66. #include "look.xbm"
  67. #include "more.xbm"
  68. #include "topics.xbm"
  69. #include "step.xbm"
  70. #include "test.xbm"
  71. #include "stop.xbm"
  72. #include "reset.xbm"
  73. #include "info.xbm"
  74. #include "single.xbm"
  75. #include "all.xbm"
  76. #include "layers.xbm"
  77. #include "setup.xbm"
  78. #include "freeze.xbm"
  79. #include "icon.xbm"
  80. #include "show.xbm"
  81. #include "mode.xbm"
  82. #include "options.xbm"
  83. #include "on.xbm"
  84. #include "off.xbm"
  85. #include "value.xbm"
  86. #include "direction.xbm"
  87. #include "shuffle.xbm"
  88. #include "colors.xbm"
  89. #include "modify.xbm"
  90. #include "goto.xbm"
  91. #include "init.xbm"
  92. #include "connect.xbm"
  93. #include "disconnect.xbm"
  94. #include "standard.xbm"
  95. #include "feedforward.xbm"
  96. #include "net.xbm"
  97. #include "pat.xbm"
  98. #include "cfg.xbm"
  99. #include "txt.xbm"
  100. #include "help.xbm"
  101. #include "print.xbm"
  102. #include "printer.xbm"
  103. #include "postscript.xbm"
  104. #include "eps.xbm"
  105. #include "dina4.xbm"
  106. #include "dina3.xbm"
  107. #include "usletter.xbm"
  108. #include "file.xbm"
  109. #include "portrait.xbm"
  110. #include "landscape.xbm"
  111. #include "network.xbm"
  112. #include "fixed.xbm"
  113. #include "value2.xbm"
  114. #include "rectangle.xbm"
  115. #include "circle.xbm"
  116. #include "solid2.xbm"
  117. #include "trans.xbm"
  118. #include "cancel.xbm"
  119. #include "create.xbm"
  120. #include "append.xbm"
  121. #include "res.xbm"
  122. #include "default.xbm"
  123. #include "text.xbm"
  124. #include "selection.xbm"
  125. #include "background.xbm"
  126. #include "maspar.xbm"
  127. #include "view.xbm"
  128. #include "norm.xbm"
  129. #include "super3d.xbm"
  130. #include "zoomin.xbm"
  131. #include "zoomout.xbm"
  132. #include "winner.xbm"
  133. #include "use.xbm"
  134. #include "delSet.xbm"
  135. #include "subpat.xbm"
  136.  
  137. /* ui_x...FromAsciiWidget */
  138. #define MAX_INPUT_BUFLEN 20
  139.  
  140. #include "ui_xWidgets.ph"
  141.  
  142.  
  143. #ifdef _UNUSED_FUNCTIONS_
  144. /*****************************************************************************
  145.   FUNCTION :  ui_addString
  146.  
  147.   PURPOSE  : adds a string to a specified array of (char *)
  148.   NOTES    : 
  149.   RETURNS  :
  150.   UPDATE   : 1.5.1990
  151. ******************************************************************************/
  152.  
  153.  
  154.  
  155. void ui_addString(char **arrayPtr,int *numItems, int *allocatedItems,char *string)
  156. {
  157.     if (*numItems == *allocatedItems) {
  158.     *allocatedItems += 10;
  159.     arrayPtr = 
  160.         (char **) XtRealloc(*arrayPtr, sizeof(String) * (*allocatedItems));
  161.     }
  162.     arrayPtr[(*numItems)++] = XtNewString(string); 
  163. }
  164.  
  165. #endif
  166.  
  167. /*****************************************************************************
  168.   FUNCTION :  ui_xAddListEntry
  169.  
  170.   PURPOSE  : adds a list entry to the specified list-widget
  171.   NOTES    : Changed version of the function Okay in the example program
  172.              xwidgets.c of the Athena Toolkit.
  173.   RETURNS  : void
  174.   UPDATE   : 1.5.1990
  175. ******************************************************************************/
  176.  
  177.  
  178.  
  179. void ui_xAddListEntry(struct SimpleListType *listDescriptorPtr,String string)
  180. {
  181.     if (listDescriptorPtr->noOfItems == listDescriptorPtr->noOfAllocItems) {
  182.     listDescriptorPtr->noOfAllocItems += 10;
  183.      (listDescriptorPtr->listPtr) = 
  184.         (String *) XtRealloc((char *) listDescriptorPtr->listPtr, 
  185.                  (unsigned int) sizeof(String *) * listDescriptorPtr->noOfAllocItems);
  186.     }
  187.     (listDescriptorPtr->listPtr)[(listDescriptorPtr->noOfItems)++] = 
  188.     XtNewString(string); 
  189.     XawListChange(listDescriptorPtr->listWidget, listDescriptorPtr->listPtr, 
  190.           listDescriptorPtr->noOfItems, 0, True);
  191. }
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198. /*****************************************************************************
  199.   FUNCTION :                   ui_xSetResize
  200.  
  201.   PURPOSE  : used to set the resize resource of a asciiText widget
  202.   NOTES    :
  203.   RETURNS  : void
  204.   UPDATE   :
  205. *****************************************************************************/
  206.  
  207. void ui_xSetResize(Widget widget,Boolean state)
  208. {
  209.     Cardinal      n;
  210.     Arg           args[3];
  211.  
  212.     n = 0;
  213.     if (state) 
  214.     XtSetArg(args[n], XtNresize, XawtextResizeWidth);
  215.     else 
  216.     XtSetArg(args[n], XtNresize, XawtextResizeNever);
  217.     
  218.     n++;
  219.     XtSetArg(args[n], XtNresizable, state); n++;
  220.     XtSetValues(widget, args, n);
  221. }
  222.  
  223.  
  224. /*****************************************************************************
  225.   FUNCTION :                   ui_xSetLabel
  226.  
  227.   PURPOSE  : used to set the label of a widget
  228.   NOTES    :
  229.   RETURNS  : void
  230.   UPDATE   :
  231. *****************************************************************************/
  232.  
  233. void ui_xSetLabel(Widget widget,char *newLabel)
  234. {
  235.     Cardinal      n;
  236.     Arg           args[2];
  237.  
  238.     n = 0;
  239.     XtSetArg(args[n], XtNlabel, newLabel); n++;
  240.     XtSetValues(widget, args, n);
  241. }
  242.  
  243.  
  244.  
  245. /*****************************************************************************
  246.   FUNCTION :                   ui_xSetString
  247.  
  248.   PURPOSE  : used to set the string resource of a widget
  249.   NOTES    :
  250.   RETURNS  : void
  251.   UPDATE   :
  252. *****************************************************************************/
  253.  
  254. void ui_xSetString(Widget widget,char *contents)
  255. {
  256.     Cardinal      n;
  257.     Arg           args[3];
  258.     uint           lenContents;
  259.     char          editBuf[61];
  260.  
  261.     if (contents == NULL)
  262.     lenContents = 0;
  263.     else {
  264.     lenContents = strlen(contents);
  265.     if (lenContents > 60) lenContents = 60;
  266.     strncpy(editBuf,contents,lenContents);
  267.     }
  268.  
  269.     editBuf[lenContents] = '\0';
  270.  
  271.     n = 0;
  272.     XtSetArg(args[n], XtNstring,editBuf); n++;
  273.     XtSetArg(args[n], XtNinsertPosition, lenContents); n++;
  274.     XtSetValues(widget, args, n);
  275. }
  276.  
  277.  
  278.  
  279.  
  280. /*****************************************************************************
  281.   FUNCTION : ui_xStringFromAsciiWidget
  282.  
  283.   PURPOSE  : used to get a string from an ascii widget
  284.   NOTES    :
  285.   RETURNS  : void
  286.   UPDATE   :
  287. *****************************************************************************/
  288.  
  289. void ui_xStringFromAsciiWidget(Widget widget,char *stringVar,int maxLen)
  290. {
  291.     Widget        asciiSrc;
  292.     XawTextBlock  textBlock;
  293.     Cardinal      n;
  294.     Arg           args[5];
  295.  
  296.     n = 0;
  297.     XtSetArg(args[n], XtNtextSource, &asciiSrc); n++;
  298.     XtGetValues(widget, args, n);
  299.     
  300.     (void) XawTextSourceRead(asciiSrc, 0, &textBlock, maxLen-1);
  301.  
  302.     if (textBlock.length > maxLen-1) 
  303.     textBlock.length = maxLen-1;
  304.     
  305.     strncpy(stringVar, textBlock.ptr,(uint) textBlock.length);
  306.     stringVar[textBlock.length] = '\0';  /* this is for safeness */
  307. }
  308.  
  309.  
  310.     
  311.  
  312.  
  313.  
  314. /*****************************************************************************
  315.   FUNCTION : ui_xFloatFromAsciiWidget
  316.  
  317.   PURPOSE  : used to get a string from a PANEL_TEXT item and transform it
  318.              to an float.
  319.   NOTES    :
  320.   RETURNS  : The numerical value hold from panelItem
  321.   UPDATE   :
  322. *****************************************************************************/
  323.  
  324. float ui_xFloatFromAsciiWidget(Widget widget)
  325. {
  326.     Widget        asciiSrc;
  327.     XawTextBlock  textBlock;
  328.     char          buf[MAX_INPUT_BUFLEN + 1];
  329.     Cardinal      n;
  330.     Arg           args[5];
  331.     float         rVal;
  332.  
  333.     n = 0;
  334.     XtSetArg(args[n], XtNtextSource, &asciiSrc); n++;
  335.     XtGetValues(widget, args, n);
  336.     
  337.     (void) XawTextSourceRead(asciiSrc, 0, &textBlock, MAX_INPUT_BUFLEN);
  338.  
  339.     if (textBlock.length > MAX_INPUT_BUFLEN) 
  340.     textBlock.length = MAX_INPUT_BUFLEN;
  341.     
  342.     strncpy(buf, textBlock.ptr, (uint) textBlock.length);
  343.     buf[textBlock.length] = '\0';  /* this is for safeness */
  344.     if (strlen(buf) == 0) return(0.0);
  345.     else {
  346.     sscanf(buf,"%f", &rVal);
  347.     return(rVal);
  348.     }
  349. }
  350.  
  351.  
  352. /*****************************************************************************
  353.   FUNCTION : ui_xUtilIntFromAsciiWidget
  354.  
  355.   PURPOSE  : used to get a string from a PANEL_TEXT item and transform it
  356.              to an integer.
  357.   NOTES    :
  358.   RETURNS  : The numerical value hold from panelItem
  359.   UPDATE   :
  360. *****************************************************************************/
  361.  
  362. int ui_xIntFromAsciiWidget(Widget widget)
  363. {
  364.     Widget        asciiSrc;
  365.     XawTextBlock  textBlock;
  366.     char          buf[MAX_INPUT_BUFLEN + 1];
  367.     Cardinal      n;
  368.     Arg           args[5];
  369.  
  370.     n = 0;
  371.     XtSetArg(args[n], XtNtextSource, &asciiSrc); n++;
  372.     XtGetValues(widget, args, n);
  373.     
  374.     (void) XawTextSourceRead(asciiSrc, 0, &textBlock, MAX_INPUT_BUFLEN);
  375.  
  376.     if (textBlock.length > MAX_INPUT_BUFLEN) 
  377.     textBlock.length = MAX_INPUT_BUFLEN;
  378.     
  379.     strncpy(buf, textBlock.ptr,(uint) textBlock.length);
  380.     buf[textBlock.length] = '\0';  /* this is for safeness */
  381.     if (strlen(buf) == 0) return(0);
  382.     else return(atoi(buf));
  383. }
  384.  
  385.  
  386.  
  387.  
  388.  
  389. /*****************************************************************************
  390.   FUNCTION : ui_xGetDimensions
  391.  
  392.   PURPOSE  : get width and height of specified widget
  393.   NOTES    :
  394.   RETURNS  : void
  395.   UPDATE   : 1.2.1990
  396. ******************************************************************************/
  397.  
  398. void ui_xGetDimensions(Widget widget,Dimension *width,Dimension *height)
  399. {
  400.     Cardinal   n;
  401.     Arg           args[15];
  402.  
  403.     n = 0;
  404.     XtSetArg(args[n], XtNwidth,  width); n++;
  405.     XtSetArg(args[n], XtNheight, height); n++;
  406.     XtGetValues(widget, args, n);
  407. }
  408.  
  409.  
  410.  
  411. /*****************************************************************************
  412.   FUNCTION : ui_xGetToggleState
  413.  
  414.   PURPOSE  : returns the state of the specified toggle
  415.   NOTES    : TRUE means PUSHED;
  416.  
  417.   RETURNS  : State of the Toggle
  418.   UPDATE   : 26.8.1990
  419. ******************************************************************************/
  420.  
  421. Bool ui_xGetToggleState(Widget w)
  422. {
  423.     Cardinal  n;
  424.     Arg       args[2];
  425.     Boolean   state;
  426.  
  427.     n=0;
  428.     XtSetArg(args[n], XtNstate, &state); n++;
  429.     XtGetValues(w, args, n);
  430.     return(state == TRUE); /* prevents compatibiltiy problems */
  431. }
  432.  
  433.  
  434.  
  435.  
  436. /*****************************************************************************
  437.   FUNCTION : ui_xSetToggleState
  438.  
  439.   PURPOSE  : sets the state of the specified toggle
  440.   NOTES    : 
  441.   RETURNS  : void
  442.   UPDATE   : 26.8.1990
  443. ******************************************************************************/
  444.  
  445. void ui_xSetToggleState(Widget w,Bool state)
  446. {
  447.     Cardinal n;
  448.     Arg       args[2];
  449.  
  450.     n=0;
  451.     XtSetArg(args[n], XtNstate, (Boolean) state); n++;
  452.     XtSetValues(w, args, n);
  453. }
  454.  
  455.  
  456.  
  457.  
  458. /*****************************************************************************
  459.   FUNCTION : ui_xCreateLabelItem
  460.  
  461.   PURPOSE  : create a label widget
  462.   NOTES    :
  463.   RETURNS  : The Widgetnumber of the Label
  464.   UPDATE   : 15.5.1990
  465. ******************************************************************************/
  466.  
  467.  
  468. Widget   ui_xCreateLabelItem(char *name,Widget parent,Dimension width,Widget left,Widget top)
  469.     Cardinal n;
  470.     Widget   w;
  471.     Arg         args[15];
  472.  
  473.     n = 0;
  474.     if (strcmp(name,"noSel") == 0) {
  475.     XtSetArg(args[n], XtNbitmap, 
  476.          (Pixmap) XCreateBitmapFromData(ui_display, 
  477.                         XDefaultRootWindow(ui_display),
  478.                         selected_bits, selected_width,
  479.                         selected_height)); n++;
  480.     }
  481.     if (strcmp(name,"flags") == 0) {
  482.     XtSetArg(args[n], XtNbitmap, 
  483.          (Pixmap) XCreateBitmapFromData(ui_display, 
  484.                         XDefaultRootWindow(ui_display),
  485.                         flags_bits, flags_width,
  486.                         flags_height)); n++;
  487.     }    
  488.     XtSetArg(args[n], XtNborderWidth, 0); n++;
  489.     if (width != 0) {
  490.     XtSetArg(args[n], XtNwidth, (XtArgVal) width); n++;
  491.     XtSetArg(args[n], XtNresize, FALSE); n++;
  492.     } else {
  493.     XtSetArg(args[n], XtNresizable, True); n++;    
  494.     XtSetArg(args[n], XtNresize,    TRUE); n++;
  495.     }
  496.     XtSetArg(args[n], XtNjustify, XtJustifyLeft); n++;
  497. /*    XtSetArg(args[n], XtNinternalHeight, 1); n++;
  498.     XtSetArg(args[n], XtNinternalWidth , 1); n++;
  499. */    XtSetArg(args[n], XtNfromHoriz, left); n++;
  500.     XtSetArg(args[n], XtNfromVert , top);  n++;
  501.     XtSetArg(args[n], XtNleft  , XtChainLeft); n++;
  502.     XtSetArg(args[n], XtNright , XtChainLeft); n++;
  503.     XtSetArg(args[n], XtNtop   , XtChainTop); n++;
  504.     XtSetArg(args[n], XtNbottom, XtChainTop); n++;
  505.     w = XtCreateManagedWidget(name, labelWidgetClass, parent, args, n);
  506.     return(w);
  507. }
  508.  
  509. /*****************************************************************************
  510.   FUNCTION : ui_xCreateFrameLabelItem
  511.  
  512.   PURPOSE  : create a label widget
  513.   NOTES    :
  514.   RETURNS  : The Widgetnumber of the Label
  515.   UPDATE   : 15.5.1990
  516. ******************************************************************************/
  517. Widget   ui_xCreateFrameLabelItem(char *name,Widget parent,Dimension width,Widget left,Widget top)
  518.     Cardinal n;
  519.     Widget   w;
  520.     Arg         args[15];
  521.  
  522.     n = 0;
  523.     if (strcmp(name,"noSel") == 0) {
  524.     XtSetArg(args[n], XtNbitmap, 
  525.          (Pixmap) XCreateBitmapFromData(ui_display, 
  526.                         XDefaultRootWindow(ui_display),
  527.                         selected_bits, selected_width,
  528.                         selected_height)); n++;
  529.     }
  530.     if (strcmp(name,"flags") == 0) {
  531.     XtSetArg(args[n], XtNbitmap, 
  532.          (Pixmap) XCreateBitmapFromData(ui_display, 
  533.                         XDefaultRootWindow(ui_display),
  534.                         flags_bits, flags_width,
  535.                         flags_height)); n++;
  536.     }    
  537.     XtSetArg(args[n], XtNborderWidth, 1); n++;
  538.     if (width != 0) {
  539.     XtSetArg(args[n], XtNheight, 17); n++;
  540.     XtSetArg(args[n], XtNwidth, (XtArgVal) width); n++;
  541.     XtSetArg(args[n], XtNresize, FALSE); n++;
  542.     } else {
  543.     XtSetArg(args[n], XtNresizable, True); n++;    
  544.     XtSetArg(args[n], XtNresize,    TRUE); n++;
  545.     }
  546.     XtSetArg(args[n], XtNjustify, XtJustifyLeft); n++;
  547.     XtSetArg(args[n], XtNinternalHeight, 3); n++;
  548.     XtSetArg(args[n], XtNinternalWidth , 4); n++;
  549.     XtSetArg(args[n], XtNfromHoriz, left); n++;
  550.     XtSetArg(args[n], XtNfromVert , top);  n++;
  551.     XtSetArg(args[n], XtNleft  , XtChainLeft); n++;
  552.     XtSetArg(args[n], XtNright , XtChainLeft); n++;
  553.     XtSetArg(args[n], XtNtop   , XtChainTop); n++;
  554.     XtSetArg(args[n], XtNbottom, XtChainTop); n++;
  555.     w = XtCreateManagedWidget(name, labelWidgetClass, parent, args, n);
  556.     return(w);
  557. }
  558.  
  559.  
  560.  
  561.  
  562. /*****************************************************************************
  563.   FUNCTION : ui_xCreateDialogItem
  564.  
  565.   PURPOSE  : create an ascii text widget (edit type = string)
  566.   NOTES    :
  567.   RETURNS  : The Widgetnumber of the text Widget
  568.   UPDATE   : 1.2.1990
  569. ******************************************************************************/
  570.  
  571.  
  572.  
  573. Widget  ui_xCreateDialogItem(char *name,Widget parent,char *contents,Dimension  width,Widget left,Widget top)
  574.     Cardinal        n;
  575.     Widget          w;
  576.     Arg                args[25];
  577.     char            buf[61];
  578.     static XtActionsRec  ActionRec [] = {{"ui_noreturn",(XtActionProc) ui_noreturn}};
  579.     XtTranslations Translation;
  580.  
  581.     uint lenContents;
  582.  
  583.     if (contents == NULL) 
  584.     lenContents = 0;
  585.     else {
  586.     lenContents = strlen(contents);
  587.     if (lenContents > 60) lenContents = 60;
  588.     }
  589.     strncpy(buf,contents,lenContents);
  590.     buf[lenContents] = '\0';
  591.  
  592.  
  593.     n = 0;
  594.     XtSetArg(args[n], XtNborderWidth,  1); n++;
  595.     XtSetArg(args[n], XtNstring   , buf); n++;
  596.     if (width != 0) {
  597.     XtSetArg(args[n], XtNresize   , XawtextResizeNever); n++;
  598.     XtSetArg(args[n], XtNwidth    , width);  n++;
  599.     } else {
  600.     XtSetArg(args[n], XtNwidth    , 8*lenContents + 20);  n++;
  601.     XtSetArg(args[n], XtNresizable, True); n++;    
  602.     XtSetArg(args[n], XtNresize   , XawtextResizeWidth); n++;
  603.     }    
  604.     XtSetArg(args[n], XtNscrollHorizontal, XawtextScrollNever); n++;
  605.     XtSetArg(args[n], XtNscrollVertical  , XawtextScrollNever); n++;
  606.     XtSetArg(args[n], XtNinsertPosition  , lenContents);  n++;
  607.     XtSetArg(args[n], XtNeditType , XawtextEdit);  n++;
  608.     XtSetArg(args[n], XtNtype     , XawAsciiString);  n++;
  609.     XtSetArg(args[n], XtNfromVert , top);  n++;
  610.     XtSetArg(args[n], XtNfromHoriz, left);  n++;
  611.     XtSetArg(args[n], XtNleft  , XtChainLeft); n++;
  612.     XtSetArg(args[n], XtNright , XtChainLeft); n++;
  613.     XtSetArg(args[n], XtNtop   , XtChainTop); n++;
  614.     XtSetArg(args[n], XtNbottom, XtChainTop); n++;
  615.     w = XtCreateManagedWidget(name, asciiTextWidgetClass, parent, args, n);
  616. #ifndef _HPUX_SOURCE
  617.     XtAppAddActions (ui_appContext, ActionRec, XtNumber (ActionRec));
  618.     Translation = XtParseTranslationTable ("<Key>Return: ui_noreturn()");
  619.     XtOverrideTranslations (w, Translation);
  620. #endif
  621.     return(w);
  622. }
  623.  
  624.  
  625.  
  626. /*****************************************************************************
  627.   FUNCTION : ui_xCreateButtonItem
  628.  
  629.   PURPOSE  : create a command widget
  630.   NOTES    :
  631.   RETURNS  : The Widgetnumber of the command widget
  632.   UPDATE   : 18.5.1990
  633. ******************************************************************************/
  634.  
  635. Widget  ui_xCreateButtonItem(char *name,Widget parent,Widget left,Widget top)
  636.     Cardinal n;
  637.     Widget   w;
  638.     Arg         args[15];
  639.  
  640.     n = 0;
  641.     if (strcmp(name,"init") == 0) {
  642.     XtSetArg(args[n], XtNbitmap, 
  643.          (Pixmap) XCreateBitmapFromData(ui_display, 
  644.                         XDefaultRootWindow(ui_display),
  645.                         init_bits, init_width,
  646.                         init_height)); n++;
  647.     }
  648.     if (strcmp(name,"goto") == 0) {
  649.     XtSetArg(args[n], XtNbitmap, 
  650.          (Pixmap) XCreateBitmapFromData(ui_display, 
  651.                         XDefaultRootWindow(ui_display),
  652.                         goto_bits, goto_width,
  653.                         goto_height)); n++;
  654.     }
  655.     if (strcmp(name,"modify") == 0) {
  656.     XtSetArg(args[n], XtNbitmap, 
  657.          (Pixmap) XCreateBitmapFromData(ui_display, 
  658.                         XDefaultRootWindow(ui_display),
  659.                         modify_bits, modify_width,
  660.                         modify_height)); n++;
  661.     }
  662.     if (strcmp(name,"ok") == 0) {
  663.     XtSetArg(args[n], XtNbitmap, 
  664.          (Pixmap) XCreateBitmapFromData(ui_display, 
  665.                         XDefaultRootWindow(ui_display),
  666.                         ok_bits, ok_width,
  667.                         ok_height)); n++;
  668.     }
  669.     if (strcmp(name,"yes") == 0) {
  670.     XtSetArg(args[n], XtNbitmap, 
  671.          (Pixmap) XCreateBitmapFromData(ui_display, 
  672.                         XDefaultRootWindow(ui_display),
  673.                         yes_bits, yes_width,
  674.                         yes_height)); n++;
  675.     }
  676.     if (strcmp(name,"no") == 0) {
  677.     XtSetArg(args[n], XtNbitmap, 
  678.          (Pixmap) XCreateBitmapFromData(ui_display, 
  679.                         XDefaultRootWindow(ui_display),
  680.                         no_bits, no_width,
  681.                         no_height)); n++;
  682.     }
  683.     if (strcmp(name,"save") == 0) {
  684.     XtSetArg(args[n], XtNbitmap, 
  685.          (Pixmap) XCreateBitmapFromData(ui_display, 
  686.                         XDefaultRootWindow(ui_display),
  687.                         save_bits, save_width,
  688.                         save_height)); n++;
  689.     }
  690.     if (strcmp(name,"load") == 0) {
  691.     XtSetArg(args[n], XtNbitmap, 
  692.          (Pixmap) XCreateBitmapFromData(ui_display, 
  693.                         XDefaultRootWindow(ui_display),
  694.                         load_bits, load_width,
  695.                         load_height)); n++;
  696.     }
  697.     if (strcmp(name,"first") == 0) {
  698.     XtSetArg(args[n], XtNbitmap, 
  699.          (Pixmap) XCreateBitmapFromData(ui_display, 
  700.                         XDefaultRootWindow(ui_display),
  701.                         first_bits, first_width,
  702.                         first_height)); n++;
  703.     }
  704.     if (strcmp(name,"prev") == 0) {
  705.     XtSetArg(args[n], XtNbitmap, 
  706.          (Pixmap) XCreateBitmapFromData(ui_display, 
  707.                         XDefaultRootWindow(ui_display),
  708.                         prev_bits, prev_width,
  709.                         prev_height)); n++;
  710.     }
  711.     if (strcmp(name,"next") == 0) {
  712.     XtSetArg(args[n], XtNbitmap, 
  713.          (Pixmap) XCreateBitmapFromData(ui_display, 
  714.                         XDefaultRootWindow(ui_display),
  715.                         next_bits, next_width,
  716.                         next_height)); n++;
  717.     }
  718.     if (strcmp(name,"last") == 0) {
  719.     XtSetArg(args[n], XtNbitmap, 
  720.          (Pixmap) XCreateBitmapFromData(ui_display, 
  721.                         XDefaultRootWindow(ui_display),
  722.                         last_bits, last_width,
  723.                         last_height)); n++;
  724.     }
  725.     if (strcmp(name,"default") == 0) {
  726.     XtSetArg(args[n], XtNbitmap, 
  727.          (Pixmap) XCreateBitmapFromData(ui_display, 
  728.                         XDefaultRootWindow(ui_display),
  729.                         def_bits, def_width,
  730.                         def_height)); n++;
  731.     }
  732.     if (strcmp(name,"set") == 0) {
  733.     XtSetArg(args[n], XtNbitmap, 
  734.          (Pixmap) XCreateBitmapFromData(ui_display, 
  735.                         XDefaultRootWindow(ui_display),
  736.                         set_bits, set_width,
  737.                         set_height)); n++;
  738.     }
  739.     if (strcmp(name,"done") == 0) {
  740.     XtSetArg(args[n], XtNbitmap, 
  741.          (Pixmap) XCreateBitmapFromData(ui_display, 
  742.                         XDefaultRootWindow(ui_display),
  743.                         done_bits, done_width,
  744.                         done_height)); n++;
  745.     }
  746.     if (strcmp(name,"select") == 0) {
  747.     XtSetArg(args[n], XtNbitmap, 
  748.          (Pixmap) XCreateBitmapFromData(ui_display, 
  749.                         XDefaultRootWindow(ui_display),
  750.                         select_bits, select_width,
  751.                         select_height)); n++;
  752.     }
  753.     if (strcmp(name,"add") == 0) {
  754.     XtSetArg(args[n], XtNbitmap, 
  755.          (Pixmap) XCreateBitmapFromData(ui_display, 
  756.                         XDefaultRootWindow(ui_display),
  757.                         add_bits, add_width,
  758.                         add_height)); n++;
  759.     }
  760.     if (strcmp(name,"delete") == 0) {
  761.     XtSetArg(args[n], XtNbitmap, 
  762.          (Pixmap) XCreateBitmapFromData(ui_display, 
  763.                         XDefaultRootWindow(ui_display),
  764.                         delete_bits, delete_width,
  765.                         delete_height)); n++;
  766.     }
  767.     if (strcmp(name,"choose") == 0) {
  768.     XtSetArg(args[n], XtNbitmap, 
  769.          (Pixmap) XCreateBitmapFromData(ui_display, 
  770.                         XDefaultRootWindow(ui_display),
  771.                         choose_bits, choose_width,
  772.                         choose_height)); n++;
  773.     }
  774.     if (strcmp(name,"new") == 0) {
  775.     XtSetArg(args[n], XtNbitmap, 
  776.          (Pixmap) XCreateBitmapFromData(ui_display, 
  777.                         XDefaultRootWindow(ui_display),
  778.                         new_bits, new_width,
  779.                         new_height)); n++;
  780.     }
  781.     if (strcmp(name,"newL") == 0) {
  782.     XtSetArg(args[n], XtNbitmap, 
  783.          (Pixmap) XCreateBitmapFromData(ui_display, 
  784.                         XDefaultRootWindow(ui_display),
  785.                         newL_bits, newL_width,
  786.                         newL_height)); n++;
  787.     }
  788.     if (strcmp(name,"look") == 0) {
  789.     XtSetArg(args[n], XtNbitmap, 
  790.          (Pixmap) XCreateBitmapFromData(ui_display, 
  791.                         XDefaultRootWindow(ui_display),
  792.                         look_bits, look_width,
  793.                         look_height)); n++;
  794.     }
  795.     if (strcmp(name,"more") == 0) {
  796.     XtSetArg(args[n], XtNbitmap, 
  797.          (Pixmap) XCreateBitmapFromData(ui_display, 
  798.                         XDefaultRootWindow(ui_display),
  799.                         more_bits, more_width,
  800.                         more_height)); n++;
  801.     }
  802.     if (strcmp(name,"topics") == 0) {
  803.     XtSetArg(args[n], XtNbitmap, 
  804.          (Pixmap) XCreateBitmapFromData(ui_display, 
  805.                         XDefaultRootWindow(ui_display),
  806.                         topics_bits, topics_width,
  807.                         topics_height)); n++;
  808.     }
  809.     if (strcmp(name,"multiStep") == 0) {
  810.     XtSetArg(args[n], XtNbitmap, 
  811.          (Pixmap) XCreateBitmapFromData(ui_display, 
  812.                         XDefaultRootWindow(ui_display),
  813.                         step_bits, step_width,
  814.                         step_height)); n++;
  815.     }
  816.     if (strcmp(name,"stop") == 0) {
  817.     XtSetArg(args[n], XtNbitmap, 
  818.          (Pixmap) XCreateBitmapFromData(ui_display, 
  819.                         XDefaultRootWindow(ui_display),
  820.                         stop_bits, stop_width,
  821.                         stop_height)); n++;
  822.     }
  823.     if (strcmp(name,"reset") == 0) {
  824.     XtSetArg(args[n], XtNbitmap, 
  825.          (Pixmap) XCreateBitmapFromData(ui_display, 
  826.                         XDefaultRootWindow(ui_display),
  827.                         reset_bits, reset_width,
  828.                         reset_height)); n++;
  829.     }
  830.     if (strcmp(name,"info") == 0) {
  831.     XtSetArg(args[n], XtNbitmap, 
  832.          (Pixmap) XCreateBitmapFromData(ui_display, 
  833.                         XDefaultRootWindow(ui_display),
  834.                         info_bits, info_width,
  835.                         info_height)); n++;
  836.     }
  837.     if (strcmp(name,"single") == 0) {
  838.     XtSetArg(args[n], XtNbitmap, 
  839.          (Pixmap) XCreateBitmapFromData(ui_display, 
  840.                         XDefaultRootWindow(ui_display),
  841.                         single_bits, single_width,
  842.                         single_height)); n++;
  843.     }
  844.     if (strcmp(name,"all") == 0) {
  845.     XtSetArg(args[n], XtNbitmap, 
  846.          (Pixmap) XCreateBitmapFromData(ui_display, 
  847.                         XDefaultRootWindow(ui_display),
  848.                         all_bits, all_width,
  849.                         all_height)); n++;
  850.     }
  851.     if (strcmp(name,"test") == 0) {
  852.     XtSetArg(args[n], XtNbitmap, 
  853.          (Pixmap) XCreateBitmapFromData(ui_display, 
  854.                         XDefaultRootWindow(ui_display),
  855.                         test_bits, test_width,
  856.                         test_height)); n++;
  857.     }
  858.     if (strcmp(name,"layers") == 0) {
  859.     XtSetArg(args[n], XtNbitmap, 
  860.          (Pixmap) XCreateBitmapFromData(ui_display, 
  861.                         XDefaultRootWindow(ui_display),
  862.                         layers_bits, layers_width,
  863.                         layers_height)); n++;
  864.     }
  865.     if (strcmp(name,"setup") == 0) {
  866.     XtSetArg(args[n], XtNbitmap, 
  867.          (Pixmap) XCreateBitmapFromData(ui_display, 
  868.                         XDefaultRootWindow(ui_display),
  869.                         setup_bits, setup_width,
  870.                         setup_height)); n++;
  871.     }
  872.     if (strcmp(name,"help") == 0) {
  873.     XtSetArg(args[n], XtNbitmap, 
  874.          (Pixmap) XCreateBitmapFromData(ui_display, 
  875.                         XDefaultRootWindow(ui_display),
  876.                         help_bits, help_width,
  877.                         help_height)); n++;
  878.     }
  879.     if (strcmp(name,"print") == 0) {
  880.     XtSetArg(args[n], XtNbitmap, 
  881.          (Pixmap) XCreateBitmapFromData(ui_display, 
  882.                         XDefaultRootWindow(ui_display),
  883.                         print_bits, print_width,
  884.                         print_height)); n++;
  885.     }
  886.     if (strcmp(name,"network") == 0) {
  887.     XtSetArg(args[n], XtNbitmap, 
  888.          (Pixmap) XCreateBitmapFromData(ui_display, 
  889.                         XDefaultRootWindow(ui_display),
  890.                         network_bits, network_width,
  891.                         network_height)); n++;
  892.     }
  893.     if (strcmp(name,"default2") == 0) {
  894.         XtSetArg(args[n], XtNbitmap, 
  895.                  (Pixmap) XCreateBitmapFromData(ui_display, 
  896.                                                 XDefaultRootWindow(ui_display),
  897.                                                 default_bits, default_width,
  898.                                                default_height)); n++;
  899.     }
  900.     if (strcmp(name,"cancel") == 0) {
  901.         XtSetArg(args[n], XtNbitmap, 
  902.                  (Pixmap) XCreateBitmapFromData(ui_display, 
  903.                                                 XDefaultRootWindow(ui_display),
  904.                                                 cancel_bits, cancel_width,
  905.                                                 cancel_height)); n++;
  906.     }
  907.     if (strcmp(name,"color") == 0) {
  908.     XtSetArg(args[n], XtNbitmap, 
  909.          (Pixmap) XCreateBitmapFromData(ui_display, 
  910.                         XDefaultRootWindow(ui_display),
  911.                         color_bits, color_width,
  912.                         color_height)); n++;
  913.     }
  914.     if (strcmp(name,"maspar") == 0) {
  915.     XtSetArg(args[n], XtNbitmap, 
  916.          (Pixmap) XCreateBitmapFromData(ui_display, 
  917.                         XDefaultRootWindow(ui_display),
  918.                         maspar_bits, maspar_width,
  919.                         maspar_height)); n++;
  920.     }
  921.     if (strcmp(name,"view") == 0) {
  922.     XtSetArg(args[n], XtNbitmap, 
  923.          (Pixmap) XCreateBitmapFromData(ui_display, 
  924.                         XDefaultRootWindow(ui_display),
  925.                         view_bits, view_width,
  926.                         view_height)); n++;
  927.      }
  928.      if (strcmp(name,"zoomin") == 0) {
  929.        XtSetArg(args[n], XtNbitmap, 
  930.                 (Pixmap) XCreateBitmapFromData(ui_display, 
  931.                                                XDefaultRootWindow(ui_display),
  932.                                                zoomin_bits, zoomin_width,
  933.                                                zoomin_height)); n++;
  934.      }
  935.      if (strcmp(name,"zoomout") == 0) {
  936.        XtSetArg(args[n], XtNbitmap, 
  937.                 (Pixmap) XCreateBitmapFromData(ui_display, 
  938.                                                XDefaultRootWindow(ui_display),
  939.                                                zoomout_bits, zoomout_width,
  940.                                                zoomout_height)); n++;
  941.     }
  942.     if (strcmp(name,"super3d") == 0) {
  943.     XtSetArg(args[n], XtNbitmap, 
  944.          (Pixmap) XCreateBitmapFromData(ui_display, 
  945.                         XDefaultRootWindow(ui_display),
  946.                         super3d_bits, super3d_width,
  947.                         super3d_height)); n++;
  948.     }
  949.     if (strcmp(name,"STree") == 0) {
  950.     XtSetArg(args[n], XtNbitmap, 
  951.          (Pixmap) XCreateBitmapFromData(ui_display, 
  952.                         XDefaultRootWindow(ui_display),
  953.                         stree_bits, stree_width,
  954.                         stree_height)); n++;
  955.     }
  956.     if (strcmp(name,"subpat") == 0) {
  957.     XtSetArg(args[n], XtNbitmap, 
  958.          (Pixmap) XCreateBitmapFromData(ui_display, 
  959.                         XDefaultRootWindow(ui_display),
  960.                         subpat_bits, subpat_width,
  961.                         subpat_height)); n++;
  962.     }
  963.  
  964.     XtSetArg(args[n], XtNborderWidth, 0 /*!*/); n++;
  965.     XtSetArg(args[n], XtNinternalHeight, 1); n++;
  966.     XtSetArg(args[n], XtNinternalWidth , 1); n++;
  967.     XtSetArg(args[n], XtNfromVert , top);  n++;
  968.     XtSetArg(args[n], XtNfromHoriz, left);  n++;
  969.     XtSetArg(args[n], XtNleft  , XtChainLeft); n++;
  970.     XtSetArg(args[n], XtNright , XtChainLeft); n++;
  971.     XtSetArg(args[n], XtNtop   , XtChainTop); n++;
  972.     XtSetArg(args[n], XtNbottom, XtChainTop); n++;
  973.     w = XtCreateManagedWidget(name, commandWidgetClass, parent, args, n);
  974.     return(w);
  975. }
  976.  
  977.  
  978.  
  979. /*****************************************************************************
  980.   FUNCTION : ui_xCreateMenuButtonItem
  981.  
  982.   PURPOSE  : create a menu button widget
  983.   NOTES    :
  984.   RETURNS  : The Widgetnumber
  985.   UPDATE   : 13.7.1990
  986. ******************************************************************************/
  987.  
  988. Widget  ui_xCreateMenuButtonItem(char *name,Widget parent,Widget left,Widget top)
  989.     Cardinal n;
  990.     Widget   w;
  991.     Arg         args[15];
  992.  
  993.     n = 0;
  994.     if (strcmp(name,"color") == 0) {
  995.     XtSetArg(args[n], XtNbitmap, 
  996.          (Pixmap) XCreateBitmapFromData(ui_display, 
  997.                         XDefaultRootWindow(ui_display),
  998.                         color_bits, color_width,
  999.                         color_height)); n++;
  1000.     }
  1001.     if (strcmp(name,"windows") == 0) {
  1002.     XtSetArg(args[n], XtNbitmap, 
  1003.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1004.                         XDefaultRootWindow(ui_display),
  1005.                         windows_bits, windows_width,
  1006.                         windows_height)); n++;
  1007.     }
  1008.     if (strcmp(name,"icon") == 0) {
  1009.     XtSetArg(args[n], XtNbitmap, 
  1010.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1011.                         XDefaultRootWindow(ui_display),
  1012.                         icon_bits, icon_width,
  1013.                         icon_height)); n++;
  1014.     }
  1015.     if (strcmp(name,"show") == 0) {
  1016.     XtSetArg(args[n], XtNbitmap, 
  1017.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1018.                         XDefaultRootWindow(ui_display),
  1019.                         show_bits, show_width,
  1020.                         show_height)); n++;
  1021.     }
  1022.     if (strcmp(name,"mode") == 0) {
  1023.     XtSetArg(args[n], XtNbitmap, 
  1024.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1025.                         XDefaultRootWindow(ui_display),
  1026.                         mode_bits, mode_width,
  1027.                         mode_height)); n++;
  1028.     }
  1029.     if (strcmp(name,"options") == 0) {
  1030.     XtSetArg(args[n], XtNbitmap, 
  1031.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1032.                         XDefaultRootWindow(ui_display),
  1033.                         options_bits, options_width,
  1034.                         options_height)); n++;
  1035.     }
  1036.     if (strcmp(name,"use") == 0) {
  1037.     XtSetArg(args[n], XtNbitmap, 
  1038.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1039.                         XDefaultRootWindow(ui_display),
  1040.                         use_bits, use_width,
  1041.                         use_height)); n++;
  1042.     }
  1043.     if (strcmp(name,"del") == 0) {
  1044.     XtSetArg(args[n], XtNbitmap, 
  1045.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1046.                         XDefaultRootWindow(ui_display),
  1047.                         delSet_bits, delSet_width,
  1048.                         delSet_height)); n++;
  1049.     }
  1050.  
  1051.     XtSetArg(args[n], XtNborderWidth, 0 /*!*/); n++;
  1052.     XtSetArg(args[n], XtNinternalHeight, 1); n++;
  1053.     XtSetArg(args[n], XtNinternalWidth , 1); n++;
  1054.     XtSetArg(args[n], XtNfromVert , top);  n++;
  1055.     XtSetArg(args[n], XtNfromHoriz, left);  n++;
  1056.     XtSetArg(args[n], XtNleft  , XtChainLeft); n++;
  1057.     XtSetArg(args[n], XtNright , XtChainLeft); n++;
  1058.     XtSetArg(args[n], XtNtop   , XtChainTop); n++;
  1059.     XtSetArg(args[n], XtNbottom, XtChainTop); n++;
  1060.     w = XtCreateManagedWidget(name, menuButtonWidgetClass, parent, args, n);
  1061.     return(w);
  1062. }
  1063.  
  1064.  
  1065.  
  1066.  
  1067. /*****************************************************************************
  1068.   FUNCTION : ui_xCreateToggleItem
  1069.  
  1070.   PURPOSE  : create a toggle widget
  1071.   NOTES    :
  1072.   RETURNS  : The Widgetnumber
  1073.   UPDATE   : 26.6.1990
  1074. ******************************************************************************/
  1075.  
  1076. Widget  ui_xCreateToggleItem(char *name,Widget  parent,Widget  group,Widget  left,Widget  top)
  1077.     Cardinal n;
  1078.     Widget   w;
  1079.     Arg         args[15];
  1080.  
  1081.     n = 0;
  1082.     if (strcmp(name,"on") == 0) {
  1083.     XtSetArg(args[n], XtNbitmap, 
  1084.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1085.                         XDefaultRootWindow(ui_display),
  1086.                         on_bits, on_width,
  1087.                         on_height)); n++;
  1088.     }
  1089.     if (strcmp(name,"off") == 0) {
  1090.     XtSetArg(args[n], XtNbitmap, 
  1091.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1092.                         XDefaultRootWindow(ui_display),
  1093.                         off_bits, off_width,
  1094.                         off_height)); n++;
  1095.     }
  1096.     if (strcmp(name,"value") == 0) {
  1097.     XtSetArg(args[n], XtNbitmap, 
  1098.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1099.                         XDefaultRootWindow(ui_display),
  1100.                         value_bits, value_width,
  1101.                         value_height)); n++;
  1102.     }
  1103.     if (strcmp(name,"direction") == 0) {
  1104.     XtSetArg(args[n], XtNbitmap, 
  1105.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1106.                         XDefaultRootWindow(ui_display),
  1107.                         direction_bits, direction_width,
  1108.                         direction_height)); n++;
  1109.     }
  1110.     if (strcmp(name,"shuffle") == 0) {
  1111.     XtSetArg(args[n], XtNbitmap, 
  1112.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1113.                         XDefaultRootWindow(ui_display),
  1114.                         shuffle_bits, shuffle_width,
  1115.                         shuffle_height)); n++;
  1116.     }
  1117.     if (strcmp(name,"freeze") == 0) {
  1118.     XtSetArg(args[n], XtNbitmap, 
  1119.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1120.                         XDefaultRootWindow(ui_display),
  1121.                         freeze_bits, freeze_width,
  1122.                         freeze_height)); n++;
  1123.     }
  1124.     if (strcmp(name,"connect") == 0) {
  1125.     XtSetArg(args[n], XtNbitmap, 
  1126.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1127.                         XDefaultRootWindow(ui_display),
  1128.                         connect_bits, connect_width,
  1129.                         connect_height)); n++;
  1130.     }
  1131.     if (strcmp(name,"disconnect") == 0) {
  1132.     XtSetArg(args[n], XtNbitmap, 
  1133.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1134.                         XDefaultRootWindow(ui_display),
  1135.                         disconnect_bits, disconnect_width,
  1136.                         disconnect_height)); n++;
  1137.     }
  1138.     if (strcmp(name,"standard") == 0) {
  1139.     XtSetArg(args[n], XtNbitmap, 
  1140.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1141.                         XDefaultRootWindow(ui_display),
  1142.                         standard_bits, standard_width,
  1143.                         standard_height)); n++;
  1144.     }
  1145.     if (strcmp(name,"feedforward") == 0) {
  1146.     XtSetArg(args[n], XtNbitmap, 
  1147.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1148.                         XDefaultRootWindow(ui_display),
  1149.                         feedforward_bits, feedforward_width,
  1150.                         feedforward_height)); n++;
  1151.     }
  1152.     if (strcmp(name,"net") == 0) {
  1153.     XtSetArg(args[n], XtNbitmap, 
  1154.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1155.                         XDefaultRootWindow(ui_display),
  1156.                         net_bits, net_width,
  1157.                         net_height)); n++;
  1158.     }
  1159.     if (strcmp(name,"pat") == 0) {
  1160.     XtSetArg(args[n], XtNbitmap, 
  1161.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1162.                         XDefaultRootWindow(ui_display),
  1163.                         pat_bits, pat_width,
  1164.                         pat_height)); n++;
  1165.     }
  1166.     if (strcmp(name,"cfg") == 0) {
  1167.     XtSetArg(args[n], XtNbitmap, 
  1168.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1169.                         XDefaultRootWindow(ui_display),
  1170.                         cfg_bits, cfg_width,
  1171.                         cfg_height)); n++;
  1172.     }
  1173.     if (strcmp(name,"txt") == 0) {
  1174.     XtSetArg(args[n], XtNbitmap, 
  1175.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1176.                         XDefaultRootWindow(ui_display),
  1177.                         txt_bits, txt_width,
  1178.                         txt_height)); n++;
  1179.     }
  1180.     if (strcmp(name,"printer") == 0) {
  1181.     XtSetArg(args[n], XtNbitmap, 
  1182.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1183.                         XDefaultRootWindow(ui_display),
  1184.                         printer_bits, printer_width,
  1185.                         printer_height)); n++;
  1186.     }
  1187.     if (strcmp(name,"file") == 0) {
  1188.     XtSetArg(args[n], XtNbitmap, 
  1189.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1190.                         XDefaultRootWindow(ui_display),
  1191.                         file_bits, file_width,
  1192.                         file_height)); n++;
  1193.     }
  1194.     if (strcmp(name,"postscript") == 0) {
  1195.     XtSetArg(args[n], XtNbitmap, 
  1196.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1197.                         XDefaultRootWindow(ui_display),
  1198.                         postscript_bits, postscript_width,
  1199.                         postscript_height)); n++;
  1200.     }
  1201.     if (strcmp(name,"eps") == 0) {
  1202.     XtSetArg(args[n], XtNbitmap, 
  1203.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1204.                         XDefaultRootWindow(ui_display),
  1205.                         eps_bits, eps_width,
  1206.                         eps_height)); n++;
  1207.     }
  1208.     if (strcmp(name,"dina4") == 0) {
  1209.     XtSetArg(args[n], XtNbitmap, 
  1210.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1211.                         XDefaultRootWindow(ui_display),
  1212.                         dina4_bits, dina4_width,
  1213.                         dina4_height)); n++;
  1214.     }
  1215.     if (strcmp(name,"dina3") == 0) {
  1216.     XtSetArg(args[n], XtNbitmap, 
  1217.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1218.                         XDefaultRootWindow(ui_display),
  1219.                         dina3_bits, dina3_width,
  1220.                         dina3_height)); n++;
  1221.     }
  1222.     if (strcmp(name,"usletter") == 0) {
  1223.     XtSetArg(args[n], XtNbitmap, 
  1224.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1225.                         XDefaultRootWindow(ui_display),
  1226.                         usletter_bits, usletter_width,
  1227.                         usletter_height)); n++;
  1228.     }
  1229.     if (strcmp(name,"portrait") == 0) {
  1230.     XtSetArg(args[n], XtNbitmap, 
  1231.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1232.                         XDefaultRootWindow(ui_display),
  1233.                         portrait_bits, portrait_width,
  1234.                         portrait_height)); n++;
  1235.     }
  1236.     if (strcmp(name,"landscape") == 0) {
  1237.     XtSetArg(args[n], XtNbitmap, 
  1238.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1239.                         XDefaultRootWindow(ui_display),
  1240.                         landscape_bits, landscape_width,
  1241.                         landscape_height)); n++;
  1242.     }
  1243.     if (strcmp(name,"fixed") == 0) {
  1244.     XtSetArg(args[n], XtNbitmap, 
  1245.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1246.                         XDefaultRootWindow(ui_display),
  1247.                         fixed_bits, fixed_width,
  1248.                         fixed_height)); n++;
  1249.     }
  1250.     if (strcmp(name,"value2") == 0) {
  1251.     XtSetArg(args[n], XtNbitmap, 
  1252.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1253.                         XDefaultRootWindow(ui_display),
  1254.                         value2_bits, value2_width,
  1255.                         value2_height)); n++;
  1256.     }
  1257.     if (strcmp(name,"rectangle") == 0) {
  1258.     XtSetArg(args[n], XtNbitmap, 
  1259.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1260.                         XDefaultRootWindow(ui_display),
  1261.                         rectangle_bits, rectangle_width,
  1262.                         rectangle_height)); n++;
  1263.     }
  1264.     if (strcmp(name,"circle") == 0) {
  1265.     XtSetArg(args[n], XtNbitmap, 
  1266.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1267.                         XDefaultRootWindow(ui_display),
  1268.                         circle_bits, circle_width,
  1269.                         circle_height)); n++;
  1270.     }
  1271.     if (strcmp(name,"solid2") == 0) {
  1272.     XtSetArg(args[n], XtNbitmap, 
  1273.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1274.                         XDefaultRootWindow(ui_display),
  1275.                         solid2_bits, solid2_width,
  1276.                         solid2_height)); n++;
  1277.     }
  1278.     if (strcmp(name,"trans") == 0) {
  1279.     XtSetArg(args[n], XtNbitmap, 
  1280.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1281.                         XDefaultRootWindow(ui_display),
  1282.                         trans_bits, trans_width,
  1283.                         trans_height)); n++;
  1284.     }
  1285.     if (strcmp(name,"create") == 0) {
  1286.         XtSetArg(args[n], XtNbitmap, 
  1287.                  (Pixmap) XCreateBitmapFromData(ui_display,                                                 XDefaultRootWindow(ui_display),
  1288.                                                 create_bits, create_width,
  1289.                                                 create_height)); n++;
  1290.     }
  1291.     if (strcmp(name,"append") == 0) {
  1292.         XtSetArg(args[n], XtNbitmap, 
  1293.                  (Pixmap) XCreateBitmapFromData(ui_display, 
  1294.                                                 XDefaultRootWindow(ui_display),
  1295.                                                 append_bits, append_width,
  1296.                                                 append_height)); n++;
  1297.     }
  1298.     if (strcmp(name,"res") == 0) {
  1299.         XtSetArg(args[n], XtNbitmap, 
  1300.                  (Pixmap) XCreateBitmapFromData(ui_display, 
  1301.                                                 XDefaultRootWindow(ui_display),
  1302.                                                 res_bits, res_width,
  1303.                                                 res_height)); n++;
  1304.     }
  1305.     if (strcmp(name,"yes") == 0) {
  1306.         XtSetArg(args[n], XtNbitmap, 
  1307.                  (Pixmap) XCreateBitmapFromData(ui_display, 
  1308.                                                 XDefaultRootWindow(ui_display),
  1309.                                                 yes_bits, yes_width,
  1310.                                                 yes_height)); n++;
  1311.     }
  1312.     if (strcmp(name,"no") == 0) {
  1313.         XtSetArg(args[n], XtNbitmap, 
  1314.                  (Pixmap) XCreateBitmapFromData(ui_display, 
  1315.                                                 XDefaultRootWindow(ui_display),
  1316.                                                 no_bits, no_width,
  1317.                                                 no_height)); n++;
  1318.     }
  1319.     if (strcmp(name,"text") == 0) {
  1320.         XtSetArg(args[n], XtNbitmap, 
  1321.                  (Pixmap) XCreateBitmapFromData(ui_display, 
  1322.                                                 XDefaultRootWindow(ui_display),
  1323.                                                 text_bits, text_width,
  1324.                                                 text_height)); n++;
  1325.     }
  1326.     if (strcmp(name,"selection") == 0) {
  1327.         XtSetArg(args[n], XtNbitmap, 
  1328.                  (Pixmap) XCreateBitmapFromData(ui_display, 
  1329.                                                 XDefaultRootWindow(ui_display),
  1330.                                                 selection_bits, selection_width,
  1331.                                                 selection_height)); n++;
  1332.     }
  1333.     if (strcmp(name,"background") == 0) {
  1334.         XtSetArg(args[n], XtNbitmap, 
  1335.                  (Pixmap) XCreateBitmapFromData(ui_display, 
  1336.                                                 XDefaultRootWindow(ui_display),
  1337.                                                 background_bits, background_width,
  1338.                                                 background_height)); n++;
  1339.     }
  1340.     if (strcmp(name,"norm") == 0) {
  1341.     XtSetArg(args[n], XtNbitmap, 
  1342.          (Pixmap) XCreateBitmapFromData(ui_display, 
  1343.                         XDefaultRootWindow(ui_display),
  1344.                         norm_bits, norm_width,
  1345.                         norm_height)); n++;
  1346.     }
  1347.  
  1348.     XtSetArg(args[n], XtNborderWidth, 0 /*!*/); n++;
  1349.     XtSetArg(args[n], XtNradioGroup, group); n++;
  1350.     XtSetArg(args[n], XtNinternalHeight, 1); n++;
  1351.     XtSetArg(args[n], XtNinternalWidth , 1); n++;
  1352.     XtSetArg(args[n], XtNfromVert , top);  n++;
  1353.     XtSetArg(args[n], XtNfromHoriz, left);  n++;
  1354.     XtSetArg(args[n], XtNleft  , XtChainLeft); n++;
  1355.     XtSetArg(args[n], XtNright , XtChainLeft); n++;
  1356.     XtSetArg(args[n], XtNtop   , XtChainTop); n++;
  1357.     XtSetArg(args[n], XtNbottom, XtChainTop); n++;
  1358.     w = XtCreateManagedWidget(name, toggleWidgetClass, parent, args, n);
  1359.     return(w);
  1360. }
  1361.  
  1362.  
  1363.  
  1364.  
  1365. /*****************************************************************************
  1366.   FUNCTION : ui_xCreateScrollbarItem
  1367.  
  1368.   PURPOSE  : create a scrollbar widget
  1369.   NOTES    :
  1370.   RETURNS  : THE Widgetnumber
  1371.   UPDATE   : 2.8.1990
  1372. ******************************************************************************/
  1373.  
  1374. Widget  ui_xCreateScrollbarItem(char *name,Widget parent,Dimension length,float topOfThumb,Widget left,Widget top)
  1375.     Cardinal n;
  1376.     Widget   w;
  1377.     Arg         args[20];
  1378.  
  1379.  
  1380.     n = 0;
  1381.     XtSetArg(args[n], XtNborderWidth, 1); n++;
  1382.     XtSetArg(args[n], XtNlength, length); n++; 
  1383.     XtSetArg(args[n], XtNthickness, 15); n++;
  1384.  
  1385.     /* see X11R4, Athena, pg. 37: setting float resources */
  1386.     /* But it doesn't work ! */
  1387.   /*  if (sizeof(float) > sizeof(XtArgVal)) {
  1388.     XtSetArg(args[n], XtNtopOfThumb, &topOfThumb); n++; 
  1389.     } else {
  1390.     XtArgVal *l_top = (XtArgVal *) &topOfThumb;
  1391.     XtSetArg(args[n], XtNtopOfThumb, *l_top); n++;
  1392.     } */
  1393.     
  1394.  
  1395. /*    XtSetArg(args[n], XtNinternalHeight, 1); n++;
  1396.     XtSetArg(args[n], XtNinternalWidth , 1); n++;
  1397. */
  1398.     XtSetArg(args[n], XtNfromVert , top);  n++;
  1399.     XtSetArg(args[n], XtNfromHoriz, left);  n++;
  1400.     XtSetArg(args[n], XtNleft  , XtChainLeft); n++;
  1401.     XtSetArg(args[n], XtNright , XtChainLeft); n++;
  1402.     XtSetArg(args[n], XtNtop   , XtChainTop); n++;
  1403.     XtSetArg(args[n], XtNbottom, XtChainTop); n++;
  1404.     w = XtCreateManagedWidget(name, scrollbarWidgetClass, parent, args, n);
  1405.     XawScrollbarSetThumb(w,topOfThumb,-1.0);
  1406.     return(w);
  1407. }
  1408.  
  1409.  
  1410.  
  1411. static void ui_noreturn(Widget w,Widget pannel,caddr_t call_data)
  1412. {
  1413.     /* do nothing */
  1414. }
  1415.  
  1416. /*****************************************************************************
  1417.   FUNCTION : ui_checkWindowPosition
  1418.  
  1419.   PURPOSE  : checks, if the widget is completely visible an moves the
  1420.              window if necessary
  1421.   NOTES    : 
  1422.   RETURNS  : void
  1423.   UPDATE   :
  1424. ******************************************************************************/
  1425.  
  1426. void ui_checkWindowPosition(Widget w)
  1427.  
  1428. {
  1429.     int                DisplayX, DisplayY;
  1430.     int                n;
  1431.     Arg                args[15];
  1432.     Dimension          WindowX, WindowY;
  1433.     Dimension          WindowWidth, WindowHeight;
  1434.  
  1435. #define WINDOW_HEADER 30
  1436.  
  1437.     /* Getting the size of the screen */
  1438.     DisplayX = DisplayWidth (ui_display, DefaultScreen(ui_display));
  1439.     DisplayY = DisplayHeight (ui_display, DefaultScreen(ui_display));
  1440.     
  1441.     /* Getting the size and position of the window */
  1442.     XtRealizeWidget(w);
  1443.     n = 0;
  1444.     XtSetArg(args[n], XtNx, &WindowX);       n++;
  1445.     XtSetArg(args[n], XtNy, &WindowY);       n++;
  1446.     XtSetArg(args[n], XtNwidth, &WindowWidth);   n++;
  1447.     XtSetArg(args[n], XtNheight, &WindowHeight);  n++;
  1448.     XtGetValues(w, args, n);
  1449.  
  1450.     /* Calculating the new position */
  1451.     if ((WindowWidth+WindowX) > DisplayX)  
  1452.     WindowX = DisplayX-WindowWidth;
  1453.     if (DisplayX-WindowWidth < 0)  
  1454.     WindowX = 0;
  1455.     if ((WindowHeight+WindowY+WINDOW_HEADER) > DisplayY)
  1456.         WindowY = DisplayY-WindowHeight-WINDOW_HEADER;
  1457.     if (DisplayY-WindowHeight-WINDOW_HEADER < 0)
  1458.      WindowY = 0;
  1459.  
  1460.     /* Setting the new position */
  1461.     n = 0;
  1462.     XtSetArg(args[n], XtNx, WindowX);       n++;
  1463.     XtSetArg(args[n], XtNy, WindowY);       n++;
  1464.     XtSetValues(w, args, n);
  1465. }
  1466.  
  1467.  
  1468. /*****************************************************************************
  1469.   FUNCTION : ui_xDontResizeWidget
  1470.  
  1471.   PURPOSE  : reads the current height and width of the widget and sets it
  1472.              as min and max 
  1473.   NOTES    :
  1474.   RETURNS  : void
  1475.  
  1476.   UPDATE   :
  1477. ******************************************************************************/
  1478.  
  1479. void ui_xDontResizeWidget (Widget w)
  1480.  
  1481. {
  1482.   int n;
  1483.   Arg args[5];
  1484.   Position x, y;
  1485.  
  1486.   n=0;
  1487.   XtSetArg (args[n], XtNwidth, &x);   n++;
  1488.   XtSetArg (args[n], XtNheight, &y);  n++;
  1489.   XtGetValues  (w, args,  n);
  1490.   n=0;
  1491.   XtSetArg (args[n], XtNmaxWidth, x);   n++;
  1492.   XtSetArg (args[n], XtNmaxHeight, y);  n++;
  1493.   XtSetArg (args[n], XtNminWidth, x);   n++;
  1494.   XtSetArg (args[n], XtNminHeight, y);  n++;
  1495.   XtSetValues  (w, args,  n);
  1496. }
  1497.  
  1498.  
  1499. /* end of file */
  1500. /* lines: 1365 */
  1501.