blob: 2190d5a0ee74c05f51a2f6c1369aaaa6e6eaa28d [file] [log] [blame]
/*
* 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