Home | History | Annotate | Download | only in base
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef BASE_MESSAGE_PUMP_GLIB_X_DISPATCH_H
      6 #define BASE_MESSAGE_PUMP_GLIB_X_DISPATCH_H
      7 
      8 #include "base/message_pump.h"
      9 #include "base/message_pump_glib.h"
     10 
     11 typedef union _XEvent XEvent;
     12 
     13 namespace base {
     14 
     15 // The message pump used for TOUCH_UI on linux is MessagePumpGlibX, which can
     16 // dispatch both GdkEvents* and XEvents* captured directly from X.
     17 // MessagePumpForUI::Dispatcher provides the mechanism for dispatching
     18 // GdkEvents. This class provides additional mechanism for dispatching XEvents.
     19 class MessagePumpGlibXDispatcher : public MessagePumpForUI::Dispatcher {
     20  public:
     21   enum DispatchStatus {
     22     EVENT_IGNORED,    // The event was not processed.
     23     EVENT_PROCESSED,  // The event has been processed.
     24     EVENT_QUIT        // The event was processed and the message-loop should
     25                       // terminate.
     26   };
     27 
     28   // Dispatches the event. EVENT_IGNORED is returned if the event was ignored
     29   // (i.e. not processed). EVENT_PROCESSED is returned if the event was
     30   // processed. The nested loop exits immediately if EVENT_QUIT is returned.
     31   virtual DispatchStatus DispatchX(XEvent* xevent) = 0;
     32 };
     33 
     34 }  // namespace base
     35 
     36 #endif  // BASE_MESSAGE_PUMP_GLIB_X_DISPATCH_H
     37