Sandboxie/SandboxiePlus/MiscHelpers/Common/CollapsibleGroupBox.h

42 lines
941 B
C
Raw Normal View History

2021-04-11 14:36:13 +01:00
#ifndef COLLAPSIBLEGROUPBOX_H
#define COLLAPSIBLEGROUPBOX_H
#include <QGroupBox>
#include <QMap>
#include <QMargins>
#include <QPair>
2021-06-05 09:53:58 +01:00
#include <QToolButton>
2021-04-11 14:36:13 +01:00
class QResizeEvent;
class CollapseExpandButton;
class QSpacerItem;
2021-06-05 09:53:58 +01:00
#include "../mischelpers_global.h"
class MISCHELPERS_EXPORT CCollapsibleGroupBox : public QGroupBox
2021-04-11 14:36:13 +01:00
{
public:
2021-06-05 09:53:58 +01:00
explicit CCollapsibleGroupBox(QWidget *parent = nullptr);
2021-04-11 14:36:13 +01:00
protected:
void resizeEvent(QResizeEvent *);
private:
void resizeCollapseButton();
void collapseLayout(QLayout *layout);
void collapseSpacer(QSpacerItem *spacer);
void expandLayout(QLayout *layout);
void expandSpacer(QSpacerItem *spacer);
2021-06-05 09:53:58 +01:00
QToolButton *m_clExpButton;
2021-04-11 14:36:13 +01:00
QMap<const void *, QMargins> m_layoutMargins;
QMap<const void *, QPair<QSize, QSizePolicy>> m_spacerSizes;
private slots:
void onScreenChanged();
void onVisibilityChanged();
};
#endif // COLLAPSIBLEGROUPBOX_H