VkInterruptDialog(3x)

VkInterruptDialog - A dialog manager that support interrupts

As shipped in IRIX 6.5.7. Last changed in IRIX 6.5.5.

NAME
     VkInterruptDialog - A dialog manager that support interrupts

INHERITS FROM
     VkBusyDialog : VkDialogManager : VkComponent : VkCallbackObject

HEADER FILE
     #include <Vk/VkInterruptDialog.h>

PUBLIC PROTOCOL SUMMARY
   Constructor/Destructor
           VkInterruptDialog(const char* name);
           virtual void ~VkInterruptDialog(void);


   Checking for Interrupts
           Boolean wasInterupted(void);


CLASS DESCRIPTION
          This class supports applications that need to perform a lengthy task
          and allow the task to be interrupted. To use the dialog,
          applications must use the VkApp::setBusyDialog() method to install
          an instance of VkInterruptDialog as the application's current busy
          dialog, and then call VkApp::busy() Applications must periodically
          check to see if the application has been interrupted. The period of
          time between checks is up to the application, which must weigh
          responsiveness against time spent checking.

          Note that checking for interrupts involves entering a secondary
          event loop for a short time, so the application must beware of re-
          entrancy problems in any callbacks that could be invoked.



FUNCTION DESCRIPTIONS
   VkInterruptDialog()
           VkInterruptDialog(const char* name);


          Initialize a VkInterruptDialog object. Normally, applications can
          use the globally instantiated theInterruptDialog.

   ~VkInterruptDialog()
           virtual void ~VkInterruptDialog(void);


          Free the memory associated with a VkInterruptDialog object.

   wasInterupted()

           Boolean wasInterupted(void);


          Check to see if the user has pushed the dialog's "cancel" button
          since the last time this function was called.

DATA MEMBER DESCRIPTIONS
   const char* const interruptedCallback;
           static const char *const interruptedCallback;


          This callback list allows objects to register a member function to
          be called when the user selects the "Cancel" button of a
          VkInterruptDialog dialog. This callback can only be called if the
          application calls wasInterrupted(). Normally, the application will
          test the return value of this function, but the callback may be
          useful in other situations.

EXAMPLE
          The following code segment installs the interrupt dialog, and
          performs a simulated lengthy task, checking for interrupts
          periodically.


           int i, j, k = 0;

            // Install the interruptible dialog as the
            // dialog to post when busy

            theApplication->setBusyDialog(theInterruptDialog);

            // Start being "busy"

            theApplication->busy("Very Busy",
                                 (BusyWindow *) clientData);

            k = 0;

            for(i=0; i<10000; i++)
            {
                 // Every so often, see if the task
                 // was interrupted

                  if(theInterruptDialog->wasInterupted())
                  {
                      break;  // kick out of current
                              // task if user interrupts
                  }

                  sleep(1);
              }

              // Task done, so we're not busy anymore

              theApplication->notBusy();

              // Restore the application's busy dialog
              // as the default

              theApplication->setBusyDialog(NULL);



INHERITED MEMBER FUNCTIONS
   Inherited from VkDialogManager
          show(), hide(), className(), clearCache(), prepost(), ok(),
          cancel(), apply(), setTitle(), setButtonLabels(), unpost(),
          unpostAll(), centerOnScreen(), lastPosted(), post(), postModal(),
          postBlocked(), postAndWait(), post(), _action, _showOK, _showCancel,
          _showApply, _allowMultipleDialogs, _minimizeMultipleDialogs,
          prepostCallback


   Inherited from VkComponent
          installDestroyHandler(), removeDestroyHandler(), widgetDestroyed(),
          setDefaultResources(), getResources(), manage(), unmanage(),
          baseWidget(), okToQuit(), _name, _baseWidget, _w, deleteCallback


   Inherited from VkCallbackObject
          callCallbacks(), addCallback(), removeCallback(),
          removeAllCallbacks()


VIEWKIT 2.1 CHANGES
     In multi-screen enabled applications or components, references to
     theInterruptDialog will only be valid for the default screen in the
     application.  The following new function API will return the
     VkInterruptDialog associated with the appropriate screen and should be
     used instead of theInterruptDialog;


           VkInterruptDialog *getAppInterruptDialog(VkComponent *comp);


CLASSES USED BY THIS CLASS
     VkApp

SEE ALSO
     VkBusyDialog, VkDialogManager, VkComponent, VkApp
     ViewKit Programmer's Guide
     The X Window System, DEC Press, Bob Sheifler and Jim Gettys
     The X Window System Toolkit, DEC Press, Paul Asente and Ralph Swick
     The OSF/Motif Programmers Reference, Prentice Hall, OSF