/** * @file PaiToolBar.cpp * @date 2011-9-16 */ #include #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); }