home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / windows / x / 16655 < prev    next >
Encoding:
Text File  |  1992-09-14  |  2.7 KB  |  124 lines

  1. Xref: sparky comp.windows.x:16655 comp.windows.open-look:3824 alt.toolkits.xview:862
  2. Path: sparky!uunet!spool.mu.edu!caen!uakari.primate.wisc.edu!ames!nsisrv!mimsy!nzhang
  3. From: nzhang@umiacs.umd.edu (Ning Zhang)
  4. Newsgroups: comp.windows.x,comp.windows.open-look,alt.toolkits.xview
  5. Subject: Re: Help Wanted: XView PANEL_MULTILINE_TEXT problem
  6. Summary: Source code included
  7. Message-ID: <60310@mimsy.umd.edu>
  8. Date: 14 Sep 92 21:36:52 GMT
  9. Sender: news@mimsy.umd.edu
  10. Followup-To: comp.windows.x
  11. Organization: UMIACS, University of Maryland, College Park, MD 20742
  12. Lines: 110
  13.  
  14. I sent a request a few days ago but I did not get a workaround. Here
  15. is a simple program reproducing the problem (tested on 4.1.1 with
  16. Openwin 3.0 FCS and 4.1.3/w Openwin 3.0 patches).
  17.  
  18.  
  19. /*
  20.  * Test PANEL_MULTILINE_TEXT bug
  21.  */
  22.  
  23. #include <xview/xview.h>
  24. #include <xview/frame.h>
  25. #include <xview/panel.h>
  26.  
  27. Frame  frame;
  28. Panel  panel;
  29.  
  30. Frame  cmd_frame;
  31. Panel  cmd_panel;
  32.  
  33. Panel  mlinetxt;
  34. char   mlinetxtbuf[161];
  35.  
  36. void   test();
  37. void   disp();
  38. void   quit();
  39.  
  40. main (argc, argv)
  41. int argc;
  42. char *argv[];
  43. {
  44.     xv_init (XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);
  45.  
  46.     frame = (Frame)xv_create(NULL, FRAME,
  47.         FRAME_LABEL,    argv[0],
  48.         XV_WIDTH,       200,
  49.         XV_HEIGHT,      100,
  50.         NULL);
  51.  
  52.     panel = (Panel)xv_create(frame, PANEL, NULL);
  53.  
  54.     (void) xv_create(panel, PANEL_BUTTON,
  55.         PANEL_LABEL_STRING,  "Display",
  56.         PANEL_NOTIFY_PROC,   disp,
  57.         NULL);
  58.  
  59.     (void) xv_create(panel, PANEL_BUTTON,
  60.         PANEL_LABEL_STRING,  "Quit",
  61.         PANEL_NOTIFY_PROC,   quit,
  62.         NULL);
  63.  
  64.     xv_main_loop(frame);
  65. }
  66.  
  67. void
  68. test()
  69. {
  70.    cmd_frame = xv_create(frame, FRAME_CMD,
  71.         XV_X,        0,
  72.         XV_Y,        0,
  73.         XV_HEIGHT,    100,
  74.         XV_WIDTH,    200,
  75.         XV_LABEL,    "TEST",
  76.         XV_SHOW,    TRUE,
  77.         NULL);
  78.  
  79.     cmd_panel = xv_get(cmd_frame, FRAME_CMD_PANEL);
  80.  
  81.     mlinetxt = panel_create_item(cmd_panel, PANEL_MULTILINE_TEXT,
  82.         PANEL_LABEL_X,            10,
  83.         PANEL_LABEL_Y,            10,
  84.         PANEL_VALUE_X,            10,
  85.         PANEL_VALUE_X,            30,
  86.         PANEL_LABEL_STRING,        "DETAIL DESCRPTION",
  87.         PANEL_VALUE,            mlinetxtbuf,
  88.         PANEL_VALUE_DISPLAY_LENGTH,    80,
  89.         PANEL_VALUE_STORED_LENGTH,    320,
  90.         NULL);
  91. }
  92.  
  93. void
  94. disp()
  95. {
  96.     static int    count = 0;
  97.  
  98.     printf("disp() count = %d\n", count);
  99.  
  100.     if (count == 0)
  101.     {
  102.         test();
  103.     }
  104.  
  105.     count++;
  106.  
  107.     (void) sprintf(mlinetxtbuf, "Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah Blah %d\n", count);
  108.  
  109.     xv_set(mlinetxt, PANEL_VALUE, mlinetxtbuf, NULL);
  110. }
  111.  
  112. void
  113. quit()
  114. {
  115.     exit(0);
  116. }
  117.  
  118.  
  119. Does anyone has a workaround for the problem? I contacted Sun Tech Support
  120. but have not got any answer.
  121.  
  122. Thanks in advence,
  123. -Ning
  124.