| /* |
| * Copyright (C) 2001 Apple Computer, Inc. All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * |
| * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY |
| * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
| * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR |
| * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
| * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
| * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
| * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| #ifndef QEVENT_H_ |
| #define QEVENT_H_ |
| |
| #include <qnamespace.h> |
| #include <qregion.h> |
| #include <qpoint.h> |
| #include <qstring.h> |
| |
| class QEvent : public Qt { |
| public: |
| |
| enum Type { |
| None, |
| Enter, |
| Leave, |
| Timer, |
| MouseButtonPress, |
| MouseButtonRelease, |
| MouseButtonDblClick, |
| MouseMove, |
| FocusIn, |
| FocusOut, |
| AccelAvailable, |
| KeyPress, |
| KeyRelease, |
| Paint, |
| }; |
| |
| QEvent( Type t ) : _type(t) {} |
| virtual ~QEvent(); |
| |
| Type type() const { return _type; } |
| |
| private: |
| QEvent(const QEvent &); |
| QEvent &operator=(const QEvent &); |
| |
| Type _type; |
| }; |
| |
| class QMouseEvent : public QEvent { |
| public: |
| QMouseEvent(Type type, const QPoint &pos, int button, int state); |
| QMouseEvent(Type type, const QPoint &pos, int button, int state, int clickCount); |
| QMouseEvent(Type type, const QPoint &pos, const QPoint &global, int button, int state); |
| |
| int x() { return _position.x(); } |
| int y() { return _position.y(); } |
| int globalX() { return _position.x(); } // we never really return global X |
| int globalY() { return _position.y(); } // we never really return global Y |
| const QPoint &pos() const { return _position; } |
| ButtonState button() { return _button; } |
| ButtonState state() { return _state; } |
| ButtonState stateAfter(); |
| int clickCount() { return _clickCount; } |
| |
| private: |
| QPoint _position; |
| ButtonState _button; |
| ButtonState _state; |
| int _clickCount; |
| }; |
| |
| class QTimerEvent : public QEvent { |
| public: |
| QTimerEvent(int timerId); |
| |
| int timerId() const { return _timerId; } |
| |
| private: |
| int _timerId; |
| }; |
| |
| class QKeyEvent : public QEvent { |
| public: |
| QKeyEvent(Type type, int key, int ascii, int buttonState, const QString &textVal = QString::null, bool autoRepeat = FALSE, ushort countVal = 1); |
| |
| int key() const; |
| ButtonState state() const; |
| void accept(); |
| void ignore(); |
| bool isAutoRepeat() const; |
| bool isAccepted() const; |
| int count() const; |
| QString text() const; |
| int ascii() const; |
| }; |
| |
| class QFocusEvent { |
| public: |
| enum Reason { Popup, Other }; |
| static Reason reason() { return Other; } |
| }; |
| |
| class QHideEvent; |
| class QResizeEvent; |
| class QShowEvent; |
| class QWheelEvent; |
| class QContextMenuEvent; |
| |
| class QCustomEvent : public QEvent { |
| public: |
| QCustomEvent(Type type, void *data = 0) : QEvent(type), d(data) { } |
| void *data() const { return d; } |
| void setData(void *data) { d = data; } |
| |
| private: |
| void *d; |
| }; |
| |
| #endif |