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
|