Beispiel #1
0
void LKSurface::DrawTextClip(int x, int y, const TCHAR *text, PixelScalar width) {
    int len = _tcslen(text);
    if (len > 0) {
#ifdef USE_GDI
        const RECT rc = {x, 0, x + width, std::numeric_limits<PixelScalar>::max()};
        ::ExtTextOut(*this, x, y, ETO_CLIPPED, &rc, text, len, NULL);
#else
        if(_pCanvas) {
            SubCanvas ClipCanvas(*_pCanvas, {x, 0}, {(unsigned)width, _pCanvas->GetHeight()});
            ClipCanvas.DrawText(0,y, text);
        }
#endif
    }
}
Beispiel #2
0
void LKSurface::DrawText(int X, int Y, const TCHAR* lpString, RECT* ClipRect) {
#ifdef USE_GDI
    ::ExtTextOut(*this, X, Y,ETO_CLIPPED, ClipRect, lpString, _tcslen(lpString), NULL);
#else
    if(_pCanvas) {
        if(ClipRect) {
            SubCanvas ClipCanvas(*_pCanvas, ClipRect->GetOrigin(), ClipRect->GetSize() );
            ClipCanvas.DrawText(X-ClipRect->left, Y-ClipRect->top, lpString);
        } else {
            _pCanvas->DrawText(X, Y, lpString);
        }
    }    
#endif    
}
Beispiel #3
0
void LKSurface::DrawText(int X, int Y, const TCHAR* lpString, UINT cbCount, RECT* ClipRect) {
#ifdef WIN32
    ::ExtTextOut(*this, X, Y,ETO_CLIPPED, ClipRect, lpString, cbCount, NULL);
#else
    if(_pCanvas) {
        if(ClipRect) {
            SubCanvas ClipCanvas(*_pCanvas, (*ClipRect).GetOrigin(), (*ClipRect).GetSize());
            const RasterPoint offset = (*ClipRect).GetOrigin();
            ClipCanvas.DrawText(X-offset.x, Y-offset.y, lpString, cbCount);

        } else {
            _pCanvas->DrawText(X, Y, lpString, cbCount);
        }
    }    
#endif    
}
Beispiel #4
0
int LKSurface::DrawText(const TCHAR* lpchText, RECT *lpRect, UINT uFormat) {
    assert(lpRect);
#ifdef USE_GDI
    return ::DrawText(*this, lpchText, _tcslen(lpchText), lpRect, uFormat);
#else
    if(_pCanvas) {
        if(!(uFormat&(DT_NOCLIP|DT_CALCRECT))) {
            PixelRect rcText(*lpRect);
            SubCanvas ClipCanvas(*_pCanvas, rcText.GetOrigin(), rcText.GetSize() );
            rcText.Offset(-rcText.left, -rcText.top);
            ClipCanvas.DrawFormattedText(&rcText, lpchText, uFormat);
        } else {
            _pCanvas->DrawFormattedText(lpRect, lpchText, uFormat);
        }
    }
    return false;
#endif    
}