Added PushButton to test new CDockWidgetSideTab

This commit is contained in:
Uwe Kindler
2022-10-18 15:47:34 +02:00
parent 3a3c3a96d6
commit cbc43e5e0e
3 changed files with 122 additions and 2 deletions

69
src/PushButton.cpp Normal file
View 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