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

kjsembed

  • sources
  • kde-4.12
  • kdelibs
  • 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 
26 namespace KJSEmbed
27 {
28 
29 namespace 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::QObjectBinding
Definition: qobject_binding.h:79
jseventutils.h
QObject
KJSEmbed::JSEventUtils::event
KJS::JSObject * event(KJS::ExecState *exec, const QEvent *ev)
Definition: jseventutils.cpp:31
KJSEmbed::ObjectBinding
Definition: object_binding.h:88
KJSEmbed::JSEventUtils::convertEvent
KJS::JSObject * convertEvent(KJS::ExecState *exec, const QEvent *ev)
Definition: jseventutils.cpp:159
KJS::jsString
KJS::JSCell * jsString(const QString &s)
Definition: kjseglobal.h:73
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
qobject_binding.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:47:53 by doxygen 1.8.7 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 API Reference

Skip menu "kdelibs 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
  • kjsembed
  •   WTF
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Nepomuk-Core
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver

Search



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