#ifndef QEVENT_H
#define QEVENT_H 
#include <QtGui/qwindowdefs.h>
#include <QtCore/qobject.h>
#include <QtGui/qregion.h>
#include <QtCore/qnamespace.h>
#include <QtCore/qstring.h>
#include <QtGui/qkeysequence.h>
#include <QtCore/qcoreevent.h>
#include <QtGui/qmime.h>
#include <QtGui/qdrag.h>
#include <QtCore/qvariant.h>
typedef enum QtValidLicenseForGuiModule QtGuiModule;
struct QAction;
class QInputEvent: public QEvent{
   public: QInputEvent(enum QEvent::Type type, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
   public: virtual ~QInputEvent();
   public: inline Qt::KeyboardModifiers modifiers() const
   protected: Qt::KeyboardModifiers modState;
};
class QMouseEvent: public QInputEvent{
   public: QMouseEvent(enum QEvent::Type type, class QPoint const & pos, enum Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
   public: QMouseEvent(enum QEvent::Type type, class QPoint const & pos, class QPoint const & globalPos, enum Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
   public: virtual ~QMouseEvent();
   public: inline class QPoint const & pos() const
   public: inline class QPoint const & globalPos() const
   public: inline int x() const
   public: inline int y() const
   public: inline int globalX() const
   public: inline int globalY() const
   public: inline enum Qt::MouseButton button() const
   public: inline Qt::MouseButtons buttons() const
   protected: class QPoint p;
   protected: class QPoint g;
   protected: enum Qt::MouseButton b;
   protected: Qt::MouseButtons mouseState;
};
class QHoverEvent: public QEvent{
   public: QHoverEvent(enum QEvent::Type type, class QPoint const & pos, class QPoint const & oldPos);
   public: virtual ~QHoverEvent();
   public: inline class QPoint const & pos() const
   public: inline class QPoint const & oldPos() const
   protected: class QPoint p;
   protected: class QPoint op;
};
#ifndef QT_NO_WHEELEVENT
class QWheelEvent: public QInputEvent{
   public: QWheelEvent(class QPoint const & pos, int delta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, enum Qt::Orientation orient = Qt::Vertical);
   public: QWheelEvent(class QPoint const & pos, class QPoint const & globalPos, int delta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, enum Qt::Orientation orient = Qt::Vertical);
   public: virtual ~QWheelEvent();
   public: inline int delta() const
   public: inline class QPoint const & pos() const
   public: inline class QPoint const & globalPos() const
   public: inline int x() const
   public: inline int y() const
   public: inline int globalX() const
   public: inline int globalY() const
   public: inline Qt::MouseButtons buttons() const
   public: inline enum Qt::Orientation orientation() const
   protected: class QPoint p;
   protected: class QPoint g;
   protected: int d;
   protected: Qt::MouseButtons mouseState;
   protected: enum Qt::Orientation o;
};
#endif
#ifndef QT_NO_TABLETEVENT
class QTabletEvent: public QInputEvent{
   public: enum TabletDevice{
      NoDevice = 0,
      Puck = 1,
      Stylus = 2,
      Airbrush = 3,
      FourDMouse = 4,
      XFreeEraser = 5,
      RotationStylus = 6,
   };
   public: enum PointerType{
      UnknownPointer = 0,
      Pen = 1,
      Cursor = 2,
      Eraser = 3,
   };
   public: QTabletEvent(enum QEvent::Type t, class QPoint const & pos, class QPoint const & globalPos, class QPointF const & hiResGlobalPos, int device, int pointerType, qreal pressure, int xTilt, int yTilt, qreal tangentialPressure, qreal rotation, int z, Qt::KeyboardModifiers keyState, qint64 uniqueID);
   public: virtual ~QTabletEvent();
   public: inline class QPoint const & pos() const
   public: inline class QPoint const & globalPos() const
   public: inline class QPointF const & hiResGlobalPos() const
   public: inline int x() const
   public: inline int y() const
   public: inline int globalX() const
   public: inline int globalY() const
   public: inline qreal hiResGlobalX() const
   public: inline qreal hiResGlobalY() const
   public: inline enum QTabletEvent::TabletDevice device() const
   public: inline enum QTabletEvent::PointerType pointerType() const
   public: inline qint64 uniqueId() const
   public: inline qreal pressure() const
   public: inline int z() const
   public: inline qreal tangentialPressure() const
   public: inline qreal rotation() const
   public: inline int xTilt() const
   public: inline int yTilt() const
   protected: class QPoint mPos;
   protected: class QPoint mGPos;
   protected: class QPointF mHiResGlobalPos;
   protected: int mDev;
   protected: int mPointerType;
   protected: int mXT;
   protected: int mYT;
   protected: int mZ;
   protected: qreal mPress;
   protected: qreal mTangential;
   protected: qreal mRot;
   protected: qint64 mUnique;
   protected: void* mExtra;
};
#endif // QT_NO_TABLETEVENT
class QKeyEvent: public QInputEvent{
   public: QKeyEvent(enum QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, class QString const & text = QString::QString(), bool autorep = 0, ushort count = 1);
   public: virtual ~QKeyEvent();
   public: inline int key() const
#ifndef QT_NO_SHORTCUT
   public: bool matches(enum QKeySequence::StandardKey key) const
#endif
   public: Qt::KeyboardModifiers modifiers() const
   public: inline class QString text() const
   public: inline bool isAutoRepeat() const
   public: inline int count() const
   public: static class QKeyEvent* createExtendedKeyEvent(enum QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, quint32 nativeScanCode, quint32 nativeVirtualKey, quint32 nativeModifiers, class QString const & text = QString::QString(), bool autorep = 0, ushort count = 1);
   public: inline bool hasExtendedInfo() const
   public: quint32 nativeScanCode() const
   public: quint32 nativeVirtualKey() const
   public: quint32 nativeModifiers() const
   protected: class QString txt;
   protected: int k;
   protected: ushort c;
   protected: unsigned int autor:1;
};
class QFocusEvent: public QEvent{
   public: QFocusEvent(enum QEvent::Type type, enum Qt::FocusReason reason = Qt::OtherFocusReason);
   public: virtual ~QFocusEvent();
   public: inline bool gotFocus() const
   public: inline bool lostFocus() const
   public: enum Qt::FocusReason reason();
   public: enum Qt::FocusReason reason() const
   private: enum Qt::FocusReason m_reason;
};
class QPaintEvent: public QEvent{
   public: QPaintEvent(class QRegion const & paintRegion);
   public: QPaintEvent(class QRect const & paintRect);
   public: virtual ~QPaintEvent();
   public: inline class QRect const & rect() const
   public: inline class QRegion const & region() const
   protected: class QRect m_rect;
   protected: class QRegion m_region;
   protected: bool m_erased;
   friend struct QApplication;
   friend struct QCoreApplication;
};
class QUpdateLaterEvent: public QEvent{
   public: QUpdateLaterEvent(class QRegion const & paintRegion);
   public: virtual ~QUpdateLaterEvent();
   public: inline class QRegion const & region() const
   protected: class QRegion m_region;
};
class QMoveEvent: public QEvent{
   public: QMoveEvent(class QPoint const & pos, class QPoint const & oldPos);
   public: virtual ~QMoveEvent();
   public: inline class QPoint const & pos() const
   public: inline class QPoint const & oldPos() const
   protected: class QPoint p;
   protected: class QPoint oldp;
   friend struct QApplication;
   friend struct QCoreApplication;
};
class QResizeEvent: public QEvent{
   public: QResizeEvent(class QSize const & size, class QSize const & oldSize);
   public: virtual ~QResizeEvent();
   public: inline class QSize const & size() const
   public: inline class QSize const & oldSize() const
   protected: class QSize s;
   protected: class QSize olds;
   friend struct QApplication;
   friend struct QCoreApplication;
};
class QCloseEvent: public QEvent{
   public: QCloseEvent();
   public: virtual ~QCloseEvent();
};
class QIconDragEvent: public QEvent{
   public: QIconDragEvent();
   public: virtual ~QIconDragEvent();
};
class QShowEvent: public QEvent{
   public: QShowEvent();
   public: virtual ~QShowEvent();
};
class QHideEvent: public QEvent{
   public: QHideEvent();
   public: virtual ~QHideEvent();
};
class QContextMenuEvent: public QInputEvent{
   public: enum Reason{
      Mouse = 0,
      Keyboard = 1,
      Other = 2,
   };
   public: QContextMenuEvent(enum QContextMenuEvent::Reason reason, class QPoint const & pos, class QPoint const & globalPos);
   public: QContextMenuEvent(enum QContextMenuEvent::Reason reason, class QPoint const & pos);
   public: virtual ~QContextMenuEvent();
   public: inline int x() const
   public: inline int y() const
   public: inline int globalX() const
   public: inline int globalY() const
   public: inline class QPoint const & pos() const
   public: inline class QPoint const & globalPos() const
   public: inline enum QContextMenuEvent::Reason reason() const
   protected: class QPoint p;
   protected: class QPoint gp;
   protected: unsigned int reas:8;
};
#ifndef QT_NO_INPUTMETHOD
class QInputMethodEvent: public QEvent{
   public: enum AttributeType{
      TextFormat = 0,
      Cursor = 1,
      Language = 2,
      Ruby = 3,
   };
   public: class Attribute{
      public: inline Attribute(enum QInputMethodEvent::AttributeType t, int s, int l, class QVariant val);
      public: enum QInputMethodEvent::AttributeType type;
      public: int start;
      public: int length;
      public: class QVariant value;
   };
   public: QInputMethodEvent();
   public: QInputMethodEvent(class QString const & preeditText, class QList < class QInputMethodEvent::Attribute > const & attributes);
   public: void setCommitString(class QString const & commitString, int replaceFrom = 0, int replaceLength = 0);
   public: inline class QList < class QInputMethodEvent::Attribute > const & attributes() const
   public: inline class QString const & preeditString() const
   public: inline class QString const & commitString() const
   public: inline int replacementStart() const
   public: inline int replacementLength() const
   public: QInputMethodEvent(class QInputMethodEvent const & other);
   private: class QString preedit;
   private: class QList < class QInputMethodEvent::Attribute > attrs;
   private: class QString commit;
   private: int replace_from;
   private: int replace_length;
};
#endif // QT_NO_INPUTMETHOD
#ifndef QT_NO_DRAGANDDROP
class QDropEvent: public QEvent, public QMimeSource{
   public: QDropEvent(class QPoint const & pos, Qt::DropActions actions, class QMimeData const * data, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, enum QEvent::Type type = QEvent::Drop);
   public: virtual ~QDropEvent();
   public: inline class QPoint const & pos() const
   public: inline Qt::MouseButtons mouseButtons() const
   public: inline Qt::KeyboardModifiers keyboardModifiers() const
   public: inline Qt::DropActions possibleActions() const
   public: inline enum Qt::DropAction proposedAction() const
   public: inline void acceptProposedAction();
   public: inline enum Qt::DropAction dropAction() const
   public: void setDropAction(enum Qt::DropAction action);
   public: struct QWidget* source() const
   public: inline class QMimeData const * mimeData() const
   public: virtual char const * format(int n = 0) const
   public: virtual class QByteArray encodedData(char const *) const
   public: virtual bool provides(char const *) const
   protected: class QPoint p;
   protected: Qt::MouseButtons mouseState;
   protected: Qt::KeyboardModifiers modState;
   protected: Qt::DropActions act;
   protected: enum Qt::DropAction drop_action;
   protected: enum Qt::DropAction default_action;
   protected: class QMimeData const * mdata;
   protected: mutable class QList < class QByteArray > fmts;
   friend struct QApplication;
};
class QDragMoveEvent: public QDropEvent{
   public: QDragMoveEvent(class QPoint const & pos, Qt::DropActions actions, class QMimeData const * data, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, enum QEvent::Type type = QEvent::DragMove);
   public: virtual ~QDragMoveEvent();
   public: inline class QRect answerRect() const
   public: inline void accept();
   public: inline void ignore();
   public: inline void accept(class QRect const & r);
   public: inline void ignore(class QRect const & r);
   protected: class QRect rect;
   friend struct QApplication;
};
class QDragEnterEvent: public QDragMoveEvent{
   public: QDragEnterEvent(class QPoint const & pos, Qt::DropActions actions, class QMimeData const * data, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
   public: virtual ~QDragEnterEvent();
};
class QDragResponseEvent: public QEvent{
   public: QDragResponseEvent(bool accepted);
   public: virtual ~QDragResponseEvent();
   public: inline bool dragAccepted() const
   protected: bool a;
};
class QDragLeaveEvent: public QEvent{
   public: QDragLeaveEvent();
   public: virtual ~QDragLeaveEvent();
};
#endif // QT_NO_DRAGANDDROP
class QHelpEvent: public QEvent{
   public: QHelpEvent(enum QEvent::Type type, class QPoint const & pos, class QPoint const & globalPos);
   public: virtual ~QHelpEvent();
   public: inline int x() const
   public: inline int y() const
   public: inline int globalX() const
   public: inline int globalY() const
   public: inline class QPoint const & pos() const
   public: inline class QPoint const & globalPos() const
   private: class QPoint p;
   private: class QPoint gp;
};
#ifndef QT_NO_STATUSTIP
class QStatusTipEvent: public QEvent{
   public: QStatusTipEvent(class QString const & tip);
   public: virtual ~QStatusTipEvent();
   public: inline class QString tip() const
   private: class QString s;
};
#endif
#ifndef QT_NO_WHATSTHIS
class QWhatsThisClickedEvent: public QEvent{
   public: QWhatsThisClickedEvent(class QString const & href);
   public: virtual ~QWhatsThisClickedEvent();
   public: inline class QString href() const
   private: class QString s;
};
#endif
#ifndef QT_NO_ACTION
class QActionEvent: public QEvent{
   private: struct QAction* act;
   private: struct QAction* bef;
   public: QActionEvent(int type, struct QAction* action, struct QAction* before = 0);
   public: virtual ~QActionEvent();
   public: inline struct QAction* action() const
   public: inline struct QAction* before() const
};
#endif
class QFileOpenEvent: public QEvent{
   public: QFileOpenEvent(class QString const & file);
   public: virtual ~QFileOpenEvent();
   public: inline class QString file() const
   private: class QString f;
};
#ifndef QT_NO_TOOLBAR
class QToolBarChangeEvent: public QEvent{
   public: QToolBarChangeEvent(bool t);
   public: virtual ~QToolBarChangeEvent();
   public: inline bool toggle() const
   private: unsigned int tog:1;
};
#endif
#ifndef QT_NO_SHORTCUT
class QShortcutEvent: public QEvent{
   public: QShortcutEvent(class QKeySequence const & key, int id, bool ambiguous = 0);
   public: virtual ~QShortcutEvent();
   public: inline class QKeySequence const & key();
   public: inline class QKeySequence const & key() const
   public: inline int shortcutId();
   public: inline int shortcutId() const
   public: inline bool isAmbiguous();
   public: inline bool isAmbiguous() const
   protected: class QKeySequence sequence;
   protected: bool ambig;
   protected: int sid;
};
#endif
#ifndef QT_NO_CLIPBOARD
class QClipboardEvent: public QEvent{
   public: QClipboardEvent(struct QEventPrivate* data);
   public: virtual ~QClipboardEvent();
   public: inline struct QEventPrivate* data();
};
#endif
class QWindowStateChangeEvent: public QEvent{
   public: QWindowStateChangeEvent(Qt::WindowStates aOldState);
   public: QWindowStateChangeEvent(Qt::WindowStates aOldState, bool isOverride);
   public: virtual ~QWindowStateChangeEvent();
   public: inline Qt::WindowStates oldState() const
   public: bool isOverride() const
   private: Qt::WindowStates ostate;
};
#ifndef QT_NO_DEBUG_STREAM
struct QDebug operator <<(struct QDebug, class QEvent const *);
#endif
#ifndef QT_NO_SHORTCUT
inline bool operator ==(class QKeyEvent* e, enum QKeySequence::StandardKey key);
inline bool operator ==(enum QKeySequence::StandardKey key, class QKeyEvent* e);
#endif // QT_NO_SHORTCUT
#endif // QEVENT_H