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, int nNextCharPos) const final override |
double | GetTextWidth () const final override |
double | FillDXArray (std::vector< double > *pDXArray, const OUString &rStr) const final override |
sal_Int32 | GetTextBreak (double nMaxWidth, double nCharExtra, int nFactor) const final override |
void | GetCaretPositions (std::vector< double > &rCaretPositions, const OUString &rStr) const override |
LogicalFontInstance & | GetFont () const |
bool | GetNextGlyph (const GlyphItem **pGlyph, basegfx::B2DPoint &rPos, int &nStart, const LogicalFontInstance **ppGlyphFont=nullptr) const override |
const SalLayoutGlyphsImpl & | GlyphsImpl () const |
Public Member Functions inherited from SalLayout | |
virtual | ~SalLayout () |
basegfx::B2DPoint & | DrawBase () |
const basegfx::B2DPoint & | DrawBase () const |
Point & | DrawOffset () |
const Point & | DrawOffset () const |
basegfx::B2DPoint | GetDrawPosition (const basegfx::B2DPoint &rRelative=basegfx::B2DPoint(0, 0)) const |
virtual bool | LayoutText (vcl::text::ImplLayoutArgs &, const SalLayoutGlyphsImpl *)=0 |
virtual void | AdjustLayout (vcl::text::ImplLayoutArgs &) |
virtual void | InitFont () const |
virtual void | DrawText (SalGraphics &) const =0 |
Degree10 | GetOrientation () const |
void | SetSubpixelPositioning (bool bSubpixelPositioning) |
bool | GetSubpixelPositioning () const |
virtual sal_Int32 | GetTextBreak (double nMaxWidth, double nCharExtra, int nFactor) const =0 |
virtual double | FillDXArray (std::vector< double > *pDXArray, const OUString &rStr) const =0 |
virtual double | GetTextWidth () const |
virtual void | GetCaretPositions (std::vector< double > &rCaretPositions, const OUString &rStr) const =0 |
virtual bool | IsKashidaPosValid (int, int) const =0 |
virtual bool | GetNextGlyph (const GlyphItem **pGlyph, basegfx::B2DPoint &rPos, int &nStart, const LogicalFontInstance **ppGlyphFont=nullptr) const =0 |
virtual bool | GetOutline (basegfx::B2DPolyPolygonVector &) const |
bool | GetBoundRect (tools::Rectangle &) const |
virtual SalLayoutGlyphs | GetGlyphs () const |
Private Member Functions | |
void | MoveGlyph (int nStart, double nNewXPos) |
void | DropGlyph (int nStart) |
void | Simplify (bool bIsBase) |
GenericSalLayout (const GenericSalLayout &)=delete | |
GenericSalLayout & | operator= (const GenericSalLayout &)=delete |
void | ApplyDXArray (const double *, const sal_Bool *) |
void | Justify (double nNewWidth) |
void | ApplyAsianKerning (std::u16string_view rStr) |
void | GetCharWidths (std::vector< double > &rCharWidths, const OUString &rStr) 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 | |
void | MultiSalLayout::ImplAdjustMultiLayout (vcl::text::ImplLayoutArgs &rArgs, vcl::text::ImplLayoutArgs &rMultiArgs, const double *pMultiDXArray) |
Additional Inherited Members | |
Protected Member Functions inherited from SalLayout | |
SalLayout () | |
Protected Attributes inherited from SalLayout | |
int | mnMinCharPos |
int | mnEndCharPos |
LanguageTag | maLanguageTag |
Degree10 | mnOrientation |
Point | maDrawOffset |
basegfx::B2DPoint | maDrawBase |
bool | mbSubpixelPositioning |
Definition at line 101 of file sallayout.hxx.
GenericSalLayout::GenericSalLayout | ( | LogicalFontInstance & | rFont | ) |
Definition at line 46 of file CommonSalLayout.cxx.
|
override |
Definition at line 53 of file CommonSalLayout.cxx.
References mpVertGlyphs.
|
privatedelete |
|
finaloverridevirtual |
Reimplemented from SalLayout.
Definition at line 138 of file CommonSalLayout.cxx.
References SalLayout::AdjustLayout(), ApplyAsianKerning(), ApplyDXArray(), Justify(), KerningAsian, vcl::text::ImplLayoutArgs::mnFlags, vcl::text::ImplLayoutArgs::mnLayoutWidth, vcl::text::ImplLayoutArgs::mpDXArray, vcl::text::ImplLayoutArgs::mpKashidaArray, vcl::text::ImplLayoutArgs::mrStr, and Vertical.
|
private |
Definition at line 397 of file sallayout.cxx.
References lcl_CalcAsianKerning(), lcl_CanApplyAsianKerning(), m_GlyphItems, n, and nLength.
Referenced by AdjustLayout().
|
private |
Definition at line 668 of file CommonSalLayout.cxx.
References basegfx::Tuple2D< typename TYPE >::adjustX(), GetCharWidths(), GetFont(), LogicalFontInstance::GetGlyphIndex(), LogicalFontInstance::GetKashidaWidth(), SalLayout::GetSubpixelPositioning(), i, IS_IN_CLUSTER, IS_RTL_GLYPH, m_GlyphItems, SalLayout::mnEndCharPos, SalLayout::mnMinCharPos, and SAL_WARN.
Referenced by AdjustLayout().
|
finaloverridevirtual |
Implements SalLayout.
Definition at line 152 of file CommonSalLayout.cxx.
References SalGraphics::DrawTextLayout().
|
private |
Definition at line 582 of file sallayout.cxx.
References m_GlyphItems.
|
finaloverridevirtual |
Implements SalLayout.
Definition at line 258 of file sallayout.cxx.
References GetCharWidths(), and GetTextWidth().
|
overridevirtual |
Implements SalLayout.
Definition at line 442 of file sallayout.cxx.
References GetCharWidths(), i, m_GlyphItems, SalLayout::mnEndCharPos, SalLayout::mnMinCharPos, and n.
|
private |
Definition at line 566 of file CommonSalLayout.cxx.
References vcl::unohelper::CreateBreakIterator(), GetFont(), LanguageTag::getLocale(), LogicalFontInstance::GetScale(), i, m_GlyphItems, SalLayout::maLanguageTag, SalLayout::mnEndCharPos, SalLayout::mnMinCharPos, mxBreak, and nPos.
Referenced by ApplyDXArray(), FillDXArray(), GetCaretPositions(), and GetTextBreak().
|
inline |
Definition at line 126 of file sallayout.hxx.
Referenced by ApplyDXArray(), GetCharWidths(), HasVerticalAlternate(), and LayoutText().
|
finaloverridevirtual |
Reimplemented from SalLayout.
Definition at line 99 of file CommonSalLayout.cxx.
References SalLayoutGlyphs::AppendImpl(), SalLayoutGlyphsImpl::clone(), and m_GlyphItems.
|
overridevirtual |
Implements SalLayout.
Definition at line 520 of file sallayout.cxx.
References SalLayout::GetDrawPosition(), SalLayoutGlyphsImpl::GetFont(), m_GlyphItems, SalLayout::mnEndCharPos, SalLayout::mnMinCharPos, and n.
Referenced by MultiSalLayout::GetNextGlyph().
|
finaloverridevirtual |
Implements SalLayout.
Definition at line 497 of file sallayout.cxx.
References GetCharWidths(), i, SalLayout::mnEndCharPos, and SalLayout::mnMinCharPos.
|
finaloverridevirtual |
Reimplemented from SalLayout.
Definition at line 267 of file sallayout.cxx.
References SalLayoutGlyphsImpl::IsValid(), and m_GlyphItems.
Referenced by FillDXArray(), and Justify().
|
inline |
Definition at line 132 of file sallayout.hxx.
Definition at line 162 of file CommonSalLayout.cxx.
References GetFont(), LogicalFontInstance::GetGlyphIndex(), and mpVertGlyphs.
Referenced by LayoutText().
|
private |
Definition at line 279 of file sallayout.cxx.
References GetTextWidth(), SalLayoutGlyphsImpl::IsValid(), and m_GlyphItems.
Referenced by AdjustLayout().
|
finaloverridevirtual |
Implements SalLayout.
Definition at line 199 of file CommonSalLayout.cxx.
References aDirection, basegfx::Tuple2D< typename TYPE >::adjustX(), DisableKerning, DisableLigatures, ForFallback, LanguageTag::getBcp47(), SalLayoutGlyphsImpl::GetFlags(), GetFont(), LogicalFontInstance::GetFontSelectPattern(), LogicalFontInstance::GetGlyphBoundRect(), LogicalFontInstance::GetHbFont(), tools::Rectangle::GetHeight(), vcl::text::ImplLayoutArgs::GetNextRun(), LogicalFontInstance::GetScale(), SalLayout::GetSubpixelPositioning(), basegfx::Tuple2D< typename TYPE >::getX(), basegfx::Tuple2D< typename TYPE >::getY(), GlyphItemsOnly, HasVerticalAlternate(), i, IS_CLUSTER_START, IS_IN_CLUSTER, IS_RTL_GLYPH, IS_SAFE_TO_INSERT_KASHIDA, IS_SPACING, IS_UNSAFE_TO_BREAK, IS_VERTICAL, LogicalFontInstance::IsGraphiteFont(), 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(), vcl::text::TextLayoutCache::runs, SAL_INFO, SalLayoutGlyphsImpl::SetFlags(), SetNeedFallback(), o3tl::temporary(), tools::Rectangle::Top(), and Vertical.
|
private |
Definition at line 557 of file sallayout.cxx.
References m_GlyphItems.
|
privatedelete |
|
private |
Definition at line 59 of file CommonSalLayout.cxx.
References aName, vcl::font::FeatureParser::getFeatures(), vcl::font::FeatureParser::getLanguage(), maFeatures, msLanguage, and OUStringToOString().
Referenced by LayoutText().
|
private |
Definition at line 106 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 592 of file sallayout.cxx.
References i, and m_GlyphItems.
|
friend |
|
private |
Definition at line 158 of file sallayout.hxx.
Referenced by ApplyAsianKerning(), ApplyDXArray(), DropGlyph(), GetCaretPositions(), GetCharWidths(), GetGlyphs(), GetNextGlyph(), GetTextWidth(), IsKashidaPosValid(), Justify(), LayoutText(), MoveGlyph(), and Simplify().
|
private |
Definition at line 161 of file sallayout.hxx.
Referenced by LayoutText(), and ParseFeatures().
|
private |
Definition at line 164 of file sallayout.hxx.
Referenced by SetNeedFallback().
|
private |
Definition at line 163 of file sallayout.hxx.
Referenced by HasVerticalAlternate(), and ~GenericSalLayout().
|
private |
Definition at line 160 of file sallayout.hxx.
Referenced by LayoutText(), and ParseFeatures().
|
private |
Definition at line 156 of file sallayout.hxx.
Referenced by GetCharWidths(), and SetNeedFallback().