diff options
Diffstat (limited to 'examples/widgets/layouts/borderlayout')
-rw-r--r-- | examples/widgets/layouts/borderlayout/CMakeLists.txt | 41 | ||||
-rw-r--r-- | examples/widgets/layouts/borderlayout/borderlayout.cpp | 218 | ||||
-rw-r--r-- | examples/widgets/layouts/borderlayout/borderlayout.h | 97 | ||||
-rw-r--r-- | examples/widgets/layouts/borderlayout/borderlayout.pro | 11 | ||||
-rw-r--r-- | examples/widgets/layouts/borderlayout/main.cpp | 61 | ||||
-rw-r--r-- | examples/widgets/layouts/borderlayout/window.cpp | 78 | ||||
-rw-r--r-- | examples/widgets/layouts/borderlayout/window.h | 71 |
7 files changed, 0 insertions, 577 deletions
diff --git a/examples/widgets/layouts/borderlayout/CMakeLists.txt b/examples/widgets/layouts/borderlayout/CMakeLists.txt deleted file mode 100644 index 92030252ba..0000000000 --- a/examples/widgets/layouts/borderlayout/CMakeLists.txt +++ /dev/null @@ -1,41 +0,0 @@ -# Generated from borderlayout.pro. - -cmake_minimum_required(VERSION 3.16) -project(borderlayout LANGUAGES CXX) - -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_AUTOUIC ON) - -if(NOT DEFINED INSTALL_EXAMPLESDIR) - set(INSTALL_EXAMPLESDIR "examples") -endif() - -set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/layouts/borderlayout") - -find_package(Qt6 COMPONENTS Core) -find_package(Qt6 COMPONENTS Gui) -find_package(Qt6 COMPONENTS Widgets) - -qt_add_executable(borderlayout - borderlayout.cpp borderlayout.h - main.cpp - window.cpp window.h -) -set_target_properties(borderlayout PROPERTIES - WIN32_EXECUTABLE TRUE - MACOSX_BUNDLE TRUE -) -target_link_libraries(borderlayout PUBLIC - Qt::Core - Qt::Gui - Qt::Widgets -) - -install(TARGETS borderlayout - RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" - BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" - LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" -) diff --git a/examples/widgets/layouts/borderlayout/borderlayout.cpp b/examples/widgets/layouts/borderlayout/borderlayout.cpp deleted file mode 100644 index b8ddd3af83..0000000000 --- a/examples/widgets/layouts/borderlayout/borderlayout.cpp +++ /dev/null @@ -1,218 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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 "borderlayout.h" - -BorderLayout::BorderLayout(QWidget *parent, const QMargins &margins, int spacing) - : QLayout(parent) -{ - setContentsMargins(margins); - setSpacing(spacing); -} - -BorderLayout::BorderLayout(int spacing) -{ - setSpacing(spacing); -} - - -BorderLayout::~BorderLayout() -{ - QLayoutItem *l; - while ((l = takeAt(0))) - delete l; -} - -void BorderLayout::addItem(QLayoutItem *item) -{ - add(item, West); -} - -void BorderLayout::addWidget(QWidget *widget, Position position) -{ - add(new QWidgetItem(widget), position); -} - -Qt::Orientations BorderLayout::expandingDirections() const -{ - return Qt::Horizontal | Qt::Vertical; -} - -bool BorderLayout::hasHeightForWidth() const -{ - return false; -} - -int BorderLayout::count() const -{ - return list.size(); -} - -QLayoutItem *BorderLayout::itemAt(int index) const -{ - ItemWrapper *wrapper = list.value(index); - return wrapper ? wrapper->item : nullptr; -} - -QSize BorderLayout::minimumSize() const -{ - return calculateSize(MinimumSize); -} - -void BorderLayout::setGeometry(const QRect &rect) -{ - ItemWrapper *center = nullptr; - int eastWidth = 0; - int westWidth = 0; - int northHeight = 0; - int southHeight = 0; - int centerHeight = 0; - int i; - - QLayout::setGeometry(rect); - - for (i = 0; i < list.size(); ++i) { - ItemWrapper *wrapper = list.at(i); - QLayoutItem *item = wrapper->item; - Position position = wrapper->position; - - if (position == North) { - item->setGeometry(QRect(rect.x(), northHeight, rect.width(), - item->sizeHint().height())); - - northHeight += item->geometry().height() + spacing(); - } else if (position == South) { - item->setGeometry(QRect(item->geometry().x(), - item->geometry().y(), rect.width(), - item->sizeHint().height())); - - southHeight += item->geometry().height() + spacing(); - - item->setGeometry(QRect(rect.x(), - rect.y() + rect.height() - southHeight + spacing(), - item->geometry().width(), - item->geometry().height())); - } else if (position == Center) { - center = wrapper; - } - } - - centerHeight = rect.height() - northHeight - southHeight; - - for (i = 0; i < list.size(); ++i) { - ItemWrapper *wrapper = list.at(i); - QLayoutItem *item = wrapper->item; - Position position = wrapper->position; - - if (position == West) { - item->setGeometry(QRect(rect.x() + westWidth, northHeight, - item->sizeHint().width(), centerHeight)); - - westWidth += item->geometry().width() + spacing(); - } else if (position == East) { - item->setGeometry(QRect(item->geometry().x(), item->geometry().y(), - item->sizeHint().width(), centerHeight)); - - eastWidth += item->geometry().width() + spacing(); - - item->setGeometry(QRect( - rect.x() + rect.width() - eastWidth + spacing(), - northHeight, item->geometry().width(), - item->geometry().height())); - } - } - - if (center) - center->item->setGeometry(QRect(westWidth, northHeight, - rect.width() - eastWidth - westWidth, - centerHeight)); -} - -QSize BorderLayout::sizeHint() const -{ - return calculateSize(SizeHint); -} - -QLayoutItem *BorderLayout::takeAt(int index) -{ - if (index >= 0 && index < list.size()) { - ItemWrapper *layoutStruct = list.takeAt(index); - return layoutStruct->item; - } - return nullptr; -} - -void BorderLayout::add(QLayoutItem *item, Position position) -{ - list.append(new ItemWrapper(item, position)); -} - -QSize BorderLayout::calculateSize(SizeType sizeType) const -{ - QSize totalSize; - - for (int i = 0; i < list.size(); ++i) { - ItemWrapper *wrapper = list.at(i); - Position position = wrapper->position; - QSize itemSize; - - if (sizeType == MinimumSize) - itemSize = wrapper->item->minimumSize(); - else // (sizeType == SizeHint) - itemSize = wrapper->item->sizeHint(); - - if (position == North || position == South || position == Center) - totalSize.rheight() += itemSize.height(); - - if (position == West || position == East || position == Center) - totalSize.rwidth() += itemSize.width(); - } - return totalSize; -} diff --git a/examples/widgets/layouts/borderlayout/borderlayout.h b/examples/widgets/layouts/borderlayout/borderlayout.h deleted file mode 100644 index 58d1aa394d..0000000000 --- a/examples/widgets/layouts/borderlayout/borderlayout.h +++ /dev/null @@ -1,97 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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$ -** -****************************************************************************/ - -#ifndef BORDERLAYOUT_H -#define BORDERLAYOUT_H - -#include <QLayout> -#include <QRect> - -class BorderLayout : public QLayout -{ -public: - enum Position { West, North, South, East, Center }; - - explicit BorderLayout(QWidget *parent, const QMargins &margins = QMargins(), int spacing = -1); - BorderLayout(int spacing = -1); - ~BorderLayout(); - - void addItem(QLayoutItem *item) override; - void addWidget(QWidget *widget, Position position); - Qt::Orientations expandingDirections() const override; - bool hasHeightForWidth() const override; - int count() const override; - QLayoutItem *itemAt(int index) const override; - QSize minimumSize() const override; - void setGeometry(const QRect &rect) override; - QSize sizeHint() const override; - QLayoutItem *takeAt(int index) override; - - void add(QLayoutItem *item, Position position); - -private: - struct ItemWrapper - { - ItemWrapper(QLayoutItem *i, Position p) { - item = i; - position = p; - } - - QLayoutItem *item; - Position position; - }; - - enum SizeType { MinimumSize, SizeHint }; - QSize calculateSize(SizeType sizeType) const; - - QList<ItemWrapper *> list; -}; - -#endif // BORDERLAYOUT_H diff --git a/examples/widgets/layouts/borderlayout/borderlayout.pro b/examples/widgets/layouts/borderlayout/borderlayout.pro deleted file mode 100644 index 53c9647bd7..0000000000 --- a/examples/widgets/layouts/borderlayout/borderlayout.pro +++ /dev/null @@ -1,11 +0,0 @@ -QT += widgets - -HEADERS = borderlayout.h \ - window.h -SOURCES = borderlayout.cpp \ - main.cpp \ - window.cpp - -# install -target.path = $$[QT_INSTALL_EXAMPLES]/widgets/layouts/borderlayout -INSTALLS += target diff --git a/examples/widgets/layouts/borderlayout/main.cpp b/examples/widgets/layouts/borderlayout/main.cpp deleted file mode 100644 index 99725195e5..0000000000 --- a/examples/widgets/layouts/borderlayout/main.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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 <QApplication> - -#include "window.h" - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - Window window; - window.show(); - return app.exec(); -} diff --git a/examples/widgets/layouts/borderlayout/window.cpp b/examples/widgets/layouts/borderlayout/window.cpp deleted file mode 100644 index 9e6b5a9511..0000000000 --- a/examples/widgets/layouts/borderlayout/window.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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 "borderlayout.h" -#include "window.h" -#include <QTextBrowser> -#include <QLabel> - -Window::Window() -{ - QTextBrowser *centralWidget = new QTextBrowser; - centralWidget->setPlainText(tr("Central widget")); - - BorderLayout *layout = new BorderLayout; - layout->addWidget(centralWidget, BorderLayout::Center); - layout->addWidget(createLabel("North"), BorderLayout::North); - layout->addWidget(createLabel("West"), BorderLayout::West); - layout->addWidget(createLabel("East 1"), BorderLayout::East); - layout->addWidget(createLabel("East 2") , BorderLayout::East); - layout->addWidget(createLabel("South"), BorderLayout::South); - setLayout(layout); - - setWindowTitle(tr("Border Layout")); -} - -QLabel *Window::createLabel(const QString &text) -{ - QLabel *label = new QLabel(text); - label->setFrameStyle(QFrame::Box | QFrame::Raised); - return label; -} diff --git a/examples/widgets/layouts/borderlayout/window.h b/examples/widgets/layouts/borderlayout/window.h deleted file mode 100644 index 2577e78b0c..0000000000 --- a/examples/widgets/layouts/borderlayout/window.h +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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$ -** -****************************************************************************/ - -#ifndef WINDOW_H -#define WINDOW_H - -#include <QWidget> - -QT_BEGIN_NAMESPACE -class QLabel; -QT_END_NAMESPACE - -class Window : public QWidget -{ - Q_OBJECT - -public: - Window(); - -private: - QLabel *createLabel(const QString &text); -}; - -#endif // WINDOW_H |