XmRedisplayWidget man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



     XmRedisplayWidget(3X)     UNIX System V	 XmRedisplayWidget(3X)

     NAME
	  XmRedisplayWidget - Synchronously activates the expose
	  method of a widget to draw its content

     SYNOPSIS
	  #include <Xm/Xm.h>
	  voidXmRedisplayWidget(
	  Widgetwidget);

     VERSION
	  This page documents Motif 2.1.

     DESCRIPTION
	  This function is a convenience routine that hides the
	  details of the Xt internals to the application programmer by
	  calling the exposemethod of the given widget with a well
	  formed Exposeevent and Regioncorresponding to the total area
	  of the widget. If the widget doesn't have an Exposemethod,
	  the function does nothing.

	  This is primarily used in the context of X Printing if the
	  programming model chosen by the application is synchronous;
	  that is, it doesn't rely of X Print events for the driving
	  of page layout but wants to completely control the sequence
	  of rendering requests.

	  XmRedisplayWidgetdoesn't clear the widget window prior to
	  calling the exposemethod, since this is handled by calls to
	  XpStartPage.

	  widget    The widget to redisplay.

     RETURN VALUE
	  None.

     ERRORS/WARNINGS
	  Not applicable

     EXAMPLES
	  In the following, a simple application wants to print the
	  content of a multi-page text widget (similar to dtpad).

	  PrintOKCallback(print_dialog...)
	  /*-------------*/
	  {
	      pshell = XmPrintSetup (print_dialog, pbs->print_screen,
					     "Print", NULL, 0);

	      XpStartJob(XtDisplay(pshell), XPSpool);

	      /**** here I realize the shell, get its size, create my widget
	       hierarchy: a bulletin board, and then a text widget,

     Page 1					     (printed 7/20/06)

     XmRedisplayWidget(3X)     UNIX System V	 XmRedisplayWidget(3X)

	       that I stuff with the video text widget buffer */

	      /* get the total number of pages to print */
	      XtVaGetValues(ptext, XmNrows, &prows,
				   XmNtotalLines, n_lines, NULL);
	      n_pages = n_lines / prows;

	      /***** now print the pages in a loop */

	      for (cur_page=0; cur_page != n_pages; cur_page++) {

			 XpStartPage(XtDisplay(pshell), XtWindow(pshell), False);
			 XmRedisplayWidget(ptext);  /* do the drawing */
			 XpEndPage(XtDisplay(pshell));

		  XmTextScroll(ptext, prows);  /* get ready for next page */
	      }

	      /***** I'm done */
	      XpEndJob(XtDisplay(pshell));

	  }

	  Of course, one could change the above code to include it in
	  a fork()branch so that the main program is not blocked while
	  printing is going on. Another way to achieve a "print-in-
	  the-background" effect is to use an Xt workproc. Using the
	  same sample application, that gives us:

	  Boolean
	  PrintOnePageWP(XtPointer npages) /* workproc */
	  /*-------------*/
	  {
	      static int cur_page = 0;
	      cur_page++;

	      XpStartPage(XtDisplay(pshell), XtWindow(pshell), False);
	      XmRedisplayWidget(ptext);	 /* do the drawing */
	      XpEndPage(XtDisplay(pshell));

	      XmTextScroll(ptext, prows);  /*  get ready for next page */

	      if (cur_page == n_pages) { /***** I'm done */
		  XpEndJob(XtDisplay(pshell));

		  XtDestroyWidget(pshell);
		  XtCloseDisplay(XtDisplay(pshell));
	      }

	      return (cur_page == n_pages);
	  }

     Page 2					     (printed 7/20/06)

     XmRedisplayWidget(3X)     UNIX System V	 XmRedisplayWidget(3X)

	  PrintOKCallback(...)
	  /*-------------*/
	  {
	      pshell = XmPrintSetup (widget, pbs->print_screen,
					     "Print", NULL, 0);

	      XpStartJob(XtDisplay(pshell), XPSpool);

	      /**** here I get the size of the shell, create my widget
		    hierarchy: a bulletin board, and then a text widget,
			    that I stuff with the video text widget buffer */

	      /* get the total number of pages to print */
	      /* ... same code as above example */

	      /***** print the pages in the background */
	      XtAppAddWorkProc(app_context, PrintOnePageWP, n_pages);
	  }

     SEE ALSO
	  XmPrintSetup(3), XmPrintShell(3)

     Page 3					     (printed 7/20/06)

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net