/**************************************************************************** ** $Id: qevent.h,v 2.21.2.4 1998/10/05 13:15:14 hanord Exp $ ** ** Definition of event classes ** ** Created : 931029 ** ** Copyright (C) 1992-1998 Troll Tech AS. All rights reserved. ** ** This file is part of Qt Free Edition, version 1.42. ** ** See the file LICENSE included in the distribution for the usage ** and distribution terms, or http://www.troll.no/free-license.html. ** ** IMPORTANT NOTE: You may NOT copy this file or any part of it into ** your own programs or libraries. ** ** Please see http://www.troll.no/pricing.html for information about ** Qt Professional Edition, which is this same library but with a ** license which allows creation of commercial/proprietary software. ** *****************************************************************************/ #ifndef QEVENT_H #define QEVENT_H #ifndef QT_H #include "qwindowdefs.h" #include "qrect.h" #include "qstring.h" #endif // QT_H #define Event_None 0 // invalid event #define Event_Timer 1 // timer event #define Event_MouseButtonPress 2 // mouse button pressed #define Event_MouseButtonRelease 3 // mouse button released #define Event_MouseButtonDblClick 4 // mouse button double click #define Event_MouseMove 5 // mouse move #define Event_KeyPress 6 // key pressed #define Event_KeyRelease 7 // key released #define Event_FocusIn 8 // keyboard focus received #define Event_FocusOut 9 // keyboard focus lost #define Event_Enter 10 // mouse enters widget #define Event_Leave 11 // mouse leaves widget #define Event_Paint 12 // paint widget #define Event_Move 13 // move widget #define Event_Resize 14 // resize widget #define Event_Create 15 // after object creation #define Event_Destroy 16 // during object destruction #define Event_Show 17 // widget is shown #define Event_Hide 18 // widget is hidden #define Event_Close 19 // request to close widget #define Event_Quit 20 // request to quit application #define Event_Accel 30 // accelerator event #define Event_Clipboard 40 // internal clipboard event #define Event_SockAct 50 // socket activation #define Event_DragEnter 60 // drag moves into widget #define Event_DragMove 61 // drag moves in widget #define Event_DragLeave 62 // drag leaves or is cancelled #define Event_Drop 63 // actual drop #define Event_DragResponse 64 // drag accepted/rejected #define Event_ChildInserted 70 // new child widget #define Event_ChildRemoved 71 // deleted child widget #define Event_LayoutHint 72 // child min/max size changed #define Event_ActivateControl 80 // ActiveX activation #define Event_DeactivateControl 81 // ActiveX deactivation #define Event_User 1000 // first user event id class Q_EXPORT QEvent // event base class { public: QEvent( int type ) : t(type), posted(FALSE) {} ~QEvent() { if ( posted ) peErrMsg(); } int type() const { return t; } protected: int t; bool posted; private: void peErrMsg(); }; class Q_EXPORT QTimerEvent : public QEvent // timer event { public: QTimerEvent( int timerId ) : QEvent(Event_Timer), id(timerId) {} int timerId() const { return id; } protected: int id; }; #define Q_TIMER_EVENT(x) ((QTimerEvent*)x) enum ButtonState { // mouse/keyboard state values NoButton = 0x00, LeftButton = 0x01, RightButton = 0x02, MidButton = 0x04, MouseButtonMask = 0x07, ShiftButton = 0x08, ControlButton = 0x10, AltButton = 0x20, KeyButtonMask = 0x38 }; class Q_EXPORT QMouseEvent : public QEvent // mouse event { public: QMouseEvent( int type, const QPoint &pos, int button, int state ) : QEvent(type), p(pos), b(button),s((ushort)state) {} QMouseEvent( int type, const QPoint &pos, const QPoint&globalPos, int button, int state ) : QEvent(type), p(pos), b(button),s((ushort)state) {g = globalPos;} const QPoint &pos() const { return p; } const QPoint &globalPos() const { return g; } int x() const { return p.x(); } int y() const { return p.y(); } int globalX() const { return g.x(); } int globalY() const { return g.y(); } int button() const { return b; } int state() const { return s; } protected: QPoint p; static QPoint g; // ### is non-static in 2.0 int b; ushort s; }; #define Q_MOUSE_EVENT(x) ((QMouseEvent*)x) class Q_EXPORT QKeyEvent : public QEvent // keyboard event { public: QKeyEvent( int type, int key, int ascii, int state ) : QEvent(type), k((ushort)key), s((ushort)state), a((uchar)ascii), accpt(TRUE) {} int key() const { return k; } int ascii() const { return a; } int state() const { return s; } bool isAccepted() const { return accpt; } void accept() { accpt = TRUE; } void ignore() { accpt = FALSE; } protected: ushort k, s; uchar a; char accpt; // ### Qt 2.0: bool }; #define Q_KEY_EVENT(x) ((QKeyEvent*)x) class Q_EXPORT QFocusEvent : public QEvent // widget focus event { public: QFocusEvent( int type ) : QEvent(type) {} bool gotFocus() const { return type() == Event_FocusIn; } bool lostFocus() const { return type() == Event_FocusOut; } }; #define Q_FOCUS_EVENT(x) ((QFocusEvent*)x) class Q_EXPORT QPaintEvent : public QEvent // widget paint event { public: QPaintEvent( const QRect &paintRect ) : QEvent(Event_Paint), r(paintRect) {} const QRect &rect() const { return r; } protected: QRect r; }; #define Q_PAINT_EVENT(x) ((QPaintEvent*)x) class Q_EXPORT QMoveEvent : public QEvent // widget move event { public: QMoveEvent( const QPoint &pos, const QPoint &oldPos ) : QEvent(Event_Move), p(pos), oldp(oldPos) {} const QPoint &pos() const { return p; } const QPoint &oldPos()const { return oldp;} protected: QPoint p, oldp; }; #define Q_MOVE_EVENT(x) ((QMoveEvent*)x) class Q_EXPORT QResizeEvent : public QEvent // widget resize event { public: QResizeEvent( const QSize &size, const QSize &oldSize ) : QEvent(Event_Resize), s(size), olds(oldSize) {} const QSize &size() const { return s; } const QSize &oldSize()const { return olds;} protected: QSize s, olds; }; #define Q_RESIZE_EVENT(x) ((QResizeEvent*)x) class Q_EXPORT QCloseEvent : public QEvent // widget close event { public: QCloseEvent() : QEvent(Event_Close), accpt(FALSE) {} bool isAccepted() const { return accpt; } void accept() { accpt = TRUE; } void ignore() { accpt = FALSE; } protected: bool accpt; }; #define Q_CLOSE_EVENT(x) ((QCloseEvent*)x) class Q_EXPORT QShowEvent : public QEvent // widget show event { public: QShowEvent(bool spontaneous) : QEvent(Event_Show), spont(spontaneous) {} bool spontaneous() const { return spont; } protected: bool spont; }; #define Q_SHOW_EVENT(x) ((QShowEvent*)x) class Q_EXPORT QHideEvent : public QEvent // widget hide event { public: QHideEvent(bool spontaneous) : QEvent(Event_Hide), spont(spontaneous) {} bool spontaneous() const { return spont; } protected: bool spont; }; #define Q_HIDE_EVENT(x) ((QHideEvent*)x) // this class is rather closed at the moment. if you need to create // your own QDragMoveEvent objects, write to qt-bugs@troll.no and // we'll try to find a way to extend it so it covers your needs. class Q_EXPORT QDragMoveEvent : public QEvent { public: QDragMoveEvent( const QPoint& pos ) : QEvent(Event_DragMove), p(pos), accpt(FALSE), d(0), rect( p,QSize( 1, 1 ) ) {} const QPoint& pos() const { return p; } bool isAccepted() const { return accpt; } void accept() { accpt = TRUE; } void ignore() { accpt = FALSE; } void accept( const QRect & r) { accpt = TRUE; rect = r; } void ignore( const QRect & r) { accpt =FALSE; rect = r; } QRect answerRect() const { return rect; } const char * format( int n = 0 ); bool provides( const char * ); QByteArray data( const char * ); protected: QDragMoveEvent( const QPoint& pos, int type ) : QEvent(type), p(pos), accpt(FALSE), d(0), rect( p,QSize( 1, 1 ) ) {} QPoint p; bool accpt; void * d; QRect rect; }; class Q_EXPORT QDragEnterEvent : public QDragMoveEvent { public: QDragEnterEvent( const QPoint& pos ) : QDragMoveEvent(pos, Event_DragEnter) { } }; class Q_EXPORT QDragResponseEvent : public QEvent { public: QDragResponseEvent( bool accepted ) : QEvent(Event_DragResponse), a(accepted) {} bool dragAccepted() const { return a; } protected: bool a; }; class Q_EXPORT QDragLeaveEvent : public QEvent { public: QDragLeaveEvent() : QEvent(Event_DragLeave) {} }; class Q_EXPORT QDropEvent : public QEvent { public: QDropEvent( const QPoint& pos ) : QEvent(Event_Drop), p(pos), accpt(FALSE) {} const QPoint &pos() const { return p; } bool isAccepted() const { return accpt; } void accept() { accpt = TRUE; } void ignore() { accpt = FALSE; } QByteArray data( const char * ); protected: QPoint p; bool accpt; }; class Q_EXPORT QChildEvent : public QEvent { public: QChildEvent( int type, QWidget *child ) : QEvent(type), c(child) {} QWidget *child() const { return c; } bool inserted() const { return t == Event_ChildInserted; } bool removed() const { return t == Event_ChildRemoved; } protected: QWidget *c; }; class Q_EXPORT QCustomEvent : public QEvent // user-defined event { public: QCustomEvent( int type, void *data ) : QEvent(type), d(data) {} void *data() const { return d; } private: void *d; }; #define Q_CUSTOM_EVENT(x) ((QCustomEvent*)x) #endif // QEVENT_H
Copyright © 1998 Troll Tech | Trademarks | Qt version 1.42
|