42 maLogicalAdvancements(),
44 mnTextDirection( nDirection )
48 TextLayout::~TextLayout()
52 void SAL_CALL TextLayout::disposing()
58 uno::Sequence< uno::Reference< rendering::XPolyPolygon2D > > SAL_CALL TextLayout::queryTextShapes( )
61 return uno::Sequence< uno::Reference< rendering::XPolyPolygon2D > >();
64 uno::Sequence< geometry::RealRectangle2D > SAL_CALL TextLayout::queryInkMeasures( )
67 return uno::Sequence< geometry::RealRectangle2D >();
70 uno::Sequence< geometry::RealRectangle2D > SAL_CALL TextLayout::queryMeasures( )
73 return uno::Sequence< geometry::RealRectangle2D >();
76 uno::Sequence< double > SAL_CALL TextLayout::queryLogicalAdvancements( )
78 ::osl::MutexGuard aGuard(
m_aMutex );
80 return maLogicalAdvancements;
83 void SAL_CALL TextLayout::applyLogicalAdvancements(
const uno::Sequence< double >& aAdvancements )
85 ::osl::MutexGuard aGuard( m_aMutex );
87 if( aAdvancements.getLength() !=
maText.Length )
89 SAL_WARN(
"canvas.directx",
"TextLayout::applyLogicalAdvancements(): mismatching number of advancements" );
90 throw lang::IllegalArgumentException();
93 maLogicalAdvancements = aAdvancements;
96 geometry::RealRectangle2D SAL_CALL TextLayout::queryTextBounds( )
98 ::osl::MutexGuard aGuard(
m_aMutex );
100 uno::Reference< rendering::XGraphicDevice > xGraphicDevice;
104 const geometry::RealRectangle2D aBounds(
107 maLogicalAdvancements,
109 mpFont->getFontMatrix()));
114 double SAL_CALL TextLayout::justify(
double )
120 double SAL_CALL TextLayout::combinedJustify(
const uno::Sequence< uno::Reference< rendering::XTextLayout > >& ,
127 rendering::TextHit SAL_CALL TextLayout::getTextHit(
const geometry::RealPoint2D& )
130 return rendering::TextHit();
133 rendering::Caret SAL_CALL TextLayout::getCaret( sal_Int32 ,
137 return rendering::Caret();
140 sal_Int32 SAL_CALL TextLayout::getNextInsertionIndex( sal_Int32 ,
148 uno::Reference< rendering::XPolyPolygon2D > SAL_CALL TextLayout::queryVisualHighlighting( sal_Int32 ,
152 return uno::Reference< rendering::XPolyPolygon2D >();
155 uno::Reference< rendering::XPolyPolygon2D > SAL_CALL TextLayout::queryLogicalHighlighting( sal_Int32 ,
159 return uno::Reference< rendering::XPolyPolygon2D >();
162 double SAL_CALL TextLayout::getBaselineOffset( )
168 sal_Int8 SAL_CALL TextLayout::getMainTextDirection( )
170 ::osl::MutexGuard aGuard(
m_aMutex );
172 return mnTextDirection;
175 uno::Reference< rendering::XCanvasFont > SAL_CALL TextLayout::getFont( )
177 ::osl::MutexGuard aGuard(
m_aMutex );
182 rendering::StringContext SAL_CALL TextLayout::getText( )
184 ::osl::MutexGuard aGuard(
m_aMutex );
190 const rendering::ViewState& rViewState,
191 const rendering::RenderState& rRenderState,
192 const ::basegfx::B2ISize& rOutputOffset,
193 const uno::Reference< rendering::XGraphicDevice >& xGraphicDevice,
194 bool bAlphaSurface )
const
196 ::osl::MutexGuard aGuard( m_aMutex );
201 aDrawHelper.drawText(
207 maLogicalAdvancements,
211 mnTextDirection != 0);
216 OUString SAL_CALL TextLayout::getImplementationName()
218 return "DXCanvas::TextLayout";
221 sal_Bool SAL_CALL TextLayout::supportsService(
const OUString& ServiceName )
226 uno::Sequence< OUString > SAL_CALL TextLayout::getSupportedServiceNames()
228 return {
"com.sun.star.rendering.TextLayout" };
rtl::Reference< CanvasFont > ImplRef
css::geometry::RealRectangle2D queryTextBounds(const css::rendering::StringContext &rText, const css::uno::Sequence< double > &rLogicalAdvancements, const css::uno::Reference< css::rendering::XCanvasFont > &rCanvasFont, const css::geometry::Matrix2D &rFontMatrix)
TextLayout(const css::rendering::StringContext &aText, sal_Int8 nDirection, sal_Int64 nRandomSeed, const CanvasFont::ImplRef &rFont)
#define SAL_WARN(area, stream)
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
::cppu::WeakComponentImplHelper< css::rendering::XTextLayout, css::lang::XServiceInfo > TextLayout_Base
std::shared_ptr< Gdiplus::Graphics > GraphicsSharedPtr
std::optional< vcl::Font > mpFont