103 lines
2.5 KiB
C
103 lines
2.5 KiB
C
|
|
#ifndef ResizeHandleH
|
||
|
|
#define ResizeHandleH
|
||
|
|
//============================================================================
|
||
|
|
/// \file ResizeHandle.h
|
||
|
|
/// \author Uwe Kindler
|
||
|
|
/// \date 24.10.2022
|
||
|
|
/// \brief Declaration of CResizeHandle class
|
||
|
|
//============================================================================
|
||
|
|
|
||
|
|
//============================================================================
|
||
|
|
// INCLUDES
|
||
|
|
//============================================================================
|
||
|
|
#include "ads_globals.h"
|
||
|
|
#include <QFrame>
|
||
|
|
|
||
|
|
namespace ads
|
||
|
|
{
|
||
|
|
struct ResizeHandlePrivate;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Resize handle for resizing its parent widget
|
||
|
|
*/
|
||
|
|
class ADS_EXPORT CResizeHandle : public QFrame
|
||
|
|
{
|
||
|
|
Q_OBJECT
|
||
|
|
Q_DISABLE_COPY(CResizeHandle)
|
||
|
|
Q_PROPERTY(bool opaqueResize READ opaqueResize WRITE setOpaqueResize)
|
||
|
|
private:
|
||
|
|
ResizeHandlePrivate* d; ///< private data (pimpl)
|
||
|
|
friend struct ResizeHandlePrivate;
|
||
|
|
|
||
|
|
protected:
|
||
|
|
void mouseMoveEvent(QMouseEvent *) override;
|
||
|
|
void mousePressEvent(QMouseEvent *) override;
|
||
|
|
void mouseReleaseEvent(QMouseEvent *) override;
|
||
|
|
|
||
|
|
public:
|
||
|
|
using Super = QFrame;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Default Constructor
|
||
|
|
*/
|
||
|
|
CResizeHandle(Qt::Edge HandlePosition, QWidget* parent);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Virtual Destructor
|
||
|
|
*/
|
||
|
|
virtual ~CResizeHandle();
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sets the handle position
|
||
|
|
*/
|
||
|
|
void setHandlePosition(Qt::Edge HandlePosition);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Returns the handle position
|
||
|
|
*/
|
||
|
|
Qt::Edge handlePostion() const;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Returns the orientation of this resize handle
|
||
|
|
*/
|
||
|
|
Qt::Orientation orientation() const;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Returns the size hint
|
||
|
|
*/
|
||
|
|
QSize sizeHint() const override;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Returns true, if resizing is active
|
||
|
|
*/
|
||
|
|
bool isResizing() const;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sets the minimum size for the widget that is going to be resized.
|
||
|
|
* The resize handle will not resize the target widget to a size smaller
|
||
|
|
* than this value
|
||
|
|
*/
|
||
|
|
void setMinResizeSize(int MinSize);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sets the maximum size for the widget that is going to be resized
|
||
|
|
* The resize handle will not resize the target widget to a size bigger
|
||
|
|
* than this value
|
||
|
|
*/
|
||
|
|
void setMaxResizeSize(int MaxSize);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Enable / disable opaque resizing
|
||
|
|
*/
|
||
|
|
void setOpaqueResize(bool opaque = true);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Returns true if widgets are resized dynamically (opaquely) while
|
||
|
|
* interactively moving the resize handle. Otherwise returns false.
|
||
|
|
*/
|
||
|
|
bool opaqueResize() const;
|
||
|
|
}; // class name
|
||
|
|
} // namespace ads
|
||
|
|
//-----------------------------------------------------------------------------
|
||
|
|
#endif // ResizeHandleH
|