コード例 #1
0
ファイル: module.cpp プロジェクト: xyuan/vistle
/*!
 * \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);
}
コード例 #2
0
ファイル: effects.cpp プロジェクト: AaronDP/wxWidgets
// 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);
}
コード例 #3
0
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));
    }
}