svn merge -r 13452:14721 https://svn.blender.org/svnroot/bf-blender/trunk/blender
[blender.git] / intern / ghost / intern / GHOST_EventManager.h
index 7f955eb42dfa1140f8eb8828af50bb65dd9d4737..33e5c2f20ba96ae9efc3937b9e9ac447bd8e4409 100644 (file)
@@ -1,14 +1,11 @@
 /**
  * $Id$
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License.  See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  *
  * Contributor(s): none yet.
  *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  */
-
 /**
-
- * $Id$
- * Copyright (C) 2001 NaN Technologies B.V.
- * @author     Maarten Gribnau
- * @date       May 14, 2001
+ * @file       GHOST_EventManager.h
+ * Declaration of GHOST_EventManager class.
  */
 
 #ifndef _GHOST_EVENT_MANAGER_H_
@@ -133,6 +126,28 @@ public:
         */
        virtual GHOST_TSuccess removeConsumer(GHOST_IEventConsumer* consumer);
 
+       /**
+        * Removes all events for a window from the stack.
+        * @param       window  The window to remove events for.
+        */
+               virtual void
+        removeWindowEvents(
+               GHOST_IWindow* window
+        );
+
+       /**
+        * Removes all events of a certain type from the stack.
+        * The window parameter is optional. If non-null, the routine will remove
+        * events only associated with that window.
+        * @param       type    The type of events to be removed.
+        * @param       window  The window to remove the events for.
+        */
+               virtual void
+       removeTypeEvents(
+               GHOST_TEventType type,
+               GHOST_IWindow* window = 0
+       );
+
 protected:
        /**
         * Returns the event at the top of the stack and removes it.
@@ -146,10 +161,15 @@ protected:
         */
        virtual void disposeEvents();
 
+       /** A stack with events. */
+       typedef std::deque<GHOST_IEvent*> TEventStack;
+       
        /** The event stack. */
        std::deque<GHOST_IEvent*> m_events;
 
+       /** A vector with event consumers. */
        typedef std::vector<GHOST_IEventConsumer*> TConsumerVector;
+
        /** The list with event consumers. */
        TConsumerVector m_consumers;
 };