XtWorkProc man page on HP-UX

Man page or keyword search:  
man Server   10987 pages
apropos Keyword Search (all sections)
Output format
HP-UX logo
[printable version]

XtWorkProc()							  XtWorkProc()

Name
  XtWorkProc  -	 interface definition for procedure called when the event
  loop is idle.

Synopsis
  typedef Boolean (*XtWorkProc)(XtPointer);
	 XtPointer client_data;

Inputs
  client_data
	    Specifies data registered with this procedure.

Returns
  True if the procedure should not be called again; False otherwise.

Description
  An XtWorkProc is registered with XtAppAddWorkProc() and  is  called  by
  XtAppMainLoop()  and XtAppProcessEvent() if there are no events pending
  and the application would otherwise block.

  The client_data argument is data of any type registered in the call  to
  XtAppAddWorkProc().	It  is generally cast to an XtPointer when regis‐
  tered and cast back to the appropriate type within the XtWorkProc.   An
  XtWorkProc  must  get	 all  of  its  context from this argument or from
  global variables.

  An XtWorkProc should perform a single short task  and	 return.   If  it
  does	not  return  quickly  then events that arrive while it is running
  will not be handled immediately, and the response time seen by the user
  will	suffer.	  If  a	 work procedure has a lot of processing to do, it
  should perform a piece of it, save its state in static  variables,  and
  return  False.   When	 an XtWorkProc returns False, the Intrinsics will
  call it again the next time the event loop is idle, and it  can  resume
  its  processing  where  it left off.	When it completes all of its pro‐
  cessing, it should return True, and the Intrinsics  will  automatically
  un-register it, so that it will not be called again.

Usage
  One  possible use of work procedures is to create the widgets in dialog
  boxes which are not needed immediately when an application  starts  up.
  This	will save start up time for the main application window, and will
  probably also mean that the dialog boxes will be fully created  by  the
  time the user requests that one is popped up.

  You  can  register multiple work procedures, and they will be performed
  one at a time.  The most recent work procedure added	has  the  highest
  priority.  Therefore, for example, if you want to create ten popup wid‐
  gets during idle time, you might add ten work procedures.  The  pop  up
  that you expect to need first should be created by the last work proce‐
  dure registered.  See the example below for an alternate approach, how‐
  ever.

  You can explicitly remove a work procedure with XtRemoveWorkProc().

Example
  The  first procedure below is an XtWorkProc that creates several dialog
  widgets.  Note that it returns after	creating  each	dialog.	  If  the
  dialogs are needed before they are created by this procedure, they will
  have to be created explicitly as shown in the second	procedure  below.
  The only standard client in X11R5 that uses work procedures is xfontsel
  which performs sophisticated scheduling of all the background	 work  of
  parsing the names of all the fonts available from the server.

     Widget file_dialog = NULL;
     Widget print_dialog = NULL;
     Widget confirm_dialog = NULL;

     Boolean CreateDialogsInBackground(client_data)
     XtPointer client_data;
     {
	 Widget toplevel = (Widget) client_data;
	 static int num = 0;

	 num++;

	 switch(num) {
	 case 1:
	     if (file_dialog == NULL)
		 file_dialog = CreateFileDialog(toplevel);
	     return False;
	 case 2:
	     if (print_dialog == NULL)
		 print_dialog = CreatePrintDialog(toplevel);
	     return False;
	 case 3:
	     if (confirm_dialog == NULL)
		confirm_dialog = CreateConfirmDialog(toplevel);
	     return True;
	 }
	 return True;
     }

     void DoFileDialog(toplevel)
     Widget toplevel;
     {
	 if (file_dialog == NULL)
	     file_dialog = CreateFileDialog(toplevel);
	 XtPopup(file_dialog, XtGrabExclusive);
     }

  This work procedure could be registered with a call like the following:

	 toplevel = XtAppInitialize(...);
	 BuildInterface(toplevel);
	 XtRealizeWidget(toplevel);

	 XtAppAddWorkProcedure(app_context, CreateDialogsInBackground,
			       (XtPointer) toplevel);

	 XtAppMainLoop(app_context);

See Also
  XtAppAddWorkProc(1), XtRemoveWorkProc(1).

Xt - Event Handling						  XtWorkProc()
[top]

List of man pages available for HP-UX

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