Provided by: libmotif-dev_2.3.8-4_amd64 bug

NAME

       XmPrintPopupPDM — Send a notification for the PDM to be popped up

SYNOPSIS

       #include <Xm/Print.h>
       XtEnum XmPrintPopupPDM(
       Widgetprint_shell,
       Widgetvideo_transient_for);

DESCRIPTION

       A  convenience  function  that  sends  a  notification  to  start a Print Dialog Manager on behalf of the
       application, XmPrintPopupPDM hides the details of the X selection mechanism used to notify the PDM that a
       new dialog must be popped up for this application.

       XmPrintPopupPDM sends a selection request to either the print display of the print shell,  or  the  video
       display  of  the transient_for video widget (depending on the environment variable XPDMDISPLAY, which can
       only takes the value "print" or "video"), asking for the PDM windows to be popped up  on  behalf  of  the
       app.

       Return  right  away with status of XmPDM_NOTIFY_FAIL (e.g. if the function couldn't malloc memory for the
       selection value, or if XPDMDISPLAY is not "print" or "video") or with XmPDM_NOTIFY_SUCCESS ,  which  only
       means  a  "message"  was sent out to the PDM specified by XPDMSELECTION , not that it's already up on the
       screen yet.

       In  order  to  know  if  the  PDM  is  up,  or   not   running,   the   application   must   register   a
       XmNpdmNotificationCallback with the Print Shell.

       XmPrintPopupPDM  puts  up  an InputOnly window on top of the dialog, so that the end user doesn't use the
       print setup dialog while the PDM is trying to come up. This window  is  automatically  removed  when  the
       shell is about to call the callback for the first time.

       print_shell
                 The Print Shell used for this print job and context.

       video_transient_for
                 The video widget dealing with application print setup.

RETURN VALUE

       Returns  XmPDM_NOTIFY_SUCCESS  if  the function was able to send the notification out to the PDM process,
       XmPDM_NOTIFY_FAIL otherwise.

ERRORS/WARNINGS

       Not applicable.

EXAMPLES

       Example of callback from a Print set up dialog box "Setup..." button:

       PrintSetupCallback(print_dialog...)
       /*-------------*/
       {
           if (XmPrintPopupPDM (pshell, XtParent(print_dialog)) !=
                                           XmPDM_NOTIFY_SUCCESS) {
               /* some error dialog */
           }
       }

       Example of XmNpdmNotificationCallback from a Print Shell:

       pdmNotifyCB(print_shell...)
       {
           XmPrintShellCallBackStruct * pr_cb = ...

           switch (pr_cb->reason) {
              case XmCR_PDM_NONE:
                  /* no PDM available */
                  PostErrorDialog(...);
                  break;
              case XmCR_PDM_VXAUTH:
                  /* PDM is not authorized ... */
                  PostErrorDialog(...);
                  break;
              case XmCR_PDM_UP: the PDM is up and running
                  /* everything is fine */
                  break;
                      default: /* other cases */
          }
       }

SEE ALSO

       XmPrintSetup(3), XmPrintShell(3), XmRedisplayWidget(3), XmPrintToFile(3)

                                                                                              XmPrintPopupPDM(3)