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

kjsembed

jseventutils.cpp

Go to the documentation of this file.
00001 /* This file is part of the KDE libraries
00002     Copyright (C) 2003,2004,2005, 2006 Ian Reinhart Geiser <geiseri@kde.org>
00003     Copyright (C) 2003,2004,2005, 2006 Matt Broadstone <mbroadst@gmail.com>
00004     Copyright (C) 2003,2004,2005, 2006 Richard J. Moore <rich@kde.org>
00005     Copyright (C) 2003,2004,2005, 2006 Erik L. Bunce <kde@bunce.us>
00006 
00007     This library is free software; you can redistribute it and/or
00008     modify it under the terms of the GNU Library General Public
00009     License as published by the Free Software Foundation; either
00010     version 2 of the License, or (at your option) any later version.
00011 
00012     This library is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015     Library General Public License for more details.
00016 
00017     You should have received a copy of the GNU Library General Public License
00018     along with this library; see the file COPYING.LIB.  If not, write to
00019     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00020     Boston, MA 02110-1301, USA.
00021 */
00022 
00023 #include "jseventutils.h"
00024 #include "qobject_binding.h"
00025 
00026 namespace KJSEmbed
00027 {
00028 
00029 namespace JSEventUtils
00030 {
00031     KJS::JSObject *event( KJS::ExecState *exec, const QEvent *ev )
00032     {
00033         switch( ev->type() )
00034         {
00035             case QEvent::Resize:
00036                 return convertEvent( exec, (QResizeEvent*)ev );
00037                 break;
00038             case QEvent::Timer:
00039                 return convertEvent( exec, (QTimerEvent*)ev );
00040                 break;
00041             case QEvent::MouseButtonPress:
00042             case QEvent::MouseButtonRelease:
00043             case QEvent::MouseButtonDblClick:
00044             case QEvent::MouseMove:
00045             case QEvent::Enter:
00046             case QEvent::Leave:
00047                 return convertEvent( exec, (QMouseEvent*)ev );
00048                 break;
00049             case QEvent::KeyPress:
00050             case QEvent::KeyRelease:
00051                 return convertEvent( exec, (QKeyEvent*)ev );
00052                 break;
00053             case QEvent::FocusIn:
00054             case QEvent::FocusOut:
00055                 return convertEvent( exec, (QFocusEvent*)ev );
00056                 break;
00057             case QEvent::Paint:
00058                 return convertEvent( exec, (QPaintEvent*)ev );
00059                 break;
00060             case QEvent::Move:
00061                 return convertEvent( exec, (QMoveEvent*)ev );
00062                 break;
00063             case QEvent::Create:
00064             case QEvent::Destroy:
00065             case QEvent::Show:
00066             case QEvent::Hide:
00067             case QEvent::Close:
00068                 return convertEvent( exec, (QCloseEvent*)ev );
00069                 break;
00070             case QEvent::Quit:
00071             case QEvent::ParentChange:
00072             case QEvent::ParentAboutToChange:
00073             case QEvent::ThreadChange:
00074             case QEvent::WindowActivate:
00075             case QEvent::WindowDeactivate:
00076             case QEvent::ShowToParent:
00077             case QEvent::HideToParent:
00078             case QEvent::Wheel:
00079             case QEvent::WindowTitleChange:
00080             case QEvent::WindowIconChange:
00081             case QEvent::ApplicationWindowIconChange:
00082             case QEvent::ApplicationFontChange:
00083             case QEvent::ApplicationLayoutDirectionChange:
00084             case QEvent::ApplicationPaletteChange:
00085             case QEvent::PaletteChange:
00086             case QEvent::Clipboard:
00087             case QEvent::Speech:
00088             case QEvent::MetaCall:
00089             case QEvent::SockAct:
00090             //case QEvent::WinEventAct: conflicts with QEvent::QueryWhatsThis
00091             case QEvent::DeferredDelete:
00092             case QEvent::DragEnter:
00093             case QEvent::DragMove:
00094             case QEvent::DragLeave:
00095             case QEvent::Drop:
00096             case QEvent::DragResponse:
00097             case QEvent::ChildAdded:
00098             case QEvent::ChildPolished:
00099             case QEvent::ChildRemoved:
00100             case QEvent::ShowWindowRequest:
00101             case QEvent::PolishRequest:
00102             case QEvent::Polish:
00103             case QEvent::LayoutRequest:
00104             case QEvent::UpdateRequest:
00105             case QEvent::EmbeddingControl:
00106             case QEvent::ActivateControl:
00107             case QEvent::DeactivateControl:
00108             case QEvent::ContextMenu:
00109             case QEvent::InputMethod:
00110             case QEvent::AccessibilityPrepare:
00111             case QEvent::TabletMove:
00112             case QEvent::LocaleChange:
00113             case QEvent::LanguageChange:
00114             case QEvent::LayoutDirectionChange:
00115             case QEvent::Style:
00116             case QEvent::TabletPress:
00117             case QEvent::TabletRelease:
00118             case QEvent::OkRequest:
00119             case QEvent::HelpRequest:
00120             case QEvent::IconDrag:
00121             case QEvent::FontChange:
00122             case QEvent::EnabledChange:
00123             case QEvent::ActivationChange:
00124             case QEvent::StyleChange:
00125             case QEvent::IconTextChange:
00126             case QEvent::ModifiedChange:
00127             case QEvent::MouseTrackingChange:
00128             case QEvent::WindowBlocked:
00129             case QEvent::WindowUnblocked:
00130             case QEvent::WindowStateChange:
00131             case QEvent::ToolTip:
00132             case QEvent::WhatsThis:
00133             case QEvent::StatusTip:
00134             case QEvent::ActionChanged:
00135             case QEvent::ActionAdded:
00136             case QEvent::ActionRemoved:
00137             case QEvent::FileOpen:
00138             case QEvent::Shortcut:
00139             case QEvent::ShortcutOverride:
00140             case QEvent::WhatsThisClicked:
00141             case QEvent::ToolBarChange:
00142             case QEvent::ApplicationActivated:
00143             case QEvent::ApplicationDeactivated:
00144             case QEvent::QueryWhatsThis:
00145             case QEvent::EnterWhatsThisMode:
00146             case QEvent::LeaveWhatsThisMode:
00147             case QEvent::ZOrderChange:
00148             case QEvent::HoverEnter:
00149             case QEvent::HoverLeave:
00150             case QEvent::HoverMove:
00151             case QEvent::AccessibilityHelp:
00152             case QEvent::AccessibilityDescription:
00153             default:
00154                 return convertEvent( exec, ev );
00155                 break;
00156         }
00157     }
00158 
00159     KJS::JSObject *convertEvent( KJS::ExecState *exec, const QEvent *ev)
00160     {
00161         ObjectBinding *evnt = new ObjectBinding( exec, "QEvent", ev );
00162         evnt->put( exec, "type", KJS::jsNumber( (int) ev->type()) );
00163         evnt->put( exec, "spontaneous", KJS::jsBoolean(ev->spontaneous()) );
00164         evnt->put( exec, "isAccepted", KJS::jsBoolean(ev->isAccepted()) );
00165         return evnt;
00166     }
00167 
00168     KJS::JSObject *convertEvent( KJS::ExecState *exec, const QInputEvent *ev)
00169     {
00170         KJS::JSObject *iev = convertEvent( exec, (QEvent *)ev );
00171         iev->put( exec, "modifiers", KJS::jsNumber( ev->modifiers() ));
00172         return iev;
00173     }
00174 
00175     KJS::JSObject *convertEvent( KJS::ExecState *exec, const QMouseEvent *ev)
00176     {
00177         KJS::JSObject *mev = convertEvent( exec, (QInputEvent *)ev );
00178 
00179         mev->put( exec, "pos", convertToValue( exec, ev->pos() ));
00180         mev->put( exec, "x", KJS::jsNumber( ev->x() ));
00181         mev->put( exec, "y", KJS::jsNumber( ev->y() ));
00182 
00183         mev->put( exec, "globalPos", convertToValue( exec, ev->globalPos() ));
00184         mev->put( exec, "globalX", KJS::jsNumber( ev->globalX() ));
00185         mev->put( exec, "globalY", KJS::jsNumber( ev->globalY() ));
00186 
00187         mev->put( exec, "button", KJS::jsNumber(ev->button()) );
00188         mev->put( exec, "buttons", KJS::jsNumber(ev->buttons()) );
00189 
00190         return mev;
00191     }
00192 
00193     KJS::JSObject *convertEvent( KJS::ExecState *exec, const QPaintEvent *ev)
00194     {
00195         KJS::JSObject *pev = convertEvent( exec, (QEvent *)ev );
00196 
00197         pev->put( exec, "rect", convertToValue( exec, ev->rect() ) );
00198 //         pev->put( exec, "region", convertToValue( exec, ev->region() ) );
00199         return pev;
00200     }
00201 
00202     KJS::JSObject *convertEvent( KJS::ExecState *exec, const QKeyEvent *ev)
00203     {
00204         KJS::JSObject *kev = convertEvent( exec, (QInputEvent *)ev );
00205 
00206         kev->put( exec, "key", KJS::jsNumber(ev->key()) );
00207         kev->put( exec, "text", KJS::jsString(ev->text()));
00208         kev->put( exec, "isAutoRepeat", KJS::jsBoolean(ev->isAutoRepeat()) );
00209         kev->put( exec, "count", KJS::jsNumber( ev->count()) );
00210         return kev;
00211     }
00212 
00213     KJS::JSObject *convertEvent( KJS::ExecState *exec, const QInputMethodEvent *ev)
00214     {
00215         KJS::JSObject *qev = convertEvent( exec, (QEvent *)ev );
00216 
00217         qev->put( exec, "commitString", KJS::jsString(ev->commitString()) );
00218         qev->put( exec, "preeditString", KJS::jsString(ev->preeditString()) );
00219         qev->put( exec, "replacementLength", KJS::jsNumber(ev->replacementLength()) );
00220         qev->put( exec, "replacementStart", KJS::jsNumber(ev->replacementStart()) );
00221         return qev;
00222     }
00223 
00224     KJS::JSObject *convertEvent( KJS::ExecState *exec, const QResizeEvent *ev)
00225     {
00226         KJS::JSObject *rev = convertEvent( exec, (QEvent *)ev );
00227 
00228         rev->put( exec, "size", convertToValue( exec, ev->size() ));
00229         rev->put( exec, "oldSize", convertToValue( exec, ev->oldSize()  ));
00230         return rev;
00231     }
00232 
00233     KJS::JSObject *convertEvent( KJS::ExecState *exec, const QCloseEvent *ev)
00234     {
00235         KJS::JSObject *cev = convertEvent( exec, (QEvent *)ev );
00236 
00237         cev->put( exec, "isAccepted", KJS::jsBoolean(ev->isAccepted()) );
00238         return cev;
00239     }
00240 
00241     KJS::JSObject *convertEvent( KJS::ExecState *exec, const QMoveEvent *ev)
00242     {
00243         KJS::JSObject *mev = convertEvent( exec, (QEvent *)ev );
00244 
00245         mev->put( exec, "pos", convertToValue( exec, ev->pos() ));
00246         mev->put( exec, "oldPos", convertToValue( exec, ev->oldPos() ));
00247         return mev;
00248     }
00249 
00250     KJS::JSObject *convertEvent( KJS::ExecState *exec, const QWheelEvent *ev)
00251     {
00252         KJS::JSObject *wev = convertEvent( exec, (QInputEvent *)ev );
00253 
00254         wev->put( exec, "delta", KJS::jsNumber(ev->delta()) );
00255         wev->put( exec, "pos", convertToValue( exec, ev->pos() ) );
00256         wev->put( exec, "globalPos", convertToValue( exec, ev->globalPos() ) );
00257         wev->put( exec, "x", KJS::jsNumber(ev->x()) );
00258         wev->put( exec, "y", KJS::jsNumber(ev->y()) );
00259         wev->put( exec, "globalX", KJS::jsNumber(ev->globalX()) );
00260         wev->put( exec, "globalY", KJS::jsNumber(ev->globalY()) );
00261         wev->put( exec, "orientation", KJS::jsNumber(ev->orientation()) );
00262         wev->put( exec, "buttons", KJS::jsNumber(ev->buttons()) );
00263 
00264         return wev;
00265     }
00266 
00267     KJS::JSObject *convertEvent( KJS::ExecState * exec, const QDropEvent * ev)
00268     {
00269         KJS::JSObject *dev = convertEvent( exec, (QEvent *)ev );
00270         dev->put( exec, "pos", convertToValue( exec, ev->pos() ) );
00271         dev->put( exec, "source", new QObjectBinding(exec, (QObject*)ev->source() ) );
00272         dev->put( exec, "dropAction", KJS::jsNumber( (int)(ev->dropAction()) ) );
00273         dev->put( exec, "keyboardModifiers", KJS::jsNumber( (int)(ev->keyboardModifiers()) ) );
00274         dev->put( exec, "possibleActions", KJS::jsNumber( (int)(ev->possibleActions()) ) );
00275         dev->put( exec, "proposedAction", KJS::jsNumber( (int)(ev->proposedAction()) ) );
00276         return dev;
00277     }
00278 
00279     KJS::JSObject *convertEvent( KJS::ExecState *exec, const QDragMoveEvent *ev)
00280     {
00281         KJS::JSObject *mev = convertEvent(exec, (QDropEvent *)ev );
00282         mev->put( exec, "answerRect", convertToValue( exec, ev->answerRect() ) );
00283         return mev;
00284     }
00285 
00286     KJS::JSObject *convertEvent( KJS::ExecState *exec, const QTimerEvent *ev)
00287     {
00288         KJS::JSObject *dev = convertEvent( exec, (QEvent *)ev );
00289         dev->put( exec, "timerId", KJS::jsNumber(ev->timerId()) );
00290         return dev;
00291     }
00292 
00293     KJS::JSObject *convertEvent( KJS::ExecState *exec, const QContextMenuEvent *ev)
00294     {
00295         KJS::JSObject *cxev = convertEvent( exec, (QInputEvent *)ev );
00296         cxev->put( exec, "x", KJS::jsNumber(ev->x()) );
00297         cxev->put( exec, "y", KJS::jsNumber(ev->y()) );
00298         cxev->put( exec, "globalX", KJS::jsNumber(ev->globalX()) );
00299         cxev->put( exec, "globalY", KJS::jsNumber(ev->globalY()) );
00300         cxev->put( exec, "pos",convertToValue( exec, ev->pos() ) );
00301         cxev->put( exec, "globalPos", convertToValue( exec, ev->globalPos() ) );
00302         cxev->put( exec, "reason", KJS::jsNumber((int)ev->reason()) );
00303         return cxev;
00304     }
00305 
00306     KJS::JSObject *convertEvent( KJS::ExecState *exec, const QFocusEvent *ev)
00307     {
00308          KJS::JSObject *dev = convertEvent( exec, (QEvent *)ev );
00309          dev->put( exec, "gotFocus", KJS::jsBoolean( ev->gotFocus() ) );
00310          dev->put( exec, "lostFocus", KJS::jsBoolean( ev->lostFocus() ));
00311          //Gold star trolltech!
00312          dev->put( exec, "reason", KJS::jsNumber((int) const_cast<QFocusEvent*>( ev )->reason() ) );
00313          return dev;
00314     }
00315 }// namespace JSEventUtils
00316 }// namespace KJSEmbed
00317 
00318 //kate: indent-spaces on; indent-width 4; replace-tabs on; indent-mode cstyle;

kjsembed

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

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.6.1
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal