qvfbview.h
来自「Qt4.5 提供的qvfb,最新版本」· C头文件 代码 · 共 210 行
H
210 行
/******************************************************************************** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).** Contact: Qt Software Information (qt-info@nokia.com)**** This file is part of the tools applications of the Qt Toolkit.**** $QT_BEGIN_LICENSE:LGPL$** Commercial Usage** Licensees holding valid Qt Commercial licenses may use this file in** accordance with the Qt Commercial License Agreement provided with the** Software or, alternatively, in accordance with the terms contained in** a written agreement between you and Nokia.**** GNU Lesser General Public License Usage** Alternatively, this file may be used under the terms of the GNU Lesser** General Public License version 2.1 as published by the Free Software** Foundation and appearing in the file LICENSE.LGPL included in the** packaging of this file. Please review the following information to** ensure the GNU Lesser General Public License version 2.1 requirements** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.**** In addition, as a special exception, Nokia gives you certain** additional rights. These rights are described in the Nokia Qt LGPL** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this** package.**** GNU General Public License Usage** Alternatively, this file may be used under the terms of the GNU** General Public License version 3.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 the GNU General Public License version 3.0 requirements will be** met: http://www.gnu.org/copyleft/gpl.html.**** If you are unsure which license is appropriate for your use, please** contact the sales department at qt-sales@nokia.com.** $QT_END_LICENSE$******************************************************************************/#ifndef QVFBVIEW_H#define QVFBVIEW_H//#ifdef QT_NO_OPENGL#include <QWidget>//#else//#define QVFB_USE_GLWIDGET//#include <QGLWidget>//#endifQT_BEGIN_NAMESPACEclass QImage;class QTimer;class QAnimationWriter;struct QVFbHeader;class QVFbViewProtocol;class QX11EmbedContainer;class QVFbAbstractView :#ifdef QVFB_USE_GLWIDGET public QGLWidget#else public QWidget#endif{ Q_OBJECTpublic: enum Rotation { Rot0, Rot90, Rot180, Rot270 }; enum PixelFormat { DefaultFormat, GrayscaleFormat, RGBFormat, ARGBFormat }; QVFbAbstractView( QWidget *parent = 0); virtual ~QVFbAbstractView(); virtual int displayId() const = 0; virtual int displayWidth() const = 0; virtual int displayHeight() const = 0; virtual int displayDepth() const = 0; virtual PixelFormat displayFormat() const { return DefaultFormat; } virtual Rotation displayRotation() const = 0; virtual void setGamma(double gr, double gg, double gb) = 0; virtual double gammaRed() const = 0; virtual double gammaGreen() const = 0; virtual double gammaBlue() const = 0; virtual void getGamma(int i, QRgb& rgb) = 0; virtual bool touchScreenEmulation() const = 0; virtual bool lcdScreenEmulation() const = 0; virtual int rate() = 0; virtual bool animating() const = 0; virtual QImage image() const = 0; virtual void setRate(int) = 0; virtual double zoomH() const = 0; virtual double zoomV() const = 0;public slots: virtual void setTouchscreenEmulation( bool ) = 0; virtual void setLcdScreenEmulation( bool ) = 0; virtual void setZoom( double, double ) = 0; virtual void setRotation(Rotation) = 0; virtual void startAnimation( const QString& ) = 0; virtual void stopAnimation() = 0; virtual void skinKeyPressEvent( int code, const QString& text, bool autorep=FALSE ) = 0; virtual void skinKeyReleaseEvent( int code, const QString& text, bool autorep=FALSE ) = 0; virtual void setViewFormat(PixelFormat) {} virtual void embedDisplay(WId) {}};class QVFbView : public QVFbAbstractView{ Q_OBJECTpublic: QVFbView(int id, int w, int h, int d, Rotation r, QWidget *parent = 0); virtual ~QVFbView(); int displayId() const; int displayWidth() const; int displayHeight() const; int displayDepth() const; PixelFormat displayFormat() const; Rotation displayRotation() const; bool touchScreenEmulation() const { return emulateTouchscreen; } bool lcdScreenEmulation() const { return emulateLcdScreen; } int rate() { return refreshRate; } bool animating() const { return !!animation; } QImage image() const; void setGamma(double gr, double gg, double gb); double gammaRed() const { return gred; } double gammaGreen() const { return ggreen; } double gammaBlue() const { return gblue; } void getGamma(int i, QRgb& rgb); void skinMouseEvent(QMouseEvent *e); double zoomH() const { return hzm; } double zoomV() const { return vzm; } QSize sizeHint() const; void setRate(int);public slots: void setTouchscreenEmulation(bool); void setLcdScreenEmulation(bool); void setZoom(double, double); void setRotation(Rotation); void startAnimation(const QString&); void stopAnimation(); void skinKeyPressEvent(int code, const QString& text, bool autorep=FALSE); void skinKeyReleaseEvent(int code, const QString& text, bool autorep=FALSE); void setViewFormat(PixelFormat);#ifdef Q_WS_X11 void embedDisplay(WId id);#endifprotected slots: void refreshDisplay(const QRect &);protected: QImage getBuffer(const QRect &r, int &leading) const; void drawScreen(const QRect &r); void sendMouseData(const QPoint &pos, int buttons, int wheel); void sendKeyboardData(QString unicode, int keycode, int modifiers, bool press, bool repeat); //virtual bool eventFilter(QObject *obj, QEvent *e); virtual void paintEvent(QPaintEvent *pe); virtual void contextMenuEvent(QContextMenuEvent *e); virtual void mousePressEvent(QMouseEvent *e); virtual void mouseDoubleClickEvent(QMouseEvent *e); virtual void mouseReleaseEvent(QMouseEvent *e); virtual void mouseMoveEvent(QMouseEvent *e); virtual void wheelEvent(QWheelEvent *e); virtual void keyPressEvent(QKeyEvent *e); virtual void keyReleaseEvent(QKeyEvent *e); virtual bool event(QEvent *event);private: void setDirty(const QRect&); int viewdepth; // "faked" depth PixelFormat viewFormat; int rsh; int gsh; int bsh; int rmax; int gmax; int bmax; int contentsWidth; int contentsHeight; double gred, ggreen, gblue; QRgb* gammatable; int refreshRate; QAnimationWriter *animation; double hzm,vzm; QVFbViewProtocol *mView; bool emulateTouchscreen; bool emulateLcdScreen; Rotation rotation;#ifdef Q_WS_X11 QX11EmbedContainer *embedContainer;#endif};QT_END_NAMESPACE#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?