home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / m / master12.zip / mastering / textdemo.c < prev    next >
C/C++ Source or Header  |  1992-08-27  |  5KB  |  149 lines

  1. #include <Xm/BulletinB.h>
  2. #include <Xm/Label.h>
  3. #include <Xm/Text.h>
  4. #include <Xm/TextF.h>
  5.  
  6. /*  Global Variables  */
  7. Display  *display;
  8.  
  9. char new_string1[] = "\
  10. As I was going to St. Ives\n\
  11. I met a man with seven wives\n\
  12. Each wife had seven sacks,\n\
  13. Each sack had seven cats,\n\
  14. Each cat had seven kits\n\
  15. Kits, cats, sacks, and wives,\n\
  16. How many were going to St. Ives?\n\
  17. \n\
  18. I don't know but...\n\
  19. Jack Sprat could eat no fat\n\
  20. His wife could eat no lean\n\
  21. And so between them both\n\
  22. They licked the platter clean";
  23.  
  24. void main(argc, argv)
  25. int argc;
  26. char **argv;
  27. {
  28.   Widget         toplevel;
  29.   Widget         BBoard1;
  30.   Widget         Text1, Text2, Text3, Text4;
  31.   Widget         Label1, Label2, Label3, Label4;
  32.   Arg            args[20];
  33.   int            n;
  34.   XFontStruct   *newfont;
  35.   XmFontList     newfontlist;
  36.   Display       *display;
  37.   XtAppContext   app_context;
  38.   XmString       label_string;
  39.  
  40.   /* Initialize toolkit */
  41.   toplevel = XtAppInitialize(&app_context, "Textdemo", NULL, 0, &argc,
  42.                              argv, NULL, args,
  43.   0);
  44.  
  45.   /* Create bulletin board widget */
  46.   n = 0;
  47.   XtSetArg (args[n], XmNallowShellResize, True); n++;
  48.   XtSetArg (args[n], XmNheight, 500); n++;
  49.   XtSetArg (args[n], XmNwidth, 330); n++;
  50.   BBoard1 = XmCreateBulletinBoard(toplevel, "BBoard1", args, n);
  51.   XtManageChild(BBoard1);
  52.  
  53.   newfont = XLoadQueryFont(XtDisplay(toplevel),"8x13");
  54.   newfontlist = XmFontListCreate(newfont, XmFONTLIST_DEFAULT_TAG);
  55.  
  56.   /* Scrolled text widget */
  57.   /* Create a label for the scrolled text widget */
  58.   label_string = XmStringCreate("Scrolled Text Widget", XmFONTLIST_DEFAULT_TAG);
  59.   n = 0;
  60.   XtSetArg(args[n], XmNlabelString, label_string); n++;
  61.   Label1 = XmCreateLabel(BBoard1, "Label1", args, n);
  62.   XtManageChild(Label1);
  63.   XmStringFree (label_string);
  64.  
  65.   /* Now create the scrolled text widget */
  66.   n = 0;
  67.   XtSetArg(args[n], XmNcolumns, 25); n++;
  68.   XtSetArg(args[n], XmNrows, 10); n++;
  69.   XtSetArg(args[n], XmNscrollVertical, True); n++;
  70.   XtSetArg(args[n], XmNscrollHorizontal, True); n++;
  71.   XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT); n++;
  72.   XtSetArg(args[n], XmNvalue, new_string1); n++;
  73.   XtSetArg(args[n], XmNfontList, newfontlist); n++;
  74.   Text1 = XmCreateScrolledText(BBoard1, "Text1", args, n);
  75.   XtManageChild(Text1);
  76.  
  77.   n = 0;
  78.   XtSetArg(args[n], XmNy, 30); n++;
  79.   XtSetValues(XtParent(Text1), args, n);
  80.  
  81.   /* Single line text widget */
  82.   /* Create a label for the single line text widget */
  83.   label_string = XmStringCreate("Single-Line Text Widget", XmFONTLIST_DEFAULT_TAG); 
  84.   n = 0;
  85.   XtSetArg(args[n], XmNy, 220); n++;
  86.   XtSetArg(args[n], XmNlabelString, label_string); n++;
  87.   Label2 = XmCreateLabel(BBoard1, "Label2", args, n);
  88.   XtManageChild(Label2);
  89.   XmStringFree (label_string);
  90.  
  91.   /* Now create the single line text widget */
  92.   n = 0;
  93.   XtSetArg(args[n], XmNy, 240); n++;
  94.   XtSetArg(args[n], XmNcolumns, 25); n++;
  95.   XtSetArg(args[n], XmNrows, 1); n++;
  96.   XtSetArg(args[n], XmNeditMode, XmSINGLE_LINE_EDIT); n++;
  97.   XtSetArg(args[n], XmNvalue, new_string1); n++;
  98.   XtSetArg(args[n], XmNfontList, newfontlist); n++;
  99.   Text2 = XmCreateText(BBoard1, "Text2", args, n);
  100.   XtManageChild(Text2);
  101.  
  102.   /* Multi-line text widget */
  103.   /* Create a label for the multi-line text widget */
  104.   label_string = XmStringCreate("Multi-Line Text Widget", XmFONTLIST_DEFAULT_TAG); 
  105.   n = 0;
  106.   XtSetArg(args[n], XmNy, 290); n++;
  107.   XtSetArg(args[n], XmNlabelString, label_string); n++;
  108.   Label3 = XmCreateLabel(BBoard1, "Label3", args, n);
  109.   XtManageChild(Label3);
  110.   XmStringFree (label_string);
  111.  
  112.   /* Now create the multi-line text widget */
  113.   n = 0;
  114.   XtSetArg(args[n], XmNy, 310); n++;
  115.   XtSetArg(args[n], XmNcolumns, 25); n++;
  116.   XtSetArg(args[n], XmNrows, 3); n++;
  117.   XtSetArg(args[n], XmNeditMode, XmMULTI_LINE_EDIT); n++;
  118.   XtSetArg(args[n], XmNvalue, new_string1); n++;
  119.   XtSetArg(args[n], XmNfontList, newfontlist); n++;
  120.   Text3 = XmCreateText(BBoard1, "Text3", args, n);
  121.   XtManageChild(Text3);
  122.  
  123.   /* Text field widget */
  124.   /* Create a label for the multi-line text widget */
  125.   label_string = XmStringCreate("TextField Widget", XmFONTLIST_DEFAULT_TAG); 
  126.   n = 0;
  127.   XtSetArg(args[n], XmNy, 390); n++;
  128.   XtSetArg(args[n], XmNlabelString, label_string); n++;
  129.   Label4 = XmCreateLabel(BBoard1, "Label4", args, n);
  130.   XtManageChild(Label4);
  131.   XmStringFree (label_string);
  132.  
  133.   /* Now create the multi-line text widget */
  134.   n = 0;
  135.   XtSetArg(args[n], XmNy, 410); n++;
  136.   XtSetArg(args[n], XmNcolumns, 25); n++;
  137.   XtSetArg(args[n], XmNvalue, new_string1); n++;
  138.   XtSetArg(args[n], XmNfontList, newfontlist); n++;
  139.   Text4 = (Widget) XmCreateTextField(BBoard1, "Text4", args, n);
  140.   XtManageChild(Text4);
  141.  
  142.   /* Free font list */
  143.   XmFontListFree (newfontlist);
  144.  
  145.   /* Realize widgets and loop */
  146.   XtRealizeWidget(toplevel);
  147.   XtAppMainLoop(app_context);
  148. }
  149.