113 lines
2.4 KiB
C++
113 lines
2.4 KiB
C++
/**
|
|
* @file PaiToolBar.cpp
|
|
* @date 2011-9-16
|
|
*/
|
|
#include <QPainter>
|
|
|
|
#include "PaiToolBar.h"
|
|
|
|
using namespace pai::gui;
|
|
|
|
PaiToolBar::PaiToolBar(QWidget *pParent) :
|
|
QToolBar(pParent)
|
|
{
|
|
InitToolBar();
|
|
}
|
|
|
|
PaiToolBar::PaiToolBar(const QString & title, QWidget *pParent) :
|
|
QToolBar(title, pParent)
|
|
{
|
|
InitToolBar();
|
|
}
|
|
|
|
PaiToolBar::~PaiToolBar()
|
|
{
|
|
}
|
|
|
|
void PaiToolBar::InitToolBar()
|
|
{
|
|
m_ShowTopEdge = true;
|
|
m_ShowBottomEdge = true;
|
|
m_ShowLeftEdge = true;
|
|
m_ShowRightEdge = true;
|
|
|
|
m_pLeftMarginWgt = new QWidget(this);
|
|
addWidget(m_pLeftMarginWgt);
|
|
SetLeftMargin(4); // 4px
|
|
}
|
|
|
|
void PaiToolBar::SetLeftMargin(int margin)
|
|
{
|
|
m_pLeftMarginWgt->setMaximumHeight(1);
|
|
m_pLeftMarginWgt->setMinimumHeight(1);
|
|
m_pLeftMarginWgt->setMaximumWidth(margin);
|
|
m_pLeftMarginWgt->setMinimumWidth(margin);
|
|
}
|
|
|
|
QAction* PaiToolBar::AddConstSpace(int space)
|
|
{
|
|
QWidget *pSpace = new QWidget(this);
|
|
|
|
pSpace->setMaximumHeight(1);
|
|
pSpace->setMinimumHeight(1);
|
|
pSpace->setMaximumWidth(space);
|
|
pSpace->setMinimumWidth(space);
|
|
|
|
return addWidget(pSpace);
|
|
}
|
|
|
|
void PaiToolBar::ShowBorder(bool top, bool bottom, bool left, bool right)
|
|
{
|
|
m_ShowTopEdge = top;
|
|
m_ShowBottomEdge = bottom;
|
|
m_ShowLeftEdge = left;
|
|
m_ShowRightEdge = right;
|
|
}
|
|
|
|
void PaiToolBar::paintEvent(QPaintEvent *pEvent)
|
|
{
|
|
Q_UNUSED(pEvent);
|
|
|
|
QLinearGradient linearGrad(QPointF(0, 0), QPointF(0, height()));
|
|
linearGrad.setColorAt(0.0, QColor("#FFFFFF"));
|
|
linearGrad.setColorAt(1.0, QColor("#E7F0F8"));
|
|
|
|
QRect rt = rect();
|
|
|
|
QPainter painter(this);
|
|
|
|
painter.setPen(Qt::NoPen);
|
|
painter.setBrush(QBrush(linearGrad));
|
|
painter.drawRect(rt);
|
|
|
|
painter.setPen(QColor("#6D8298"));
|
|
if(m_ShowTopEdge)
|
|
{
|
|
painter.drawLine(rt.topLeft(), rt.topRight());
|
|
}
|
|
if(m_ShowBottomEdge)
|
|
{
|
|
painter.drawLine(rt.bottomLeft(), rt.bottomRight());
|
|
}
|
|
if(m_ShowLeftEdge)
|
|
{
|
|
painter.drawLine(rt.topLeft(), rt.bottomLeft());
|
|
}
|
|
if(m_ShowRightEdge)
|
|
{
|
|
painter.drawLine(rt.topRight(), rt.bottomRight());
|
|
}
|
|
}
|
|
|
|
QAction* PaiToolBar::AddSpacer()
|
|
{
|
|
QWidget *pWidget = new QWidget;
|
|
QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
|
sizePolicy.setHorizontalStretch(0);
|
|
sizePolicy.setVerticalStretch(0);
|
|
sizePolicy.setHeightForWidth(pWidget->sizePolicy().hasHeightForWidth());
|
|
pWidget->setSizePolicy(sizePolicy);
|
|
|
|
return addWidget(pWidget);
|
|
}
|