File indexing completed on 2025-04-27 03:58:30
0001 /* ============================================================ 0002 * 0003 * This file is a part of digiKam project 0004 * https://www.digikam.org 0005 * 0006 * Date : 2014-09-12 0007 * Description : Vertical and horizontal layout widget helpers. 0008 * 0009 * SPDX-FileCopyrightText: 2014-2024 by Gilles Caulier <caulier dot gilles at gmail dot com> 0010 * 0011 * SPDX-License-Identifier: GPL-2.0-or-later 0012 * 0013 * ============================================================ */ 0014 0015 #ifndef DIGIKAM_DLAYOUT_BOX_H 0016 #define DIGIKAM_DLAYOUT_BOX_H 0017 0018 // Qt includes 0019 0020 #include <QWidget> 0021 #include <QFrame> 0022 #include <QSize> 0023 #include <QMargins> 0024 0025 // Local includes 0026 0027 #include "digikam_export.h" 0028 0029 namespace Digikam 0030 { 0031 0032 /** 0033 * An Horizontal widget to host children widgets 0034 */ 0035 class DIGIKAM_EXPORT DHBox : public QFrame 0036 { 0037 Q_OBJECT 0038 Q_DISABLE_COPY(DHBox) 0039 0040 public: 0041 0042 explicit DHBox(QWidget* const parent = nullptr); 0043 ~DHBox() override; 0044 0045 void setSpacing(int space); 0046 void setContentsMargins(const QMargins& margins); 0047 void setContentsMargins(int left, int top, int right, int bottom); 0048 void setStretchFactor(QWidget* const widget, int stretch); 0049 0050 QSize sizeHint() const override; 0051 QSize minimumSizeHint() const override; 0052 0053 protected: 0054 0055 DHBox(bool vertical, QWidget* const parent); 0056 0057 void childEvent(QChildEvent* e) override; 0058 }; 0059 0060 // ------------------------------------------------------------------------------------ 0061 0062 /** 0063 * A Vertical widget to host children widgets 0064 */ 0065 class DIGIKAM_EXPORT DVBox : public DHBox 0066 { 0067 Q_OBJECT 0068 Q_DISABLE_COPY(DVBox) 0069 0070 public: 0071 0072 explicit DVBox(QWidget* const parent = nullptr); 0073 ~DVBox() override; 0074 }; 0075 0076 } // namespace Digikam 0077 0078 #endif // DIGIKAM_DLAYOUT_BOX_H