#include "BToolCommonStyle.h" #include #include #include using namespace AppWindow; using namespace AppWindow::Internal; BToolCommonStyle::BToolCommonStyle() { QStyle *style = QStyleFactory::create("fusion"); setBaseStyle(style); } void BToolCommonStyle::polish(QPalette &p) { p.setColor(QPalette::Window, QColor(255,255,255)); p.setColor(QPalette::Highlight, QColor(64, 174, 73)); p.setColor(QPalette::Button, QColor(255, 255, 255)); } void BToolCommonStyle::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const { switch (element) { case CE_Splitter: painter->save(); { QColor gripShadow = QColor(0,0,0); bool vertical = !(option->state & State_Horizontal); QRect scrollBarSlider = option->rect; quint8 gripMargin = 2; quint8 gripSpacing = 3; quint8 rectSize = 2; painter->setPen(Qt::NoPen); painter->setBrush(QBrush(gripShadow)); if (vertical) { for( int i = 0; i < 3; i++) { quint8 margin = ( 1 + gripSpacing) * i; painter->drawRect(scrollBarSlider.center().x() + margin, scrollBarSlider.top() + gripMargin, rectSize, rectSize); } } else { for( int i = 0; i < 3; i++) { quint8 margin = ( 1 + gripSpacing) * i; painter->drawRect(scrollBarSlider.left() + gripMargin, scrollBarSlider.center().y() + margin, rectSize, rectSize); } } } painter->restore(); break; default: QProxyStyle::drawControl(element, option, painter, widget); } } void BToolCommonStyle::drawPrimitive(PrimitiveElement element, const QStyleOption * option, QPainter * painter, const QWidget * widget) const { switch (element) { case PE_PanelStatusBar: painter->fillRect(option->rect, QColor(240,240,240)); break; default: QProxyStyle::drawPrimitive(element, option, painter, widget); break; } } void BToolCommonStyle::drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget) const { switch (control) { case CC_SpinBox: if (const QStyleOptionSpinBox *spinBox = qstyleoption_cast(option)) { painter->fillRect(spinBox->rect, option->palette.brush(QPalette::Button)); QProxyStyle::drawComplexControl(control, option, painter, widget); } break; default: QProxyStyle::drawComplexControl(control, option, painter, widget); break; } } QSize BToolCommonStyle::sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const { QSize newSize = QProxyStyle::sizeFromContents(type, option, size, widget); /* if (type == CT_Splitter && widget && widget->property("minisplitter").toBool()) return QSize(1, 1); */ return newSize; }