Merge branch 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into master-integration
[qt-netbsd.git] / tools / qvfb / qvfb.h
blob37a20f79ece50f0d78f0dc802cf8e9e943c54d28
1 /****************************************************************************
2 **
3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (qt-info@nokia.com)
6 **
7 ** This file is part of the tools applications of the Qt Toolkit.
8 **
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** No Commercial Usage
11 ** This file contains pre-release code and may not be distributed.
12 ** You may use this file in accordance with the terms and conditions
13 ** contained in the Technology Preview License Agreement accompanying
14 ** this package.
16 ** GNU Lesser General Public License Usage
17 ** Alternatively, this file may be used under the terms of the GNU Lesser
18 ** General Public License version 2.1 as published by the Free Software
19 ** Foundation and appearing in the file LICENSE.LGPL included in the
20 ** packaging of this file. Please review the following information to
21 ** ensure the GNU Lesser General Public License version 2.1 requirements
22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 ** In addition, as a special exception, Nokia gives you certain additional
25 ** rights. These rights are described in the Nokia Qt LGPL Exception
26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 ** If you have questions regarding the use of this file, please contact
29 ** Nokia at qt-info@nokia.com.
38 ** $QT_END_LICENSE$
40 ****************************************************************************/
42 #ifndef QVFB_H
43 #define QVFB_H
45 #include <QMainWindow>
46 #include <QStringList>
47 #include "qvfbview.h"
49 QT_BEGIN_NAMESPACE
51 class QVFbAbstractView;
52 class QVFbRateDialog;
53 class QPopupMenu;
54 class QMenuData;
55 class QAction;
56 class Config;
57 class DeviceSkin;
58 class QVFb;
59 class QLabel;
60 class QMenu;
61 class QScrollArea;
63 class Zoomer : public QWidget {
64 Q_OBJECT
65 public:
66 Zoomer(QVFb* target);
68 private slots:
69 void zoom(int);
71 private:
72 QVFb *qvfb;
73 QLabel *label;
76 class QVFb: public QMainWindow
78 Q_OBJECT
79 public:
80 enum DisplayType { QWS, X11 };
82 QVFb( int display_id, int w, int h, int d, int r, const QString &skin, DisplayType displayType, QWidget *parent = 0, Qt::WindowFlags wflags = 0 );
83 ~QVFb();
85 void enableCursor( bool e );
87 QSize sizeHint() const;
89 public slots:
90 void popupMenu();
92 protected slots:
93 void saveImage();
94 void toggleAnimation();
95 void toggleCursor();
96 void changeRate();
97 void setRate(int);
98 void about();
100 void configure();
101 void skinConfigChosen(int i);
102 void chooseSize(const QSize& sz);
103 void chooseDepth(int depth, QVFbView::PixelFormat displayFormat);
105 void setZoom1();
106 void setZoom2();
107 void setZoom3();
108 void setZoom4();
109 void setZoomHalf();
110 void setZoom075();
112 void setZoom();
114 void setRot0();
115 void setRot90();
116 void setRot180();
117 void setRot270();
119 public slots:
120 void setZoom(double);
121 void setRotation(QVFbView::Rotation);
123 protected:
124 template <typename T>
125 void createMenu(T *menu);
126 QMenu* createFileMenu();
127 QMenu* createViewMenu();
128 QMenu* createHelpMenu();
130 private:
131 void findSkins(const QString &currentSkin);
132 void init( int display_id, int w, int h, int d, int r, const QString& skin );
133 DeviceSkin *skin;
134 double skinscaleH,skinscaleV;
135 QVFbAbstractView *view;
136 QVFbAbstractView *secondaryView;
137 QVFbRateDialog *rateDlg;
138 QMenu *viewMenu;
139 QAction *cursorAction;
140 Config* config;
141 QStringList skinnames;
142 QStringList skinfiles;
143 int currentSkinIndex;
144 Zoomer *zoomer;
145 QScrollArea* scroller;
146 DisplayType displayType;
148 int refreshRate;
149 private slots:
150 void setGamma400(int n);
151 void setR400(int n);
152 void setG400(int n);
153 void setB400(int n);
154 void updateGammaLabels();
157 QT_END_NAMESPACE
159 #endif