📄 kjs_events.h
字号:
// -*- c-basic-offset: 2 -*-/* * This file is part of the KDE libraries * Copyright (C) 2001 Peter Kelly (pmk@post.com) * Copyright (C) 2003 Apple Computer, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */#ifndef _KJS_EVENTS_H_#define _KJS_EVENTS_H_#include "ecma/kjs_dom.h"#include "ecma/kjs_html.h"#include "dom/dom2_events.h"#include "dom/dom_misc.h"namespace DOM { class ClipboardImpl; }namespace KJS { class Window; class Clipboard; class JSEventListener : public DOM::EventListener { public: JSEventListener(Object _listener, const Object &_win, bool _html = false); virtual ~JSEventListener(); virtual void handleEvent(DOM::Event &evt, bool isWindowEvent); virtual DOM::DOMString eventListenerType(); virtual Object listenerObj() const; ObjectImp *listenerObjImp() const { return listenerObj().imp(); } protected: mutable ProtectedObject listener; bool html; ProtectedObject win; }; class JSLazyEventListener : public JSEventListener { public: JSLazyEventListener(QString _code, const Object &_win, bool _html = false); virtual void handleEvent(DOM::Event &evt, bool isWindowEvent); Object listenerObj() const; private: void parseCode() const; mutable QString code; mutable bool parsed; }; Value getNodeEventListener(DOM::Node n, int eventId); // Constructor for Event - currently only used for some global vars class EventConstructor : public DOMObject { public: EventConstructor(ExecState *) { } virtual Value tryGet(ExecState *exec,const Identifier &p) const; Value getValueProperty(ExecState *, int token) const; // no put - all read-only virtual const ClassInfo* classInfo() const { return &info; } static const ClassInfo info; }; Value getEventConstructor(ExecState *exec); class DOMEvent : public DOMObject { public: DOMEvent(ExecState *exec, DOM::Event e); ~DOMEvent(); virtual Value tryGet(ExecState *exec,const Identifier &p) const; Value getValueProperty(ExecState *, int token) const; virtual void tryPut(ExecState *exec, const Identifier &propertyName, const Value& value, int attr = None); void putValue(ExecState *exec, int token, const Value& value, int); virtual const ClassInfo* classInfo() const { return &info; } static const ClassInfo info; enum { Type, Target, CurrentTarget, EventPhase, Bubbles, Cancelable, TimeStamp, StopPropagation, PreventDefault, InitEvent, // MS IE equivalents SrcElement, ReturnValue, CancelBubble, ClipboardData, DataTransfer }; DOM::Event toEvent() const { return event; } protected: DOM::Event event; mutable Clipboard *clipboard; }; Value getDOMEvent(ExecState *exec, DOM::Event e); /** * Convert an object to an Event. Returns a null Event if not possible. */ DOM::Event toEvent(const Value&); // Constructor object EventException class EventExceptionConstructor : public DOMObject { public: EventExceptionConstructor(ExecState *) { } virtual Value tryGet(ExecState *exec,const Identifier &p) const; Value getValueProperty(ExecState *, int token) const; // no put - all read-only virtual const ClassInfo* classInfo() const { return &info; } static const ClassInfo info; }; Value getEventExceptionConstructor(ExecState *exec); class DOMUIEvent : public DOMEvent { public: DOMUIEvent(ExecState *exec, DOM::UIEvent ue) : DOMEvent(exec, ue) {} ~DOMUIEvent(); virtual Value tryGet(ExecState *exec,const Identifier &p) const; Value getValueProperty(ExecState *, int token) const; // no put - all read-only virtual const ClassInfo* classInfo() const { return &info; } static const ClassInfo info; enum { View, Detail, KeyCode, CharCode, LayerX, LayerY, PageX, PageY, Which, InitUIEvent }; DOM::UIEvent toUIEvent() const { return static_cast<DOM::UIEvent>(event); } }; class DOMMouseEvent : public DOMUIEvent { public: DOMMouseEvent(ExecState *exec, DOM::MouseEvent me) : DOMUIEvent(exec, me) {} ~DOMMouseEvent(); virtual Value tryGet(ExecState *exec,const Identifier &p) const; Value getValueProperty(ExecState *, int token) const; virtual void mark(); // no put - all read-only virtual const ClassInfo* classInfo() const { return &info; } static const ClassInfo info; enum { ScreenX, ScreenY, ClientX, X, ClientY, Y, OffsetX, OffsetY, CtrlKey, ShiftKey, AltKey, MetaKey, Button, RelatedTarget, FromElement, ToElement, InitMouseEvent }; DOM::MouseEvent toMouseEvent() const { return static_cast<DOM::MouseEvent>(event); } }; class DOMKeyboardEvent : public DOMUIEvent { public: DOMKeyboardEvent(ExecState *exec, DOM::KeyboardEvent ke) : DOMUIEvent(exec, ke) {} ~DOMKeyboardEvent(); virtual Value tryGet(ExecState *exec, const Identifier &p) const; Value getValueProperty(ExecState *, int token) const; // no put - all read-only virtual const ClassInfo* classInfo() const; static const ClassInfo info; enum { KeyIdentifier, KeyLocation, CtrlKey, ShiftKey, AltKey, MetaKey, AltGraphKey, InitKeyboardEvent}; DOM::KeyboardEvent toKeyboardEvent() const { return event; } }; // Constructor object MutationEvent class MutationEventConstructor : public DOMObject { public: MutationEventConstructor(ExecState *) { } virtual Value tryGet(ExecState *exec,const Identifier &p) const; Value getValueProperty(ExecState *, int token) const; // no put - all read-only virtual const ClassInfo* classInfo() const { return &info; } static const ClassInfo info; }; Value getMutationEventConstructor(ExecState *exec); class DOMMutationEvent : public DOMEvent { public: DOMMutationEvent(ExecState *exec, DOM::MutationEvent me) : DOMEvent(exec, me) {} ~DOMMutationEvent(); virtual Value tryGet(ExecState *exec,const Identifier &p) const; Value getValueProperty(ExecState *, int token) const; // no put - all read-only virtual const ClassInfo* classInfo() const { return &info; } static const ClassInfo info; enum { AttrChange, RelatedNode, AttrName, PrevValue, NewValue, InitMutationEvent }; DOM::MutationEvent toMutationEvent() const { return static_cast<DOM::MutationEvent>(event); } }; class Clipboard : public DOMObject { friend class ClipboardProtoFunc; public: Clipboard(ExecState *exec, DOM::ClipboardImpl *ds); ~Clipboard(); virtual Value tryGet(ExecState *exec, const Identifier &propertyName) const; Value getValueProperty(ExecState *exec, int token) const; virtual void tryPut(ExecState *exec, const Identifier &propertyName, const Value& value, int attr = None); void putValue(ExecState *exec, int token, const Value& value, int /*attr*/); virtual bool toBoolean(ExecState *) const { return true; } virtual const ClassInfo* classInfo() const { return &info; } static const ClassInfo info; enum { ClearData, GetData, SetData, Types, SetDragImage, DropEffect, EffectAllowed }; private: DOM::ClipboardImpl *clipboard; }; }; // namespace#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -