1 /****************************************************************************
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (qt-info@nokia.com)
7 ** This file is part of the demonstration applications of the Qt Toolkit.
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
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.
40 ****************************************************************************/
42 #ifndef ARTHURWIDGETS_H
43 #define ARTHURWIDGETS_H
45 #include "arthurstyle.h"
47 #include <QPushButton>
50 #if defined(QT_OPENGL_SUPPORT)
53 class GLWidget
: public QGLWidget
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(); }
64 bool event(QEvent
*event
)
66 switch (event
->type()) {
67 case QEvent::TouchBegin
:
68 case QEvent::TouchUpdate
:
69 case QEvent::TouchEnd
:
76 return QGLWidget::event(event
);
81 QT_FORWARD_DECLARE_CLASS(QTextDocument
)
82 QT_FORWARD_DECLARE_CLASS(QTextEdit
)
83 QT_FORWARD_DECLARE_CLASS(QVBoxLayout
)
85 class ArthurFrame
: public QWidget
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
; }
107 void setPreferImage(bool pi
) { m_prefer_image
= pi
; }
108 void setDescriptionEnabled(bool enabled
);
111 #if defined(QT_OPENGL_SUPPORT)
112 void enableOpenGL(bool use_opengl
);
113 bool usesOpenGL() { return m_use_opengl
; }
117 void descriptionEnabledChanged(bool);
120 void paintEvent(QPaintEvent
*);
121 void resizeEvent(QResizeEvent
*);
123 #if defined(QT_OPENGL_SUPPORT)
131 QTextDocument
*m_document
;
133 QString m_sourceFileName
;