📄 qwsevent_qws.h
字号:
/******************************************************************************** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.**** This file is part of the QtGui module of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file. Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://trolltech.com/products/qt/licenses/licensing/opensource/**** If you are unsure which license is appropriate for your use, please** review the following information:** http://trolltech.com/products/qt/licenses/licensing/licensingoverview** or contact the sales department at sales@trolltech.com.**** In addition, as a special exception, Trolltech gives you certain** additional rights. These rights are described in the Trolltech GPL** Exception version 1.0, which can be found at** http://www.trolltech.com/products/qt/gplexception/ and in the file** GPL_EXCEPTION.txt in this package.**** In addition, as a special exception, Trolltech, as the sole copyright** holder for Qt Designer, grants users of the Qt/Eclipse Integration** plug-in the right for the Qt/Eclipse Integration to link to** functionality provided by Qt Designer and its related libraries.**** Trolltech reserves all rights not expressly granted herein.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#ifndef QWSEVENT_QWS_H#define QWSEVENT_QWS_H#include <QtGui/qwsutils_qws.h>#include <QtGui/qwsprotocolitem_qws.h>#include <QtCore/qrect.h>#include <QtGui/qregion.h>#include <QtCore/qvector.h>QT_BEGIN_HEADERQT_MODULE(Gui)struct QWSMouseEvent;struct QWSEvent : QWSProtocolItem { QWSEvent(int t, int len, char *ptr) : QWSProtocolItem(t,len,ptr) {} enum Type { NoEvent, Connected, Mouse, Focus, Key, Region, Creation, PropertyNotify, PropertyReply, SelectionClear, SelectionRequest, SelectionNotify, MaxWindowRect, QCopMessage, WindowOperation, IMEvent, IMQuery, IMInit, Embed, Font, NEvent }; QWSMouseEvent *asMouse() { return type == Mouse ? reinterpret_cast<QWSMouseEvent*>(this) : 0; } int window() { return *(reinterpret_cast<int*>(simpleDataPtr)); } int window() const { return *(reinterpret_cast<int*>(simpleDataPtr)); } static QWSEvent *factory(int type);};//All events must start with windowIDstruct QWSConnectedEvent : QWSEvent { QWSConnectedEvent() : QWSEvent(QWSEvent::Connected, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) {} void setData(const char *d, int len, bool allocateMem = true) { QWSEvent::setData(d, len, allocateMem); display = reinterpret_cast<char*>(rawDataPtr); } struct SimpleData { int window; int len; int clientId; int servershmid; } simpleData; char *display;};struct QWSMaxWindowRectEvent : QWSEvent { QWSMaxWindowRectEvent() : QWSEvent(MaxWindowRect, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) { } struct SimpleData { int window; QRect rect; } simpleData;};struct QWSMouseEvent : QWSEvent { QWSMouseEvent() : QWSEvent(QWSEvent::Mouse, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) {} struct SimpleData { int window; int x_root, y_root, state, delta; int time; // milliseconds } simpleData;};struct QWSFocusEvent : QWSEvent { QWSFocusEvent() : QWSEvent(QWSEvent::Focus, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) { memset(reinterpret_cast<char*>(&simpleData),0,sizeof(simpleData)); } struct SimpleData { int window; uint get_focus:1; } simpleData;};struct QWSKeyEvent: QWSEvent { QWSKeyEvent() : QWSEvent(QWSEvent::Key, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) {} struct SimpleData { int window; uint keycode; Qt::KeyboardModifiers modifiers; ushort unicode; uint is_press:1; uint is_auto_repeat:1; } simpleData;};struct QWSCreationEvent : QWSEvent { QWSCreationEvent() : QWSEvent(QWSEvent::Creation, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) {} struct SimpleData { int objectid; int count; } simpleData;};#ifndef QT_NO_QWS_PROPERTIESstruct QWSPropertyNotifyEvent : QWSEvent { QWSPropertyNotifyEvent() : QWSEvent(QWSEvent::PropertyNotify, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) {} enum State { PropertyNewValue, PropertyDeleted }; struct SimpleData { int window; int property; int state; } simpleData;};#endifstruct QWSSelectionClearEvent : QWSEvent { QWSSelectionClearEvent() : QWSEvent(QWSEvent::SelectionClear, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) {} struct SimpleData { int window; } simpleData;};struct QWSSelectionRequestEvent : QWSEvent { QWSSelectionRequestEvent() : QWSEvent(QWSEvent::SelectionRequest, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) {} struct SimpleData { int window; int requestor; // window which wants the selection int property; // property on requestor into which the selection should be stored, normally QWSProperty::PropSelection int mimeTypes; // Value is stored in the property mimeType on the requestor window. This value may contain // multiple mimeTypes separated by ;; where the order reflects the priority } simpleData;};struct QWSSelectionNotifyEvent : QWSEvent { QWSSelectionNotifyEvent() : QWSEvent(QWSEvent::SelectionNotify, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) {} struct SimpleData { int window; int requestor; // the window which wanted the selection and to which this event is sent int property; // property of requestor in which the data of the selection is stored int mimeType; // a property on the requestor in which the mime type in which the selection is, is stored } simpleData;};//complex events:struct QWSRegionEvent : QWSEvent { QWSRegionEvent() : QWSEvent(QWSEvent::Region, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) { memset(reinterpret_cast<char*>(&simpleData),0,sizeof(simpleData)); } void setData(const char *d, int len, bool allocateMem = true) { QWSEvent::setData(d, len, allocateMem); rectangles = reinterpret_cast<QRect*>(rawDataPtr); } void setData(int winId, const QRegion ®ion, uint type) { const QVector<QRect> rects = region.rects(); setData(reinterpret_cast<const char*>(rects.constData()), rects.size() * sizeof(QRect)); simpleData.window = winId; simpleData.nrectangles = rects.size(); simpleData.type = type; } enum Type {Allocation, Request}; struct SimpleData { int window; int nrectangles; uint type:8; } simpleData; QRect *rectangles;};#ifndef QT_NO_QWSEMBEDWIDGETstruct QWSEmbedEvent : QWSEvent{ QWSEmbedEvent() : QWSEvent(QWSEvent::Embed, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) {} enum Type { StartEmbed = 1, StopEmbed = 2, Region = 4 }; void setData(const char *d, int len, bool allocateMem = true) { QWSEvent::setData(d, len, allocateMem); region.setRects(reinterpret_cast<const QRect *>(rawDataPtr), simpleData.nrectangles); } void setData(int winId, Type type, const QRegion ® = QRegion()) { simpleData.window = winId; simpleData.nrectangles = reg.rects().size(); simpleData.type = type; region = reg; const QVector<QRect> rects = reg.rects(); QWSEvent::setData(reinterpret_cast<const char*>(rects.data()), rects.size() * sizeof(QRect)); } struct SimpleData { int window; int nrectangles; Type type; } simpleData; QRegion region;};#endif // QT_NO_QWSEMBEDWIDGET#ifndef QT_NO_QWS_PROPERTIESstruct QWSPropertyReplyEvent : QWSEvent { QWSPropertyReplyEvent() : QWSEvent(QWSEvent::PropertyReply, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) {} void setData(const char *d, int len, bool allocateMem = true) { QWSEvent::setData(d, len, allocateMem); data = reinterpret_cast<char*>(rawDataPtr); } struct SimpleData { int window; int property; int len; } simpleData; char *data;};#endif //QT_NO_QWS_PROPERTIES#ifndef QT_NO_COPstruct QWSQCopMessageEvent : QWSEvent { QWSQCopMessageEvent() : QWSEvent(QWSEvent::QCopMessage, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) { memset(reinterpret_cast<char*>(&simpleData),0,sizeof(simpleData)); } void setData(const char *d, int len, bool allocateMem = true) { QWSEvent::setData(d, len, allocateMem); char* p = rawDataPtr; channel = QByteArray(p, simpleData.lchannel); p += simpleData.lchannel; message = QByteArray(p, simpleData.lmessage); p += simpleData.lmessage; data = QByteArray(p, simpleData.ldata); } void setDataDirect(const char *d, int len) { QWSEvent::setData(d, len, false); deleteRaw = true; } struct SimpleData { bool is_response; int lchannel; int lmessage; int ldata; } simpleData; QByteArray channel; QByteArray message; QByteArray data;};#endifstruct QWSWindowOperationEvent : QWSEvent { QWSWindowOperationEvent() : QWSEvent(WindowOperation, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) { } enum Operation { Show, Hide, ShowMaximized, ShowNormal, ShowMinimized, Close }; struct SimpleData { int window; Operation op; } simpleData;};#ifndef QT_NO_QWS_INPUTMETHODSstruct QWSIMEvent : QWSEvent { QWSIMEvent() : QWSEvent(IMEvent, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) { memset(reinterpret_cast<char*>(&simpleData),0,sizeof(simpleData)); } struct SimpleData { int window; int replaceFrom; int replaceLength; } simpleData; void setData(const char *d, int len, bool allocateMem = true) { QWSEvent::setData(d, len, allocateMem); streamingData = QByteArray::fromRawData(rawDataPtr, len); } QByteArray streamingData;};struct QWSIMInitEvent : QWSEvent { QWSIMInitEvent() : QWSEvent(IMInit, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) { memset(reinterpret_cast<char*>(&simpleData),0,sizeof(simpleData)); } struct SimpleData { int window; int existence; } simpleData; void setData(const char *d, int len, bool allocateMem = true) { QWSEvent::setData(d, len, allocateMem); streamingData = QByteArray::fromRawData(rawDataPtr, len); } QByteArray streamingData;};struct QWSIMQueryEvent : QWSEvent { QWSIMQueryEvent() : QWSEvent(QWSEvent::IMQuery, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) {} struct SimpleData { int window; int property; } simpleData;};#endifstruct QWSFontEvent : QWSEvent { QWSFontEvent() : QWSEvent(QWSEvent::Font, sizeof(simpleData), reinterpret_cast<char*>(&simpleData)) {} enum EventType { FontRemoved }; void setData(const char *d, int len, bool allocateMem = true) { QWSEvent::setData(d, len, allocateMem); fontName = QByteArray::fromRawData(rawDataPtr, len); } struct SimpleData { uchar type; } simpleData; QByteArray fontName;};QT_END_HEADER#endif // QWSEVENT_QWS_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -