File: widgetresizer.h

package info (click to toggle)
sqlitestudio 3.4.17-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 61,252 kB
  • sloc: ansic: 403,094; cpp: 122,803; yacc: 2,619; java: 992; tcl: 495; sh: 440; xml: 426; makefile: 19
file content (48 lines) | stat: -rw-r--r-- 1,335 bytes parent folder | download | duplicates (2)
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