⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qwscommand_qws.h

📁 著名的A780系列,E680系列的SDK开发包
💻 H
字号:
/****************************************************************************** $Id: qt/src/kernel/qwscommand_qws.h   2.3.6   edited 2002-11-21 $**** Implementation of Qt/FB central server**** Created : 991025**** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.**** This file is part of the kernel module of the Qt GUI Toolkit.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition** licenses for Qt/Embedded may use this file in accordance with the** Qt Embedded Commercial License Agreement provided with the Software.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for**   information about Qt Commercial License Agreements.** See http://www.trolltech.com/gpl/ for GPL licensing information.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#ifndef QWSCOMMAND_H#define QWSCOMMAND_H#ifndef QT_H#include "qwsutils_qws.h"#include "qfont.h"#include <qdatastream.h>#endif // QT_H#define QTE_PIPE "QtEmbedded-%1"/********************************************************************* * * Functions to read/write commands on/from a socket * *********************************************************************/#ifndef QT_NO_QWS_MULTIPROCESSvoid qws_write_command( QWSSocket *socket, int type, char *simpleData, int simpleLen, char *rawData, int rawLen );bool qws_read_command( QWSSocket *socket, char *&simpleData, int &simpleLen, char *&rawData, int &rawLen, int &bytesRead );#endif/********************************************************************* * * QWSCommand base class - only use derived classes from that * *********************************************************************/struct QWSProtocolItem{    // ctor - dtor    QWSProtocolItem( int t, int len, char *ptr ) : type( t ),	simpleLen( len ), rawLen( -1 ), deleteRaw(FALSE), simpleDataPtr( ptr ),	rawDataPtr( 0 ), bytesRead( 0 ) { }    virtual ~QWSProtocolItem();    // data    int type;    int simpleLen;    int rawLen;    bool deleteRaw;    // functions#ifndef QT_NO_QWS_MULTIPROCESS    void write( QWSSocket *s );    bool read( QWSSocket *s );#endif    void copyFrom( const QWSProtocolItem *item );    virtual void setData( char *data, int len, bool allocateMem = TRUE );    char *simpleDataPtr;    char *rawDataPtr;    // temp variables    int bytesRead;};struct QWSCommand : QWSProtocolItem{    QWSCommand( int t, int len, char *ptr ) : QWSProtocolItem(t,len,ptr) {}    enum Type {	Unknown = 0,	Create,	Destroy,	Region,	RegionMove,	RegionDestroy,	SetProperty,	AddProperty,	RemoveProperty,	GetProperty,	SetSelectionOwner, //10	ConvertSelection,	RequestFocus,	ChangeAltitude,	DefineCursor,	SelectCursor,	GrabMouse,	PlaySound,	QCopRegisterChannel,	QCopSend,	RegionName,	Identify,	GrabKeyboard,	RepaintRegion,	SetIMFont,	ResetIM,	SetIMInfo,	IMMouse,#if defined(QT_EZX_MUNGE)	EZX_SetRegionPriority = 28,	EZX_SimulateMouseEvent = 29,#endif /* defined(QT_EZX_MUNGE) */    };    static QWSCommand *factory( int type );};/********************************************************************* * * Commands * *********************************************************************/struct QWSIdentifyCommand : public QWSCommand{    QWSIdentifyCommand() :	QWSCommand( QWSCommand::Identify,		    sizeof( simpleData ), (char *)&simpleData ) {}    void setData( char *d, int len, bool allocateMem ) {	QWSCommand::setData( d, len, allocateMem );	id = QString((QChar*)d, simpleData.idLen/2);    }    void setId( const QString& i )    {	id = i;	int l = simpleData.idLen = id.length()*2;	QByteArray ba(l);	char *d = ba.data();	memcpy( d, id.unicode(), simpleData.idLen );	setData( d, l, TRUE );    }    struct SimpleData {	int idLen;    } simpleData;    QString id;};struct QWSCreateCommand : public QWSCommand{    QWSCreateCommand() :	QWSCommand( QWSCommand::Create, 0, 0 ) {}};struct QWSRegionNameCommand : public QWSCommand{    QWSRegionNameCommand() :	QWSCommand( QWSCommand::RegionName,		    sizeof( simpleData ), (char *)&simpleData ) {}    void setData( char *d, int len, bool allocateMem ) {	QWSCommand::setData( d, len, allocateMem );	name = QString((QChar*)d, simpleData.nameLen/2);	d += simpleData.nameLen;	caption = QString((QChar*)d, simpleData.captionLen/2);    }    void setName( const QString& n, const QString &c )    {	name = n;	caption = c;	int l = simpleData.nameLen = name.length()*2;	l += simpleData.captionLen = caption.length()*2;	QByteArray ba(l);	char *d = ba.data();	memcpy( d, name.unicode(), simpleData.nameLen );	memcpy( d+simpleData.nameLen, caption.unicode(), simpleData.captionLen );	setData( d, l, TRUE );    }    struct SimpleData {	int windowid;	int nameLen;	int captionLen;    } simpleData;    QString name;    QString caption;};struct QWSRegionCommand : public QWSCommand{    QWSRegionCommand() :	QWSCommand( QWSCommand::Region, sizeof( simpleData ),		    (char*)&simpleData ) {}    void setData( char *d, int len, bool allocateMem = TRUE ) {	QWSCommand::setData( d, len, allocateMem );	rectangles = (QRect*)rawDataPtr;    }    struct SimpleData {	int windowid;	int nrectangles;    } simpleData;    QRect *rectangles;};struct QWSRegionMoveCommand : public QWSCommand{    QWSRegionMoveCommand() :	QWSCommand( QWSCommand::RegionMove, sizeof( simpleData ),		    (char*)&simpleData ) {}    struct SimpleData {	int windowid;	int dx;	int dy;    } simpleData;};struct QWSRegionDestroyCommand : public QWSCommand{    QWSRegionDestroyCommand() :	QWSCommand( QWSCommand::RegionDestroy, sizeof( simpleData ),		    (char*)&simpleData ) {}    struct SimpleData {	int windowid;    } simpleData;};struct QWSRequestFocusCommand : public QWSCommand{    QWSRequestFocusCommand() :	QWSCommand( QWSCommand::RequestFocus, sizeof( simpleData ), (char*)&simpleData ) {}    struct SimpleData {	int windowid;	int flag;    } simpleData;};struct QWSChangeAltitudeCommand : public QWSCommand{    QWSChangeAltitudeCommand() :	QWSCommand( QWSCommand::ChangeAltitude, sizeof( simpleData ), (char*)&simpleData )	{ memset((char*)&simpleData,0,sizeof(simpleData)); }    struct SimpleData {	int windowid;	int altitude;	bool fixed;    } simpleData;};struct QWSAddPropertyCommand : public QWSCommand{    QWSAddPropertyCommand() :	QWSCommand( QWSCommand::AddProperty, sizeof( simpleData ), (char*)&simpleData ) {}    struct SimpleData {	int windowid, property;    } simpleData;};struct QWSSetPropertyCommand : public QWSCommand{    QWSSetPropertyCommand() :	QWSCommand( QWSCommand::SetProperty, sizeof( simpleData ),		    (char*)&simpleData ) { data = 0; }    void setData( char *d, int len, bool allocateMem = TRUE ) {	QWSCommand::setData( d, len, allocateMem );	data = rawDataPtr;    }    struct SimpleData {	int windowid, property, mode;    } simpleData;    char *data;};struct QWSRemovePropertyCommand : public QWSCommand{    QWSRemovePropertyCommand() :	QWSCommand( QWSCommand::RemoveProperty, sizeof( simpleData ), (char*)&simpleData ) {}    struct SimpleData {	int windowid, property;    } simpleData;};struct QWSGetPropertyCommand : public QWSCommand{    QWSGetPropertyCommand() :	QWSCommand( QWSCommand::GetProperty, sizeof( simpleData ), (char*)&simpleData ) {}    struct SimpleData {	int windowid, property;    } simpleData;};struct QWSSetSelectionOwnerCommand : public QWSCommand{    QWSSetSelectionOwnerCommand() :	QWSCommand( QWSCommand::SetSelectionOwner,		    sizeof( simpleData ), (char*)&simpleData ) {}    struct SimpleData {	int windowid;	int hour, minute, sec, ms; // time    } simpleData;};struct QWSConvertSelectionCommand : public QWSCommand{    QWSConvertSelectionCommand() :	QWSCommand( QWSCommand::ConvertSelection,		    sizeof( simpleData ), (char*)&simpleData ) {}    struct SimpleData {	int requestor; // requestor window of the selection	int selection; // property on requestor into which the selection should be stored	int mimeTypes; // property ion requestor in which the mimetypes, in which the selection may be, are stored    } simpleData;};struct QWSDefineCursorCommand : public QWSCommand{    QWSDefineCursorCommand() :	QWSCommand( QWSCommand::DefineCursor,		    sizeof( simpleData ), (char *)&simpleData ) {}    void setData( char *d, int len, bool allocateMem = TRUE ) {	QWSCommand::setData( d, len, allocateMem );	data = (unsigned char *)rawDataPtr;    }    struct SimpleData {	int width;	int height;	int hotX;	int hotY;	int id;    } simpleData;    unsigned char *data;};struct QWSSelectCursorCommand : public QWSCommand{    QWSSelectCursorCommand() :	QWSCommand( QWSCommand::SelectCursor,		    sizeof( simpleData ), (char *)&simpleData ) {}    struct SimpleData {	int windowid;	int id;    } simpleData;};struct QWSGrabMouseCommand : public QWSCommand{    QWSGrabMouseCommand() :	QWSCommand( QWSCommand::GrabMouse,		    sizeof( simpleData ), (char *)&simpleData )	{ memset((char*)&simpleData,0,sizeof(simpleData)); }    struct SimpleData {	int windowid;	bool grab;  // grab or ungrab?    } simpleData;};struct QWSGrabKeyboardCommand : public QWSCommand{    QWSGrabKeyboardCommand() :	QWSCommand( QWSCommand::GrabKeyboard,		    sizeof( simpleData ), (char *)&simpleData )	{ memset((char*)&simpleData,0,sizeof(simpleData)); }    struct SimpleData {	int windowid;	bool grab;  // grab or ungrab?    } simpleData;};#ifndef QT_NO_SOUNDstruct QWSPlaySoundCommand : public QWSCommand{    QWSPlaySoundCommand() :	QWSCommand( QWSCommand::PlaySound,		    sizeof( simpleData ), (char *)&simpleData ) {}    void setData( char *d, int len, bool allocateMem ) {	QWSCommand::setData( d, len, allocateMem );	filename = QString((QChar*)rawDataPtr,len/2);    }    void setFileName( const QString& n )    {	setData( (char*)n.unicode(), n.length()*2, TRUE );    }    struct SimpleData {	int windowid;    } simpleData;    QString filename;};#endif#ifndef QT_NO_COPstruct QWSQCopRegisterChannelCommand : public QWSCommand{    QWSQCopRegisterChannelCommand() :	QWSCommand( QWSCommand::QCopRegisterChannel,		    sizeof( simpleData ), (char *)&simpleData )	{ memset((char*)&simpleData,0,sizeof(simpleData)); }    void setData( char *d, int len, bool allocateMem ) {	QWSCommand::setData( d, len, allocateMem );	channel = QCString( d, len );    }    void setChannel( const QCString& n )    {	setData( (char*)n.data(), n.length()+1, TRUE );    }    struct SimpleData {	bool unused; // we may need it    } simpleData;    QString channel;};struct QWSQCopSendCommand : public QWSCommand{    QWSQCopSendCommand() :	QWSCommand( QWSCommand::QCopSend,		    sizeof( simpleData ), (char *)&simpleData ) {}    void setData( char *d, int len, bool allocateMem ) {	QWSCommand::setData( d, len, allocateMem );	channel = QCString( d, simpleData.clen + 1 );	d += simpleData.clen;	message = QCString( d, simpleData.mlen + 1 );	d += simpleData.mlen;	data.duplicate( d, simpleData.dlen );    }    void setMessage( const QCString &c, const QCString &m,		     const QByteArray &data )    {	int l = simpleData.clen = c.length();	l += simpleData.mlen = m.length();	l += simpleData.dlen = data.size();	QByteArray tmp( l );	char *d = tmp.data();	memcpy( d, c.data(), simpleData.clen );	d += simpleData.clen;	memcpy( d, m.data(), simpleData.mlen );	d += simpleData.mlen;	memcpy( d, data.data(), simpleData.dlen );	setData( (char*)tmp.data(), l, TRUE );    }    struct SimpleData {	int clen;	int mlen;	int dlen;    } simpleData;    QCString channel;    QCString message;    QByteArray data;};#endif#ifndef QT_NO_QWS_IMstruct QWSSetIMInfoCommand : public QWSCommand{    QWSSetIMInfoCommand() :	QWSCommand( QWSCommand::SetIMInfo,		    sizeof( simpleData ), (char *)&simpleData ) {}    struct SimpleData {	int windowid;	int x;	int y;	int x1;	int y1;	int w;	int h;	bool reset;    } simpleData;};struct QWSIMMouseCommand : public QWSCommand{    QWSIMMouseCommand() :	QWSCommand( QWSCommand::IMMouse,		    sizeof( simpleData ), (char *)&simpleData ) {}    struct SimpleData {	int windowid;	int state;	int index;    } simpleData;};struct QWSResetIMCommand : public QWSCommand{    QWSResetIMCommand() :	QWSCommand( QWSCommand::ResetIM,		    sizeof( simpleData ), (char *)&simpleData ) {}    struct SimpleData {	int windowid;    } simpleData;};struct QWSSetIMFontCommand : public QWSCommand{    QWSSetIMFontCommand() :	QWSCommand( QWSCommand::SetIMFont,		    sizeof( simpleData ), (char *)&simpleData ) {}    void setData( char *d, int len, bool allocateMem ) {	QWSCommand::setData( d, len, allocateMem );	QByteArray  tmp;	tmp.setRawData( d, len );	QDataStream s( tmp, IO_ReadOnly );	s >> font;	tmp.resetRawData( d, len );    }    void setFont( const QFont & f )    {	QByteArray tmp;	QDataStream s( tmp, IO_WriteOnly );	s << f;	setData( tmp.data(), tmp.size(), TRUE );    }    struct SimpleData {	int windowid;    } simpleData;    QFont font;};#endif#if defined(QT_EZX_MUNGE)class QWSSetRegionPriorityCommand : public QWSCommand {public:    QWSSetRegionPriorityCommand() :	QWSCommand( QWSCommand::EZX_SetRegionPriority,		    sizeof( simpleData ), (char *)&simpleData ) {}    virtual ~QWSSetRegionPriorityCommand() {};    struct SimpleData {	int windowid;	int unk_val;    } simpleData;};class QWSSimulateMouseEventCommand : public QWSCommand {public:    QWSSimulateMouseEventCommand() :	QWSCommand( QWSCommand::EZX_SimulateMouseEvent,		    sizeof( simpleData ), (char *)&simpleData ) {}    virtual ~QWSSimulateMouseEventCommand() {};    struct SimpleData {	int windowid;	int unk_val;    } simpleData;};#endif /* defined(QT_EZX_MUNGE) */#endif // QWSCOMMAND_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -