diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/macextras/macextras.pro | 3 | ||||
-rw-r--r-- | examples/macextras/mactoolbar/mactoolbar.pro | 5 | ||||
-rw-r--r-- | examples/macextras/mactoolbar/mactoolbar.qrc | 5 | ||||
-rw-r--r-- | examples/macextras/mactoolbar/main.cpp | 53 | ||||
-rw-r--r-- | examples/macextras/mactoolbar/qtlogo.png | bin | 0 -> 1478 bytes | |||
-rw-r--r-- | examples/macextras/mactoolbar/rasterwindow.cpp | 87 | ||||
-rw-r--r-- | examples/macextras/mactoolbar/rasterwindow.h | 59 | ||||
-rw-r--r-- | examples/macextras/mactoolbar/toolbarcontrollerwindow.cpp | 81 | ||||
-rw-r--r-- | examples/macextras/mactoolbar/toolbarcontrollerwindow.h | 57 |
9 files changed, 349 insertions, 1 deletions
diff --git a/examples/macextras/macextras.pro b/examples/macextras/macextras.pro index 8fe1d13..a9c135d 100644 --- a/examples/macextras/macextras.pro +++ b/examples/macextras/macextras.pro @@ -2,4 +2,5 @@ TEMPLATE = subdirs mac:SUBDIRS = macfunctions mac:!ios:SUBDIRS += embeddedqwindow \ - macpasteboardmime + macpasteboardmime \ + mactoolbar diff --git a/examples/macextras/mactoolbar/mactoolbar.pro b/examples/macextras/mactoolbar/mactoolbar.pro new file mode 100644 index 0000000..88d5cde --- /dev/null +++ b/examples/macextras/mactoolbar/mactoolbar.pro @@ -0,0 +1,5 @@ +QT += macextras + +HEADERS += toolbarcontrollerwindow.h rasterwindow.h +SOURCES += toolbarcontrollerwindow.cpp rasterwindow.cpp main.cpp +RESOURCES += mactoolbar.qrc diff --git a/examples/macextras/mactoolbar/mactoolbar.qrc b/examples/macextras/mactoolbar/mactoolbar.qrc new file mode 100644 index 0000000..04a9419 --- /dev/null +++ b/examples/macextras/mactoolbar/mactoolbar.qrc @@ -0,0 +1,5 @@ +<RCC> + <qresource prefix="/"> + <file>qtlogo.png</file> + </qresource> +</RCC> diff --git a/examples/macextras/mactoolbar/main.cpp b/examples/macextras/mactoolbar/main.cpp new file mode 100644 index 0000000..460e9ed --- /dev/null +++ b/examples/macextras/mactoolbar/main.cpp @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtMacExtras module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "toolbarcontrollerwindow.h" + +#include <QtGui/QGuiApplication> + +int main(int argc, char **argv) +{ + QGuiApplication app(argc, argv); + + ToolBarControllerWindow toolbarControllerWindow; + toolbarControllerWindow.show(); + + return app.exec(); +} diff --git a/examples/macextras/mactoolbar/qtlogo.png b/examples/macextras/mactoolbar/qtlogo.png Binary files differnew file mode 100644 index 0000000..d75936b --- /dev/null +++ b/examples/macextras/mactoolbar/qtlogo.png diff --git a/examples/macextras/mactoolbar/rasterwindow.cpp b/examples/macextras/mactoolbar/rasterwindow.cpp new file mode 100644 index 0000000..88abad9 --- /dev/null +++ b/examples/macextras/mactoolbar/rasterwindow.cpp @@ -0,0 +1,87 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtMacExtras module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "rasterwindow.h" + +RasterWindow::RasterWindow(QWindow *parent) + : QWindow(parent) +{ + m_backingStore = new QBackingStore(this); + create(); + + setGeometry(100, 100, 300, 200); +} + +void RasterWindow::setText(const QString &text) +{ + m_text = text; + renderNow(); +} + +void RasterWindow::exposeEvent(QExposeEvent *) +{ + if (isExposed()) { + m_backingStore->resize(size()); + renderNow(); + } +} + +void RasterWindow::renderNow() +{ + if (!isExposed()) + return; + + QRect rect(0, 0, width(), height()); + m_backingStore->beginPaint(rect); + + QPaintDevice *device = m_backingStore->paintDevice(); + QPainter painter(device); + + painter.fillRect(0, 0, width(), height(), Qt::white); + render(&painter); + + m_backingStore->endPaint(); + m_backingStore->flush(rect); +} + +void RasterWindow::render(QPainter *painter) +{ + painter->drawText(QRectF(0, 0, width(), height()), Qt::AlignCenter, m_text); +}
\ No newline at end of file diff --git a/examples/macextras/mactoolbar/rasterwindow.h b/examples/macextras/mactoolbar/rasterwindow.h new file mode 100644 index 0000000..35f7d23 --- /dev/null +++ b/examples/macextras/mactoolbar/rasterwindow.h @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtMacExtras module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtGui> + +class RasterWindow : public QWindow +{ + Q_OBJECT +public: + explicit RasterWindow(QWindow *parent = 0); + + void setText(const QString &text); +public slots: + void renderNow(); +protected: + virtual void render(QPainter *painter); + void exposeEvent(QExposeEvent *event); + +private: + QBackingStore *m_backingStore; + QString m_text; +};
\ No newline at end of file diff --git a/examples/macextras/mactoolbar/toolbarcontrollerwindow.cpp b/examples/macextras/mactoolbar/toolbarcontrollerwindow.cpp new file mode 100644 index 0000000..4aa76fb --- /dev/null +++ b/examples/macextras/mactoolbar/toolbarcontrollerwindow.cpp @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtMacExtras module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "toolbarcontrollerwindow.h" + +ToolBarControllerWindow::ToolBarControllerWindow() + :RasterWindow(0) +{ + setTitle("QMacToolBar Example"); + RasterWindow::setText("QMacToolBar Example"); + resize(400, 200); + + QMacToolBar *toolBar = new QMacToolBar(this); + + QIcon qtIcon(QStringLiteral(":qtlogo.png")); + + // add Items + QMacToolBarItem *item1 = toolBar->addItem(qtIcon, QStringLiteral("Foo 1")); + connect(item1, SIGNAL(activated()), this, SLOT(activated())); + QMacToolBarItem *item2 = toolBar->addItem(qtIcon, QStringLiteral("Bar 1")); + connect(item2, SIGNAL(activated()), this, SLOT(activated())); + + toolBar->addSeparator(); + + QMacToolBarItem *item3 = toolBar->addItem(qtIcon, QStringLiteral("Foo 2")); + connect(item3, SIGNAL(activated()), this, SLOT(activated())); + QMacToolBarItem *item4 = toolBar->addItem(qtIcon, QStringLiteral("Bar 2")); + connect(item4, SIGNAL(activated()), this, SLOT(activated())); + + // add allowed items for the customization menu. + QMacToolBarItem *item5 = toolBar->addAllowedItem(qtIcon, QStringLiteral("AllowedFoo")); + connect(item5, SIGNAL(activated()), this, SLOT(activated())); + QMacToolBarItem *item6 = toolBar->addAllowedItem(qtIcon, QStringLiteral("AllowedBar")); + connect(item6, SIGNAL(activated()), this, SLOT(activated())); + + // Attach to the window + toolBar->attachToWindow(this); +} + +void ToolBarControllerWindow::activated() +{ + QMacToolBarItem *item = static_cast<QMacToolBarItem *>(sender()); + setText(QStringLiteral("Activated ") + item->text()); +} diff --git a/examples/macextras/mactoolbar/toolbarcontrollerwindow.h b/examples/macextras/mactoolbar/toolbarcontrollerwindow.h new file mode 100644 index 0000000..b7251d2 --- /dev/null +++ b/examples/macextras/mactoolbar/toolbarcontrollerwindow.h @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtMacExtras module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore/qdebug.h> +#include <QtGui/QWindow> +#include <QMacToolBar> + +#include "rasterwindow.h" + +class ToolBarControllerWindow : public RasterWindow +{ +Q_OBJECT +public: + ToolBarControllerWindow(); +public Q_SLOTS: + void activated(); +private: + +}; + |