mirror of
https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git
synced 2025-01-13 00:30:25 +08:00
Added PushButton to test new CDockWidgetSideTab
This commit is contained in:
parent
3a3c3a96d6
commit
cbc43e5e0e
69
src/PushButton.cpp
Normal file
69
src/PushButton.cpp
Normal file
@ -0,0 +1,69 @@
|
||||
//============================================================================
|
||||
/// \file PushButton.cpp
|
||||
/// \author Uwe Kindler
|
||||
/// \date 18.10.2022
|
||||
/// \brief Implementation of CPushButton
|
||||
//============================================================================
|
||||
|
||||
//============================================================================
|
||||
// INCLUDES
|
||||
//============================================================================
|
||||
#include "PushButton.h"
|
||||
|
||||
#include <QPainter>
|
||||
#include <QStyleOptionButton>
|
||||
#include <QDebug>
|
||||
#include <QStylePainter>
|
||||
|
||||
|
||||
namespace ads
|
||||
{
|
||||
QSize CPushButton::sizeHint() const
|
||||
{
|
||||
QSize sh = QPushButton::sizeHint();
|
||||
|
||||
if (m_Orientation != CPushButton::Horizontal)
|
||||
{
|
||||
sh.transpose();
|
||||
}
|
||||
|
||||
return sh;
|
||||
}
|
||||
|
||||
void CPushButton::paintEvent(QPaintEvent *event)
|
||||
{
|
||||
Q_UNUSED(event);
|
||||
|
||||
QStylePainter painter(this);
|
||||
QStyleOptionButton option;
|
||||
initStyleOption(&option);
|
||||
|
||||
if (m_Orientation == CPushButton::VerticalTopToBottom)
|
||||
{
|
||||
painter.rotate(90);
|
||||
painter.translate(0, -1 * width());
|
||||
option.rect = option.rect.transposed();
|
||||
}
|
||||
else if (m_Orientation == CPushButton::VerticalBottomToTop)
|
||||
{
|
||||
painter.rotate(-90);
|
||||
painter.translate(-1 * height(), 0);
|
||||
option.rect = option.rect.transposed();
|
||||
}
|
||||
|
||||
painter.drawControl(QStyle::CE_PushButton, option);
|
||||
}
|
||||
|
||||
CPushButton::Orientation CPushButton::orientation() const
|
||||
{
|
||||
return m_Orientation;
|
||||
}
|
||||
|
||||
void CPushButton::setOrientation(Orientation &orientation)
|
||||
{
|
||||
m_Orientation = orientation;
|
||||
}
|
||||
} // namespace ads
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// EOF PushButton.cpp
|
49
src/PushButton.h
Normal file
49
src/PushButton.h
Normal file
@ -0,0 +1,49 @@
|
||||
#ifndef PushButtonH
|
||||
#define PushButtonH
|
||||
//============================================================================
|
||||
/// \file PushButton.h
|
||||
/// \author Uwe Kindler
|
||||
/// \date 18.10.2022
|
||||
/// \brief Declaration of CPushButton
|
||||
//============================================================================
|
||||
|
||||
//============================================================================
|
||||
// INCLUDES
|
||||
//============================================================================
|
||||
#include <QPushButton>
|
||||
|
||||
namespace ads
|
||||
{
|
||||
|
||||
/**
|
||||
* ADS specific push button class
|
||||
*/
|
||||
class CPushButton : public QPushButton
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
enum Orientation {
|
||||
Horizontal,
|
||||
VerticalTopToBottom,
|
||||
VerticalBottomToTop
|
||||
};
|
||||
|
||||
using QPushButton::QPushButton;
|
||||
|
||||
virtual QSize sizeHint() const override;
|
||||
|
||||
Orientation orientation() const;
|
||||
void setOrientation(Orientation &orientation);
|
||||
|
||||
protected:
|
||||
virtual void paintEvent(QPaintEvent *event) override;
|
||||
|
||||
private:
|
||||
Orientation m_Orientation = Horizontal;
|
||||
};
|
||||
|
||||
} // namespace ads
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
#endif // PushButtonH
|
||||
|
@ -50,7 +50,8 @@ HEADERS += \
|
||||
DockFocusController.h \
|
||||
AutoHideDockContainer.h \
|
||||
SideTabBar.h \
|
||||
DockWidgetSideTab.h
|
||||
DockWidgetSideTab.h \
|
||||
PushButton.h
|
||||
|
||||
|
||||
SOURCES += \
|
||||
@ -73,7 +74,8 @@ SOURCES += \
|
||||
DockFocusController.cpp \
|
||||
AutoHideDockContainer.cpp \
|
||||
SideTabBar.cpp \
|
||||
DockWidgetSideTab.cpp
|
||||
DockWidgetSideTab.cpp \
|
||||
PushButton.cpp
|
||||
|
||||
|
||||
unix:!macx {
|
||||
|
Loading…
Reference in New Issue
Block a user