26 #include <com/sun/star/rendering/PanoseWeight.hpp>
27 #include <com/sun/star/rendering/XSpriteCanvas.hpp>
41 INT calcFontStyle(
const rendering::FontRequest& rFontRequest )
43 INT nFontStyle( Gdiplus::FontStyleRegular );
45 if( rFontRequest.FontDescription.FontDescription.Weight > rendering::PanoseWeight::BOOK )
46 nFontStyle = Gdiplus::FontStyleBold;
53 const uno::Sequence< beans::PropertyValue >& extraFontProperties,
54 const geometry::Matrix2D& fontMatrix ) :
59 maFontRequest( rFontRequest ),
61 maFontMatrix( fontMatrix )
63 mpFontFamily = std::make_shared<Gdiplus::FontFamily>(o3tl::toW(rFontRequest.FontDescription.FamilyName.getStr()),
nullptr);
64 if( !mpFontFamily->IsAvailable() )
65 mpFontFamily = std::make_shared<Gdiplus::FontFamily>(L
"Arial",
nullptr);
67 mpFont = std::make_shared<Gdiplus::Font>( mpFontFamily.get(),
68 static_cast<Gdiplus::REAL
>(rFontRequest.CellSize),
69 calcFontStyle( rFontRequest ),
77 ::osl::MutexGuard aGuard(
m_aMutex );
86 sal_Int64 nRandomSeed )
88 ::osl::MutexGuard aGuard(
m_aMutex );
96 return uno::Sequence< double >();
102 return uno::Sequence< beans::PropertyValue >();
107 ::osl::MutexGuard aGuard(
m_aMutex );
115 return rendering::FontMetrics();
120 return "DXCanvas::CanvasFont";
130 return {
"com.sun.star.rendering.CanvasFont" };
135 ::osl::MutexGuard aGuard(
m_aMutex );
142 ::osl::MutexGuard aGuard(
m_aMutex );
149 ::osl::MutexGuard aGuard(
m_aMutex );
156 ::osl::MutexGuard aGuard(
m_aMutex );
const css::geometry::Matrix2D & getFontMatrix() const
virtual css::rendering::FontMetrics SAL_CALL getFontMetrics() override
mutable::osl::Mutex m_aMutex
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
CanvasFont(const CanvasFont &)=delete
make noncopyable
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
virtual void SAL_CALL disposing() override
Dispose all internal references.
FontSharedPtr getFont() const
std::shared_ptr< Gdiplus::Font > FontSharedPtr
GDIPlusUserSharedPtr mpGdiPlusUser
virtual css::uno::Sequence< double > SAL_CALL getAvailableSizes() override
virtual css::rendering::FontRequest SAL_CALL getFontRequest() override
double getEmHeight() const
HRESULT createInstance(REFIID iid, Ifc **ppIfc)
css::geometry::Matrix2D maFontMatrix
FontFamilySharedPtr mpFontFamily
std::unique_ptr< vcl::Font > mpFont
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual OUString SAL_CALL getImplementationName() override
virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getExtraFontProperties() override
rtl::Reference< CanvasFont > ImplRef
::cppu::WeakComponentImplHelper< css::rendering::XCanvasFont, css::lang::XServiceInfo > CanvasFont_Base
double getCellAscent() const
css::rendering::FontRequest maFontRequest
virtual css::uno::Reference< css::rendering::XTextLayout > SAL_CALL createTextLayout(const css::rendering::StringContext &aText, sal_Int8 nDirection, sal_Int64 nRandomSeed) override