Пример #1
0
void wxBitmapButton::DrawFace (wxClientDC& rDC, bool bSel)
{
    //
    // Set up drawing colors
    //
    wxPen vHiLitePen(*wxWHITE, 2, wxSOLID); // White
    wxColour gray85(85, 85, 85);
    wxPen vDarkShadowPen(gray85, 2, wxSOLID);
    wxColour vFaceColor(204, 204, 204); // Light Grey

    //
    // Draw the main button face
    //
    // This triggers a redraw and destroys the bottom & left focus border and
    // doesn't seem to do anything useful.
    //    ::WinFillRect(rDC.GetHPS(), &rDC.m_vRclPaint, vFaceColor.GetPixel());

    //
    // Draw the border
    // Note: DrawLine expects wxWidgets coordinate system so swap
    //
    rDC.SetPen(bSel ? vDarkShadowPen : vHiLitePen);
    wxPMDCImpl                      *impl = (wxPMDCImpl*) rDC.GetImpl();
    // top
    rDC.DrawLine( impl->m_vRclPaint.xLeft + 1
                 ,impl->m_vRclPaint.yBottom + 1
                 ,impl->m_vRclPaint.xRight - 1
                 ,impl->m_vRclPaint.yBottom + 1
                );
    // left
    rDC.DrawLine( impl->m_vRclPaint.xLeft + 1
                 ,impl->m_vRclPaint.yBottom + 1
                 ,impl->m_vRclPaint.xLeft + 1
                 ,impl->m_vRclPaint.yTop - 1
                );

    rDC.SetPen(bSel ? vHiLitePen : vDarkShadowPen);
    // bottom
    rDC.DrawLine( impl->m_vRclPaint.xLeft + 1
                 ,impl->m_vRclPaint.yTop - 1
                 ,impl->m_vRclPaint.xRight - 1
                 ,impl->m_vRclPaint.yTop - 1
                );
    // right
    rDC.DrawLine( impl->m_vRclPaint.xRight - 1
                 ,impl->m_vRclPaint.yBottom + 1
                 ,impl->m_vRclPaint.xRight - 1
                 ,impl->m_vRclPaint.yTop - 1
                );

} // end of wxBitmapButton::DrawFace
Пример #2
0
void wxBitmapButton::DrawFace (
  wxClientDC&                       rDC
, bool                              bSel
)
{
    //
    // Set up drawing colors
    //
    wxPen                           vHiLitePen(wxColour(255, 255, 255), 2, wxSOLID); // White
    wxPen                           vDarkShadowPen(wxColour(85, 85, 85), 2, wxSOLID);
    wxColour                        vFaceColor(wxColour(204, 204, 204)); // Light Grey

    //
    // Draw the main button face
    //
    ::WinFillRect(rDC.GetHPS(), &rDC.m_vRclPaint, vFaceColor.GetPixel());

    //
    // Draw the border
    //
    rDC.SetPen(bSel ? vDarkShadowPen : vHiLitePen);
    rDC.DrawLine( rDC.m_vRclPaint.xLeft + 1
                 ,rDC.m_vRclPaint.yTop - 1
                 ,rDC.m_vRclPaint.xRight - 1
                 ,rDC.m_vRclPaint.yTop - 1
                );
    rDC.DrawLine( rDC.m_vRclPaint.xLeft + 1
                 ,rDC.m_vRclPaint.yTop - 1
                 ,rDC.m_vRclPaint.xLeft + 1
                 ,rDC.m_vRclPaint.yBottom + 1
                );

    rDC.SetPen(bSel ? vHiLitePen : vDarkShadowPen);
    rDC.DrawLine( rDC.m_vRclPaint.xLeft + 1
                 ,rDC.m_vRclPaint.yBottom + 1
                 ,rDC.m_vRclPaint.xRight - 1
                 ,rDC.m_vRclPaint.yBottom + 1
                );
    rDC.DrawLine( rDC.m_vRclPaint.xRight - 1
                 ,rDC.m_vRclPaint.yTop - 1
                 ,rDC.m_vRclPaint.xRight - 1
                 ,rDC.m_vRclPaint.yBottom + 1
                );

} // end of wxBitmapButton::DrawFace