Windows doesn't #define STD{IN,OUT,ERR}_FILENO
[qt-netbsd.git] / demos / shared / arthurwidgets.h
blob7b02bcd5c39f5a59a21baaa17cf992e4f94e616b
1 /****************************************************************************
2 **
3 ** Copyright (C) 2009 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 demonstration 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 ARTHURWIDGETS_H
43 #define ARTHURWIDGETS_H
45 #include "arthurstyle.h"
46 #include <QBitmap>
47 #include <QPushButton>
48 #include <QGroupBox>
50 #if defined(QT_OPENGL_SUPPORT)
51 #include <QGLWidget>
52 #include <QEvent>
53 class GLWidget : public QGLWidget
55 public:
56 GLWidget(QWidget *parent)
57 : QGLWidget(QGLFormat(QGL::SampleBuffers), parent)
59 setAttribute(Qt::WA_AcceptTouchEvents);
61 void disableAutoBufferSwap() { setAutoBufferSwap(false); }
62 void paintEvent(QPaintEvent *) { parentWidget()->update(); }
63 protected:
64 bool event(QEvent *event)
66 switch (event->type()) {
67 case QEvent::TouchBegin:
68 case QEvent::TouchUpdate:
69 case QEvent::TouchEnd:
70 event->ignore();
71 return false;
72 break;
73 default:
74 break;
76 return QGLWidget::event(event);
79 #endif
81 QT_FORWARD_DECLARE_CLASS(QTextDocument)
82 QT_FORWARD_DECLARE_CLASS(QTextEdit)
83 QT_FORWARD_DECLARE_CLASS(QVBoxLayout)
85 class ArthurFrame : public QWidget
87 Q_OBJECT
88 public:
89 ArthurFrame(QWidget *parent);
90 virtual void paint(QPainter *) {}
93 void paintDescription(QPainter *p);
95 void loadDescription(const QString &filename);
96 void setDescription(const QString &htmlDesc);
98 void loadSourceFile(const QString &fileName);
100 bool preferImage() const { return m_prefer_image; }
102 #if defined(QT_OPENGL_SUPPORT)
103 QGLWidget *glWidget() const { return glw; }
104 #endif
106 public slots:
107 void setPreferImage(bool pi) { m_prefer_image = pi; }
108 void setDescriptionEnabled(bool enabled);
109 void showSource();
111 #if defined(QT_OPENGL_SUPPORT)
112 void enableOpenGL(bool use_opengl);
113 bool usesOpenGL() { return m_use_opengl; }
114 #endif
116 signals:
117 void descriptionEnabledChanged(bool);
119 protected:
120 void paintEvent(QPaintEvent *);
121 void resizeEvent(QResizeEvent *);
123 #if defined(QT_OPENGL_SUPPORT)
124 GLWidget *glw;
125 bool m_use_opengl;
126 #endif
127 QPixmap m_tile;
129 bool m_show_doc;
130 bool m_prefer_image;
131 QTextDocument *m_document;
133 QString m_sourceFileName;
137 #endif