X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/621b83d9b34572321873cf3d54920a7749b2f53c..46ff9bd5ddc9c55598eeeecfd8945a54a60cca65:/src/dfb/dc.cpp diff --git a/src/dfb/dc.cpp b/src/dfb/dc.cpp index acfa1eb5b7..49aa202b63 100644 --- a/src/dfb/dc.cpp +++ b/src/dfb/dc.cpp @@ -338,7 +338,7 @@ void wxDC::DoDrawText(const wxString& text, wxCoord x, wxCoord y) wxCHECK_RET( m_textForegroundColour.Ok(), wxT("invalid foreground color") ); SelectColour(m_textForegroundColour); - m_surface->DrawString(wxSTR_TO_DFB(text), -1, xx, yy, DSTF_LEFT | DSTF_TOP); + m_surface->DrawString(text.utf8_str(), -1, xx, yy, DSTF_LEFT | DSTF_TOP); // restore pen's colour, because other drawing functions expect the colour // to be set to the pen: @@ -497,7 +497,7 @@ void wxDC::DoGetTextExtent(const wxString& string, wxCoord *x, wxCoord *y, DFBRectangle rect; wxIDirectFBFontPtr f = GetCurrentFont(); - if ( f->GetStringExtents(wxSTR_TO_DFB(string), -1, &rect, NULL) ) + if ( f->GetStringExtents(string.utf8_str(), -1, &rect, NULL) ) { // VS: YDEV is corrent, it should *not* be XDEV, because font's are // only scaled according to m_scaleY @@ -528,132 +528,10 @@ void wxDC::DoGetTextExtent(const wxString& string, wxCoord *x, wxCoord *y, // mapping modes // --------------------------------------------------------------------------- -void wxDC::ComputeScaleAndOrigin() -{ - m_scaleX = m_logicalScaleX * m_userScaleX; - m_scaleY = m_logicalScaleY * m_userScaleY; - - // FIXME_DFB: scaling affects pixel size of font, pens, brushes, which - // is not currently implemented here; probably makes sense to - // switch to Cairo instead of implementing everything for DFB - wxASSERT_MSG( m_scaleX == 1.0 && m_scaleY == 1.0, - _T("scaling is not implemented in wxDFB") ); -} - -void wxDC::SetMapMode(int mode) -{ - #warning "move this to common code, it's shared by almost all ports!" - switch (mode) - { - case wxMM_TWIPS: - SetLogicalScale(twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y); - break; - case wxMM_POINTS: - SetLogicalScale(pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y); - break; - case wxMM_METRIC: - SetLogicalScale(m_mm_to_pix_x, m_mm_to_pix_y); - break; - case wxMM_LOMETRIC: - SetLogicalScale(m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0); - break; - default: - case wxMM_TEXT: - SetLogicalScale(1.0, 1.0); - break; - } - m_mappingMode = mode; -} - -void wxDC::SetUserScale(double x, double y) -{ - #warning "move this to common code?" - // allow negative ? -> no - m_userScaleX = x; - m_userScaleY = y; - ComputeScaleAndOrigin(); -} - -void wxDC::SetLogicalScale(double x, double y) -{ - #warning "move this to common code?" - // allow negative ? - m_logicalScaleX = x; - m_logicalScaleY = y; - ComputeScaleAndOrigin(); -} - -void wxDC::SetLogicalOrigin( wxCoord x, wxCoord y ) -{ - #warning "move this to common code?" - m_logicalOriginX = x * m_signX; // is this still correct ? - m_logicalOriginY = y * m_signY; - ComputeScaleAndOrigin(); -} - -void wxDC::SetDeviceOrigin( wxCoord x, wxCoord y ) -{ - #warning "move this to common code?" - // only wxPostScripDC has m_signX = -1, we override SetDeviceOrigin there - m_deviceOriginX = x; - m_deviceOriginY = y; - ComputeScaleAndOrigin(); -} - -void wxDC::SetAxisOrientation( bool xLeftRight, bool yBottomUp ) -{ - #warning "move this to common code?" - // only wxPostScripDC has m_signX = -1, we override SetAxisOrientation there - m_signX = (xLeftRight ? 1 : -1); - m_signY = (yBottomUp ? -1 : 1); - ComputeScaleAndOrigin(); -} - -// --------------------------------------------------------------------------- -// coordinates transformations -// --------------------------------------------------------------------------- - -wxCoord wxDC::DeviceToLogicalX(wxCoord x) const -{ - return XDEV2LOG(x); -} - -wxCoord wxDC::DeviceToLogicalY(wxCoord y) const -{ - return YDEV2LOG(y); -} - -wxCoord wxDC::DeviceToLogicalXRel(wxCoord x) const -{ - return XDEV2LOGREL(x); -} - -wxCoord wxDC::DeviceToLogicalYRel(wxCoord y) const -{ - return YDEV2LOGREL(y); -} - -wxCoord wxDC::LogicalToDeviceX(wxCoord x) const -{ - return XLOG2DEV(x); -} - -wxCoord wxDC::LogicalToDeviceY(wxCoord y) const -{ - return YLOG2DEV(y); -} - -wxCoord wxDC::LogicalToDeviceXRel(wxCoord x) const -{ - return XLOG2DEVREL(x); -} - -wxCoord wxDC::LogicalToDeviceYRel(wxCoord y) const -{ - return YLOG2DEVREL(y); -} - - +// FIXME_DFB: scaling affects pixel size of font, pens, brushes, which +// is not currently implemented here; probably makes sense to +// switch to Cairo instead of implementing everything for DFB + void wxDC::DoGetSize(int *w, int *h) const { wxCHECK_RET( Ok(), wxT("invalid dc") );