/*! * \brief Module::paint * \param painter * \param option * \param widget */ void Module::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { // Determine various drawing options here, including color. ///\todo change colors depending on type of module, hostname, etc. QBrush brush(m_color, Qt::SolidPattern); painter->setBrush(brush); QPen highlightPen(m_borderColor, 4, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin); if (isSelected() && m_Status != BUSY) { QPen pen(scene()->highlightColor(), 4, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin); painter->setPen(pen); } else { if (m_Status == INITIALIZED) { painter->setPen(Qt::NoPen); } else { painter->setPen(highlightPen); } painter->setBrush(brush); } painter->drawRoundedRect(rect(), portDistance, portDistance); painter->setPen(Qt::black); painter->drawText(QPointF(portDistance, portDistance+Port::portSize+m_fontHeight/2.), m_name); }
// Draw a sunken edge void wxEffectsImpl::DrawSunkenEdge(wxDC& dc, const wxRect& rect, int WXUNUSED(borderSize)) { wxPen highlightPen(m_highlightColour, 1, wxPENSTYLE_SOLID); wxPen lightShadowPen(m_lightShadow, 1, wxPENSTYLE_SOLID); wxPen facePen(m_faceColour, 1, wxPENSTYLE_SOLID); wxPen mediumShadowPen(m_mediumShadow, 1, wxPENSTYLE_SOLID); wxPen darkShadowPen(m_darkShadow, 1, wxPENSTYLE_SOLID); //// LEFT AND TOP // Draw a medium shadow pen on left and top, followed by dark shadow line to // right and below of these lines dc.SetPen(mediumShadowPen); dc.DrawLine(rect.x, rect.y, rect.x+rect.width-1, rect.y); // Top dc.DrawLine(rect.x, rect.y, rect.x, rect.y+rect.height-1); // Left dc.SetPen(darkShadowPen); dc.DrawLine(rect.x+1, rect.y+1, rect.x+rect.width-2, rect.y+1); // Top dc.DrawLine(rect.x+1, rect.y+1, rect.x+1, rect.y+rect.height-1); // Left //// RIGHT AND BOTTOM dc.SetPen(highlightPen); dc.DrawLine(rect.x+rect.width-1, rect.y, rect.x+rect.width-1, rect.y+rect.height-1); // Right dc.DrawLine(rect.x, rect.y+rect.height-1, rect.x+rect.width, rect.y+rect.height-1); // Bottom dc.SetPen(lightShadowPen); dc.DrawLine(rect.x+rect.width-2, rect.y+1, rect.x+rect.width-2, rect.y+rect.height-2); // Right dc.DrawLine(rect.x+1, rect.y+rect.height-2, rect.x+rect.width-1, rect.y+rect.height-2); // Bottom dc.SetPen(wxNullPen); }
void PropertyControlRuler::paintEvent(QPaintEvent *event) { ControlRuler::paintEvent(event); QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); QBrush brush(Qt::SolidPattern); QPen highlightPen(GUIPalette::getColour(GUIPalette::SelectedElement), 2, Qt::SolidLine, Qt::SquareCap, Qt::MiterJoin); QPen pen(GUIPalette::getColour(GUIPalette::MatrixElementBorder), 0.5, Qt::SolidLine, Qt::SquareCap, Qt::MiterJoin); // Use a fast vector list to record selected items that are currently visible so that they // can be drawn last - can't use m_selectedItems as this covers all selected, visible or not std::vector<ControlItem*> selectedvector; for (ControlItemList::iterator it = m_visibleItems.begin(); it != m_visibleItems.end(); ++it) { if (!(*it)->isSelected()) { brush.setColor((*it)->getColour().lighter()); painter.setBrush(brush); painter.setPen(Qt::NoPen); painter.drawPolygon(mapItemToWidget(*it)); painter.setPen(pen); painter.drawPolyline(mapItemToWidget(*it)); } else { selectedvector.push_back(*it); } } for (std::vector<ControlItem*>::iterator it = selectedvector.begin(); it != selectedvector.end(); ++it) { brush.setColor(((*it)->getColour())); painter.setBrush(brush); painter.setPen(Qt::NoPen); painter.drawPolygon(mapItemToWidget(*it)); painter.setPen(highlightPen); painter.drawPolyline(mapItemToWidget(*it)); } }