/* SPDX-FileCopyrightText: 2008-2010 Volker Lanz SPDX-FileCopyrightText: 2010 Hugo Pereira Da Costa SPDX-FileCopyrightText: 2015 Teo Mrnjavac SPDX-FileCopyrightText: 2016-2017 Andrius Štikonas #include class Partition; class PartWidget; class QWidget; bool distributeLostPixels(QList& childrenWidth, qint32 lostPixels); bool levelChildrenWidths(QList& childrenWidth, const QList& minChildrenWidth, const qint32 destWidgetWidth); /** Base class for all widgets that need to position Partitions. @author Volker Lanz */ class LIBKPMCORE_EXPORT PartWidgetBase : public QWidget { Q_DISABLE_COPY(PartWidgetBase) protected: PartWidgetBase(QWidget* parent) : QWidget(parent) {} ~PartWidgetBase() override {} public: virtual qint32 borderWidth() const { return m_BorderWidth; /**< @return border width */ } virtual qint32 borderHeight() const { return m_BorderHeight; /**< @return border height */ } static qint32 spacing() { return m_Spacing; /**< @return spacing between Partitions */ } static qint32 minWidth() { return m_MinWidth; /**< @return minimum width for a Partition widget */ } virtual const QList childWidgets() const; protected: virtual void positionChildren(const QWidget* destWidget, const PartitionNode::Partitions& partitions, QList widgets) const; private: static const qint32 m_Spacing; static const qint32 m_BorderWidth; static const qint32 m_BorderHeight; static const qint32 m_MinWidth; }; #endif