示例#1
0
void wxBitmapButton::DrawButtonDisable(
  wxClientDC&                       rDC
, wxBitmap&                         rBmp
)
{
    wxPen                           vGreyPen(wxColour(128, 128, 128), 2, wxSOLID);

    //
    // Draw a thick black line around the outside of the button
    //
    rDC.SetPen(vGreyPen);
    rDC.DrawLine( rDC.m_vRclPaint.xLeft
                 ,rDC.m_vRclPaint.yTop
                 ,rDC.m_vRclPaint.xRight
                 ,rDC.m_vRclPaint.yTop
                );
    rDC.DrawLine( rDC.m_vRclPaint.xRight
                 ,rDC.m_vRclPaint.yTop
                 ,rDC.m_vRclPaint.xRight
                 ,rDC.m_vRclPaint.yBottom
                );
    rDC.DrawLine( rDC.m_vRclPaint.xRight
                 ,rDC.m_vRclPaint.yBottom
                 ,rDC.m_vRclPaint.xLeft
                 ,rDC.m_vRclPaint.yBottom
                );
    rDC.DrawLine( rDC.m_vRclPaint.xLeft
                 ,rDC.m_vRclPaint.yBottom
                 ,rDC.m_vRclPaint.xLeft
                 ,rDC.m_vRclPaint.yTop
                );
    wxDisableBitmap(rBmp, vGreyPen.GetColour().GetPixel());
} // end of wxBitmapButton::DrawButtonDisable
示例#2
0
void wxBitmapButton::DrawButtonFocus (
  wxClientDC&                       rDC
)
{
    wxPen                           vBlackPen(wxColour(0, 0, 0), 2, wxSOLID);

    //
    // Draw a thick black line around the outside of the button
    //
    rDC.SetPen(vBlackPen);
    rDC.DrawLine( rDC.m_vRclPaint.xLeft
                 ,rDC.m_vRclPaint.yTop
                 ,rDC.m_vRclPaint.xRight
                 ,rDC.m_vRclPaint.yTop
                );
    rDC.DrawLine( rDC.m_vRclPaint.xRight
                 ,rDC.m_vRclPaint.yTop
                 ,rDC.m_vRclPaint.xRight
                 ,rDC.m_vRclPaint.yBottom
                );
    rDC.DrawLine( rDC.m_vRclPaint.xRight
                 ,rDC.m_vRclPaint.yBottom
                 ,rDC.m_vRclPaint.xLeft
                 ,rDC.m_vRclPaint.yBottom
                );
    rDC.DrawLine( rDC.m_vRclPaint.xLeft
                 ,rDC.m_vRclPaint.yBottom
                 ,rDC.m_vRclPaint.xLeft
                 ,rDC.m_vRclPaint.yTop
                );
} // end of wxBitmapButton::DrawButtonFocus
void RectangleDrawer::DoDraw(wxClientDC& dc, bool isInnerInclude)
{
	dc.Clear();
	DrawBox(dc);
	DrawStats(dc);

	for (size_t i = 0, i_end = m_pRectangleDB->Size(); i < i_end; ++i)
	{
		if ((*m_pRectangleDB)[i] && (*m_pRectangleDB)[i]->GetStatus() == ON_FIELD)
		{
			DrawRectangle(dc, (*m_pRectangleDB)[i], false, isInnerInclude);
		}
	}

	if (m_bDoScreenShot)
	{
		size_t uiCurrentFile = m_pController->GetCurrentTestFile();
		const char* fileName = ConfigReader::GetInstance()->GetTestName(uiCurrentFile).c_str();
		char str[128];
		wxDateTime now = wxDateTime::Now();
		sprintf_s(str, "screenshots/_time_%s_file_%s_conf_%d_repeat_%d_fit_%4.1f.bmp", 
			now.Format("%H.%M.%S", wxDateTime::CEST).c_str(), 
			fileName,
			m_pController->GetCurrentTestConfig()+1,
			m_pController->GetCurrentTestRepeat(),
			m_fFitnress);
		GetScreenShot(dc).SaveFile(str, wxBITMAP_TYPE_BMP);
		m_bDoScreenShot = false;
	}
}
示例#4
0
	void addPresets(const vector<Game::SpecialPreset>& presets, wxSize& textsize, wxClientDC& dc)
	{
		for (auto& preset : presets)
		{
			auto item = AppendItem(getGroup(preset.group), preset.name);
			SetItemData(item, new SpecialPresetData(preset));
			textsize.IncTo(dc.GetTextExtent(preset.name));
		}
	}
示例#5
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
示例#6
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
示例#7
0
void wxGISMapView::DrawToolTip(wxClientDC& dc, const wxString& sText)
{
	wxSize size = GetClientSize();
	int nWidth, nHeight;

	dc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
	dc.GetTextExtent(sText, &nWidth, &nHeight);

	wxBrush br(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK));
	dc.SetBrush(br);
	wxColor TextColor(wxSystemSettings::GetColour(wxSYS_COLOUR_INFOTEXT));

	wxPen pen(TextColor);
	dc.SetPen(pen);
	int x1 = (size.x - nWidth) / 2, y1 = (size.y - nHeight) - 50;
	dc.DrawRectangle( x1 - 5, y1 - 2, nWidth + 10, nHeight + 4);

	dc.SetTextBackground(TextColor);
	dc.SetTextForeground(TextColor);

	dc.DrawText(sText, x1, y1);
}
示例#8
0
wxSize pxStaticText::GetBestWrappedSize(const wxClientDC &dc) const
{
    pxAssert(m_autowrap);

    // Find an ideal(-ish) width, based on a search of all parent controls and their
    // valid Minimum sizes.

    int idealWidth = wxDefaultCoord;
    int parentalAdjust = 0;
    double parentalFactor = 1.0;
    const wxWindow *millrun = this;

    while (millrun) {
        // IMPORTANT : wxWizard changes its min size and then expects everything else
        // to play nice and NOT resize according to the new min size.  (wtf stupid)
        // Anyway, this fixes it -- ignore min size specifier on wxWizard!
        if (wxIsKindOf(millrun, wxWizard))
            break;

        int min = (int)((millrun->GetMinWidth() - parentalAdjust) * parentalFactor);

        if (min > 0 && ((idealWidth < 0) || (min < idealWidth))) {
            idealWidth = min;
        }

        parentalAdjust += pxSizerFlags::StdPadding * 2;
        millrun = millrun->GetParent();
    }

    if (idealWidth <= 0) {
        // FIXME: The minimum size of this control is unknown, so let's just pick a guess based on
        // the size of the user's display area.

        idealWidth = (int)(wxGetDisplaySize().GetWidth() * 0.66) - (parentalAdjust * 2);
    }

    return dc.GetMultiLineTextExtent(pxTextWrapper().Wrap(this, m_label, idealWidth - calcPaddingWidth(idealWidth)).GetResult());
}
示例#9
0
void wxBitmapButton::DrawButtonDisable( wxClientDC& rDC,
                                        wxBitmap& rBmp )
{
    wxPen vGreyPen(wxT("GREY"), 2, wxSOLID);

    //
    // Draw a thick black line around the outside of the button
    // Note: DrawLine expects wxWidgets coordinate system so swap
    //
    rDC.SetPen(vGreyPen);
    wxPMDCImpl                      *impl = (wxPMDCImpl*) rDC.GetImpl();
    // top
    rDC.DrawLine( impl->m_vRclPaint.xLeft
                 ,impl->m_vRclPaint.yBottom
                 ,impl->m_vRclPaint.xRight
                 ,impl->m_vRclPaint.yBottom
                );
    // right
    rDC.DrawLine( impl->m_vRclPaint.xRight
                 ,impl->m_vRclPaint.yBottom
                 ,impl->m_vRclPaint.xRight
                 ,impl->m_vRclPaint.yTop
                );
    // bottom
    rDC.DrawLine( impl->m_vRclPaint.xRight
                 ,impl->m_vRclPaint.yTop
                 ,impl->m_vRclPaint.xLeft
                 ,impl->m_vRclPaint.yTop
                );
    // left
    rDC.DrawLine( impl->m_vRclPaint.xLeft
                 ,impl->m_vRclPaint.yTop
                 ,impl->m_vRclPaint.xLeft
                 ,impl->m_vRclPaint.yBottom
                );
    wxDisableBitmap(rBmp, vGreyPen.GetColour().GetPixel());
} // end of wxBitmapButton::DrawButtonDisable
示例#10
0
void wxBitmapButton::DrawButtonFocus (
  wxClientDC&                       rDC
)
{
    wxPen vBlackPen(*wxBLACK, 2, wxSOLID);

    //
    // Draw a thick black line around the outside of the button
    // Note: DrawLine expects wxWidgets coordinate system so swap
    //
    rDC.SetPen(vBlackPen);
    wxPMDCImpl                      *impl = (wxPMDCImpl*) rDC.GetImpl();
    // top
    rDC.DrawLine( impl->m_vRclPaint.xLeft
                 ,impl->m_vRclPaint.yBottom
                 ,impl->m_vRclPaint.xRight
                 ,impl->m_vRclPaint.yBottom
                );
    // right
    rDC.DrawLine( impl->m_vRclPaint.xRight
                 ,impl->m_vRclPaint.yBottom
                 ,impl->m_vRclPaint.xRight
                 ,impl->m_vRclPaint.yTop
                );
    // bottom
    rDC.DrawLine( impl->m_vRclPaint.xRight
                 ,impl->m_vRclPaint.yTop
                 ,impl->m_vRclPaint.xLeft
                 ,impl->m_vRclPaint.yTop
                );
    // left
    rDC.DrawLine( impl->m_vRclPaint.xLeft
                 ,impl->m_vRclPaint.yTop
                 ,impl->m_vRclPaint.xLeft
                 ,impl->m_vRclPaint.yBottom
                );
} // end of wxBitmapButton::DrawButtonFocus
示例#11
0
inline static void DrawBox(wxClientDC& dc, const PHD_Point& star, int halfW, double scale)
{
    dc.SetBrush(*wxTRANSPARENT_BRUSH);
    double w = ROUND((halfW * 2 + 1) * scale);
    dc.DrawRectangle(int((star.X - halfW) * scale), int((star.Y - halfW) * scale), w, w);
}