62 #include <com/sun/star/drawing/LineCap.hpp>
63 #include <com/sun/star/uno/Reference.h>
64 #include <com/sun/star/awt/DeviceInfo.hpp>
67 #include <string_view>
97 class OutDevStateStack;
104 struct FontCapabilities;
106 class WindowOutputDevice;
109 class PhysicalFontCollection;
110 class PhysicalFontFaceCollection;
114 class ImplLayoutArgs;
115 class TextLayoutCache;
138 class XBreakIterator;
142 #define GLYPH_FONT_HEIGHT 128
144 #define GLYPH_FONT_HEIGHT 256
199 mutable css::uno::WeakReference< css::rendering::XCanvas >
mxCanvas;
247 mutable bool mbMap : 1;
248 mutable bool mbClipRegion : 1;
249 mutable bool mbBackground : 1;
250 mutable bool mbOutput : 1;
251 mutable bool mbDevOutput : 1;
252 mutable bool mbOutputClipped : 1;
253 mutable bool mbLineColor : 1;
254 mutable bool mbFillColor : 1;
255 mutable bool mbInitLineColor : 1;
256 mutable bool mbInitFillColor : 1;
257 mutable bool mbInitFont : 1;
258 mutable bool mbInitTextColor : 1;
259 mutable bool mbInitClipRegion : 1;
260 mutable bool mbClipRegionSet : 1;
261 mutable bool mbNewFont : 1;
262 mutable bool mbTextLines : 1;
263 mutable bool mbTextSpecial : 1;
264 mutable bool mbRefPoint : 1;
265 mutable bool mbEnableRTL : 1;
278 virtual void dispose()
override;
298 OUString GetRenderBackendName()
const;
301 bool SupportsCairo()
const;
310 css::uno::Any GetSystemGfxDataAny()
const;
313 void SetRefPoint(
const Point& rRefPoint );
319 virtual sal_uInt16 GetBitCount()
const;
322 {
return Size( mnOutWidth, mnOutHeight ); }
330 {
return Point( mnOutOffX, mnOutOffY ); }
337 css::uno::Reference< css::awt::XGraphics >
340 std::vector< VCLXGraphics* > *CreateUnoGraphicsList();
345 css::uno::Reference< css::rendering::XCanvas > GetCanvas()
const;
347 css::uno::Reference< css::rendering::XSpriteCanvas > GetSpriteCanvas()
const;
370 virtual bool AcquireGraphics()
const = 0;
378 virtual void ReleaseGraphics(
bool bRelease =
true ) = 0;
392 SAL_DLLPRIVATE sal_Int32
GetDPIX()
const {
return mnDPIX; }
398 SAL_DLLPRIVATE sal_Int32
GetDPIY()
const {
return mnDPIY; }
400 SAL_DLLPRIVATE
void SetDPIX( sal_Int32 nDPIX ) { mnDPIX = nDPIX; }
401 SAL_DLLPRIVATE
void SetDPIY( sal_Int32 nDPIY ) { mnDPIY = nDPIY; }
405 return mnDPIScalePercentage / 100.0f;
410 return mnDPIScalePercentage;
414 virtual bool IsVirtual()
const;
438 virtual void DrawOutDev(
439 const Point& rDestPt,
const Size& rDestSize,
440 const Point& rSrcPt,
const Size& rSrcSize );
442 virtual void DrawOutDev(
443 const Point& rDestPt,
const Size& rDestSize,
444 const Point& rSrcPt,
const Size& rSrcSize,
447 virtual void CopyArea(
448 const Point& rDestPt,
449 const Point& rSrcPt,
const Size& rSrcSize,
450 bool bWindowInvalidate =
false );
454 virtual void CopyDeviceArea(
SalTwoRect& aPosAry,
bool bWindowInvalidate);
464 SAL_DLLPRIVATE
bool is_double_buffered_window()
const;
466 virtual css::uno::Reference< css::rendering::XCanvas > ImplGetCanvas(
bool bSpriteCanvas )
const;
467 SAL_DLLPRIVATE
void ImplDisposeCanvas();
472 SAL_DLLPRIVATE
void DrawOutDev(
const Point&,
const Size&,
const Point&,
const Size&,
const Printer&) =
delete;
486 void EnableOutput(
bool bEnable =
true );
494 void SetTextRenderModeForResolutionIndependentLayout(
bool bMode);
506 void SetRasterOp(
RasterOp eRasterOp );
525 void SetFillColor(
const Color& rColor );
532 const Point& rPos,
const Size& rSize,
const Size& rBackgroundSize)
const;
536 virtual Color GetReadableFontColor(
const Color& rFontColor,
const Color& rBgColor)
const;
544 virtual void ImplReleaseFonts();
548 SAL_DLLPRIVATE
void InitLineColor();
550 SAL_DLLPRIVATE
void InitFillColor();
562 void SetClipRegion();
570 void IntersectClipRegion(
const vcl::Region& rRegion );
573 virtual vcl::Region GetOutputBoundsClipRegion()
const;
577 virtual void InitClipRegion();
590 SAL_DLLPRIVATE
void SetDeviceClipRegion(
const vcl::Region* pRegion );
603 void DrawPixel(
const Point& rPt );
604 void DrawPixel(
const Point& rPt,
const Color& rColor );
606 Color GetPixel(
const Point& rPt )
const;
625 Color aStart = COL_WHITE,
626 Color aEnd = COL_BLACK);
646 void DrawLine(
const Point& rStartPt,
const Point& rEndPt );
648 void DrawLine(
const Point& rStartPt,
const Point& rEndPt,
652 virtual void DrawHatchLine_DrawLine(
const Point& rStartPoint,
const Point& rEndPoint);
680 double fLineWidth = 0.0,
682 css::drawing::LineCap eLineCap = css::drawing::LineCap_BUTT,
700 bool DrawPolyLineDirect(
703 double fLineWidth = 0.0,
704 double fTransparency = 0.0,
705 const std::vector< double >* =
nullptr,
707 css::drawing::LineCap eLineCap = css::drawing::LineCap_BUTT,
719 bool DrawPolyLineDirectInternal(
722 double fLineWidth = 0.0,
723 double fTransparency = 0.0,
724 const std::vector< double >* =
nullptr,
726 css::drawing::LineCap eLineCap = css::drawing::LineCap_BUTT,
765 SAL_DLLPRIVATE
void ImplDrawPolyPolygon( sal_uInt16 nPoly,
const tools::PolyPolygon& rPolyPoly );
785 const Point& rStartPt,
const Point& rEndPt );
789 const Point& rStartPt,
const Point& rEndPt );
793 const Point& rStartPt,
const Point& rEndPt );
808 virtual bool UsePolyPolygonForComplexGradient() = 0;
818 SAL_DLLPRIVATE
Color GetSingleColorGradientFill();
831 const ::Hatch& rHatch,
875 void DrawText(
const Point& rStartPt,
const OUString& rStr,
876 sal_Int32 nIndex = 0, sal_Int32 nLen = -1,
877 std::vector< tools::Rectangle >* pVector =
nullptr, OUString* pDisplayText =
nullptr,
882 std::vector< tools::Rectangle >* pVector =
nullptr, OUString* pDisplayText =
nullptr,
887 std::vector< tools::Rectangle >* pVector, OUString* pDisplayText,
vcl::ITextLayout& _rLayout );
891 void ImplDrawTextBackground(
const SalLayout& );
893 void DrawCtrlText(
const Point& rPos,
const OUString& rStr,
894 sal_Int32 nIndex = 0, sal_Int32 nLen = -1,
898 void DrawTextLine(
const Point& rPos,
tools::Long nWidth,
902 bool bUnderlineAbove =
false );
909 FontLineStyle eOverline,
bool bWordLine,
bool bUnderlineAbove );
911 void DrawWaveLine(
const Point& rStartPos,
const Point& rEndPos,
tools::Long nLineWidth = 1,
tools::Long nWaveHeight = 3);
970 const OUString& rStr, sal_Int32 nBase = 0, sal_Int32 nIndex = 0, sal_Int32 nLen = -1,
977 const OUString& rStr )
const;
980 const OUString& rStr, sal_Int32 nBase = 0, sal_Int32 nIndex = 0,
985 const OUString& rStr, sal_Int32 nBase, sal_Int32 nIndex = 0,
990 OUString GetEllipsisString(
const OUString& rStr,
tools::Long nMaxWidth,
993 tools::Long GetCtrlTextWidth(
const OUString& rStr,
1010 const OUString& rOrigStr,
1051 void DrawTextArray(
const Point& rStartPt,
const OUString& rStr,
1053 sal_Int32 nIndex = 0,
1054 sal_Int32 nLen = -1,
1057 tools::Long GetTextArray(
const OUString& rStr, std::vector<sal_Int32>* pDXAry,
1058 sal_Int32 nIndex = 0, sal_Int32 nLen = -1,
1062 void GetCaretPositions(
const OUString&, sal_Int32* pCaretXArray,
1063 sal_Int32 nIndex, sal_Int32 nLen,
1065 void DrawStretchText(
const Point& rStartPt,
sal_uLong nWidth,
1066 const OUString& rStr,
1067 sal_Int32 nIndex = 0, sal_Int32 nLen = -1);
1068 sal_Int32 GetTextBreak(
const OUString& rStr,
tools::Long nTextWidth,
1069 sal_Int32 nIndex, sal_Int32 nLen = -1,
1073 sal_Int32 GetTextBreak(
const OUString& rStr,
tools::Long nTextWidth,
1075 sal_Int32 nIndex, sal_Int32 nLen,
1079 static std::shared_ptr<const vcl::text::TextLayoutCache> CreateTextLayoutCache(OUString
const&);
1081 SAL_DLLPRIVATE
SalLayoutFlags GetBiDiLayoutFlags( std::u16string_view rStr,
1082 const sal_Int32 nMinIndex,
1083 const sal_Int32 nEndIndex )
const;
1086 SAL_DLLPRIVATE
void ImplInitTextLineSize();
1087 SAL_DLLPRIVATE
void ImplInitAboveTextLineSize();
1091 SAL_DLLPRIVATE sal_Int32 ImplBreakLinesWithIterator(
const tools::Long nWidth,
const OUString& rStr,
const vcl::ITextLayout& _rLayout,
1092 const css::uno::Reference<css::linguistic2::XHyphenator>& xHyph,
1093 const css::uno::Reference<css::i18n::XBreakIterator>& xBI,
1094 const bool bHyphenate,
1095 const sal_Int32 nPos, sal_Int32 nBreakPos);
1097 SAL_DLLPRIVATE sal_Int32 ImplBreakLinesSimple(
const tools::Long nWidth,
const OUString& rStr,
1101 virtual bool shouldDrawWavePixelAsRect(
tools::Long nLineWidth)
const;
1102 virtual void SetWaveLineColors(
Color const& rColor,
tools::Long nLineWidth);
1106 SAL_DLLPRIVATE
void ImplInitTextColor();
1108 SAL_DLLPRIVATE
void ImplDrawTextDirect(
SalLayout&,
bool bTextLines);
1109 SAL_DLLPRIVATE
void ImplDrawSpecialText(
SalLayout& );
1132 FontMetric GetFontMetricFromCollection(
int nDevFontIndex )
const;
1133 int GetFontFaceCollectionCount()
const;
1135 bool IsFontAvailable( std::u16string_view rFontName )
const;
1137 bool AddTempDevFont(
const OUString& rFileURL,
const OUString& rFontName );
1138 void RefreshFontData(
const bool bNewFontLists );
1146 bool GetFontFeatures(std::vector<vcl::font::Feature>& rFontFeatures)
const;
1151 ImplGetEmphasisMarkStyle(
const vcl::Font& rFont );
1153 bool GetGlyphBoundRects(
const Point& rOrigin,
const OUString& rStr,
int nIndex,
1154 int nLen, std::vector< tools::Rectangle >& rVector )
const;
1156 sal_Int32 HasGlyphs(
const vcl::Font& rFont,
const OUString& rStr,
1157 sal_Int32 nIndex = 0, sal_Int32 nLen = -1 )
const;
1164 sal_Int32 ValidateKashidas(
const OUString& rTxt, sal_Int32 nIdx, sal_Int32 nLen,
1165 sal_Int32 nKashCount,
1166 const sal_Int32* pKashidaPos,
1167 sal_Int32* pKashidaPosDropped
1170 static void BeginFontSubstitution();
1171 static void EndFontSubstitution();
1172 static void AddFontSubstitute(
const OUString& rFontName,
1173 const OUString& rReplaceFontName,
1175 static void RemoveFontsSubstitute();
1182 SAL_DLLPRIVATE
void ImplInitFontList()
const;
1183 SAL_DLLPRIVATE
void ImplUpdateFontData();
1187 static void ImplClearAllFontData(
bool bNewFontLists );
1190 static void ImplRefreshAllFontData(
bool bNewFontLists );
1193 SAL_DLLPRIVATE
static void ImplUpdateAllFontData(
bool bNewFontLists );
1201 SAL_DLLPRIVATE
bool InitFont()
const;
1205 virtual void ImplClearFontData(
bool bNewFontLists);
1206 virtual void ImplRefreshFontData(
bool bNewFontLists);
1207 void ReleaseFontCache();
1208 void ReleaseFontCollection();
1209 void SetFontCollectionFromSVData();
1210 void ResetNewFontCache();
1212 virtual bool ImplNewFont()
const;
1218 SAL_DLLPRIVATE
static void ImplUpdateFontDataForAllFrames( FontUpdateHandler_t pHdl,
bool bNewFontLists );
1221 SAL_DLLPRIVATE OUString ImplGetEllipsisString(
const OutputDevice& rTargetDevice,
const OUString& rStr,
1225 SAL_DLLPRIVATE
void ImplDrawEmphasisMarks(
SalLayout& );
1236 SAL_DLLPRIVATE
bool ImplIsAntiparallel()
const ;
1237 SAL_DLLPRIVATE
void ReMirror( Point &rPoint )
const;
1239 SAL_DLLPRIVATE
void ReMirror(
vcl::Region &rRegion )
const;
1240 SAL_DLLPRIVATE
bool ImplIsRecordLayout()
const;
1241 virtual bool HasMirroredGraphics()
const;
1242 std::unique_ptr<SalLayout>
1243 ImplLayout(
const OUString&, sal_Int32 nIndex, sal_Int32 nLen,
1249 SAL_DLLPRIVATE
vcl::text::ImplLayoutArgs ImplPrepareLayoutArgs( OUString&,
const sal_Int32 nIndex,
const sal_Int32 nLen,
1252 vcl::text::TextLayoutCache
const* =
nullptr)
const;
1253 SAL_DLLPRIVATE std::unique_ptr<SalLayout>
1254 ImplGlyphFallbackLayout( std::unique_ptr<SalLayout>,
1257 SAL_DLLPRIVATE std::unique_ptr<SalLayout>
1279 static void StartTrackingFontMappingUse();
1280 static FontMappingUseData FinishTrackingFontMappingUse();
1283 virtual void EnableRTL(
bool bEnable =
true);
1286 bool GetTextIsRTL(
const OUString&, sal_Int32 nIndex, sal_Int32 nLen )
const;
1297 const Point& rDestPt,
1301 const Point& rDestPt,
1302 const Size& rDestSize,
1306 const Point& rDestPt,
1307 const Size& rDestSize,
1308 const Point& rSrcPtPixel,
1309 const Size& rSrcSizePixel,
1313 const Point& rDestPt,
1314 const Size& rDestSize,
1315 const Point& rSrcPtPixel,
1316 const Size& rSrcSizePixel,
1321 const Point& rDestPt,
1326 const Point& rDestPt,
1327 const Size& rDestSize,
1331 const Point& rDestPt,
1332 const Size& rDestSize,
1333 const Point& rSrcPtPixel,
1334 const Size& rSrcSizePixel,
1338 const Point& rDestPt,
1339 const Size& rDestSize,
1340 const Point& rSrcPtPixel,
1341 const Size& rSrcSizePixel,
1354 const Image& rImage,
1360 const Image& rImage,
1364 virtual Bitmap GetBitmap(
const Point& rSrcPt,
const Size& rSize )
const;
1384 void DrawTransformedBitmapEx(
1387 double fAlpha = 1.0);
1393 bool HasFastDrawTransformedBitmap()
const;
1397 virtual void DrawDeviceBitmapEx(
1398 const Point& rDestPt,
const Size& rDestSize,
1399 const Point& rSrcPtPixel,
const Size& rSrcSizePixel,
1411 virtual bool DrawTransformBitmapExDirect(
1414 double fAlpha = 1.0);
1427 virtual bool TransformAndReduceBitmapExToTargetRange(
1430 double &fMaximumArea);
1434 SAL_DLLPRIVATE
void DrawDeviceAlphaBitmap(
1437 const Point& rDestPt,
1438 const Size& rDestSize,
1439 const Point& rSrcPtPixel,
1440 const Size& rSrcSizePixel );
1442 SAL_DLLPRIVATE
void DrawDeviceAlphaBitmapSlowPath(
1445 Size const & aOutSz, Point
const & aOutPt);
1448 SAL_DLLPRIVATE
void BlendBitmap(
1452 SAL_DLLPRIVATE
Bitmap BlendBitmap(
1456 const sal_Int32 nOffY,
1457 const sal_Int32 nDstHeight,
1458 const sal_Int32 nOffX,
1459 const sal_Int32 nDstWidth,
1464 const sal_Int32* pMapX,
1465 const sal_Int32* pMapY );
1467 SAL_DLLPRIVATE
Bitmap BlendBitmapWithAlpha(
1472 const sal_Int32 nOffY,
1473 const sal_Int32 nDstHeight,
1474 const sal_Int32 nOffX,
1475 const sal_Int32 nDstWidth,
1476 const sal_Int32* pMapX,
1477 const sal_Int32* pMapY );
1498 bool RemoveTransparenciesFromMetaFile(
1501 bool bReduceTransparency,
1502 bool bTransparencyAutoMode,
1503 bool bDownsampleBitmaps,
1504 const Color& rBackground = COL_TRANSPARENT );
1506 void DrawTransparent(
const tools::PolyPolygon& rPolyPoly, sal_uInt16 nTransparencePercent );
1508 void DrawTransparent(
1511 double fTransparency);
1513 void DrawTransparent(
1515 const Gradient& rTransparenceGradient );
1519 virtual void EmulateDrawTransparent(
const tools::PolyPolygon& rPolyPoly, sal_uInt16 nTransparencePercent );
1525 SAL_DLLPRIVATE
bool DrawTransparentNatively(
const tools::PolyPolygon& rPolyPoly, sal_uInt16 nTransparencePercent );
1535 void DrawMask(
const Point& rDestPt,
1538 void DrawMask(
const Point& rDestPt,
const Size& rDestSize,
1541 void DrawMask(
const Point& rDestPt,
const Size& rDestSize,
1542 const Point& rSrcPtPixel,
const Size& rSrcSizePixel,
1545 void DrawMask(
const Point& rDestPt,
const Size& rDestSize,
1546 const Point& rSrcPtPixel,
const Size& rSrcSizePixel,
1552 virtual void DrawDeviceMask (
1554 const Point& rDestPt,
const Size& rDestSize,
1555 const Point& rSrcPtPixel,
const Size& rSrcSizePixel );
1565 void EnableMapMode(
bool bEnable =
true );
1569 void SetMapMode(
const MapMode& rNewMapMode );
1570 void SetRelativeMapMode(
const MapMode& rNewMapMode );
1571 virtual void SetMetafileMapMode(
const MapMode& rNewMapMode,
bool bIsRecord);
1575 virtual void ImplInitMapModeObjects();
1608 void SetPixelOffset(
const Size& rOffset );
1628 const MapMode& rMapMode)
const;
1630 const MapMode& rMapMode)
const;
1632 const MapMode& rMapMode)
const;
1644 const MapMode& rMapMode)
const;
1646 const MapMode& rMapMode)
const;
1648 const MapMode& rMapMode)
const;
1650 const MapMode& rMapMode)
const;
1653 const MapMode* pMapModeSource,
1654 const MapMode* pMapModeDest)
const;
1656 const MapMode* pMapModeSource,
1657 const MapMode* pMapModeDest)
const;
1659 const MapMode* pMapModeSource,
1660 const MapMode* pMapModeDest)
const;
1662 const MapMode& rMapModeSource,
1665 const MapMode& rMapModeSource,
1668 const MapMode& rMapModeSource,
1675 const MapMode& rMapModeSource,
1697 SAL_DLLPRIVATE
Point ImplLogicToDevicePixel(
const Point& rLogicPt )
const;
1698 SAL_DLLPRIVATE
DevicePoint ImplLogicToDeviceFontCoordinate(
const Point& rLogicPt)
const;
1711 SAL_DLLPRIVATE
double ImplLogicWidthToDeviceFontWidth(
tools::Long nWidth)
const;
1784 SAL_DLLPRIVATE
float ImplFloatLogicHeightToDevicePixel(
float fLogicHeight )
const;
1792 SAL_DLLPRIVATE
Size ImplLogicToDevicePixel(
const Size& rLogicSize )
const;
1816 SAL_DLLPRIVATE ::basegfx::B2DPolygon ImplLogicToDevicePixel( const ::basegfx::B2DPolygon& rLogicPoly )
const;
1832 SAL_DLLPRIVATE
LineInfo ImplLogicToDevicePixel(
const LineInfo& rLineInfo )
const;
1846 SAL_DLLPRIVATE
void ImplInvalidateViewTransform();
1874 bool HitTestNativeScrollbar(
1878 bool& rIsInside )
const;
1882 bool DrawNativeControl(
1888 const OUString& aCaption,
1889 const Color& rBackgroundColor = COL_AUTO );
1893 bool GetNativeControlRegion(
1915 const Point& rPt,
const Size& rSz,
1920 virtual css::awt::DeviceInfo GetDeviceInfo()
const;
1926 css::awt::DeviceInfo GetCommonDeviceInfo(
Size const& aDevSize)
const;
BitmapEx GetBitmapEx(BitmapEx const &rBitmapEx, DrawModeFlags nDrawMode)
#define SAL_WARN_UNUSED_RESULT
tools::Long GetTextHeight() const
Height where any character of the current font fits; in logic coordinates.
VclReferenceBase & operator=(const VclReferenceBase &)=delete
const Color & GetTextColor() const
OutDevType GetOutDevType() const
sal_Int32 mnDPIScalePercentage
For HiDPI displays, we want to draw elements for a percentage larger.
VclPtr< OutputDevice > mpNextGraphics
Next output device in list.
tools::SvRef< FontCharMap > FontCharMapRef
virtual Color GetMonochromeButtonColor()
const Wallpaper & GetBackground() const
tools::Long mnOutOffLogicX
Additional output offset in logical coordinates, applied in PixelToLogic (used by SetPixelOffset/GetP...
SAL_DLLPRIVATE tools::Long GetEmphasisAscent() const
tools::Long mnOutOffOrigY
Additional output pixel offset, applied in LogicToPixel (used by SetPixelOffset/GetPixelOffset) ...
const Point & GetRefPoint() const
void ImplHandleResize(vcl::Window *pWindow, tools::Long nNewWidth, tools::Long nNewHeight)
bool IsTransparent() const
const Color & GetTextLineColor() const
constexpr double deg2rad(double v)
SAL_DLLPRIVATE float approximate_char_width() const
void SetSettings(const AllSettings &rSettings)
bool IsBackground() const
TextAlign GetTextAlign() const
bool IsOutputEnabled() const
SAL_DLLPRIVATE void SetDPIX(sal_Int32 nDPIX)
float approximate_digit_width() const
bool IsMapModeEnabled() const
bool IsTextLineColor() const
tools::Long GetOutOffXPixel() const
tools::Long mnOutOffY
Output offset for device output in pixel (pseudo window offset within window system's frames) ...
const MapMode & GetMapMode() const
std::vector< VCLXGraphics * > * mpUnoGraphicsList
std::shared_ptr< vcl::font::PhysicalFontCollection > mxFontCollection
GDIMetaFile * GetConnectMetaFile() const
bool GetTextRenderModeForResolutionIndependentLayout() const
vcl::text::ComplexTextLayoutFlags GetLayoutMode() const
static OUString GetNonMnemonicString(const OUString &rStr)
sal_Int32 DeviceCoordinate
AntialiasingFlags GetAntialiasing() const
tools::Long mnEmphasisDescent
void SetTextColor(const Color &rColor)
tools::Long mnOutOffOrigX
Additional output pixel offset, applied in LogicToPixel (used by SetPixelOffset/GetPixelOffset) ...
std::unique_ptr< vcl::font::PhysicalFontFaceCollection > mpFontFaceCollection
const Color & GetOverlineColor() const
static OUString GetNonMnemonicString(const OUString &rStr)
const vcl::Font & GetFont() const
OutDevViewType meOutDevViewType
virtual bool CanSubsampleBitmap() const
vcl::text::ComplexTextLayoutFlags mnTextLayoutMode
TextAlign GetAlignment() const
AntialiasingFlags mnAntialiasing
std::unique_ptr< AllSettings > mxSettings
std::vector< vcl::State > maOutDevStateStack
SalGraphics * mpGraphics
Graphics context to draw on.
exports com.sun.star. text
std::shared_ptr< Surface > SurfaceSharedPtr
bool IsTextFillColor() const
bool IsRTLEnabled() const
std::vector< OUString > mUsedFonts
bool IsClipRegion() const
tools::Long GetOutputHeightPixel() const
bool mbTextRenderModeForResolutionIndependentLayout
void drawLine(VirtualDevice *dev, Point const &orig, Point const &dest, Size const &pSize)
draws a line from orig to dest knowing penSize
Size GetOutputSize() const
const OutDevType meOutDevType
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
const Color & GetLineColor() const
css::uno::WeakReference< css::rendering::XCanvas > mxCanvas
std::vector< tools::PolyPolygon > PolyPolyVector
std::shared_ptr< cairo_surface_t > CairoSurfaceSharedPtr
const AllSettings & GetSettings() const
Size GetOutputSizePixel() const
Point PixelToLogic(const Point &rDevicePt) const
void SetTextAlign(TextAlign eAlign)
DrawModeFlags GetDrawMode() const
VCL_DLLPUBLIC void InvertFocusRect(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
tools::Long mnEmphasisAscent
float GetDPIScaleFactor() const
tools::Long GetOutOffYPixel() const
std::vector< VCLXGraphics * > * GetUnoGraphicsList() const
VclPtr< OutputDevice > mpPrevGraphics
Previous output device in list.
std::vector< FontMappingUseItem > FontMappingUseData
VclPtr< VirtualDevice > mpAlphaVDev
SAL_DLLPRIVATE tools::Long GetEmphasisDescent() const
Color GetBackgroundColor() const
SAL_WARN_UNUSED_RESULT Size GetPixelOffset() const
Get the offset in pixel.
void SetExtOutDevData(vcl::ExtOutDevData *pExtOutDevData)
OutputDevice RenderContext
tools::Rectangle GetOutputRectPixel() const
LanguageType GetDigitLanguage() const
OutDevViewType GetOutDevViewType() const
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_WHITE
Point GetOutputOffPixel() const
bool IsTransparent() const
tools::Rectangle GetTextRect(const tools::Rectangle &rRect, const OUString &rStr, DrawTextFlags nStyle=DrawTextFlags::WordBreak, TextRectInfo *pInfo=nullptr, const vcl::ITextLayout *_pTextLayout=nullptr) const
sal_Int32 GetDPIScalePercentage() const
virtual Size GetButtonBorderSize()
SAL_DLLPRIVATE void SetDPIY(sal_Int32 nDPIY)
RasterOp GetRasterOp() const
rtl::Reference< LogicalFontInstance > mpFontInstance
BmpMirrorFlags AdjustTwoRect(SalTwoRect &rTwoRect, const Size &rSizePix)
Color GetTextFillColor() const
Size GetOutputSizePixel() const
tools::Long GetTextWidth(const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, vcl::text::TextLayoutCache const *=nullptr, SalLayoutGlyphs const *const pLayoutCache=nullptr) const
Width of the text.
void SetOutDevViewType(OutDevViewType eOutDevViewType)
If this OutputDevice is used for displaying a Print Preview the OutDevViewType should be set to 'OutD...
std::shared_ptr< ImplFontCache > mxFontCache
tools::Long mnOutOffX
Output offset for device output in pixel (pseudo window offset within window system's frames) ...
std::unique_ptr< ImplOutDevData > mpOutDevData
vcl::ExtOutDevData * GetExtOutDevData() const
void SetFont(const vcl::Font &rNewFont)
void SetLineColor(const css::uno::Reference< css::beans::XPropertySet > &xGridProperties, sal_Int32 nColor)
vcl::ExtOutDevData * mpExtOutDevData
tools::Long mnOutOffLogicY
Additional output offset in logical coordinates, applied in PixelToLogic (used by SetPixelOffset/GetP...
bool IsOverlineColor() const
virtual size_t GetSyncCount() const
bool IsDeviceOutputNecessary() const
SAL_DLLPRIVATE sal_Int32 GetDPIY() const
Get the output device's DPI y-axis value.
virtual vcl::Window * GetOwnerWindow() const
Get the vcl::Window that this OutputDevice belongs to, if any.
struct _cairo_surface cairo_surface_t
tools::Long GetOutputWidthPixel() const
SAL_DLLPRIVATE sal_Int32 GetDPIX() const
Get the output device's DPI x-axis value.
virtual bool IsScreenComp() const
const Color & GetFillColor() const
::std::vector< B2DPolyPolygon > B2DPolyPolygonVector
LanguageType meTextLanguage
virtual bool CanEnableNativeWidget() const
Determine if native widgets can be enabled.