LibreOffice Module vcl (master)
1
|
#include <sallayout.hxx>
Public Member Functions | |
GenericSalLayout (LogicalFontInstance &) | |
~GenericSalLayout () override | |
void | AdjustLayout (vcl::text::ImplLayoutArgs &) final override |
bool | LayoutText (vcl::text::ImplLayoutArgs &, const SalLayoutGlyphsImpl *) final override |
void | DrawText (SalGraphics &) const final override |
SalLayoutGlyphs | GetGlyphs () const final override |
bool | IsKashidaPosValid (int nCharPos) const final override |
DeviceCoordinate | GetTextWidth () const final override |
DeviceCoordinate | FillDXArray (std::vector< DeviceCoordinate > *pDXArray) const final override |
sal_Int32 | GetTextBreak (DeviceCoordinate nMaxWidth, DeviceCoordinate nCharExtra, int nFactor) const final override |
void | GetCaretPositions (int nArraySize, sal_Int32 *pCaretXArray) const final override |
LogicalFontInstance & | GetFont () const |
bool | GetNextGlyph (const GlyphItem **pGlyph, DevicePoint &rPos, int &nStart, const LogicalFontInstance **ppGlyphFont=nullptr, const vcl::font::PhysicalFontFace **pFallbackFont=nullptr) const override |
const SalLayoutGlyphsImpl & | GlyphsImpl () const |
![]() | |
virtual | ~SalLayout () |
DevicePoint & | DrawBase () |
const DevicePoint & | DrawBase () const |
Point & | DrawOffset () |
const Point & | DrawOffset () const |
DevicePoint | GetDrawPosition (const DevicePoint &rRelative=DevicePoint(0, 0)) const |
virtual void | InitFont () const |
int | GetUnitsPerPixel () const |
Degree10 | GetOrientation () const |
void | SetTextRenderModeForResolutionIndependentLayout (bool bTextRenderModeForResolutionIndependentLayout) |
virtual bool | GetOutline (basegfx::B2DPolyPolygonVector &) const |
bool | GetBoundRect (tools::Rectangle &) const |
Private Member Functions | |
void | MoveGlyph (int nStart, tools::Long nNewXPos) |
void | DropGlyph (int nStart) |
void | Simplify (bool bIsBase) |
GenericSalLayout (const GenericSalLayout &)=delete | |
GenericSalLayout & | operator= (const GenericSalLayout &)=delete |
template<typename DC > | |
void | ApplyDXArray (const DC *, SalLayoutFlags nLayoutFlags) |
void | Justify (DeviceCoordinate nNewWidth) |
void | ApplyAsianKerning (const OUString &rStr) |
void | GetCharWidths (std::vector< DeviceCoordinate > &rCharWidths) const |
void | SetNeedFallback (vcl::text::ImplLayoutArgs &, sal_Int32, bool) |
bool | HasVerticalAlternate (sal_UCS4 aChar, sal_UCS4 aNextChar) |
void | ParseFeatures (std::u16string_view name) |
Private Attributes | |
css::uno::Reference< css::i18n::XBreakIterator > | mxBreak |
SalLayoutGlyphsImpl | m_GlyphItems |
OString | msLanguage |
std::vector< hb_feature_t > | maFeatures |
hb_set_t * | mpVertGlyphs |
const bool | mbFuzzing |
Friends | |
template<typename DC > | |
void | MultiSalLayout::ImplAdjustMultiLayout (vcl::text::ImplLayoutArgs &rArgs, vcl::text::ImplLayoutArgs &rMultiArgs, const DC *pMultiDXArray) |
Additional Inherited Members | |
![]() | |
SalLayout () | |
![]() | |
int | mnMinCharPos |
int | mnEndCharPos |
int | mnUnitsPerPixel |
Degree10 | mnOrientation |
Point | maDrawOffset |
DevicePoint | maDrawBase |
bool | mbTextRenderModeForResolutionIndependentLayout |
Definition at line 102 of file sallayout.hxx.
GenericSalLayout::GenericSalLayout | ( | LogicalFontInstance & | rFont | ) |
Definition at line 62 of file CommonSalLayout.cxx.
|
override |
Definition at line 69 of file CommonSalLayout.cxx.
|
privatedelete |
|
finaloverridevirtual |
Reimplemented from SalLayout.
Definition at line 195 of file CommonSalLayout.cxx.
References SalLayout::AdjustLayout(), ApplyAsianKerning(), ApplyDXArray(), Justify(), KerningAsian, vcl::text::ImplLayoutArgs::mnFlags, vcl::text::ImplLayoutArgs::mnLayoutWidth, vcl::text::ImplLayoutArgs::mpAltNaturalDXArray, vcl::text::ImplLayoutArgs::mpDXArray, vcl::text::ImplLayoutArgs::mrStr, and Vertical.
|
private |
Definition at line 411 of file sallayout.cxx.
References lcl_CalcAsianKerning(), lcl_CanApplyAsianKerning(), m_GlyphItems, n, and nLength.
Referenced by AdjustLayout().
|
private |
Definition at line 665 of file CommonSalLayout.cxx.
References GetCharWidths(), GetFont(), LogicalFontInstance::GetHbFont(), LogicalFontInstance::GetKashidaWidth(), i, IS_IN_CLUSTER, IS_RTL_GLYPH, KashidaJustification, m_GlyphItems, SalLayout::mnEndCharPos, and SalLayout::mnMinCharPos.
Referenced by AdjustLayout().
|
finaloverridevirtual |
Implements SalLayout.
Definition at line 211 of file CommonSalLayout.cxx.
References SalGraphics::DrawTextLayout().
Definition at line 575 of file sallayout.cxx.
References m_GlyphItems.
|
finaloverridevirtual |
Implements SalLayout.
Definition at line 259 of file sallayout.cxx.
References GetCharWidths(), and GetTextWidth().
|
finaloverridevirtual |
Implements SalLayout.
Definition at line 456 of file sallayout.cxx.
References i, m_GlyphItems, SalLayout::mnMinCharPos, and n.
|
private |
Definition at line 632 of file CommonSalLayout.cxx.
References m_GlyphItems, SalLayout::mnEndCharPos, SalLayout::mnMinCharPos, and nIndex.
Referenced by ApplyDXArray(), FillDXArray(), and GetTextBreak().
|
inline |
Definition at line 127 of file sallayout.hxx.
Referenced by ApplyDXArray(), MultiSalLayout::GetNextGlyph(), HasVerticalAlternate(), and LayoutText().
|
finaloverridevirtual |
Reimplemented from SalLayout.
Definition at line 156 of file CommonSalLayout.cxx.
References SalLayoutGlyphs::AppendImpl(), SalLayoutGlyphsImpl::clone(), and m_GlyphItems.
|
overridevirtual |
Implements SalLayout.
Definition at line 510 of file sallayout.cxx.
References SalLayout::GetDrawPosition(), SalLayoutGlyphsImpl::GetFont(), Tuple2D< double >::getX(), Tuple2D< double >::getY(), m_GlyphItems, SalLayout::mnEndCharPos, SalLayout::mnMinCharPos, SalLayout::mnUnitsPerPixel, n, Tuple2D< double >::setX(), and Tuple2D< double >::setY().
Referenced by MultiSalLayout::GetNextGlyph().
|
finaloverridevirtual |
Implements SalLayout.
Definition at line 487 of file sallayout.cxx.
References GetCharWidths(), i, SalLayout::mnEndCharPos, and SalLayout::mnMinCharPos.
|
finaloverridevirtual |
Reimplemented from SalLayout.
Definition at line 268 of file sallayout.cxx.
References SalLayoutGlyphsImpl::IsValid(), and m_GlyphItems.
Referenced by FillDXArray(), and Justify().
|
inline |
Definition at line 134 of file sallayout.hxx.
Definition at line 221 of file CommonSalLayout.cxx.
References GetFont(), LogicalFontInstance::GetHbFont(), and mpVertGlyphs.
Referenced by LayoutText().
|
finaloverridevirtual |
Reimplemented from SalLayout.
Definition at line 822 of file CommonSalLayout.cxx.
References m_GlyphItems.
|
private |
Definition at line 292 of file sallayout.cxx.
References GetTextWidth(), SalLayoutGlyphsImpl::IsValid(), m_GlyphItems, and SalLayout::mnUnitsPerPixel.
Referenced by AdjustLayout().
|
finaloverridevirtual |
Implements SalLayout.
Definition at line 258 of file CommonSalLayout.cxx.
References aDirection, Tuple2D< double >::adjustX(), ALLOW_KASHIDA, DisableKerning, ForFallback, LanguageTag::getBcp47(), SalLayoutGlyphsImpl::GetFlags(), GetFont(), LogicalFontInstance::GetFontSelectPattern(), LogicalFontInstance::GetGlyphBoundRect(), LogicalFontInstance::GetHbFont(), tools::Rectangle::GetHeight(), vcl::text::ImplLayoutArgs::GetNextRun(), FontAttributes::GetPitch(), LogicalFontInstance::GetScale(), getUnicodeFuncs(), Tuple2D< double >::getX(), Tuple2D< double >::getY(), GlyphItemsOnly, HasVerticalAlternate(), i, IS_CLUSTER_START, IS_DIACRITIC, IS_IN_CLUSTER, IS_RTL_GLYPH, IS_SPACING, IS_UNSAFE_TO_BREAK, IS_VERTICAL, LogicalFontInstance::IsGraphiteFont(), KashidaJustification, m_GlyphItems, vcl::text::ImplLayoutArgs::m_pTextLayoutCache, maFeatures, vcl::text::ImplLayoutArgs::maLanguageTag, vcl::font::FontSelectPattern::maTargetName, vcl::text::ImplLayoutArgs::mnEndCharPos, vcl::text::ImplLayoutArgs::mnFlags, vcl::text::ImplLayoutArgs::mnMinCharPos, vcl::text::ImplLayoutArgs::mrStr, msLanguage, vcl::text::Run::nEnd, nLength, NONE, vcl::text::Run::nStart, OUStringToOString(), ParseFeatures(), PITCH_FIXED, vcl::text::TextLayoutCache::runs, SAL_INFO, SalLayoutGlyphsImpl::SetFlags(), SetNeedFallback(), o3tl::temporary(), tools::Rectangle::Top(), Vertical, and void().
|
private |
Definition at line 550 of file sallayout.cxx.
References m_GlyphItems.
|
privatedelete |
|
private |
Definition at line 73 of file CommonSalLayout.cxx.
References vcl::font::FeatureParser::getFeatures(), vcl::font::FeatureParser::getLanguage(), maFeatures, msLanguage, and OUStringToOString().
Referenced by LayoutText().
|
private |
Definition at line 163 of file CommonSalLayout.cxx.
References vcl::text::ImplLayoutArgs::AddFallbackRun(), vcl::unohelper::CreateBreakIterator(), LanguageTag::getLocale(), vcl::text::ImplLayoutArgs::maLanguageTag, mbFuzzing, vcl::text::ImplLayoutArgs::mnEndCharPos, vcl::text::ImplLayoutArgs::mnMinCharPos, vcl::text::ImplLayoutArgs::mrStr, and mxBreak.
Referenced by LayoutText().
|
private |
Definition at line 585 of file sallayout.cxx.
References i, and m_GlyphItems.
|
friend |
|
private |
Definition at line 160 of file sallayout.hxx.
Referenced by ApplyAsianKerning(), ApplyDXArray(), DropGlyph(), GetCaretPositions(), GetCharWidths(), GetGlyphs(), GetNextGlyph(), GetTextWidth(), IsKashidaPosValid(), Justify(), LayoutText(), MoveGlyph(), and Simplify().
|
private |
Definition at line 163 of file sallayout.hxx.
Referenced by LayoutText(), and ParseFeatures().
|
private |
Definition at line 166 of file sallayout.hxx.
Referenced by SetNeedFallback().
|
private |
Definition at line 165 of file sallayout.hxx.
Referenced by HasVerticalAlternate().
|
private |
Definition at line 162 of file sallayout.hxx.
Referenced by LayoutText(), and ParseFeatures().
|
private |
Definition at line 158 of file sallayout.hxx.
Referenced by SetNeedFallback().