XmRedisplayWidget man page on DigitalUNIX

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

XmRedisplayWidget(library call)		       XmRedisplayWidget(library call)

NAME
       XmRedisplayWidget — Synchronously activates the expose method of a wid‐
       get to draw its content

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

DESCRIPTION
       This function is a convenience routine that hides the details of the Xt
       internals to the application programmer by calling the expose method of
       the given widget with a well formed Expose event and Region correspond‐
       ing  to	the  total  area  of the widget. If the widget doesn't have an
       Expose method, 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 com‐
       pletely control the sequence of rendering requests.

       XmRedisplayWidget  doesn't clear the widget window prior to calling the
       expose method, 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,
	    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);
       }

       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)

					       XmRedisplayWidget(library call)
[top]

List of man pages available for DigitalUNIX

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