KJsEmbed

eventproxy.h
1 /* This file is part of the KDE libraries
2  Copyright (C) 2003,2004,2005,2006 Ian Reinhart Geiser <[email protected]>
3  Copyright (C) 2003,2004,2005,2006 Matt Broadstone <[email protected]>
4  Copyright (C) 2003,2004,2005,2006 Richard J. Moore <[email protected]>
5  Copyright (C) 2003,2004,2005,2006 Erik L. Bunce <[email protected]>
6 
7  This library is free software; you can redistribute it and/or
8  modify it under the terms of the GNU Library General Public
9  License as published by the Free Software Foundation; either
10  version 2 of the License, or (at your option) any later version.
11 
12  This library is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  Library General Public License for more details.
16 
17  You should have received a copy of the GNU Library General Public License
18  along with this library; see the file COPYING.LIB. If not, write to
19  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20  Boston, MA 02110-1301, USA.
21 */
22 
23 #ifndef EVENTPROXY_H
24 #define EVENTPROXY_H
25 #include <QObject>
26 #include <QBitRef>
27 #include <QEvent>
28 
29 #include <kjs/object.h>
30 
31 namespace KJS
32 {
33 class Interpreter;
34 }
35 
36 namespace KJSEmbed
37 {
38 class QObjectBinding;
39 /**
40 * Filters events for a QObject and forwards them to a JS handler.
41 * @author Richard Moore, [email protected]
42 */
43 class EventProxy : public QObject
44 {
45 public:
46  EventProxy(QObjectBinding *watch, KJS::Interpreter *interpreter);
47  ~EventProxy() override;
48 
49  /** Returns true iff we forward the event type to JS. */
50  bool isFiltered(QEvent::Type t) const;
51 
52  /** Adds an event type to those we forward to JS. */
53  void addFilter(QEvent::Type t);
54 
55  /**
56  * Removes an event type from those we forward to JS. If there are no
57  * event types left to forward then we self-destruct.
58  */
59  void removeFilter(QEvent::Type t);
60 
61  /** Reimplemented to forward events to JS. */
62  bool eventFilter(QObject *watched, QEvent *e) override;
63 
64 protected:
65  bool callHandler(QEvent *e);
66 
67 private:
68  QObjectBinding *m_watch;
69  KJS::Interpreter *m_interpreter;
70  QBitArray m_eventMask;
71  uint m_refcount;
72 };
73 }
74 
75 #endif
Implement QString-KJS::UString conversion methods.
void removeFilter(QEvent::Type t)
Removes an event type from those we forward to JS.
Definition: eventproxy.cpp:72
bool eventFilter(QObject *watched, QEvent *e) override
Reimplemented to forward events to JS.
Definition: eventproxy.cpp:88
Filters events for a QObject and forwards them to a JS handler.
Definition: eventproxy.h:43
void addFilter(QEvent::Type t)
Adds an event type to those we forward to JS.
Definition: eventproxy.cpp:53
bool isFiltered(QEvent::Type t) const
Returns true iff we forward the event type to JS.
Definition: eventproxy.cpp:45
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Sun Dec 10 2023 03:59:19 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.