• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.14.38 API Reference
  • KDE Home
  • Contact Us
 

kjsembed

  • kjsembed
  • kjsembed
jseventutils.cpp
Go to the documentation of this file.
1/* This file is part of the KDE libraries
2 Copyright (C) 2003,2004,2005, 2006 Ian Reinhart Geiser <geiseri@kde.org>
3 Copyright (C) 2003,2004,2005, 2006 Matt Broadstone <mbroadst@gmail.com>
4 Copyright (C) 2003,2004,2005, 2006 Richard J. Moore <rich@kde.org>
5 Copyright (C) 2003,2004,2005, 2006 Erik L. Bunce <kde@bunce.us>
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#include "jseventutils.h"
24#include "qobject_binding.h"
25
26namespace KJSEmbed
27{
28
29namespace JSEventUtils
30{
31 KJS::JSObject *event( KJS::ExecState *exec, const QEvent *ev )
32 {
33 switch( ev->type() )
34 {
35 case QEvent::Resize:
36 return convertEvent( exec, (QResizeEvent*)ev );
37 break;
38 case QEvent::Timer:
39 return convertEvent( exec, (QTimerEvent*)ev );
40 break;
41 case QEvent::MouseButtonPress:
42 case QEvent::MouseButtonRelease:
43 case QEvent::MouseButtonDblClick:
44 case QEvent::MouseMove:
45 case QEvent::Enter:
46 case QEvent::Leave:
47 return convertEvent( exec, (QMouseEvent*)ev );
48 break;
49 case QEvent::KeyPress:
50 case QEvent::KeyRelease:
51 return convertEvent( exec, (QKeyEvent*)ev );
52 break;
53 case QEvent::FocusIn:
54 case QEvent::FocusOut:
55 return convertEvent( exec, (QFocusEvent*)ev );
56 break;
57 case QEvent::Paint:
58 return convertEvent( exec, (QPaintEvent*)ev );
59 break;
60 case QEvent::Move:
61 return convertEvent( exec, (QMoveEvent*)ev );
62 break;
63 case QEvent::Create:
64 case QEvent::Destroy:
65 case QEvent::Show:
66 case QEvent::Hide:
67 case QEvent::Close:
68 return convertEvent( exec, (QCloseEvent*)ev );
69 break;
70 case QEvent::Quit:
71 case QEvent::ParentChange:
72 case QEvent::ParentAboutToChange:
73 case QEvent::ThreadChange:
74 case QEvent::WindowActivate:
75 case QEvent::WindowDeactivate:
76 case QEvent::ShowToParent:
77 case QEvent::HideToParent:
78 case QEvent::Wheel:
79 case QEvent::WindowTitleChange:
80 case QEvent::WindowIconChange:
81 case QEvent::ApplicationWindowIconChange:
82 case QEvent::ApplicationFontChange:
83 case QEvent::ApplicationLayoutDirectionChange:
84 case QEvent::ApplicationPaletteChange:
85 case QEvent::PaletteChange:
86 case QEvent::Clipboard:
87 case QEvent::Speech:
88 case QEvent::MetaCall:
89 case QEvent::SockAct:
90 //case QEvent::WinEventAct: conflicts with QEvent::QueryWhatsThis
91 case QEvent::DeferredDelete:
92 case QEvent::DragEnter:
93 case QEvent::DragMove:
94 case QEvent::DragLeave:
95 case QEvent::Drop:
96 case QEvent::DragResponse:
97 case QEvent::ChildAdded:
98 case QEvent::ChildPolished:
99 case QEvent::ChildRemoved:
100 case QEvent::ShowWindowRequest:
101 case QEvent::PolishRequest:
102 case QEvent::Polish:
103 case QEvent::LayoutRequest:
104 case QEvent::UpdateRequest:
105 case QEvent::EmbeddingControl:
106 case QEvent::ActivateControl:
107 case QEvent::DeactivateControl:
108 case QEvent::ContextMenu:
109 case QEvent::InputMethod:
110 case QEvent::AccessibilityPrepare:
111 case QEvent::TabletMove:
112 case QEvent::LocaleChange:
113 case QEvent::LanguageChange:
114 case QEvent::LayoutDirectionChange:
115 case QEvent::Style:
116 case QEvent::TabletPress:
117 case QEvent::TabletRelease:
118 case QEvent::OkRequest:
119 case QEvent::HelpRequest:
120 case QEvent::IconDrag:
121 case QEvent::FontChange:
122 case QEvent::EnabledChange:
123 case QEvent::ActivationChange:
124 case QEvent::StyleChange:
125 case QEvent::IconTextChange:
126 case QEvent::ModifiedChange:
127 case QEvent::MouseTrackingChange:
128 case QEvent::WindowBlocked:
129 case QEvent::WindowUnblocked:
130 case QEvent::WindowStateChange:
131 case QEvent::ToolTip:
132 case QEvent::WhatsThis:
133 case QEvent::StatusTip:
134 case QEvent::ActionChanged:
135 case QEvent::ActionAdded:
136 case QEvent::ActionRemoved:
137 case QEvent::FileOpen:
138 case QEvent::Shortcut:
139 case QEvent::ShortcutOverride:
140 case QEvent::WhatsThisClicked:
141 case QEvent::ToolBarChange:
142 case QEvent::ApplicationActivated:
143 case QEvent::ApplicationDeactivated:
144 case QEvent::QueryWhatsThis:
145 case QEvent::EnterWhatsThisMode:
146 case QEvent::LeaveWhatsThisMode:
147 case QEvent::ZOrderChange:
148 case QEvent::HoverEnter:
149 case QEvent::HoverLeave:
150 case QEvent::HoverMove:
151 case QEvent::AccessibilityHelp:
152 case QEvent::AccessibilityDescription:
153 default:
154 return convertEvent( exec, ev );
155 break;
156 }
157 }
158
159 KJS::JSObject *convertEvent( KJS::ExecState *exec, const QEvent *ev)
160 {
161 ObjectBinding *evnt = new ObjectBinding( exec, "QEvent", ev );
162 evnt->put( exec, "type", KJS::jsNumber( (int) ev->type()) );
163 evnt->put( exec, "spontaneous", KJS::jsBoolean(ev->spontaneous()) );
164 evnt->put( exec, "isAccepted", KJS::jsBoolean(ev->isAccepted()) );
165 return evnt;
166 }
167
168 KJS::JSObject *convertEvent( KJS::ExecState *exec, const QInputEvent *ev)
169 {
170 KJS::JSObject *iev = convertEvent( exec, (QEvent *)ev );
171 iev->put( exec, "modifiers", KJS::jsNumber( ev->modifiers() ));
172 return iev;
173 }
174
175 KJS::JSObject *convertEvent( KJS::ExecState *exec, const QMouseEvent *ev)
176 {
177 KJS::JSObject *mev = convertEvent( exec, (QInputEvent *)ev );
178
179 mev->put( exec, "pos", convertToValue( exec, ev->pos() ));
180 mev->put( exec, "x", KJS::jsNumber( ev->x() ));
181 mev->put( exec, "y", KJS::jsNumber( ev->y() ));
182
183 mev->put( exec, "globalPos", convertToValue( exec, ev->globalPos() ));
184 mev->put( exec, "globalX", KJS::jsNumber( ev->globalX() ));
185 mev->put( exec, "globalY", KJS::jsNumber( ev->globalY() ));
186
187 mev->put( exec, "button", KJS::jsNumber(ev->button()) );
188 mev->put( exec, "buttons", KJS::jsNumber(ev->buttons()) );
189
190 return mev;
191 }
192
193 KJS::JSObject *convertEvent( KJS::ExecState *exec, const QPaintEvent *ev)
194 {
195 KJS::JSObject *pev = convertEvent( exec, (QEvent *)ev );
196
197 pev->put( exec, "rect", convertToValue( exec, ev->rect() ) );
198// pev->put( exec, "region", convertToValue( exec, ev->region() ) );
199 return pev;
200 }
201
202 KJS::JSObject *convertEvent( KJS::ExecState *exec, const QKeyEvent *ev)
203 {
204 KJS::JSObject *kev = convertEvent( exec, (QInputEvent *)ev );
205
206 kev->put( exec, "key", KJS::jsNumber(ev->key()) );
207 kev->put( exec, "text", KJS::jsString(ev->text()));
208 kev->put( exec, "isAutoRepeat", KJS::jsBoolean(ev->isAutoRepeat()) );
209 kev->put( exec, "count", KJS::jsNumber( ev->count()) );
210 return kev;
211 }
212
213 KJS::JSObject *convertEvent( KJS::ExecState *exec, const QInputMethodEvent *ev)
214 {
215 KJS::JSObject *qev = convertEvent( exec, (QEvent *)ev );
216
217 qev->put( exec, "commitString", KJS::jsString(ev->commitString()) );
218 qev->put( exec, "preeditString", KJS::jsString(ev->preeditString()) );
219 qev->put( exec, "replacementLength", KJS::jsNumber(ev->replacementLength()) );
220 qev->put( exec, "replacementStart", KJS::jsNumber(ev->replacementStart()) );
221 return qev;
222 }
223
224 KJS::JSObject *convertEvent( KJS::ExecState *exec, const QResizeEvent *ev)
225 {
226 KJS::JSObject *rev = convertEvent( exec, (QEvent *)ev );
227
228 rev->put( exec, "size", convertToValue( exec, ev->size() ));
229 rev->put( exec, "oldSize", convertToValue( exec, ev->oldSize() ));
230 return rev;
231 }
232
233 KJS::JSObject *convertEvent( KJS::ExecState *exec, const QCloseEvent *ev)
234 {
235 KJS::JSObject *cev = convertEvent( exec, (QEvent *)ev );
236
237 cev->put( exec, "isAccepted", KJS::jsBoolean(ev->isAccepted()) );
238 return cev;
239 }
240
241 KJS::JSObject *convertEvent( KJS::ExecState *exec, const QMoveEvent *ev)
242 {
243 KJS::JSObject *mev = convertEvent( exec, (QEvent *)ev );
244
245 mev->put( exec, "pos", convertToValue( exec, ev->pos() ));
246 mev->put( exec, "oldPos", convertToValue( exec, ev->oldPos() ));
247 return mev;
248 }
249
250 KJS::JSObject *convertEvent( KJS::ExecState *exec, const QWheelEvent *ev)
251 {
252 KJS::JSObject *wev = convertEvent( exec, (QInputEvent *)ev );
253
254 wev->put( exec, "delta", KJS::jsNumber(ev->delta()) );
255 wev->put( exec, "pos", convertToValue( exec, ev->pos() ) );
256 wev->put( exec, "globalPos", convertToValue( exec, ev->globalPos() ) );
257 wev->put( exec, "x", KJS::jsNumber(ev->x()) );
258 wev->put( exec, "y", KJS::jsNumber(ev->y()) );
259 wev->put( exec, "globalX", KJS::jsNumber(ev->globalX()) );
260 wev->put( exec, "globalY", KJS::jsNumber(ev->globalY()) );
261 wev->put( exec, "orientation", KJS::jsNumber(ev->orientation()) );
262 wev->put( exec, "buttons", KJS::jsNumber(ev->buttons()) );
263
264 return wev;
265 }
266
267 KJS::JSObject *convertEvent( KJS::ExecState * exec, const QDropEvent * ev)
268 {
269 KJS::JSObject *dev = convertEvent( exec, (QEvent *)ev );
270 dev->put( exec, "pos", convertToValue( exec, ev->pos() ) );
271 dev->put( exec, "source", new QObjectBinding(exec, (QObject*)ev->source() ) );
272 dev->put( exec, "dropAction", KJS::jsNumber( (int)(ev->dropAction()) ) );
273 dev->put( exec, "keyboardModifiers", KJS::jsNumber( (int)(ev->keyboardModifiers()) ) );
274 dev->put( exec, "possibleActions", KJS::jsNumber( (int)(ev->possibleActions()) ) );
275 dev->put( exec, "proposedAction", KJS::jsNumber( (int)(ev->proposedAction()) ) );
276 return dev;
277 }
278
279 KJS::JSObject *convertEvent( KJS::ExecState *exec, const QDragMoveEvent *ev)
280 {
281 KJS::JSObject *mev = convertEvent(exec, (QDropEvent *)ev );
282 mev->put( exec, "answerRect", convertToValue( exec, ev->answerRect() ) );
283 return mev;
284 }
285
286 KJS::JSObject *convertEvent( KJS::ExecState *exec, const QTimerEvent *ev)
287 {
288 KJS::JSObject *dev = convertEvent( exec, (QEvent *)ev );
289 dev->put( exec, "timerId", KJS::jsNumber(ev->timerId()) );
290 return dev;
291 }
292
293 KJS::JSObject *convertEvent( KJS::ExecState *exec, const QContextMenuEvent *ev)
294 {
295 KJS::JSObject *cxev = convertEvent( exec, (QInputEvent *)ev );
296 cxev->put( exec, "x", KJS::jsNumber(ev->x()) );
297 cxev->put( exec, "y", KJS::jsNumber(ev->y()) );
298 cxev->put( exec, "globalX", KJS::jsNumber(ev->globalX()) );
299 cxev->put( exec, "globalY", KJS::jsNumber(ev->globalY()) );
300 cxev->put( exec, "pos",convertToValue( exec, ev->pos() ) );
301 cxev->put( exec, "globalPos", convertToValue( exec, ev->globalPos() ) );
302 cxev->put( exec, "reason", KJS::jsNumber((int)ev->reason()) );
303 return cxev;
304 }
305
306 KJS::JSObject *convertEvent( KJS::ExecState *exec, const QFocusEvent *ev)
307 {
308 KJS::JSObject *dev = convertEvent( exec, (QEvent *)ev );
309 dev->put( exec, "gotFocus", KJS::jsBoolean( ev->gotFocus() ) );
310 dev->put( exec, "lostFocus", KJS::jsBoolean( ev->lostFocus() ));
311 //Gold star trolltech!
312 dev->put( exec, "reason", KJS::jsNumber((int) const_cast<QFocusEvent*>( ev )->reason() ) );
313 return dev;
314 }
315}// namespace JSEventUtils
316}// namespace KJSEmbed
317
318//kate: indent-spaces on; indent-width 4; replace-tabs on; indent-mode cstyle;
KJSEmbed::ObjectBinding
Definition: object_binding.h:89
KJSEmbed::QObjectBinding
Definition: qobject_binding.h:80
QObject
jseventutils.h
KJSEmbed::JSEventUtils::event
KJS::JSObject * event(KJS::ExecState *exec, const QEvent *ev)
Definition: jseventutils.cpp:31
KJSEmbed::JSEventUtils::convertEvent
KJS::JSObject * convertEvent(KJS::ExecState *exec, const QEvent *ev)
Definition: jseventutils.cpp:159
KJSEmbed
Definition: application.h:33
KJSEmbed::convertToValue
KJSEMBED_EXPORT KJS::JSValue * convertToValue(KJS::ExecState *exec, const QVariant &value)
Convert a QVariant to a KJS::JSValue.
Definition: variant_binding.cpp:298
KJS::jsString
KJS::JSCell * jsString(const QString &s)
Definition: kjseglobal.h:73
qobject_binding.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kjsembed

Skip menu "kjsembed"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal