28 mnTextDirection( nDirection )
32 void TextLayout::disposing(std::unique_lock<std::mutex>& )
38 uno::Sequence< uno::Reference< rendering::XPolyPolygon2D > > SAL_CALL TextLayout::queryTextShapes( )
41 return uno::Sequence< uno::Reference< rendering::XPolyPolygon2D > >();
44 uno::Sequence< geometry::RealRectangle2D > SAL_CALL TextLayout::queryInkMeasures( )
47 return uno::Sequence< geometry::RealRectangle2D >();
50 uno::Sequence< geometry::RealRectangle2D > SAL_CALL TextLayout::queryMeasures( )
53 return uno::Sequence< geometry::RealRectangle2D >();
56 uno::Sequence< double > SAL_CALL TextLayout::queryLogicalAdvancements( )
60 return maLogicalAdvancements;
63 void SAL_CALL TextLayout::applyLogicalAdvancements(
const uno::Sequence< double >& aAdvancements )
65 std::unique_lock aGuard( m_aMutex );
67 if( aAdvancements.getLength() !=
maText.Length )
69 SAL_INFO(
"canvas.ogl",
"TextLayout::applyLogicalAdvancements(): mismatching number of advancements");
70 throw lang::IllegalArgumentException();
73 maLogicalAdvancements = aAdvancements;
76 geometry::RealRectangle2D SAL_CALL TextLayout::queryTextBounds( )
81 "TextLayout::queryTextBounds(): invalid font" );
85 const rendering::FontRequest& rFontRequest(
mpFont->getFontRequest() );
86 const double nFontSize(
std::max( rFontRequest.CellSize,
87 rFontRequest.ReferenceAdvancement ) );
88 if( maLogicalAdvancements.hasElements() )
90 return geometry::RealRectangle2D( 0, -nFontSize/2,
91 maLogicalAdvancements[ maLogicalAdvancements.getLength()-1 ],
96 return geometry::RealRectangle2D( 0, -nFontSize/2,
102 double SAL_CALL TextLayout::justify(
double )
108 double SAL_CALL TextLayout::combinedJustify(
const uno::Sequence< uno::Reference< rendering::XTextLayout > >& ,
115 rendering::TextHit SAL_CALL TextLayout::getTextHit(
const geometry::RealPoint2D& )
118 return rendering::TextHit();
121 rendering::Caret SAL_CALL TextLayout::getCaret( sal_Int32 ,
125 return rendering::Caret();
128 sal_Int32 SAL_CALL TextLayout::getNextInsertionIndex( sal_Int32 ,
136 uno::Reference< rendering::XPolyPolygon2D > SAL_CALL TextLayout::queryVisualHighlighting( sal_Int32 ,
140 return uno::Reference< rendering::XPolyPolygon2D >();
143 uno::Reference< rendering::XPolyPolygon2D > SAL_CALL TextLayout::queryLogicalHighlighting( sal_Int32 ,
147 return uno::Reference< rendering::XPolyPolygon2D >();
150 double SAL_CALL TextLayout::getBaselineOffset( )
156 sal_Int8 SAL_CALL TextLayout::getMainTextDirection( )
158 std::unique_lock aGuard(
m_aMutex );
160 return mnTextDirection;
163 uno::Reference< rendering::XCanvasFont > SAL_CALL TextLayout::getFont( )
165 std::unique_lock aGuard(
m_aMutex );
170 rendering::StringContext SAL_CALL TextLayout::getText( )
172 std::unique_lock aGuard(
m_aMutex );
rtl::Reference< CanvasFont > ImplRef
TextLayout(css::rendering::StringContext aText, sal_Int8 nDirection, sal_Int64 nRandomSeed, CanvasFont::ImplRef rFont)
#define ENSURE_OR_THROW(c, m)
#define SAL_INFO(area, stream)
std::optional< vcl::Font > mpFont