-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Konstantin Tokarev
committed
Nov 30, 2011
1 parent
c634518
commit 0b954b1
Showing
70 changed files
with
4,163 additions
and
0 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,170 @@ | ||
/**************************************************************************** | ||
** | ||
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). | ||
** All rights reserved. | ||
** Contact: Nokia Corporation ([email protected]) | ||
** | ||
** This file is part of the demonstration 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.1, 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 have questions regarding the use of this file, please contact | ||
** Nokia at [email protected]. | ||
** $QT_END_LICENSE$ | ||
** | ||
****************************************************************************/ | ||
|
||
#ifndef GRADIENTS_H | ||
#define GRADIENTS_H | ||
|
||
#include "arthurwidgets.h" | ||
|
||
#include <QtGui> | ||
|
||
class HoverPoints; | ||
|
||
|
||
class ShadeWidget : public QWidget | ||
{ | ||
Q_OBJECT | ||
public: | ||
enum ShadeType { | ||
RedShade, | ||
GreenShade, | ||
BlueShade, | ||
ARGBShade | ||
}; | ||
|
||
ShadeWidget(ShadeType type, QWidget *parent); | ||
|
||
void setGradientStops(const QGradientStops &stops); | ||
|
||
void paintEvent(QPaintEvent *e); | ||
|
||
QSize sizeHint() const { return QSize(150, 40); } | ||
QPolygonF points() const; | ||
|
||
HoverPoints *hoverPoints() const { return m_hoverPoints; } | ||
|
||
uint colorAt(int x); | ||
|
||
signals: | ||
void colorsChanged(); | ||
|
||
private: | ||
void generateShade(); | ||
|
||
ShadeType m_shade_type; | ||
QImage m_shade; | ||
HoverPoints *m_hoverPoints; | ||
QLinearGradient m_alpha_gradient; | ||
}; | ||
|
||
class GradientEditor : public QWidget | ||
{ | ||
Q_OBJECT | ||
public: | ||
GradientEditor(QWidget *parent); | ||
|
||
void setGradientStops(const QGradientStops &stops); | ||
|
||
public slots: | ||
void pointsUpdated(); | ||
|
||
signals: | ||
void gradientStopsChanged(const QGradientStops &stops); | ||
|
||
private: | ||
ShadeWidget *m_red_shade; | ||
ShadeWidget *m_green_shade; | ||
ShadeWidget *m_blue_shade; | ||
ShadeWidget *m_alpha_shade; | ||
}; | ||
|
||
|
||
class GradientRenderer : public ArthurFrame | ||
{ | ||
Q_OBJECT | ||
public: | ||
GradientRenderer(QWidget *parent); | ||
void paint(QPainter *p); | ||
|
||
QSize sizeHint() const { return QSize(400, 400); } | ||
|
||
HoverPoints *hoverPoints() const { return m_hoverPoints; } | ||
void mousePressEvent(QMouseEvent *e); | ||
|
||
public slots: | ||
void setGradientStops(const QGradientStops &stops); | ||
|
||
void setPadSpread() { m_spread = QGradient::PadSpread; update(); } | ||
void setRepeatSpread() { m_spread = QGradient::RepeatSpread; update(); } | ||
void setReflectSpread() { m_spread = QGradient::ReflectSpread; update(); } | ||
|
||
void setLinearGradient() { m_gradientType = Qt::LinearGradientPattern; update(); } | ||
void setRadialGradient() { m_gradientType = Qt::RadialGradientPattern; update(); } | ||
void setConicalGradient() { m_gradientType = Qt::ConicalGradientPattern; update(); } | ||
|
||
|
||
private: | ||
QGradientStops m_stops; | ||
HoverPoints *m_hoverPoints; | ||
|
||
QGradient::Spread m_spread; | ||
Qt::BrushStyle m_gradientType; | ||
}; | ||
|
||
|
||
class GradientWidget : public QWidget | ||
{ | ||
Q_OBJECT | ||
public: | ||
GradientWidget(QWidget *parent); | ||
|
||
public slots: | ||
void setDefault1() { setDefault(1); } | ||
void setDefault2() { setDefault(2); } | ||
void setDefault3() { setDefault(3); } | ||
void setDefault4() { setDefault(4); } | ||
|
||
private: | ||
void setDefault(int i); | ||
|
||
GradientRenderer *m_renderer; | ||
GradientEditor *m_editor; | ||
|
||
QRadioButton *m_linearButton; | ||
QRadioButton *m_radialButton; | ||
QRadioButton *m_conicalButton; | ||
QRadioButton *m_padSpreadButton; | ||
QRadioButton *m_reflectSpreadButton; | ||
QRadioButton *m_repeatSpreadButton; | ||
|
||
}; | ||
|
||
#endif // GRADIENTS_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
<html> | ||
<center> | ||
<h2>Gradients</h2> | ||
</center> | ||
|
||
<p>In this demo we show the various types of gradients that can | ||
be used in Qt.</p> | ||
|
||
<p>There are three types of gradients: | ||
|
||
<ul> | ||
<li><b>Linear</b> gradients interpolate colors between start and end | ||
points.</li> | ||
<li><b>Radial</b> gradients interpolate colors between a focal point and the | ||
points on a circle surrounding it.</li> | ||
<li><b>Conical</b> gradients interpolate colors around a center point.</li> | ||
</ul> | ||
|
||
</p> | ||
|
||
<p>The panel on the right contains a color table editor that defines | ||
the colors in the gradient. The three topmost controls determine the red, | ||
green and blue components while the last defines the alpha of the | ||
gradient. You can move points, and add new ones, by clicking with the left | ||
mouse button, and remove points by clicking with the right button.</p> | ||
|
||
<p>There are three default configurations available at the bottom of | ||
the page that are provided as suggestions on how a color table could be | ||
configured.</p> | ||
|
||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
SOURCES += main.cpp gradients.cpp | ||
HEADERS += gradients.h | ||
|
||
SHARED_FOLDER = ../shared | ||
|
||
include($$SHARED_FOLDER/shared.pri) | ||
|
||
RESOURCES += gradients.qrc | ||
contains(QT_CONFIG, opengl) { | ||
DEFINES += QT_OPENGL_SUPPORT | ||
QT += opengl | ||
} | ||
|
||
# install | ||
target.path = $$[QT_INSTALL_DEMOS]/gradients | ||
sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.html | ||
sources.path = $$[QT_INSTALL_DEMOS]/gradients | ||
INSTALLS += target sources | ||
|
||
symbian: include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<!DOCTYPE RCC><RCC version="1.0"> | ||
<qresource prefix="/res/gradients"> | ||
<file>gradients.cpp</file> | ||
<file>gradients.html</file> | ||
</qresource> | ||
</RCC> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
/**************************************************************************** | ||
** | ||
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). | ||
** All rights reserved. | ||
** Contact: Nokia Corporation ([email protected]) | ||
** | ||
** This file is part of the demonstration 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.1, 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 have questions regarding the use of this file, please contact | ||
** Nokia at [email protected]. | ||
** $QT_END_LICENSE$ | ||
** | ||
****************************************************************************/ | ||
|
||
#include "gradients.h" | ||
|
||
#include <QApplication> | ||
|
||
int main(int argc, char **argv) | ||
{ | ||
Q_INIT_RESOURCE(gradients); | ||
|
||
QApplication app(argc, argv); | ||
|
||
GradientWidget gradientWidget(0); | ||
QStyle *arthurStyle = new ArthurStyle(); | ||
gradientWidget.setStyle(arthurStyle); | ||
QList<QWidget *> widgets = qFindChildren<QWidget *>(&gradientWidget); | ||
foreach (QWidget *w, widgets) { | ||
w->setStyle(arthurStyle); | ||
w->setAttribute(Qt::WA_AcceptTouchEvents); | ||
} | ||
gradientWidget.show(); | ||
|
||
return app.exec(); | ||
} |
Oops, something went wrong.