1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
#ifndef WIDGETRESIZER_H
#define WIDGETRESIZER_H
#include "guiSQLiteStudio_global.h"
#include <QWidget>
class GUI_API_EXPORT WidgetResizer : public QWidget
{
Q_OBJECT
public:
explicit WidgetResizer(const Qt::Orientation& orientation, QWidget *parent = 0);
explicit WidgetResizer(QWidget *parent = 0);
~WidgetResizer();
Qt::Orientation getOrientation() const;
void setOrientation(const Qt::Orientation& value);
int getWidth() const;
void setWidth(int value);
QWidget* getWidget() const;
void setWidget(QWidget* value);
QSize getWidgetMinimumSize() const;
void setWidgetMinimumSize(const QSize& value);
void setWidgetMinimumSize(int width, int height);
void minimizeHeight();
protected:
void mouseMoveEvent(QMouseEvent* event);
void mousePressEvent(QMouseEvent* event);
private:
void init();
void updateCursor();
void updateWidth();
void handleHorizontalMove(int position);
void handleVerticalMove(int position);
Qt::Orientation orientation = Qt::Vertical;
int width = 4;
QWidget* widget = nullptr;
QPoint dragStartPosition;
QSize dragStartSize;
QSize widgetMinimumSize;
};
#endif // WIDGETRESIZER_H
|