コード例 #1
0
ファイル: XsOutline.C プロジェクト: beanhome/dev
Boolean XsOutline::go (Boolean drawInitial)
{
   XtAppContext appContext = XtWidgetToApplicationContext (_w);
   XEvent event;
   int   done = 0;
   
// Grab the pointer

   if (_grabPointer ( ) == False)
      return (False);      
   
// Draw the initial box (if requested)

   if (drawInitial)
      _drawOutline (False);

// Process the events locally

   while (!done)
   {
      XtAppNextEvent (appContext, &event);

      switch (event.type)
      {
         case ButtonRelease:
         {

// Clear the outline and break

            _drawOutline (True);
            done = 1;
            break;
         }
         case MotionNotify:
         {
            XEvent next;
            
// Process only the last motion event

            while (XPending (XtDisplay (_w)) > 0)
            {
               XPeekEvent (XtDisplay (_w), &next);
               if (next.type != MotionNotify)
                  break;
               XtAppNextEvent (appContext, &event);
            }
               
// Send this event

            _motionHandler (&event);
            
            break;
         }
         default:
         {
            XtDispatchEvent (&event);
            break;
         }
      }
   }

// Ungrab the pointer

   _ungrabPointer ( );
   
   return (True);
}
コード例 #2
0
Boolean XsOutline::go (Boolean drawInitial)
{
   XtAppContext appContext = XtWidgetToApplicationContext (_w);
   XEvent event;
   int   done = 0;
   
// Grab the pointer

   if (_grabPointer ( ) == False)
      return (False);      
   
// Draw the initial box (if requested)

   if (drawInitial)
      _drawOutline (False);

// Process the events locally

#if defined(__INTEL_COMPILER) && 1 /* VDM auto patch */
#   pragma ivdep
#   pragma swp
#   pragma unroll
#   pragma prefetch
#   if 0
#       pragma simd noassert
#   endif
#endif /* VDM auto patch */
   while (!done)
   {
      XtAppNextEvent (appContext, &event);

      switch (event.type)
      {
         case ButtonRelease:
         {

// Clear the outline and break

            _drawOutline (True);
            done = 1;
            break;
         }
         case MotionNotify:
         {
            XEvent next;
            
// Process only the last motion event

#if defined(__INTEL_COMPILER) && 1 /* VDM auto patch */
#   pragma ivdep
#   pragma swp
#   pragma unroll
#   pragma prefetch
#   if 0
#       pragma simd noassert
#   endif
#endif /* VDM auto patch */
            while (XPending (XtDisplay (_w)) > 0)
            {
               XPeekEvent (XtDisplay (_w), &next);
               if (next.type != MotionNotify)
                  break;
               XtAppNextEvent (appContext, &event);
            }
               
// Send this event

            _motionHandler (&event);
            
            break;
         }
         default:
         {
            XtDispatchEvent (&event);
            break;
         }
      }
   }

// Ungrab the pointer

   _ungrabPointer ( );
   
   return (True);
}