home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / x / xhyper10.zip / XHyper_v1.0 / xapp / create.c next >
C/C++ Source or Header  |  1992-11-05  |  14KB  |  513 lines

  1. /*
  2.  * Generated by the ICS builderXcessory (BX).
  3.  *
  4.  *
  5.  * Builder Xcessory 1.0.1.
  6.  *
  7.  */
  8.  
  9. /*
  10.  * REQUIRED MOTIF INCLUDE FILES
  11.  */
  12. #include <Xm/Xm.h>
  13. #include <X11/Shell.h>
  14. #include <Xm/ArrowB.h>
  15. #include <Xm/ArrowBG.h>
  16. #include <Xm/BulletinB.h>
  17. #include <Xm/CascadeB.h>
  18. #include <Xm/CascadeBG.h>
  19. #include <Xm/Command.h>
  20. #include <Xm/CutPaste.h>
  21. #include <Xm/DialogS.h>
  22. #include <Xm/DrawingA.h>
  23. #include <Xm/DrawnB.h>
  24. #include <Xm/FileSB.h>
  25. #include <Xm/Form.h>
  26. #include <Xm/Frame.h>
  27. #include <Xm/Label.h>
  28. #include <Xm/LabelG.h>
  29. #include <Xm/List.h>
  30. #include <Xm/MainW.h>
  31. #include <Xm/MenuShell.h>
  32. #include <Xm/MessageB.h>
  33. #include <Xm/PanedW.h>
  34. #include <Xm/PushB.h>
  35. #include <Xm/PushBG.h>
  36. #include <Xm/RowColumn.h>
  37. #include <Xm/Scale.h>
  38. #include <Xm/ScrollBar.h>
  39. #include <Xm/ScrolledW.h>
  40. #include <Xm/SelectioB.h>
  41. #include <Xm/SeparatoG.h>
  42. #include <Xm/Separator.h>
  43. #include <Xm/Text.h>
  44. #include <Xm/ToggleB.h>
  45. #include <Xm/ToggleBG.h>
  46.  
  47. extern void help_callback();
  48. extern void cancel_callback();
  49. extern void show_panel();
  50. extern void quit_callback();
  51.  
  52. extern Widget Shell000;
  53. extern Widget Shell001;
  54. extern Widget Shell002;
  55. extern Widget Shell003;
  56.  
  57. /*
  58.  * SOME CONVENIENCE ROUTINES
  59.  */
  60. #ifndef IGNORE_COLOR
  61. static unsigned long
  62. COLOR(w, name)
  63. Widget w;
  64. char *name;
  65. {
  66. XrmValue    fromVal, toVal;
  67. unsigned long *pixel;
  68.  
  69.     fromVal.size = sizeof(char*);
  70.     fromVal.addr = name;
  71.  
  72.     XtConvert(w, XmRString, &fromVal, XmRPixel, &toVal);
  73.     pixel = (unsigned long*)toVal.addr;
  74.     if( pixel == NULL )
  75.     {
  76.         fromVal.addr = XtDefaultBackground;
  77.         XtConvert(w, XmRString, &fromVal, XmRPixel, &toVal);
  78.         pixel = (unsigned long*)toVal.addr;
  79.     }
  80.     return(*pixel);
  81. }
  82. #endif
  83. #ifndef IGNORE_FONT
  84. static XmFontList
  85. FONT_LIST(w, name)
  86. Widget    w;
  87. char    *name;
  88. {
  89. XrmValue    fromVal, toVal;
  90. XmFontList    *fontListPtr;
  91.  
  92.     fromVal.size = sizeof(char*);
  93.     fromVal.addr = name;
  94.  
  95.     XtConvert(w, XmRString, &fromVal, XmRFontList, &toVal);
  96.     fontListPtr = (XmFontList*)toVal.addr;
  97.     if(fontListPtr == NULL)
  98.     {
  99.         fromVal.addr = "fixed";
  100.         XtConvert(w, XmRString, &fromVal, XmRFontList, &toVal);
  101.         fontListPtr = (XmFontList*)toVal.addr;
  102.     }
  103.     return(*fontListPtr);
  104. }
  105.  
  106. #endif
  107. #ifndef IGNORE_MENU_POST
  108. static void
  109. MENU_POST(p, m, e)
  110. Widget    p;
  111. Widget    m;
  112. XButtonEvent *e;
  113. {
  114.     Arg    args[2];
  115.     int    argcnt;
  116.     int    button;
  117.  
  118.     argcnt = 0;
  119.     XtSetArg(args[argcnt], XmNwhichButton, &button);
  120.     argcnt++;
  121.     XtGetValues(m, args, argcnt);
  122.     if( e->button != button) return;
  123.     XmMenuPosition(m, e);
  124.     XtManageChild(m);
  125. }
  126. #endif
  127. #ifndef IGNORE_STRING_TABLE
  128. #include <varargs.h>
  129.  
  130. static XmString*
  131. STRING_TABLE(va_alist)
  132. va_dcl
  133. {
  134.     va_list    ap;
  135.     int        count;
  136.     XmString    *array;
  137.     int        i;
  138.  
  139.     va_start(ap);
  140.     count = va_arg(ap, int);
  141.     array = (XmString*)XtMalloc((count + 1) * sizeof(XmString*));
  142.     for(i = 0;  i < count; i++ )
  143.     {
  144.     array[i] = XmStringCreateLtoR(va_arg(ap, char*),
  145.         XmSTRING_DEFAULT_CHARSET);
  146.     }
  147.     array[count] = (XmString)0;
  148.     va_end(ap);
  149.     return(array);
  150. }
  151.  
  152. static void
  153. FREE_STRING_TABLE(table)
  154. XmString    *table;
  155. {
  156.     int        i;
  157.  
  158.     for( i = 0; table[i] != 0 ; i++)
  159.     {
  160.     XmStringFree(table[i]);
  161.     }
  162.     XtFree(table);
  163. }
  164. #endif
  165.  
  166. /*
  167.  * CALLBACK PROCEDURE DECLARATIONS
  168.  */
  169.  
  170. Widget
  171. Createmmlpanel(parent)
  172. Widget parent;
  173. {
  174.     Arg        args[512];
  175.     int        argcnt;
  176.     Widget     retval;
  177.     XmString    xmstr[32];
  178.     XmString    *xmstrTable[8];
  179.     Widget    mmlpanel;
  180.     XmRegisterConverters();
  181.  
  182.     argcnt = 0;
  183.     XtSetArg(args[argcnt], XmNborderWidth, (Dimension)0); argcnt++;
  184.     XtSetArg(args[argcnt], XmNbackground, COLOR(parent, "grey")); argcnt++;
  185.     XtSetArg(args[argcnt], XmNmessageString, (xmstr[0]=XmStringCreateLtoR(
  186.         "This is the MML panel.",
  187.         XmSTRING_DEFAULT_CHARSET))); argcnt++;
  188.     XtSetArg(args[argcnt], XmNmessageAlignment, XmALIGNMENT_CENTER); argcnt++;
  189.     XtSetArg(args[argcnt], XmNx, 0); argcnt++;
  190.     XtSetArg(args[argcnt], XmNy, 0); argcnt++;
  191.     XtSetArg(args[argcnt], XmNwidth, 236); argcnt++;
  192.     XtSetArg(args[argcnt], XmNheight, 92); argcnt++;
  193.     mmlpanel = XtCreateWidget("mmlpanel",
  194.         xmMessageBoxWidgetClass,
  195.         parent,
  196.         args,
  197.         argcnt);
  198.     XmStringFree( xmstr[0] );
  199.  
  200.     XtAddCallback(mmlpanel, XmNcancelCallback, cancel_callback, 
  201.                     (caddr_t)parent);
  202.     XtAddCallback(mmlpanel, XmNokCallback, cancel_callback, 
  203.                     (caddr_t)parent);
  204.     XtAddCallback(mmlpanel, XmNhelpCallback, help_callback, 
  205.                   (caddr_t)"MML");
  206.     retval = mmlpanel;
  207.  
  208.     return( retval );
  209. }
  210.  
  211. Widget
  212. Createivpanel(parent)
  213. Widget parent;
  214. {
  215.     Arg        args[512];
  216.     int        argcnt;
  217.     Widget     retval;
  218.     XmString    xmstr[32];
  219.     XmString    *xmstrTable[8];
  220.     Widget    ivpanel;
  221.     XmRegisterConverters();
  222.  
  223.     argcnt = 0;
  224.     XtSetArg(args[argcnt], XmNborderWidth, (Dimension)0); argcnt++;
  225.     XtSetArg(args[argcnt], XmNbackground, COLOR(parent, "grey")); argcnt++;
  226.     XtSetArg(args[argcnt], XmNmessageString, (xmstr[0]=XmStringCreateLtoR(
  227.         "This is the InterViews panel.",
  228.         XmSTRING_DEFAULT_CHARSET))); argcnt++;
  229.     XtSetArg(args[argcnt], XmNmessageAlignment, XmALIGNMENT_CENTER); argcnt++;
  230.     XtSetArg(args[argcnt], XmNx, 0); argcnt++;
  231.     XtSetArg(args[argcnt], XmNy, 0); argcnt++;
  232.     XtSetArg(args[argcnt], XmNwidth, 299); argcnt++;
  233.     XtSetArg(args[argcnt], XmNheight, 92); argcnt++;
  234.     ivpanel = XtCreateWidget("ivpanel",
  235.         xmMessageBoxWidgetClass,
  236.         parent,
  237.         args,
  238.         argcnt);
  239.     XmStringFree( xmstr[0] );
  240.  
  241.     XtAddCallback(ivpanel, XmNcancelCallback, cancel_callback, 
  242.                    (caddr_t)parent);
  243.     XtAddCallback(ivpanel, XmNokCallback, cancel_callback, 
  244.                    (caddr_t)parent);
  245.     XtAddCallback(ivpanel, XmNhelpCallback, help_callback, 
  246.                   (caddr_t)"InterViews");
  247.     retval = ivpanel;
  248.  
  249.     return( retval );
  250. }
  251.  
  252. Widget
  253. Createxwinpanel(parent)
  254. Widget parent;
  255. {
  256.     Arg        args[512];
  257.     int        argcnt;
  258.     Widget     retval;
  259.     XmString    xmstr[32];
  260.     XmString    *xmstrTable[8];
  261.     Widget    xwinpanel;
  262.     XmRegisterConverters();
  263.  
  264.     argcnt = 0;
  265.     XtSetArg(args[argcnt], XmNborderWidth, (Dimension)0); argcnt++;
  266.     XtSetArg(args[argcnt], XmNbackground, COLOR(parent, "grey")); argcnt++;
  267.     XtSetArg(args[argcnt], XmNmessageString, (xmstr[0]=XmStringCreateLtoR(
  268.         "This is the X Windows panel.",
  269.         XmSTRING_DEFAULT_CHARSET))); argcnt++;
  270.     XtSetArg(args[argcnt], XmNmessageAlignment, XmALIGNMENT_CENTER); argcnt++;
  271.     XtSetArg(args[argcnt], XmNx, 0); argcnt++;
  272.     XtSetArg(args[argcnt], XmNy, 0); argcnt++;
  273.     XtSetArg(args[argcnt], XmNwidth, 290); argcnt++;
  274.     XtSetArg(args[argcnt], XmNheight, 92); argcnt++;
  275.     xwinpanel = XtCreateWidget("xwinpanel",
  276.         xmMessageBoxWidgetClass,
  277.         parent,
  278.         args,
  279.         argcnt);
  280.     XmStringFree( xmstr[0] );
  281.  
  282.     XtAddCallback(xwinpanel, XmNcancelCallback, cancel_callback, 
  283.                              (caddr_t)parent);
  284.     XtAddCallback(xwinpanel, XmNokCallback, cancel_callback, 
  285.                              (caddr_t)parent);
  286.     XtAddCallback(xwinpanel, XmNhelpCallback, help_callback, 
  287.                   (caddr_t)"XWindows");
  288.  
  289.     retval = xwinpanel;
  290.  
  291.     return( retval );
  292. }
  293.  
  294. Widget Createform(parent) Widget parent;
  295.     {
  296.     Arg        args[512];
  297.     int        argcnt;
  298.     Widget     retval;
  299.     XmString    xmstr[32];
  300.     XmString    *xmstrTable[8];
  301.     Widget    form;
  302.     Widget    xbutton;
  303.     Widget    ivbutton;
  304.     Widget    mmlbutton;
  305.     Widget    quit;
  306.     Widget    help;
  307.     Widget    separator;
  308.     XmRegisterConverters();
  309.  
  310.     argcnt = 0;
  311.     XtSetArg(args[argcnt], XmNbackground, COLOR(parent, "grey")); argcnt++;
  312.     XtSetArg(args[argcnt], XmNx, 0); argcnt++;
  313.     XtSetArg(args[argcnt], XmNy, 0); argcnt++;
  314.     XtSetArg(args[argcnt], XmNwidth, 358); argcnt++;
  315.     XtSetArg(args[argcnt], XmNheight, 118); argcnt++;
  316.     form = XtCreateWidget("form",
  317.         xmFormWidgetClass,
  318.         parent,
  319.         args,
  320.         argcnt);
  321.  
  322.     retval = form;
  323.  
  324.     argcnt = 0;
  325.     XtSetArg(args[argcnt], XmNbackground, COLOR(parent, "grey")); argcnt++;
  326.     XtSetArg(args[argcnt], XmNtopShadowColor, COLOR(parent, "grey")); argcnt++;
  327.     XtSetArg(args[argcnt], XmNbottomShadowColor, COLOR(parent, "black")); argcnt++;
  328.     XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
  329.     XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
  330.     XtSetArg(args[argcnt], XmNleftOffset, (int)10); argcnt++;
  331.     XtSetArg(args[argcnt], XmNrightOffset, (int)10); argcnt++;
  332.     XtSetArg(args[argcnt], XmNx, 10); argcnt++;
  333.     XtSetArg(args[argcnt], XmNy, 50); argcnt++;
  334.     XtSetArg(args[argcnt], XmNwidth, 338); argcnt++;
  335.     XtSetArg(args[argcnt], XmNheight, 22); argcnt++;
  336.     separator = XtCreateWidget("separator",
  337.         xmSeparatorWidgetClass,
  338.         form,
  339.         args,
  340.         argcnt);
  341.  
  342.     XtManageChild(separator);
  343.  
  344.     argcnt = 0;
  345.     XtSetArg(args[argcnt], XmNbackground, COLOR(parent, "grey")); argcnt++;
  346.     XtSetArg(args[argcnt], XmNalignment, XmALIGNMENT_CENTER); argcnt++;
  347.     XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
  348.         "Help",
  349.         XmSTRING_DEFAULT_CHARSET))); argcnt++;
  350.     XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
  351.     XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
  352.     XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_FORM); argcnt++;
  353.     XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_NONE); argcnt++;
  354.     XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
  355.     XtSetArg(args[argcnt], XmNtopOffset, (int)80); argcnt++;
  356.     XtSetArg(args[argcnt], XmNbottomOffset, (int)8); argcnt++;
  357.     XtSetArg(args[argcnt], XmNleftOffset, (int)230); argcnt++;
  358.     XtSetArg(args[argcnt], XmNrightOffset, (int)10); argcnt++;
  359.     XtSetArg(args[argcnt], XmNx, 255); argcnt++;
  360.     XtSetArg(args[argcnt], XmNy, 80); argcnt++;
  361.     XtSetArg(args[argcnt], XmNwidth, 93); argcnt++;
  362.     XtSetArg(args[argcnt], XmNheight, 30); argcnt++;
  363.     help = XtCreateWidget("help",
  364.         xmPushButtonWidgetClass,
  365.         form,
  366.         args,
  367.         argcnt);
  368.     XmStringFree( xmstr[0] );
  369.     XtAddCallback(help, XmNactivateCallback, help_callback, 
  370.                     (caddr_t)"Intro");
  371.  
  372.     XtManageChild(help);
  373.  
  374.     argcnt = 0;
  375.     XtSetArg(args[argcnt], XmNbackground, COLOR(parent, "grey")); argcnt++;
  376.     XtSetArg(args[argcnt], XmNalignment, XmALIGNMENT_CENTER); argcnt++;
  377.     XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
  378.         "Quit",
  379.         XmSTRING_DEFAULT_CHARSET))); argcnt++;
  380.     XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
  381.     XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_NONE); argcnt++;
  382.     XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_FORM); argcnt++;
  383.     XtSetArg(args[argcnt], XmNtopOffset, (int)90); argcnt++;
  384.     XtSetArg(args[argcnt], XmNbottomOffset, (int)10); argcnt++;
  385.     XtSetArg(args[argcnt], XmNx, 10); argcnt++;
  386.     XtSetArg(args[argcnt], XmNy, 80); argcnt++;
  387.     XtSetArg(args[argcnt], XmNwidth, 100); argcnt++;
  388.     XtSetArg(args[argcnt], XmNheight, 30); argcnt++;
  389.     quit = XtCreateWidget("quit",
  390.         xmPushButtonWidgetClass,
  391.         form,
  392.         args,
  393.         argcnt);
  394.     XmStringFree( xmstr[0] );
  395.     XtAddCallback(quit, XmNactivateCallback, quit_callback, 
  396.                     (caddr_t)0);
  397.  
  398.     XtManageChild(quit);
  399.  
  400.     argcnt = 0;
  401.     XtSetArg(args[argcnt], XmNbackground, COLOR(parent, "grey")); argcnt++;
  402.     XtSetArg(args[argcnt], XmNtopShadowColor, COLOR(parent, "white")); argcnt++;
  403.     XtSetArg(args[argcnt], XmNbottomShadowColor, COLOR(parent, "black")); argcnt++;
  404.     XtSetArg(args[argcnt], XmNalignment, XmALIGNMENT_CENTER); argcnt++;
  405.     XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
  406.         "X Windows",
  407.         XmSTRING_DEFAULT_CHARSET))); argcnt++;
  408.     XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
  409.     XtSetArg(args[argcnt], XmNx, 10); argcnt++;
  410.     XtSetArg(args[argcnt], XmNy, 10); argcnt++;
  411.     XtSetArg(args[argcnt], XmNwidth, 100); argcnt++;
  412.     XtSetArg(args[argcnt], XmNheight, 30); argcnt++;
  413.     xbutton = XtCreateWidget("xbutton",
  414.         xmPushButtonWidgetClass,
  415.         form,
  416.         args,
  417.         argcnt);
  418.     XmStringFree( xmstr[0] );
  419.  
  420.     XtAddCallback(xbutton, XmNactivateCallback, show_panel, 
  421.                   (caddr_t)Shell002);
  422.     XtManageChild(xbutton);
  423.  
  424.     argcnt = 0;
  425.     XtSetArg(args[argcnt], XmNbackground, COLOR(parent, "grey")); argcnt++;
  426.     XtSetArg(args[argcnt], XmNalignment, XmALIGNMENT_CENTER); argcnt++;
  427.     XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
  428.         "InterViews",
  429.         XmSTRING_DEFAULT_CHARSET))); argcnt++;
  430.     XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
  431.     XtSetArg(args[argcnt], XmNx, 130); argcnt++;
  432.     XtSetArg(args[argcnt], XmNy, 10); argcnt++;
  433.     XtSetArg(args[argcnt], XmNwidth, 100); argcnt++;
  434.     XtSetArg(args[argcnt], XmNheight,  30); argcnt++;
  435.     ivbutton = XtCreateWidget("ivbutton",
  436.         xmPushButtonWidgetClass,
  437.         form,
  438.         args,
  439.         argcnt);
  440.     XmStringFree( xmstr[0] );
  441.     XtAddCallback(ivbutton, XmNactivateCallback, show_panel, 
  442.                   (caddr_t)Shell001);
  443.  
  444.     XtManageChild(ivbutton);
  445.  
  446.     argcnt = 0;
  447.     XtSetArg(args[argcnt], XmNbackground, COLOR(parent, "grey")); argcnt++;
  448.     XtSetArg(args[argcnt], XmNalignment, XmALIGNMENT_CENTER); argcnt++;
  449.     XtSetArg(args[argcnt], XmNlabelString, (xmstr[0]=XmStringCreateLtoR(
  450.         "MML",
  451.         XmSTRING_DEFAULT_CHARSET))); argcnt++;
  452.     XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
  453.     XtSetArg(args[argcnt], XmNx, 250); argcnt++;
  454.     XtSetArg(args[argcnt], XmNy, 10); argcnt++;
  455.     XtSetArg(args[argcnt], XmNwidth, 100); argcnt++;
  456.     XtSetArg(args[argcnt], XmNheight,  30); argcnt++;
  457.     mmlbutton = XtCreateWidget("mmlbutton",
  458.         xmPushButtonWidgetClass,
  459.         form,
  460.         args,
  461.         argcnt);
  462.     XmStringFree( xmstr[0] );
  463.  
  464.     XtAddCallback(mmlbutton, XmNactivateCallback, show_panel, 
  465.                   (caddr_t)Shell000);
  466.     XtManageChild(mmlbutton);
  467.  
  468.     return( retval );
  469. }
  470.  
  471. void help_callback(w, client, call)
  472.    Widget w;
  473.    caddr_t client;
  474.    caddr_t call;
  475.    {
  476.    extern Display* theDisplay;
  477.  
  478.    if (fork() == 0)
  479.       {
  480.       close(ConnectionNumber(theDisplay));
  481.       execl("../src/XHyper", "XHyper", (char*)client, NULL);
  482.       }
  483.    }
  484.  
  485. void cancel_callback(w, client, call)
  486.    Widget w;
  487.    caddr_t client;
  488.    caddr_t call;
  489.    {
  490.    XtUnrealizeWidget((Widget)client);
  491.    }
  492.  
  493. void show_panel(w, client, call)
  494.    Widget w;
  495.    caddr_t client;
  496.    caddr_t call;
  497.    {
  498.    XtRealizeWidget((Widget)client);
  499.    }
  500.  
  501. void quit_callback(w, client, call)
  502.    Widget w;
  503.    caddr_t client;
  504.    caddr_t call;
  505.    {
  506.    XtDestroyWidget(Shell000);
  507.    XtDestroyWidget(Shell001);
  508.    XtDestroyWidget(Shell002);
  509.    XtDestroyWidget(Shell003);
  510.    exit(0);
  511.    }
  512.  
  513.