home *** CD-ROM | disk | FTP | other *** search
- Xref: sparky comp.windows.x:16655 comp.windows.open-look:3824 alt.toolkits.xview:862
- Path: sparky!uunet!spool.mu.edu!caen!uakari.primate.wisc.edu!ames!nsisrv!mimsy!nzhang
- From: nzhang@umiacs.umd.edu (Ning Zhang)
- Newsgroups: comp.windows.x,comp.windows.open-look,alt.toolkits.xview
- Subject: Re: Help Wanted: XView PANEL_MULTILINE_TEXT problem
- Summary: Source code included
- Message-ID: <60310@mimsy.umd.edu>
- Date: 14 Sep 92 21:36:52 GMT
- Sender: news@mimsy.umd.edu
- Followup-To: comp.windows.x
- Organization: UMIACS, University of Maryland, College Park, MD 20742
- Lines: 110
-
- I sent a request a few days ago but I did not get a workaround. Here
- is a simple program reproducing the problem (tested on 4.1.1 with
- Openwin 3.0 FCS and 4.1.3/w Openwin 3.0 patches).
-
-
- /*
- * Test PANEL_MULTILINE_TEXT bug
- */
-
- #include <xview/xview.h>
- #include <xview/frame.h>
- #include <xview/panel.h>
-
- Frame frame;
- Panel panel;
-
- Frame cmd_frame;
- Panel cmd_panel;
-
- Panel mlinetxt;
- char mlinetxtbuf[161];
-
- void test();
- void disp();
- void quit();
-
- main (argc, argv)
- int argc;
- char *argv[];
- {
- xv_init (XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);
-
- frame = (Frame)xv_create(NULL, FRAME,
- FRAME_LABEL, argv[0],
- XV_WIDTH, 200,
- XV_HEIGHT, 100,
- NULL);
-
- panel = (Panel)xv_create(frame, PANEL, NULL);
-
- (void) xv_create(panel, PANEL_BUTTON,
- PANEL_LABEL_STRING, "Display",
- PANEL_NOTIFY_PROC, disp,
- NULL);
-
- (void) xv_create(panel, PANEL_BUTTON,
- PANEL_LABEL_STRING, "Quit",
- PANEL_NOTIFY_PROC, quit,
- NULL);
-
- xv_main_loop(frame);
- }
-
- void
- test()
- {
- cmd_frame = xv_create(frame, FRAME_CMD,
- XV_X, 0,
- XV_Y, 0,
- XV_HEIGHT, 100,
- XV_WIDTH, 200,
- XV_LABEL, "TEST",
- XV_SHOW, TRUE,
- NULL);
-
- cmd_panel = xv_get(cmd_frame, FRAME_CMD_PANEL);
-
- mlinetxt = panel_create_item(cmd_panel, PANEL_MULTILINE_TEXT,
- PANEL_LABEL_X, 10,
- PANEL_LABEL_Y, 10,
- PANEL_VALUE_X, 10,
- PANEL_VALUE_X, 30,
- PANEL_LABEL_STRING, "DETAIL DESCRPTION",
- PANEL_VALUE, mlinetxtbuf,
- PANEL_VALUE_DISPLAY_LENGTH, 80,
- PANEL_VALUE_STORED_LENGTH, 320,
- NULL);
- }
-
- void
- disp()
- {
- static int count = 0;
-
- printf("disp() count = %d\n", count);
-
- if (count == 0)
- {
- test();
- }
-
- count++;
-
- (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);
-
- xv_set(mlinetxt, PANEL_VALUE, mlinetxtbuf, NULL);
- }
-
- void
- quit()
- {
- exit(0);
- }
-
-
- Does anyone has a workaround for the problem? I contacted Sun Tech Support
- but have not got any answer.
-
- Thanks in advence,
- -Ning
-