LibreOffice Module vcl (master) 1
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Friends | List of all members
OutputDevice Class Referenceabstract

Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inheritance to keep the referencing counting OK. More...

#include <outdev.hxx>

Inheritance diagram for OutputDevice:
[legend]
Collaboration diagram for OutputDevice:
[legend]

Classes

struct  FontMappingUseItem
 

Public Member Functions

virtual Size GetButtonBorderSize ()
 
virtual Color GetMonochromeButtonColor ()
 
virtual void DrawBorder (tools::Rectangle aBorderRect)
 
virtual css::awt::DeviceInfo GetDeviceInfo () const
 
virtual vcl::WindowGetOwnerWindow () const
 Get the vcl::Window that this OutputDevice belongs to, if any. More...
 
Helper functions
SAL_DLLPRIVATE sal_Int32 GetDPIX () const
 Get the output device's DPI x-axis value. More...
 
SAL_DLLPRIVATE sal_Int32 GetDPIY () const
 Get the output device's DPI y-axis value. More...
 
SAL_DLLPRIVATE void SetDPIX (sal_Int32 nDPIX)
 
SAL_DLLPRIVATE void SetDPIY (sal_Int32 nDPIY)
 
float GetDPIScaleFactor () const
 
sal_Int32 GetDPIScalePercentage () const
 
OutDevType GetOutDevType () const
 
virtual bool IsVirtual () const
 
bool SupportsOperation (OutDevSupportType) const
 Query an OutputDevice to see whether it supports a specific operation. More...
 
void SetExtOutDevData (vcl::ExtOutDevData *pExtOutDevData)
 
vcl::ExtOutDevDataGetExtOutDevData () const
 
Pixel functions
void DrawPixel (const Point &rPt)
 
void DrawPixel (const Point &rPt, const Color &rColor)
 
Color GetPixel (const Point &rPt) const
 
Rectangle functions
void DrawRect (const tools::Rectangle &rRect)
 
void DrawRect (const tools::Rectangle &rRect, sal_uLong nHorzRount, sal_uLong nVertRound)
 
void DrawCheckered (const Point &rPos, const Size &rSize, sal_uInt32 nLen=8, Color aStart=COL_WHITE, Color aEnd=COL_BLACK)
 Fill the given rectangle with checkered rectangles of size nLen x nLen using the colors aStart and aEnd. More...
 
void DrawGrid (const tools::Rectangle &rRect, const Size &rDist, DrawGridFlags nFlags)
 
Invert functions
void Invert (const tools::Rectangle &rRect, InvertFlags nFlags=InvertFlags::NONE)
 
void Invert (const tools::Polygon &rPoly, InvertFlags nFlags=InvertFlags::NONE)
 
Curved shape functions
void DrawEllipse (const tools::Rectangle &rRect)
 
void DrawArc (const tools::Rectangle &rRect, const Point &rStartPt, const Point &rEndPt)
 
void DrawPie (const tools::Rectangle &rRect, const Point &rStartPt, const Point &rEndPt)
 
void DrawChord (const tools::Rectangle &rRect, const Point &rStartPt, const Point &rEndPt)
 
Native Widget Rendering functions

These all just call through to the private mpGraphics functions of the same name.

virtual bool CanEnableNativeWidget () const
 Determine if native widgets can be enabled. More...
 
bool IsNativeControlSupported (ControlType nType, ControlPart nPart) const
 Query the platform layer for control support. More...
 
bool HitTestNativeScrollbar (ControlPart nPart, const tools::Rectangle &rControlRegion, const Point &aPos, bool &rIsInside) const
 Query the native control to determine if it was acted upon. More...
 
bool DrawNativeControl (ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue, const OUString &aCaption, const Color &rBackgroundColor=COL_AUTO)
 Request rendering of a particular control and/or part. More...
 
bool GetNativeControlRegion (ControlType nType, ControlPart nPart, const tools::Rectangle &rControlRegion, ControlState nState, const ImplControlValue &aValue, tools::Rectangle &rNativeBoundingRegion, tools::Rectangle &rNativeContentRegion) const
 Query the native control's actual drawing region (including adornment) More...
 
EPS functions
bool DrawEPS (const Point &rPt, const Size &rSz, const GfxLink &rGfxLink, GDIMetaFile *pSubst=nullptr)
 
- Public Member Functions inherited from VclReferenceBase
void acquire () const
 
void release () const
 
sal_Int32 getRefCount () const
 
void disposeOnce ()
 
bool isDisposed () const
 

Protected Member Functions

css::awt::DeviceInfo GetCommonDeviceInfo (Size const &aDevSize) const
 
- Protected Member Functions inherited from VclReferenceBase
 VclReferenceBase ()
 
virtual ~VclReferenceBase ()
 
virtual void dispose ()
 

Protected Attributes

std::shared_ptr< vcl::font::PhysicalFontCollectionmxFontCollection
 
std::shared_ptr< ImplFontCachemxFontCache
 

Private Member Functions

 OutputDevice (const OutputDevice &)=delete
 
OutputDeviceoperator= (const OutputDevice &)=delete
 
bool DrawPolyLineDirectInternal (const basegfx::B2DHomMatrix &rObjectTransform, const basegfx::B2DPolygon &rB2DPolygon, double fLineWidth=0.0, double fTransparency=0.0, const std::vector< double > *=nullptr, basegfx::B2DLineJoin eLineJoin=basegfx::B2DLineJoin::NONE, css::drawing::LineCap eLineCap=css::drawing::LineCap_BUTT, double fMiterMinimumAngle=basegfx::deg2rad(15.0))
 
SAL_DLLPRIVATE void ImplDrawWaveLineBezier (tools::Long nStartX, tools::Long nStartY, tools::Long nEndX, tools::Long nEndY, tools::Long nWaveHeight, double fOrientation, tools::Long nLineWidth)
 

Private Attributes

SalGraphicsmpGraphics
 Graphics context to draw on. More...
 
VclPtr< OutputDevicempPrevGraphics
 Previous output device in list. More...
 
VclPtr< OutputDevicempNextGraphics
 Next output device in list. More...
 
GDIMetaFilempMetaFile
 
rtl::Reference< LogicalFontInstancempFontInstance
 
std::unique_ptr< vcl::font::PhysicalFontFaceCollectionmpFontFaceCollection
 
std::vector< vcl::StatemaOutDevStateStack
 
std::unique_ptr< ImplOutDevDatampOutDevData
 
std::vector< VCLXGraphics * > * mpUnoGraphicsList
 
vcl::ExtOutDevDatampExtOutDevData
 
css::uno::WeakReference< css::rendering::XCanvas > mxCanvas
 
VclPtr< VirtualDevicempAlphaVDev
 
tools::Long mnOutOffOrigX
 Additional output pixel offset, applied in LogicToPixel (used by SetPixelOffset/GetPixelOffset) More...
 
tools::Long mnOutOffLogicX
 Additional output offset in logical coordinates, applied in PixelToLogic (used by SetPixelOffset/GetPixelOffset) More...
 
tools::Long mnOutOffOrigY
 Additional output pixel offset, applied in LogicToPixel (used by SetPixelOffset/GetPixelOffset) More...
 
tools::Long mnOutOffLogicY
 Additional output offset in logical coordinates, applied in PixelToLogic (used by SetPixelOffset/GetPixelOffset) More...
 
tools::Long mnOutOffX
 Output offset for device output in pixel (pseudo window offset within window system's frames) More...
 
tools::Long mnOutOffY
 Output offset for device output in pixel (pseudo window offset within window system's frames) More...
 
tools::Long mnOutWidth
 
tools::Long mnOutHeight
 
sal_Int32 mnDPIX
 
sal_Int32 mnDPIY
 
sal_Int32 mnDPIScalePercentage
 For HiDPI displays, we want to draw elements for a percentage larger. More...
 
tools::Long mnTextOffX
 font specific text alignment offsets in pixel units More...
 
tools::Long mnTextOffY
 
tools::Long mnEmphasisAscent
 
tools::Long mnEmphasisDescent
 
DrawModeFlags mnDrawMode
 
vcl::text::ComplexTextLayoutFlags mnTextLayoutMode
 
ImplMapRes maMapRes
 
const OutDevType meOutDevType
 
OutDevViewType meOutDevViewType
 
vcl::Region maRegion
 
Color maLineColor
 
Color maFillColor
 
vcl::Font maFont
 
Color maTextColor
 
Color maTextLineColor
 
Color maOverlineColor
 
RasterOp meRasterOp
 
Wallpaper maBackground
 
std::optional< AllSettingsmoSettings
 
MapMode maMapMode
 
Point maRefPoint
 
AntialiasingFlags mnAntialiasing
 
LanguageType meTextLanguage
 
bool mbMap: 1
 
bool mbClipRegion: 1
 
bool mbBackground: 1
 
bool mbOutput: 1
 
bool mbDevOutput: 1
 
bool mbOutputClipped: 1
 
bool mbLineColor: 1
 
bool mbFillColor: 1
 
bool mbInitLineColor: 1
 
bool mbInitFillColor: 1
 
bool mbInitFont: 1
 
bool mbInitTextColor: 1
 
bool mbInitClipRegion: 1
 
bool mbClipRegionSet: 1
 
bool mbNewFont: 1
 
bool mbTextLines: 1
 
bool mbTextSpecial: 1
 
bool mbRefPoint: 1
 
bool mbEnableRTL: 1
 

Friends

class Printer
 
class VirtualDevice
 
class vcl::Window
 
class vcl::WindowOutputDevice
 
class WorkWindow
 
void ImplHandleResize (vcl::Window *pWindow, tools::Long nNewWidth, tools::Long nNewHeight)
 

Font functions

typedef void(OutputDevice::* FontUpdateHandler_t) (bool)
 
SAL_DLLPRIVATE void ImplDrawEmphasisMark (tools::Long nBaseX, tools::Long nX, tools::Long nY, const tools::PolyPolygon &rPolyPoly, bool bPolyLine, const tools::Rectangle &rRect1, const tools::Rectangle &rRect2)
 
SAL_DLLPRIVATE void ImplDrawEmphasisMarks (SalLayout &)
 
SAL_DLLPRIVATE tools::Long GetEmphasisAscent () const
 
SAL_DLLPRIVATE tools::Long GetEmphasisDescent () const
 
SAL_DLLPRIVATE bool InitFont () const
 
virtual void SetFontOrientation (LogicalFontInstance *const pFontInstance) const
 
virtual tools::Long GetFontExtLeading () const
 
virtual void ImplClearFontData (bool bNewFontLists)
 
virtual void ImplRefreshFontData (bool bNewFontLists)
 
void ReleaseFontCache ()
 
void ReleaseFontCollection ()
 
void SetFontCollectionFromSVData ()
 
void ResetNewFontCache ()
 
virtual bool ImplNewFont () const
 
FontMetric GetFontMetricFromCollection (int nDevFontIndex) const
 
int GetFontFaceCollectionCount () const
 
bool IsFontAvailable (std::u16string_view rFontName) const
 
bool AddTempDevFont (const OUString &rFileURL, const OUString &rFontName)
 
void RefreshFontData (const bool bNewFontLists)
 
FontMetric GetFontMetric () const
 
FontMetric GetFontMetric (const vcl::Font &rFont) const
 
bool GetFontCharMap (FontCharMapRef &rxFontCharMap) const
 
bool GetFontCapabilities (vcl::FontCapabilities &rFontCapabilities) const
 
bool GetFontFeatures (std::vector< vcl::font::Feature > &rFontFeatures) const
 
bool GetGlyphBoundRects (const Point &rOrigin, const OUString &rStr, int nIndex, int nLen, std::vector< tools::Rectangle > &rVector) const
 
sal_Int32 HasGlyphs (const vcl::Font &rFont, std::u16string_view rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1) const
 
tools::Long GetMinKashida () const
 
sal_Int32 ValidateKashidas (const OUString &rTxt, sal_Int32 nIdx, sal_Int32 nLen, sal_Int32 nKashCount, const sal_Int32 *pKashidaPos, sal_Int32 *pKashidaPosDropped) const
 
SAL_DLLPRIVATE void ImplInitFontList () const
 
SAL_DLLPRIVATE void ImplUpdateFontData ()
 
SAL_DLLPRIVATE const LogicalFontInstanceGetFontInstance () const
 
static void BeginFontSubstitution ()
 
static void EndFontSubstitution ()
 
static void AddFontSubstitute (const OUString &rFontName, const OUString &rReplaceFontName, AddFontSubstituteFlags nFlags)
 
static void RemoveFontsSubstitute ()
 
static vcl::Font GetDefaultFont (DefaultFontType nType, LanguageType eLang, GetDefaultFontFlags nFlags, const OutputDevice *pOutDev=nullptr)
 
static void ImplClearAllFontData (bool bNewFontLists)
 
static void ImplRefreshAllFontData (bool bNewFontLists)
 
static SAL_DLLPRIVATE void ImplUpdateAllFontData (bool bNewFontLists)
 
static SAL_DLLPRIVATE void ImplUpdateFontDataForAllFrames (FontUpdateHandler_t pHdl, bool bNewFontLists)
 
static SAL_DLLPRIVATE OUString ImplGetEllipsisString (const OutputDevice &rTargetDevice, const OUString &rStr, tools::Long nMaxWidth, DrawTextFlags nStyle, const vcl::ITextLayout &_rLayout)
 

Layout functions

typedef std::vector< FontMappingUseItemFontMappingUseData
 
SAL_DLLPRIVATE bool ImplIsAntiparallel () const
 
SAL_DLLPRIVATE void ReMirror (Point &rPoint) const
 
SAL_DLLPRIVATE void ReMirror (tools::Rectangle &rRect) const
 
SAL_DLLPRIVATE void ReMirror (vcl::Region &rRegion) const
 
SAL_DLLPRIVATE bool ImplIsRecordLayout () const
 
virtual bool HasMirroredGraphics () const
 
std::unique_ptr< SalLayoutImplLayout (const OUString &, sal_Int32 nIndex, sal_Int32 nLen, const Point &rLogicPos=Point(0, 0), tools::Long nLogicWidth=0, o3tl::span< const sal_Int32 > pLogicDXArray={}, o3tl::span< const sal_Bool > pKashidaArray={}, SalLayoutFlags flags=SalLayoutFlags::NONE, vcl::text::TextLayoutCache const *=nullptr, const SalLayoutGlyphs *pGlyphs=nullptr) const
 
SAL_DLLPRIVATE vcl::text::ImplLayoutArgs ImplPrepareLayoutArgs (OUString &, const sal_Int32 nIndex, const sal_Int32 nLen, DeviceCoordinate nPixelWidth, SalLayoutFlags flags=SalLayoutFlags::NONE, vcl::text::TextLayoutCache const *=nullptr) const
 
SAL_DLLPRIVATE std::unique_ptr< SalLayoutImplGlyphFallbackLayout (std::unique_ptr< SalLayout >, vcl::text::ImplLayoutArgs &, const SalLayoutGlyphs *) const
 
SAL_DLLPRIVATE std::unique_ptr< SalLayoutgetFallbackLayout (LogicalFontInstance *pLogicalFont, int nFallbackLevel, vcl::text::ImplLayoutArgs &rLayoutArgs, const SalLayoutGlyphs *) const
 
virtual void EnableRTL (bool bEnable=true)
 
bool IsRTLEnabled () const
 
bool GetTextIsRTL (const OUString &, sal_Int32 nIndex, sal_Int32 nLen) const
 
static void StartTrackingFontMappingUse ()
 
static FontMappingUseData FinishTrackingFontMappingUse ()
 

Direct OutputDevice drawing functions

SAL_DLLPRIVATE void DrawOutDev (const Point &, const Size &, const Point &, const Size &, const Printer &)=delete
 
virtual void CopyDeviceArea (SalTwoRect &aPosAry, bool bWindowInvalidate)
 
virtual tools::Rectangle GetBackgroundComponentBounds () const
 
virtual const OutputDeviceDrawOutDevDirectCheck (const OutputDevice &rSrcDev) const
 
virtual void DrawOutDevDirectProcess (const OutputDevice &rSrcDev, SalTwoRect &rPosAry, SalGraphics *pSrcGraphics)
 
SAL_DLLPRIVATE void drawOutDevDirect (const OutputDevice &rSrcDev, SalTwoRect &rPosAry)
 
SAL_DLLPRIVATE bool is_double_buffered_window () const
 
virtual css::uno::Reference< css::rendering::XCanvas > ImplGetCanvas (bool bSpriteCanvas) const
 
SAL_DLLPRIVATE void ImplDisposeCanvas ()
 
virtual void Flush ()
 
virtual void DrawOutDev (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPt, const Size &rSrcSize)
 
virtual void DrawOutDev (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPt, const Size &rSrcSize, const OutputDevice &rOutDev)
 
virtual void CopyArea (const Point &rDestPt, const Point &rSrcPt, const Size &rSrcSize, bool bWindowInvalidate=false)
 

OutputDevice state functions

SAL_DLLPRIVATE void InitLineColor ()
 
SAL_DLLPRIVATE void InitFillColor ()
 
virtual void ImplReleaseFonts ()
 
void Push (vcl::PushFlags nFlags=vcl::PushFlags::ALL)
 
void Pop ()
 
void ClearStack ()
 
void EnableOutput (bool bEnable=true)
 
bool IsOutputEnabled () const
 
bool IsDeviceOutputNecessary () const
 
void SetAntialiasing (AntialiasingFlags nMode)
 
AntialiasingFlags GetAntialiasing () const
 
void SetDrawMode (DrawModeFlags nDrawMode)
 
DrawModeFlags GetDrawMode () const
 
void SetLayoutMode (vcl::text::ComplexTextLayoutFlags nTextLayoutMode)
 
vcl::text::ComplexTextLayoutFlags GetLayoutMode () const
 
void SetDigitLanguage (LanguageType)
 
LanguageType GetDigitLanguage () const
 
void SetRasterOp (RasterOp eRasterOp)
 
RasterOp GetRasterOp () const
 
void SetOutDevViewType (OutDevViewType eOutDevViewType)
 If this OutputDevice is used for displaying a Print Preview the OutDevViewType should be set to 'OutDevViewType::PrintPreview'. More...
 
OutDevViewType GetOutDevViewType () const
 
void SetLineColor ()
 
void SetLineColor (const Color &rColor)
 
const ColorGetLineColor () const
 
bool IsLineColor () const
 
void SetFillColor ()
 
void SetFillColor (const Color &rColor)
 
const ColorGetFillColor () const
 
bool IsFillColor () const
 
void SetBackground ()
 
void SetBackground (const Wallpaper &rBackground)
 
virtual void SaveBackground (VirtualDevice &rSaveDevice, const Point &rPos, const Size &rSize, const Size &rBackgroundSize) const
 
const WallpaperGetBackground () const
 
virtual Color GetBackgroundColor () const
 
virtual Color GetReadableFontColor (const Color &rFontColor, const Color &rBgColor) const
 
bool IsBackground () const
 
void SetFont (const vcl::Font &rNewFont)
 
const vcl::FontGetFont () const
 

Clipping functions

SAL_DLLPRIVATE void SetDeviceClipRegion (const vcl::Region *pRegion)
 
virtual void InitClipRegion ()
 
virtual vcl::Region ClipToDeviceBounds (vcl::Region aRegion) const
 Perform actual rect clip against outdev dimensions, to generate empty clips whenever one of the values is completely off the device. More...
 
virtual void ClipToPaintRegion (tools::Rectangle &rDstRect)
 
vcl::Region GetClipRegion () const
 
void SetClipRegion ()
 
void SetClipRegion (const vcl::Region &rRegion)
 
bool SelectClipRegion (const vcl::Region &, SalGraphics *pGraphics=nullptr)
 
bool IsClipRegion () const
 
void MoveClipRegion (tools::Long nHorzMove, tools::Long nVertMove)
 
void IntersectClipRegion (const tools::Rectangle &rRect)
 
void IntersectClipRegion (const vcl::Region &rRegion)
 
virtual vcl::Region GetActiveClipRegion () const
 
virtual vcl::Region GetOutputBoundsClipRegion () const
 

Line functions

SAL_DLLPRIVATE void drawLine (basegfx::B2DPolyPolygon aLinePolyPolygon, const LineInfo &rInfo)
 Helper for line geometry paint with support for graphic expansion (pattern and fat_to_area) More...
 
virtual void DrawHatchLine_DrawLine (const Point &rStartPoint, const Point &rEndPoint)
 
void DrawLine (const Point &rStartPt, const Point &rEndPt)
 
void DrawLine (const Point &rStartPt, const Point &rEndPt, const LineInfo &rLineInfo)
 

Polyline functions

SAL_DLLPRIVATE void drawPolyLine (const tools::Polygon &rPoly, const LineInfo &rLineInfo)
 
void DrawPolyLine (const tools::Polygon &rPoly)
 Render the given polygon as a line stroke. More...
 
void DrawPolyLine (const basegfx::B2DPolygon &, double fLineWidth=0.0, basegfx::B2DLineJoin eLineJoin=basegfx::B2DLineJoin::Round, css::drawing::LineCap eLineCap=css::drawing::LineCap_BUTT, double fMiterMinimumAngle=basegfx::deg2rad(15.0))
 
void DrawPolyLine (const tools::Polygon &rPoly, const LineInfo &rLineInfo)
 Render the given polygon as a line stroke. More...
 
bool DrawPolyLineDirect (const basegfx::B2DHomMatrix &rObjectTransform, const basegfx::B2DPolygon &rB2DPolygon, double fLineWidth=0.0, double fTransparency=0.0, const std::vector< double > *=nullptr, basegfx::B2DLineJoin eLineJoin=basegfx::B2DLineJoin::NONE, css::drawing::LineCap eLineCap=css::drawing::LineCap_BUTT, double fMiterMinimumAngle=basegfx::deg2rad(15.0))
 

Polygon functions

SAL_DLLPRIVATE void ImplDrawPolygon (const tools::Polygon &rPoly, const tools::PolyPolygon *pClipPolyPoly=nullptr)
 
SAL_DLLPRIVATE void ImplDrawPolyPolygon (const tools::PolyPolygon &rPolyPoly, const tools::PolyPolygon *pClipPolyPoly)
 
SAL_DLLPRIVATE void ImplDrawPolyPolygon (sal_uInt16 nPoly, const tools::PolyPolygon &rPolyPoly)
 
SAL_DLLPRIVATE void ImplDrawPolyPolygonWithB2DPolyPolygon (const basegfx::B2DPolyPolygon &rB2DPolyPoly)
 
void DrawPolygon (const tools::Polygon &rPoly)
 Render the given polygon. More...
 
void DrawPolygon (const basegfx::B2DPolygon &)
 
void DrawPolyPolygon (const tools::PolyPolygon &rPolyPoly)
 Render the given poly-polygon. More...
 
void DrawPolyPolygon (const basegfx::B2DPolyPolygon &)
 

Gradient functions

SAL_DLLPRIVATE void DrawLinearGradient (const tools::Rectangle &rRect, const Gradient &rGradient, const tools::PolyPolygon *pClipPolyPoly)
 
SAL_DLLPRIVATE void DrawComplexGradient (const tools::Rectangle &rRect, const Gradient &rGradient, const tools::PolyPolygon *pClipPolyPoly)
 
SAL_DLLPRIVATE void DrawGradientToMetafile (const tools::PolyPolygon &rPolyPoly, const Gradient &rGradient)
 
SAL_DLLPRIVATE tools::Long GetGradientSteps (Gradient const &rGradient, tools::Rectangle const &rRect)
 
SAL_DLLPRIVATE Color GetSingleColorGradientFill ()
 
virtual bool UsePolyPolygonForComplexGradient ()=0
 
virtual tools::Long GetGradientStepCount (tools::Long nMinRect)
 
void DrawGradient (const tools::Rectangle &rRect, const Gradient &rGradient)
 
void DrawGradient (const tools::PolyPolygon &rPolyPoly, const Gradient &rGradient)
 

Hatch functions

SAL_DLLPRIVATE void CalcHatchValues (const tools::Rectangle &rRect, tools::Long nDist, Degree10 nAngle10, Point &rPt1, Point &rPt2, Size &rInc, Point &rEndPt1)
 
SAL_DLLPRIVATE void DrawHatchLine (const tools::Line &rLine, const tools::PolyPolygon &rPolyPoly, Point *pPtBuffer, bool bMtf)
 
void DrawHatch (const tools::PolyPolygon &rPolyPoly, const Hatch &rHatch)
 
void AddHatchActions (const tools::PolyPolygon &rPolyPoly, const Hatch &rHatch, GDIMetaFile &rMtf)
 
void DrawHatch (const tools::PolyPolygon &rPolyPoly, const Hatch &rHatch, bool bMtf)
 

Wallpaper functions

SAL_DLLPRIVATE void DrawWallpaper (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, const Wallpaper &rWallpaper)
 
SAL_DLLPRIVATE void DrawColorWallpaper (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, const Wallpaper &rWallpaper)
 
SAL_DLLPRIVATE void DrawBitmapWallpaper (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, const Wallpaper &rWallpaper)
 
void DrawGradientWallpaper (tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, const Wallpaper &rWallpaper)
 
void DrawWallpaper (const tools::Rectangle &rRect, const Wallpaper &rWallpaper)
 
void Erase ()
 
void Erase (const tools::Rectangle &rRect)
 

Text functions

SAL_DLLPRIVATE void ImplInitTextColor ()
 
SAL_DLLPRIVATE void ImplDrawTextDirect (SalLayout &, bool bTextLines)
 
SAL_DLLPRIVATE void ImplDrawSpecialText (SalLayout &)
 
SAL_DLLPRIVATE void ImplDrawTextRect (tools::Long nBaseX, tools::Long nBaseY, tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight)
 
SAL_DLLPRIVATE void ImplDrawWavePixel (tools::Long nOriginX, tools::Long nOriginY, tools::Long nCurX, tools::Long nCurY, tools::Long nWidth, Degree10 nOrientation, SalGraphics *pGraphics, const OutputDevice &rOutDev, tools::Long nPixWidth, tools::Long nPixHeight)
 
SAL_DLLPRIVATE void ImplDrawWaveLine (tools::Long nBaseX, tools::Long nBaseY, tools::Long nStartX, tools::Long nStartY, tools::Long nWidth, tools::Long nHeight, tools::Long nLineWidth, Degree10 nOrientation, const Color &rColor)
 
SAL_DLLPRIVATE void ImplDrawWaveTextLine (tools::Long nBaseX, tools::Long nBaseY, tools::Long nX, tools::Long nY, tools::Long nWidth, FontLineStyle eTextLine, Color aColor, bool bIsAbove)
 
SAL_DLLPRIVATE void ImplDrawStraightTextLine (tools::Long nBaseX, tools::Long nBaseY, tools::Long nX, tools::Long nY, tools::Long nWidth, FontLineStyle eTextLine, Color aColor, bool bIsAbove)
 
SAL_DLLPRIVATE void ImplDrawStrikeoutLine (tools::Long nBaseX, tools::Long nBaseY, tools::Long nX, tools::Long nY, tools::Long nWidth, FontStrikeout eStrikeout, Color aColor)
 
SAL_DLLPRIVATE void ImplDrawStrikeoutChar (tools::Long nBaseX, tools::Long nBaseY, tools::Long nX, tools::Long nY, tools::Long nWidth, FontStrikeout eStrikeout, Color aColor)
 
SAL_DLLPRIVATE void ImplDrawMnemonicLine (tools::Long nX, tools::Long nY, tools::Long nWidth)
 
SAL_DLLPRIVATE bool AttemptOLEFontScaleFix (vcl::Font &rFont, tools::Long nHeight) const
 
SAL_DLLPRIVATE void ImplInitTextLineSize ()
 
SAL_DLLPRIVATE void ImplInitAboveTextLineSize ()
 
SAL_DLLPRIVATE float approximate_char_width () const
 
virtual bool shouldDrawWavePixelAsRect (tools::Long nLineWidth) const
 
virtual void SetWaveLineColors (Color const &rColor, tools::Long nLineWidth)
 
virtual Size GetWaveLineSize (tools::Long nLineWidth) const
 
void DrawText (const Point &rStartPt, const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, std::vector< tools::Rectangle > *pVector=nullptr, OUString *pDisplayText=nullptr, const SalLayoutGlyphs *pLayoutCache=nullptr)
 
void DrawText (const tools::Rectangle &rRect, const OUString &rStr, DrawTextFlags nStyle=DrawTextFlags::NONE, std::vector< tools::Rectangle > *pVector=nullptr, OUString *pDisplayText=nullptr, vcl::ITextLayout *_pTextLayout=nullptr)
 
void ImplDrawText (SalLayout &)
 
void ImplDrawTextBackground (const SalLayout &)
 
void DrawCtrlText (const Point &rPos, const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, DrawTextFlags nStyle=DrawTextFlags::Mnemonic, std::vector< tools::Rectangle > *pVector=nullptr, OUString *pDisplayText=nullptr, const SalLayoutGlyphs *pGlyphs=nullptr)
 
void DrawTextLine (const Point &rPos, tools::Long nWidth, FontStrikeout eStrikeout, FontLineStyle eUnderline, FontLineStyle eOverline, bool bUnderlineAbove=false)
 
void ImplDrawTextLine (tools::Long nBaseX, tools::Long nX, tools::Long nY, DeviceCoordinate nWidth, FontStrikeout eStrikeout, FontLineStyle eUnderline, FontLineStyle eOverline, bool bUnderlineAbove)
 
void ImplDrawTextLines (SalLayout &, FontStrikeout eStrikeout, FontLineStyle eUnderline, FontLineStyle eOverline, bool bWordLine, bool bUnderlineAbove)
 
void DrawWaveLine (const Point &rStartPos, const Point &rEndPos, tools::Long nLineWidth=1, tools::Long nWaveHeight=3)
 
bool ImplDrawRotateText (SalLayout &)
 
tools::Rectangle GetTextRect (const tools::Rectangle &rRect, const OUString &rStr, DrawTextFlags nStyle=DrawTextFlags::WordBreak, TextRectInfo *pInfo=nullptr, const vcl::ITextLayout *_pTextLayout=nullptr) const
 
bool GetTextBoundRect (tools::Rectangle &rRect, const OUString &rStr, sal_Int32 nBase=0, sal_Int32 nIndex=0, sal_Int32 nLen=-1, sal_uLong nLayoutWidth=0, o3tl::span< const sal_Int32 > pDXArray={}, o3tl::span< const sal_Bool > pKashidaArray={}, const SalLayoutGlyphs *pGlyphs=nullptr) const
 Return the exact bounding rectangle of rStr. More...
 
tools::Rectangle ImplGetTextBoundRect (const SalLayout &) const
 
bool GetTextOutline (tools::PolyPolygon &, const OUString &rStr) const
 
bool GetTextOutlines (PolyPolyVector &, const OUString &rStr, sal_Int32 nBase=0, sal_Int32 nIndex=0, sal_Int32 nLen=-1, sal_uLong nLayoutWidth=0, o3tl::span< const sal_Int32 > pDXArray={}, o3tl::span< const sal_Bool > pKashidaArray={}) const
 
bool GetTextOutlines (basegfx::B2DPolyPolygonVector &rVector, const OUString &rStr, sal_Int32 nBase, sal_Int32 nIndex=0, sal_Int32 nLen=-1, sal_uLong nLayoutWidth=0, o3tl::span< const sal_Int32 > pDXArray={}, o3tl::span< const sal_Bool > pKashidaArray={}) const
 
OUString GetEllipsisString (const OUString &rStr, tools::Long nMaxWidth, DrawTextFlags nStyle=DrawTextFlags::EndEllipsis) const
 
tools::Long GetCtrlTextWidth (const OUString &rStr, const SalLayoutGlyphs *pLayoutCache=nullptr) const
 
void AddTextRectActions (const tools::Rectangle &rRect, const OUString &rOrigStr, DrawTextFlags nStyle, GDIMetaFile &rMtf)
 Generate MetaTextActions for the text rect. More...
 
void SetTextColor (const Color &rColor)
 
virtual void SetSystemTextColor (SystemTextColorFlags nFlags, bool bEnabled)
 
const ColorGetTextColor () const
 
void SetTextFillColor ()
 
void SetTextFillColor (const Color &rColor)
 
Color GetTextFillColor () const
 
bool IsTextFillColor () const
 
void SetTextLineColor ()
 
void SetTextLineColor (const Color &rColor)
 
const ColorGetTextLineColor () const
 
bool IsTextLineColor () const
 
void SetOverlineColor ()
 
void SetOverlineColor (const Color &rColor)
 
const ColorGetOverlineColor () const
 
bool IsOverlineColor () const
 
void SetTextAlign (TextAlign eAlign)
 
TextAlign GetTextAlign () 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. More...
 
tools::Long GetTextHeight () const
 Height where any character of the current font fits; in logic coordinates. More...
 
float approximate_digit_width () const
 
void DrawTextArray (const Point &rStartPt, const OUString &rStr, o3tl::span< const sal_Int32 > pDXAry, o3tl::span< const sal_Bool > pKashidaAry={}, sal_Int32 nIndex=0, sal_Int32 nLen=-1, SalLayoutFlags flags=SalLayoutFlags::NONE, const SalLayoutGlyphs *pLayoutCache=nullptr)
 
tools::Long GetTextArray (const OUString &rStr, std::vector< sal_Int32 > *pDXAry, sal_Int32 nIndex=0, sal_Int32 nLen=-1, bool bCaret=false, vcl::text::TextLayoutCache const *=nullptr, SalLayoutGlyphs const *const pLayoutCache=nullptr) const
 
void GetCaretPositions (const OUString &, sal_Int32 *pCaretXArray, sal_Int32 nIndex, sal_Int32 nLen, const SalLayoutGlyphs *pGlyphs=nullptr) const
 
void DrawStretchText (const Point &rStartPt, sal_uLong nWidth, const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1)
 
sal_Int32 GetTextBreak (const OUString &rStr, tools::Long nTextWidth, sal_Int32 nIndex, sal_Int32 nLen=-1, tools::Long nCharExtra=0, vcl::text::TextLayoutCache const *=nullptr, const SalLayoutGlyphs *pGlyphs=nullptr) const
 
sal_Int32 GetTextBreak (const OUString &rStr, tools::Long nTextWidth, sal_Unicode nExtraChar, sal_Int32 &rExtraCharPos, sal_Int32 nIndex, sal_Int32 nLen, tools::Long nCharExtra, vcl::text::TextLayoutCache const *=nullptr, const SalLayoutGlyphs *pGlyphs=nullptr) const
 
SAL_DLLPRIVATE SalLayoutFlags GetBiDiLayoutFlags (std::u16string_view rStr, const sal_Int32 nMinIndex, const sal_Int32 nEndIndex) const
 
static void ImplDrawText (OutputDevice &rTargetDevice, const tools::Rectangle &rRect, const OUString &rOrigStr, DrawTextFlags nStyle, std::vector< tools::Rectangle > *pVector, OUString *pDisplayText, vcl::ITextLayout &_rLayout)
 
static std::shared_ptr< const vcl::text::TextLayoutCacheCreateTextLayoutCache (OUString const &)
 
static SAL_DLLPRIVATE tools::Long ImplGetTextLines (const tools::Rectangle &rRect, tools::Long nTextHeight, ImplMultiTextLineInfo &rLineInfo, tools::Long nWidth, const OUString &rStr, DrawTextFlags nStyle, const vcl::ITextLayout &_rLayout)
 
static SAL_DLLPRIVATE sal_Int32 ImplBreakLinesWithIterator (const tools::Long nWidth, const OUString &rStr, const vcl::ITextLayout &_rLayout, const css::uno::Reference< css::linguistic2::XHyphenator > &xHyph, const css::uno::Reference< css::i18n::XBreakIterator > &xBI, const bool bHyphenate, const sal_Int32 nPos, sal_Int32 nBreakPos)
 
static SAL_DLLPRIVATE sal_Int32 ImplBreakLinesSimple (const tools::Long nWidth, const OUString &rStr, const vcl::ITextLayout &_rLayout, const sal_Int32 nPos, sal_Int32 nBreakPos, tools::Long &nLineWidth)
 

Bitmap functions

SAL_DLLPRIVATE void DrawDeviceAlphaBitmap (const Bitmap &rBmp, const AlphaMask &rAlpha, const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel)
 
SAL_DLLPRIVATE void DrawDeviceAlphaBitmapSlowPath (const Bitmap &rBitmap, const AlphaMask &rAlpha, tools::Rectangle aDstRect, tools::Rectangle aBmpRect, Size const &aOutSz, Point const &aOutPt)
 
SAL_DLLPRIVATE void BlendBitmap (const SalTwoRect &rPosAry, const Bitmap &rBmp)
 
SAL_DLLPRIVATE Bitmap BlendBitmap (Bitmap &aBmp, BitmapReadAccess const *pP, BitmapReadAccess const *pA, const sal_Int32 nOffY, const sal_Int32 nDstHeight, const sal_Int32 nOffX, const sal_Int32 nDstWidth, const tools::Rectangle &aBmpRect, const Size &aOutSz, const bool bHMirr, const bool bVMirr, const sal_Int32 *pMapX, const sal_Int32 *pMapY)
 
SAL_DLLPRIVATE Bitmap BlendBitmapWithAlpha (Bitmap &aBmp, BitmapReadAccess const *pP, BitmapReadAccess const *pA, const tools::Rectangle &aDstRect, const sal_Int32 nOffY, const sal_Int32 nDstHeight, const sal_Int32 nOffX, const sal_Int32 nDstWidth, const sal_Int32 *pMapX, const sal_Int32 *pMapY)
 
virtual void DrawDeviceBitmapEx (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel, BitmapEx &rBitmapEx)
 
virtual bool CanSubsampleBitmap () const
 
virtual bool DrawTransformBitmapExDirect (const basegfx::B2DHomMatrix &aFullTransform, const BitmapEx &rBitmapEx, double fAlpha=1.0)
 Transform and draw a bitmap directly. More...
 
virtual bool TransformAndReduceBitmapExToTargetRange (const basegfx::B2DHomMatrix &aFullTransform, basegfx::B2DRange &aVisibleRange, double &fMaximumArea)
 Transform and reduce the area that needs to be drawn of the bitmap and return the new visible range and the maximum area. More...
 
void DrawBitmap (const Point &rDestPt, const Bitmap &rBitmap)
 
void DrawBitmap (const Point &rDestPt, const Size &rDestSize, const Bitmap &rBitmap)
 
void DrawBitmap (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel, const Bitmap &rBitmap)
 
void DrawBitmap (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel, const Bitmap &rBitmap, MetaActionType nAction)
 
void DrawBitmapEx (const Point &rDestPt, const BitmapEx &rBitmapEx)
 
void DrawBitmapEx (const Point &rDestPt, const Size &rDestSize, const BitmapEx &rBitmapEx)
 
void DrawBitmapEx (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel, const BitmapEx &rBitmapEx)
 
void DrawBitmapEx (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel, const BitmapEx &rBitmapEx, MetaActionType nAction)
 
void DrawImage (const Point &rPos, const Image &rImage, DrawImageFlags nStyle=DrawImageFlags::NONE)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. virtual void DrawImage( const Point& rPos, const Size& rSize, const Image& rImage, sal_uInt16 nStyle = 0) More...
 
void DrawImage (const Point &rPos, const Size &rSize, const Image &rImage, DrawImageFlags nStyle=DrawImageFlags::NONE)
 
virtual Bitmap GetBitmap (const Point &rSrcPt, const Size &rSize) const
 
BitmapEx GetBitmapEx (const Point &rSrcPt, const Size &rSize) const
 Query extended bitmap (with alpha channel, if available). More...
 
void DrawTransformedBitmapEx (const basegfx::B2DHomMatrix &rTransformation, const BitmapEx &rBitmapEx, double fAlpha=1.0)
 Draw BitmapEx transformed. More...
 
bool HasFastDrawTransformedBitmap () const
 Return true if DrawTransformedBitmapEx() is fast. More...
 

Transparency functions

SAL_DLLPRIVATE bool DrawTransparentNatively (const tools::PolyPolygon &rPolyPoly, sal_uInt16 nTransparencePercent)
 
virtual void EmulateDrawTransparent (const tools::PolyPolygon &rPolyPoly, sal_uInt16 nTransparencePercent)
 
virtual void ClipAndDrawGradientMetafile (const Gradient &rGradient, const tools::PolyPolygon &rPolyPoly)
 
bool RemoveTransparenciesFromMetaFile (const GDIMetaFile &rInMtf, GDIMetaFile &rOutMtf, tools::Long nMaxBmpDPIX, tools::Long nMaxBmpDPIY, bool bReduceTransparency, bool bTransparencyAutoMode, bool bDownsampleBitmaps, const Color &rBackground=COL_TRANSPARENT)
 helper method removing transparencies from a metafile (e.g. More...
 
void DrawTransparent (const tools::PolyPolygon &rPolyPoly, sal_uInt16 nTransparencePercent)
 
void DrawTransparent (const basegfx::B2DHomMatrix &rObjectTransform, const basegfx::B2DPolyPolygon &rB2DPolyPoly, double fTransparency)
 
void DrawTransparent (const GDIMetaFile &rMtf, const Point &rPos, const Size &rSize, const Gradient &rTransparenceGradient)
 

Map functions

SAL_DLLPRIVATE DeviceCoordinate LogicWidthToDeviceCoordinate (tools::Long nWidth) const
 
SAL_DLLPRIVATE tools::Long ImplLogicXToDevicePixel (tools::Long nX) const
 Convert a logical X coordinate to a device pixel's X coordinate. More...
 
SAL_DLLPRIVATE tools::Long ImplLogicYToDevicePixel (tools::Long nY) const
 Convert a logical Y coordinate to a device pixel's Y coordinate. More...
 
virtual void ImplInitMapModeObjects ()
 
void EnableMapMode (bool bEnable=true)
 
bool IsMapModeEnabled () const
 
void SetMapMode ()
 
void SetMapMode (const MapMode &rNewMapMode)
 
void SetRelativeMapMode (const MapMode &rNewMapMode)
 
virtual void SetMetafileMapMode (const MapMode &rNewMapMode, bool bIsRecord)
 
const MapModeGetMapMode () const
 
basegfx::B2DHomMatrix GetViewTransformation () const
 
basegfx::B2DHomMatrix GetInverseViewTransformation () const
 
basegfx::B2DHomMatrix GetViewTransformation (const MapMode &rMapMode) const
 
basegfx::B2DHomMatrix GetInverseViewTransformation (const MapMode &rMapMode) const
 
void SetPixelOffset (const Size &rOffset)
 Set an offset in pixel. More...
 
SAL_WARN_UNUSED_RESULT Size GetPixelOffset () const
 Get the offset in pixel. More...
 
SAL_WARN_UNUSED_RESULT Point LogicToPixel (const Point &rLogicPt) const
 
SAL_WARN_UNUSED_RESULT Size LogicToPixel (const Size &rLogicSize) const
 
SAL_WARN_UNUSED_RESULT tools::Rectangle LogicToPixel (const tools::Rectangle &rLogicRect) const
 
SAL_WARN_UNUSED_RESULT tools::Polygon LogicToPixel (const tools::Polygon &rLogicPoly) const
 
SAL_WARN_UNUSED_RESULT tools::PolyPolygon LogicToPixel (const tools::PolyPolygon &rLogicPolyPoly) const
 
SAL_WARN_UNUSED_RESULT basegfx::B2DPolyPolygon LogicToPixel (const basegfx::B2DPolyPolygon &rLogicPolyPoly) const
 
SAL_WARN_UNUSED_RESULT vcl::Region LogicToPixel (const vcl::Region &rLogicRegion) const
 
SAL_WARN_UNUSED_RESULT Point LogicToPixel (const Point &rLogicPt, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT Size LogicToPixel (const Size &rLogicSize, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT tools::Rectangle LogicToPixel (const tools::Rectangle &rLogicRect, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT tools::Polygon LogicToPixel (const tools::Polygon &rLogicPoly, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT basegfx::B2DPolyPolygon LogicToPixel (const basegfx::B2DPolyPolygon &rLogicPolyPoly, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT Point PixelToLogic (const Point &rDevicePt) const
 
SAL_WARN_UNUSED_RESULT Size PixelToLogic (const Size &rDeviceSize) const
 
SAL_WARN_UNUSED_RESULT tools::Rectangle PixelToLogic (const tools::Rectangle &rDeviceRect) const
 
SAL_WARN_UNUSED_RESULT tools::Polygon PixelToLogic (const tools::Polygon &rDevicePoly) const
 
SAL_WARN_UNUSED_RESULT tools::PolyPolygon PixelToLogic (const tools::PolyPolygon &rDevicePolyPoly) const
 
SAL_WARN_UNUSED_RESULT basegfx::B2DPolyPolygon PixelToLogic (const basegfx::B2DPolyPolygon &rDevicePolyPoly) const
 
SAL_WARN_UNUSED_RESULT vcl::Region PixelToLogic (const vcl::Region &rDeviceRegion) const
 
SAL_WARN_UNUSED_RESULT Point PixelToLogic (const Point &rDevicePt, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT Size PixelToLogic (const Size &rDeviceSize, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT tools::Rectangle PixelToLogic (const tools::Rectangle &rDeviceRect, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT tools::Polygon PixelToLogic (const tools::Polygon &rDevicePoly, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT basegfx::B2DPolygon PixelToLogic (const basegfx::B2DPolygon &rDevicePoly, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT basegfx::B2DPolyPolygon PixelToLogic (const basegfx::B2DPolyPolygon &rDevicePolyPoly, const MapMode &rMapMode) const
 
SAL_WARN_UNUSED_RESULT Point LogicToLogic (const Point &rPtSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
 
SAL_WARN_UNUSED_RESULT Size LogicToLogic (const Size &rSzSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
 
SAL_WARN_UNUSED_RESULT tools::Rectangle LogicToLogic (const tools::Rectangle &rRectSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
 
SAL_DLLPRIVATE tools::Rectangle ImplLogicToDevicePixel (const tools::Rectangle &rLogicRect) const
 Convert a logical rectangle to a rectangle in physical device pixel units. More...
 
SAL_DLLPRIVATE Point ImplLogicToDevicePixel (const Point &rLogicPt) const
 Convert a logical point to a physical point on the device. More...
 
SAL_DLLPRIVATE DevicePoint ImplLogicToDeviceSubPixel (const Point &rLogicPt) const
 
SAL_DLLPRIVATE tools::Long ImplLogicWidthToDevicePixel (tools::Long nWidth) const
 Convert a logical width to a width in units of device pixels. More...
 
SAL_DLLPRIVATE double ImplLogicWidthToDeviceSubPixel (tools::Long nWidth) const
 
SAL_DLLPRIVATE tools::Long ImplLogicHeightToDevicePixel (tools::Long nHeight) const
 Convert a logical height to a height in units of device pixels. More...
 
SAL_DLLPRIVATE double ImplLogicHeightToDeviceSubPixel (tools::Long nHeight) const
 
SAL_DLLPRIVATE Point SubPixelToLogic (const DevicePoint &rDevicePt, bool bCheck) const
 
SAL_DLLPRIVATE tools::Long ImplDevicePixelToLogicWidth (tools::Long nWidth) const
 Convert device pixels to a width in logical units. More...
 
SAL_DLLPRIVATE tools::Long ImplDevicePixelToLogicHeight (tools::Long nHeight) const
 Convert device pixels to a height in logical units. More...
 
SAL_DLLPRIVATE Size ImplLogicToDevicePixel (const Size &rLogicSize) const
 Convert a logical size to the size on the physical device. More...
 
SAL_DLLPRIVATE tools::Rectangle ImplDevicePixelToLogic (const tools::Rectangle &rPixelRect) const
 Convert a rectangle in physical pixel units to a rectangle in physical pixel units and coords. More...
 
SAL_DLLPRIVATE tools::Polygon ImplLogicToDevicePixel (const tools::Polygon &rLogicPoly) const
 Convert a logical polygon to a polygon in physical device pixel units. More...
 
SAL_DLLPRIVATE::basegfx::B2DPolygon ImplLogicToDevicePixel (const ::basegfx::B2DPolygon &rLogicPoly) const
 Convert a logical B2DPolygon to a B2DPolygon in physical device pixel units. More...
 
SAL_DLLPRIVATE tools::PolyPolygon ImplLogicToDevicePixel (const tools::PolyPolygon &rLogicPolyPoly) const
 Convert a logical polypolygon to a polypolygon in physical device pixel units. More...
 
SAL_DLLPRIVATE LineInfo ImplLogicToDevicePixel (const LineInfo &rLineInfo) const
 Convert a line in logical units to a line in physical device pixel units. More...
 
SAL_DLLPRIVATE vcl::Region ImplPixelToDevicePixel (const vcl::Region &rRegion) const
 Convert a region in pixel units to a region in device pixel units and coords. More...
 
SAL_DLLPRIVATE void ImplInvalidateViewTransform ()
 Invalidate the view transformation. More...
 
SAL_DLLPRIVATE basegfx::B2DHomMatrix ImplGetDeviceTransformation () const
 Get device transformation. More...
 
static SAL_WARN_UNUSED_RESULT Point LogicToLogic (const Point &rPtSource, const MapMode &rMapModeSource, const MapMode &rMapModeDest)
 
static SAL_WARN_UNUSED_RESULT Size LogicToLogic (const Size &rSzSource, const MapMode &rMapModeSource, const MapMode &rMapModeDest)
 
static SAL_WARN_UNUSED_RESULT tools::Rectangle LogicToLogic (const tools::Rectangle &rRectSource, const MapMode &rMapModeSource, const MapMode &rMapModeDest)
 
static SAL_WARN_UNUSED_RESULT tools::Long LogicToLogic (tools::Long nLongSource, MapUnit eUnitSource, MapUnit eUnitDest)
 
static SAL_WARN_UNUSED_RESULT basegfx::B2DPolygon LogicToLogic (const basegfx::B2DPolygon &rPoly, const MapMode &rMapModeSource, const MapMode &rMapModeDest)
 
static SAL_WARN_UNUSED_RESULT basegfx::B2DHomMatrix LogicToLogic (const MapMode &rMapModeSource, const MapMode &rMapModeDest)
 

Initialization and accessor functions

 OutputDevice (OutDevType eOutDevType)
 
virtual ~OutputDevice () override
 
virtual void dispose () override
 
virtual bool AcquireGraphics () const =0
 Acquire a graphics device that the output device uses to draw on. More...
 
virtual void ReleaseGraphics (bool bRelease=true)=0
 Release the graphics device, and remove it from the graphics device list. More...
 
SalGraphics const * GetGraphics () const
 Get the graphic context that the output device uses to draw on. More...
 
SalGraphicsGetGraphics ()
 
void SetConnectMetaFile (GDIMetaFile *pMtf)
 
GDIMetaFileGetConnectMetaFile () const
 
virtual void SetSettings (const AllSettings &rSettings)
 
const AllSettingsGetSettings () const
 
SystemGraphicsData GetSystemGfxData () const
 
OUString GetRenderBackendName () const
 
bool SupportsCairo () const
 
cairo::SurfaceSharedPtr CreateSurface (const cairo::CairoSurfaceSharedPtr &rSurface) const
 Create Surface from given cairo surface. More...
 
cairo::SurfaceSharedPtr CreateSurface (int x, int y, int width, int height) const
 Create surface with given dimensions. More...
 
cairo::SurfaceSharedPtr CreateBitmapSurface (const BitmapSystemData &rData, const Size &rSize) const
 Create Surface for given bitmap data. More...
 
css::uno::Any GetNativeSurfaceHandle (cairo::SurfaceSharedPtr &rSurface, const basegfx::B2ISize &rSize) const
 Return native handle for underlying surface. More...
 
css::uno::Any GetSystemGfxDataAny () const
 
void SetRefPoint ()
 
void SetRefPoint (const Point &rRefPoint)
 
const PointGetRefPoint () const
 
bool IsRefPoint () const
 
virtual bool IsScreenComp () const
 
virtual sal_uInt16 GetBitCount () const
 
Size GetOutputSizePixel () const
 
tools::Long GetOutputWidthPixel () const
 
tools::Long GetOutputHeightPixel () const
 
tools::Long GetOutOffXPixel () const
 
tools::Long GetOutOffYPixel () const
 
void SetOutOffXPixel (tools::Long nOutOffX)
 
void SetOutOffYPixel (tools::Long nOutOffY)
 
Point GetOutputOffPixel () const
 
tools::Rectangle GetOutputRectPixel () const
 
Size GetOutputSize () const
 
css::uno::Reference< css::awt::XGraphics > CreateUnoGraphics ()
 
std::vector< VCLXGraphics * > * GetUnoGraphicsList () const
 
std::vector< VCLXGraphics * > * CreateUnoGraphicsList ()
 
virtual size_t GetSyncCount () const
 
css::uno::Reference< css::rendering::XCanvas > GetCanvas () const
 request XCanvas render interface More...
 
css::uno::Reference< css::rendering::XSpriteCanvas > GetSpriteCanvas () const
 request XSpriteCanvas render interface More...
 

Mask functions

virtual void DrawDeviceMask (const Bitmap &rMask, const Color &rMaskColor, const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel)
 
void DrawMask (const Point &rDestPt, const Bitmap &rBitmap, const Color &rMaskColor)
 
void DrawMask (const Point &rDestPt, const Size &rDestSize, const Bitmap &rBitmap, const Color &rMaskColor)
 
void DrawMask (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel, const Bitmap &rBitmap, const Color &rMaskColor)
 
void DrawMask (const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel, const Bitmap &rBitmap, const Color &rMaskColor, MetaActionType nAction)
 

Detailed Description

Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inheritance to keep the referencing counting OK.

Definition at line 170 of file outdev.hxx.

Member Typedef Documentation

◆ FontMappingUseData

Definition at line 1264 of file outdev.hxx.

◆ FontUpdateHandler_t

typedef void(OutputDevice::* OutputDevice::FontUpdateHandler_t) (bool)
private

Definition at line 1200 of file outdev.hxx.

Constructor & Destructor Documentation

◆ OutputDevice() [1/2]

OutputDevice::OutputDevice ( const OutputDevice )
privatedelete

◆ OutputDevice() [2/2]

OutputDevice::OutputDevice ( OutDevType  eOutDevType)
protected

◆ ~OutputDevice()

OutputDevice::~OutputDevice ( )
overrideprotectedvirtual

Definition at line 140 of file outdev.cxx.

References VclReferenceBase::disposeOnce().

Member Function Documentation

◆ AcquireGraphics()

virtual bool OutputDevice::AcquireGraphics ( ) const
protectedpure virtual

Acquire a graphics device that the output device uses to draw on.

There is an LRU of OutputDevices that is used to get the graphics. The actual creation of a SalGraphics instance is done via the SalFrame implementation.

However, the SalFrame instance will only return a valid SalGraphics instance if it is not in use or there wasn't one in the first place. When this happens, AcquireGraphics finds the least recently used OutputDevice in a different frame and "steals" it (releases it then starts using it).

If there are no frames to steal an OutputDevice's SalGraphics instance from then it blocks until the graphics is released.

Once it has acquired a graphics instance, then we add the OutputDevice to the LRU.

Returns
true if was able to initialize the graphics device, false otherwise.

Implemented in Printer, VirtualDevice, and vcl::WindowOutputDevice.

Referenced by AddTempDevFont(), AddTextRectActions(), CopyArea(), DrawArc(), DrawBitmap(), DrawBitmapEx(), DrawChord(), DrawCtrlText(), DrawEllipse(), DrawEPS(), DrawGradient(), DrawGrid(), DrawHatch(), DrawLine(), DrawMask(), DrawNativeControl(), DrawOutDev(), drawOutDevDirect(), DrawPie(), DrawPixel(), DrawPolygon(), DrawPolyLine(), drawPolyLine(), DrawPolyLineDirectInternal(), DrawPolyPolygon(), DrawRect(), DrawText(), DrawTextArray(), DrawTransformedBitmapEx(), DrawTransparent(), DrawWaveLine(), GetBitCount(), GetBitmap(), getFallbackLayout(), GetGraphics(), GetNativeControlRegion(), GetPixel(), GetRenderBackendName(), GetSystemGfxData(), HasFastDrawTransformedBitmap(), HasMirroredGraphics(), HitTestNativeScrollbar(), ImplClearAllFontData(), ImplClearFontData(), ImplDrawPolyPolygonWithB2DPolyPolygon(), ImplDrawWaveLineBezier(), vcl::Window::ImplGetFrameGraphics(), vcl::Window::ImplInit(), ImplInitFontList(), VirtualDevice::ImplInitVirDev(), ImplIsAntiparallel(), ImplNewFont(), ImplRefreshFontData(), InitFont(), Invert(), vcl::Window::InvertTracking(), IsNativeControlSupported(), SelectClipRegion(), SetRasterOp(), and SupportsOperation().

◆ AddFontSubstitute()

void OutputDevice::AddFontSubstitute ( const OUString &  rFontName,
const OUString &  rReplaceFontName,
AddFontSubstituteFlags  nFlags 
)
static

◆ AddHatchActions()

void OutputDevice::AddHatchActions ( const tools::PolyPolygon rPolyPoly,
const Hatch rHatch,
GDIMetaFile rMtf 
)

◆ AddTempDevFont()

bool OutputDevice::AddTempDevFont ( const OUString &  rFileURL,
const OUString &  rFontName 
)

◆ AddTextRectActions()

void OutputDevice::AddTextRectActions ( const tools::Rectangle rRect,
const OUString &  rOrigStr,
DrawTextFlags  nStyle,
GDIMetaFile rMtf 
)

Generate MetaTextActions for the text rect.

This method splits up the text rect into multiple MetaTextActions, one for each line of text. This is comparable to AddGradientActions(), which splits up a gradient into its constituent polygons. Parameter semantics fully compatible to DrawText().

Definition at line 1833 of file text.cxx.

References AcquireGraphics(), EnableOutput(), ImplDrawText(), InitClipRegion(), tools::Rectangle::IsEmpty(), IsOutputEnabled(), mbInitClipRegion, mpGraphics, and mpMetaFile.

◆ approximate_char_width()

float OutputDevice::approximate_char_width ( ) const
protected

Definition at line 910 of file text.cxx.

References GetTextWidth().

Referenced by vcl::Window::approximate_char_width().

◆ approximate_digit_width()

float OutputDevice::approximate_digit_width ( ) const

Definition at line 918 of file text.cxx.

References GetTextWidth().

Referenced by vcl::Window::approximate_digit_width().

◆ AttemptOLEFontScaleFix()

bool OutputDevice::AttemptOLEFontScaleFix ( vcl::Font rFont,
tools::Long  nHeight 
) const
private

◆ BeginFontSubstitution()

void OutputDevice::BeginFontSubstitution ( )
static

◆ BlendBitmap() [1/2]

Bitmap OutputDevice::BlendBitmap ( Bitmap aBmp,
BitmapReadAccess const *  pP,
BitmapReadAccess const *  pA,
const sal_Int32  nOffY,
const sal_Int32  nDstHeight,
const sal_Int32  nOffX,
const sal_Int32  nDstWidth,
const tools::Rectangle aBmpRect,
const Size aOutSz,
const bool  bHMirr,
const bool  bVMirr,
const sal_Int32 *  pMapX,
const sal_Int32 *  pMapY 
)
private

◆ BlendBitmap() [2/2]

void OutputDevice::BlendBitmap ( const SalTwoRect rPosAry,
const Bitmap rBmp 
)
private

◆ BlendBitmapWithAlpha()

Bitmap OutputDevice::BlendBitmapWithAlpha ( Bitmap aBmp,
BitmapReadAccess const *  pP,
BitmapReadAccess const *  pA,
const tools::Rectangle aDstRect,
const sal_Int32  nOffY,
const sal_Int32  nDstHeight,
const sal_Int32  nOffX,
const sal_Int32  nDstWidth,
const sal_Int32 *  pMapX,
const sal_Int32 *  pMapY 
)
private

◆ CalcHatchValues()

void OutputDevice::CalcHatchValues ( const tools::Rectangle rRect,
tools::Long  nDist,
Degree10  nAngle10,
Point rPt1,
Point rPt2,
Size rInc,
Point rEndPt1 
)
private

◆ CanEnableNativeWidget()

virtual bool OutputDevice::CanEnableNativeWidget ( ) const
inlinevirtual

Determine if native widgets can be enabled.

Reimplemented in VirtualDevice, and vcl::WindowOutputDevice.

Definition at line 1843 of file outdev.hxx.

Referenced by DrawNativeControl(), GetNativeControlRegion(), HitTestNativeScrollbar(), and IsNativeControlSupported().

◆ CanSubsampleBitmap()

virtual bool OutputDevice::CanSubsampleBitmap ( ) const
inlineprotectedvirtual

Reimplemented in Printer.

Definition at line 1388 of file outdev.hxx.

Referenced by DrawBitmap().

◆ ClearStack()

void OutputDevice::ClearStack ( )

Definition at line 193 of file stack.cxx.

References maOutDevStateStack, nCount, and Pop().

◆ ClipAndDrawGradientMetafile()

void OutputDevice::ClipAndDrawGradientMetafile ( const Gradient rGradient,
const tools::PolyPolygon rPolyPoly 
)
protectedvirtual

◆ ClipToDeviceBounds()

vcl::Region OutputDevice::ClipToDeviceBounds ( vcl::Region  aRegion) const
protectedvirtual

Perform actual rect clip against outdev dimensions, to generate empty clips whenever one of the values is completely off the device.

Parameters
aRegionregion to be clipped to the device dimensions
Returns
region clipped to the device bounds

Reimplemented in Printer, and vcl::PDFWriterImpl.

Definition at line 185 of file outdev/clipping.cxx.

References GetOutputHeightPixel(), GetOutputWidthPixel(), vcl::Region::Intersect(), mnOutOffX, and mnOutOffY.

Referenced by InitClipRegion().

◆ ClipToPaintRegion()

void OutputDevice::ClipToPaintRegion ( tools::Rectangle rDstRect)
protectedvirtual

Reimplemented in vcl::WindowOutputDevice.

Definition at line 200 of file outdev/clipping.cxx.

Referenced by DrawDeviceAlphaBitmap(), DrawTransparent(), and EmulateDrawTransparent().

◆ CopyArea()

void OutputDevice::CopyArea ( const Point rDestPt,
const Point rSrcPt,
const Size rSrcSize,
bool  bWindowInvalidate = false 
)
virtual

◆ CopyDeviceArea()

void OutputDevice::CopyDeviceArea ( SalTwoRect aPosAry,
bool  bWindowInvalidate 
)
protectedvirtual

◆ CreateBitmapSurface()

cairo::SurfaceSharedPtr OutputDevice::CreateBitmapSurface ( const BitmapSystemData rData,
const Size rSize 
) const

Create Surface for given bitmap data.

◆ CreateSurface() [1/2]

cairo::SurfaceSharedPtr OutputDevice::CreateSurface ( const cairo::CairoSurfaceSharedPtr rSurface) const

Create Surface from given cairo surface.

◆ CreateSurface() [2/2]

cairo::SurfaceSharedPtr OutputDevice::CreateSurface ( int  x,
int  y,
int  width,
int  height 
) const

Create surface with given dimensions.

◆ CreateTextLayoutCache()

std::shared_ptr< const vcl::text::TextLayoutCache > OutputDevice::CreateTextLayoutCache ( OUString const &  rString)
static

Definition at line 1465 of file text.cxx.

References vcl::text::TextLayoutCache::Create().

◆ CreateUnoGraphics()

css::uno::Reference< css::awt::XGraphics > OutputDevice::CreateUnoGraphics ( )

◆ CreateUnoGraphicsList()

std::vector< VCLXGraphics * > * OutputDevice::CreateUnoGraphicsList ( )

Definition at line 399 of file outdev.cxx.

References mpUnoGraphicsList.

◆ dispose()

void OutputDevice::dispose ( void  )
overrideprotectedvirtual

◆ DrawArc()

void OutputDevice::DrawArc ( const tools::Rectangle rRect,
const Point rStartPt,
const Point rEndPt 
)

◆ DrawBitmap() [1/4]

void OutputDevice::DrawBitmap ( const Point rDestPt,
const Bitmap rBitmap 
)

◆ DrawBitmap() [2/4]

void OutputDevice::DrawBitmap ( const Point rDestPt,
const Size rDestSize,
const Bitmap rBitmap 
)

◆ DrawBitmap() [3/4]

void OutputDevice::DrawBitmap ( const Point rDestPt,
const Size rDestSize,
const Point rSrcPtPixel,
const Size rSrcSizePixel,
const Bitmap rBitmap 
)

Definition at line 52 of file outdev/bitmap.cxx.

References BMPSCALEPART, DrawBitmap(), and is_double_buffered_window().

◆ DrawBitmap() [4/4]

void OutputDevice::DrawBitmap ( const Point rDestPt,
const Size rDestSize,
const Point rSrcPtPixel,
const Size rSrcSizePixel,
const Bitmap rBitmap,
MetaActionType  nAction 
)

◆ DrawBitmapEx() [1/4]

void OutputDevice::DrawBitmapEx ( const Point rDestPt,
const BitmapEx rBitmapEx 
)

◆ DrawBitmapEx() [2/4]

void OutputDevice::DrawBitmapEx ( const Point rDestPt,
const Size rDestSize,
const BitmapEx rBitmapEx 
)

◆ DrawBitmapEx() [3/4]

void OutputDevice::DrawBitmapEx ( const Point rDestPt,
const Size rDestSize,
const Point rSrcPtPixel,
const Size rSrcSizePixel,
const BitmapEx rBitmapEx 
)

◆ DrawBitmapEx() [4/4]

void OutputDevice::DrawBitmapEx ( const Point rDestPt,
const Size rDestSize,
const Point rSrcPtPixel,
const Size rSrcSizePixel,
const BitmapEx rBitmapEx,
MetaActionType  nAction 
)

◆ DrawBitmapWallpaper()

void OutputDevice::DrawBitmapWallpaper ( tools::Long  nX,
tools::Long  nY,
tools::Long  nWidth,
tools::Long  nHeight,
const Wallpaper rWallpaper 
)
private

◆ DrawBorder()

void OutputDevice::DrawBorder ( tools::Rectangle  aBorderRect)
virtual

◆ DrawCheckered()

void OutputDevice::DrawCheckered ( const Point rPos,
const Size rSize,
sal_uInt32  nLen = 8,
Color  aStart = COL_WHITE,
Color  aEnd = COL_BLACK 
)

Fill the given rectangle with checkered rectangles of size nLen x nLen using the colors aStart and aEnd.

Definition at line 213 of file rect.cxx.

References DrawRect(), vcl::FILLCOLOR, Size::Height(), is_double_buffered_window(), vcl::LINECOLOR, Pop(), Push(), SetFillColor(), SetLineColor(), Size::Width(), x, and y.

◆ DrawChord()

void OutputDevice::DrawChord ( const tools::Rectangle rRect,
const Point rStartPt,
const Point rEndPt 
)

◆ DrawColorWallpaper()

void OutputDevice::DrawColorWallpaper ( tools::Long  nX,
tools::Long  nY,
tools::Long  nWidth,
tools::Long  nHeight,
const Wallpaper rWallpaper 
)
private

◆ DrawComplexGradient()

void OutputDevice::DrawComplexGradient ( const tools::Rectangle rRect,
const Gradient rGradient,
const tools::PolyPolygon pClipPolyPoly 
)
private

◆ DrawCtrlText()

void OutputDevice::DrawCtrlText ( const Point rPos,
const OUString &  rStr,
sal_Int32  nIndex = 0,
sal_Int32  nLen = -1,
DrawTextFlags  nStyle = DrawTextFlags::Mnemonic,
std::vector< tools::Rectangle > *  pVector = nullptr,
OUString *  pDisplayText = nullptr,
const SalLayoutGlyphs pGlyphs = nullptr 
)

◆ DrawDeviceAlphaBitmap()

void OutputDevice::DrawDeviceAlphaBitmap ( const Bitmap rBmp,
const AlphaMask rAlpha,
const Point rDestPt,
const Size rDestSize,
const Point rSrcPtPixel,
const Size rSrcSizePixel 
)
private

◆ DrawDeviceAlphaBitmapSlowPath()

void OutputDevice::DrawDeviceAlphaBitmapSlowPath ( const Bitmap rBitmap,
const AlphaMask rAlpha,
tools::Rectangle  aDstRect,
tools::Rectangle  aBmpRect,
Size const &  aOutSz,
Point const &  aOutPt 
)
private

◆ DrawDeviceBitmapEx()

void OutputDevice::DrawDeviceBitmapEx ( const Point rDestPt,
const Size rDestSize,
const Point rSrcPtPixel,
const Size rSrcSizePixel,
BitmapEx rBitmapEx 
)
protectedvirtual

◆ DrawDeviceMask()

void OutputDevice::DrawDeviceMask ( const Bitmap rMask,
const Color rMaskColor,
const Point rDestPt,
const Size rDestSize,
const Point rSrcPtPixel,
const Size rSrcSizePixel 
)
protectedvirtual

◆ DrawEllipse()

void OutputDevice::DrawEllipse ( const tools::Rectangle rRect)

◆ DrawEPS()

bool OutputDevice::DrawEPS ( const Point rPt,
const Size rSz,
const GfxLink rGfxLink,
GDIMetaFile pSubst = nullptr 
)
Returns
boolean value to see if EPS could be painted directly. Theoretically, handing over a matrix would be needed to handle painting rotated EPS files (e.g. contained in Metafiles). This would then need to be supported for Mac and PS printers, but that's too much for now, wrote #i107046# for this

Definition at line 27 of file outdev/eps.cxx.

References AcquireGraphics(), GDIMetaFile::AddAction(), Graphic::Draw(), DrawEPS(), SalGraphics::DrawEPS(), GfxLink::GetData(), GfxLink::GetDataSize(), tools::Rectangle::GetHeight(), tools::Rectangle::GetWidth(), ImplIsRecordLayout(), ImplLogicToDevicePixel(), InitClipRegion(), IsDeviceOutputNecessary(), tools::Rectangle::IsEmpty(), tools::Rectangle::Left(), mbInitClipRegion, mbOutputClipped, mpAlphaVDev, mpGraphics, mpMetaFile, tools::Rectangle::Normalize(), and tools::Rectangle::Top().

Referenced by DrawEPS().

◆ DrawGradient() [1/2]

void OutputDevice::DrawGradient ( const tools::PolyPolygon rPolyPoly,
const Gradient rGradient 
)

◆ DrawGradient() [2/2]

void OutputDevice::DrawGradient ( const tools::Rectangle rRect,
const Gradient rGradient 
)

◆ DrawGradientToMetafile()

void OutputDevice::DrawGradientToMetafile ( const tools::PolyPolygon rPolyPoly,
const Gradient rGradient 
)
private

◆ DrawGradientWallpaper()

void OutputDevice::DrawGradientWallpaper ( tools::Long  nX,
tools::Long  nY,
tools::Long  nWidth,
tools::Long  nHeight,
const Wallpaper rWallpaper 
)
protected

◆ DrawGrid()

void OutputDevice::DrawGrid ( const tools::Rectangle rRect,
const Size rDist,
DrawGridFlags  nFlags 
)

◆ DrawHatch() [1/2]

void OutputDevice::DrawHatch ( const tools::PolyPolygon rPolyPoly,
const Hatch rHatch 
)

◆ DrawHatch() [2/2]

void OutputDevice::DrawHatch ( const tools::PolyPolygon rPolyPoly,
const Hatch rHatch,
bool  bMtf 
)

◆ DrawHatchLine()

void OutputDevice::DrawHatchLine ( const tools::Line rLine,
const tools::PolyPolygon rPolyPoly,
Point pPtBuffer,
bool  bMtf 
)
private

◆ DrawHatchLine_DrawLine()

void OutputDevice::DrawHatchLine_DrawLine ( const Point rStartPoint,
const Point rEndPoint 
)
protectedvirtual

Reimplemented in vcl::PDFWriterImpl.

Definition at line 436 of file outdev/hatch.cxx.

References SalGraphics::DrawLine(), ImplLogicToDevicePixel(), mpGraphics, and Point.

Referenced by DrawHatchLine().

◆ DrawImage() [1/2]

void OutputDevice::DrawImage ( const Point rPos,
const Image rImage,
DrawImageFlags  nStyle = DrawImageFlags::NONE 
)

◆ DrawImage() [2/2]

void OutputDevice::DrawImage ( const Point rPos,
const Size rSize,
const Image rImage,
DrawImageFlags  nStyle = DrawImageFlags::NONE 
)

◆ drawLine()

void OutputDevice::drawLine ( basegfx::B2DPolyPolygon  aLinePolyPolygon,
const LineInfo rInfo 
)
private

◆ DrawLine() [1/2]

void OutputDevice::DrawLine ( const Point rStartPt,
const Point rEndPt 
)

◆ DrawLine() [2/2]

void OutputDevice::DrawLine ( const Point rStartPt,
const Point rEndPt,
const LineInfo rLineInfo 
)

◆ DrawLinearGradient()

void OutputDevice::DrawLinearGradient ( const tools::Rectangle rRect,
const Gradient rGradient,
const tools::PolyPolygon pClipPolyPoly 
)
private

◆ DrawMask() [1/4]

void OutputDevice::DrawMask ( const Point rDestPt,
const Bitmap rBitmap,
const Color rMaskColor 
)

◆ DrawMask() [2/4]

void OutputDevice::DrawMask ( const Point rDestPt,
const Size rDestSize,
const Bitmap rBitmap,
const Color rMaskColor 
)

Definition at line 39 of file mask.cxx.

References DrawMask(), Bitmap::GetSizePixel(), is_double_buffered_window(), MASKSCALE, and Point.

◆ DrawMask() [3/4]

void OutputDevice::DrawMask ( const Point rDestPt,
const Size rDestSize,
const Point rSrcPtPixel,
const Size rSrcSizePixel,
const Bitmap rBitmap,
const Color rMaskColor 
)

Definition at line 47 of file mask.cxx.

References DrawMask(), is_double_buffered_window(), and MASKSCALEPART.

◆ DrawMask() [4/4]

void OutputDevice::DrawMask ( const Point rDestPt,
const Size rDestSize,
const Point rSrcPtPixel,
const Size rSrcSizePixel,
const Bitmap rBitmap,
const Color rMaskColor,
MetaActionType  nAction 
)

◆ DrawNativeControl()

bool OutputDevice::DrawNativeControl ( ControlType  nType,
ControlPart  nPart,
const tools::Rectangle rControlRegion,
ControlState  nState,
const ImplControlValue aValue,
const OUString &  aCaption,
const Color rBackgroundColor = COL_AUTO 
)

◆ DrawOutDev() [1/3]

SAL_DLLPRIVATE void OutputDevice::DrawOutDev ( const Point ,
const Size ,
const Point ,
const Size ,
const Printer  
)
privatedelete

◆ DrawOutDev() [2/3]

void OutputDevice::DrawOutDev ( const Point rDestPt,
const Size rDestSize,
const Point rSrcPt,
const Size rSrcSize 
)
virtual

◆ DrawOutDev() [3/3]

void OutputDevice::DrawOutDev ( const Point rDestPt,
const Size rDestSize,
const Point rSrcPt,
const Size rSrcSize,
const OutputDevice rOutDev 
)
virtual

◆ drawOutDevDirect()

void OutputDevice::drawOutDevDirect ( const OutputDevice rSrcDev,
SalTwoRect rPosAry 
)
protected

◆ DrawOutDevDirectCheck()

const OutputDevice * OutputDevice::DrawOutDevDirectCheck ( const OutputDevice rSrcDev) const
protectedvirtual

Reimplemented in vcl::WindowOutputDevice.

Definition at line 621 of file outdev.cxx.

Referenced by drawOutDevDirect().

◆ DrawOutDevDirectProcess()

void OutputDevice::DrawOutDevDirectProcess ( const OutputDevice rSrcDev,
SalTwoRect rPosAry,
SalGraphics pSrcGraphics 
)
protectedvirtual

◆ DrawPie()

void OutputDevice::DrawPie ( const tools::Rectangle rRect,
const Point rStartPt,
const Point rEndPt 
)

◆ DrawPixel() [1/2]

void OutputDevice::DrawPixel ( const Point rPt)

◆ DrawPixel() [2/2]

void OutputDevice::DrawPixel ( const Point rPt,
const Color rColor 
)

◆ DrawPolygon() [1/2]

void OutputDevice::DrawPolygon ( const basegfx::B2DPolygon rB2DPolygon)

◆ DrawPolygon() [2/2]

void OutputDevice::DrawPolygon ( const tools::Polygon rPoly)

Render the given polygon.

The given polygon is stroked with the current LineColor, and filled with the current FillColor. If one of these colors are transparent, the corresponding stroke or fill stays invisible. Start and end point of the polygon are automatically connected.

See also
DrawPolyLine

Definition at line 156 of file polygon.cxx.

References AcquireGraphics(), GDIMetaFile::AddAction(), B2DDraw, basegfx::deg2rad(), DrawPolygon(), SalGraphics::DrawPolygon(), SalGraphics::DrawPolygonBezier(), SalGraphics::DrawPolyLine(), SalGraphics::DrawPolyPolygon(), tools::Polygon::getB2DPolygon(), tools::Polygon::GetConstFlagAry(), tools::Polygon::GetConstPointAry(), GetRasterOp(), tools::Polygon::GetSize(), tools::Polygon::HasFlags(), ImplGetDeviceTransformation(), ImplIsRecordLayout(), ImplLogicToDevicePixel(), InitClipRegion(), InitFillColor(), InitLineColor(), is_double_buffered_window(), basegfx::B2DPolygon::isClosed(), IsDeviceOutputNecessary(), IsFillColor(), IsLineColor(), mbFillColor, mbInitClipRegion, mbInitFillColor, mbInitLineColor, mbLineColor, mbOutputClipped, mnAntialiasing, mpAlphaVDev, mpGraphics, mpMetaFile, basegfx::NONE, OverPaint, PixelSnapHairline, Point, basegfx::B2DPolygon::setClosed(), tools::Polygon::SubdivideBezier(), and SalGraphics::supportsOperation().

Referenced by RadioButton::Draw(), DXF2GDIMetaFile::Draw3DFaceEntity(), PictReaderShape::drawArc(), PictReaderShape::drawEllipse(), PictReaderShape::drawLineHQ(), DXF2GDIMetaFile::DrawLWPolyLineEntity(), DrawPolygon(), PictReaderShape::drawPolygon(), DXF2GDIMetaFile::DrawPolyLineEntity(), DrawPolyPolygon(), PictReaderShape::drawRectangle(), PictReaderShape::drawRoundRectangle(), DXF2GDIMetaFile::DrawSolidEntity(), DXF2GDIMetaFile::DrawTraceEntity(), ImplDrawDropdownArrow(), and SplitWindow::ImplDrawGrip().

◆ DrawPolyLine() [1/3]

void OutputDevice::DrawPolyLine ( const basegfx::B2DPolygon rB2DPolygon,
double  fLineWidth = 0.0,
basegfx::B2DLineJoin  eLineJoin = basegfx::B2DLineJoin::Round,
css::drawing::LineCap  eLineCap = css::drawing::LineCap_BUTT,
double  fMiterMinimumAngle = basegfx::deg2rad(15.0) 
)

◆ DrawPolyLine() [2/3]

void OutputDevice::DrawPolyLine ( const tools::Polygon rPoly)

◆ DrawPolyLine() [3/3]

void OutputDevice::DrawPolyLine ( const tools::Polygon rPoly,
const LineInfo rLineInfo 
)

Render the given polygon as a line stroke.

The given polygon is stroked with the current LineColor, start and end point are not automatically connected. The line is rendered according to the specified LineInfo, e.g. supplying a dash pattern, or a line thickness.

See also
DrawPolygon
DrawPolyPolygon

Definition at line 109 of file polyline.cxx.

References GDIMetaFile::AddAction(), Dash, basegfx::deg2rad(), DrawPolyLine(), drawPolyLine(), tools::Polygon::getB2DPolygon(), is_double_buffered_window(), IsDeviceOutputNecessary(), mpMetaFile, NONE, SAL_WARN, and Solid.

◆ drawPolyLine()

void OutputDevice::drawPolyLine ( const tools::Polygon rPoly,
const LineInfo rLineInfo 
)
private

◆ DrawPolyLineDirect()

bool OutputDevice::DrawPolyLineDirect ( const basegfx::B2DHomMatrix rObjectTransform,
const basegfx::B2DPolygon rB2DPolygon,
double  fLineWidth = 0.0,
double  fTransparency = 0.0,
const std::vector< double > *  pStroke = nullptr,
basegfx::B2DLineJoin  eLineJoin = basegfx::B2DLineJoin::NONE,
css::drawing::LineCap  eLineCap = css::drawing::LineCap_BUTT,
double  fMiterMinimumAngle = basegfx::deg2rad(15.0) 
)

◆ DrawPolyLineDirectInternal()

bool OutputDevice::DrawPolyLineDirectInternal ( const basegfx::B2DHomMatrix rObjectTransform,
const basegfx::B2DPolygon rB2DPolygon,
double  fLineWidth = 0.0,
double  fTransparency = 0.0,
const std::vector< double > *  pStroke = nullptr,
basegfx::B2DLineJoin  eLineJoin = basegfx::B2DLineJoin::NONE,
css::drawing::LineCap  eLineCap = css::drawing::LineCap_BUTT,
double  fMiterMinimumAngle = basegfx::deg2rad(15.0) 
)
private

◆ DrawPolyPolygon() [1/2]

void OutputDevice::DrawPolyPolygon ( const basegfx::B2DPolyPolygon rB2DPolyPoly)

◆ DrawPolyPolygon() [2/2]

void OutputDevice::DrawPolyPolygon ( const tools::PolyPolygon rPolyPoly)

◆ DrawRect() [1/2]

void OutputDevice::DrawRect ( const tools::Rectangle rRect)

Definition at line 51 of file rect.cxx.

References AcquireGraphics(), GDIMetaFile::AddAction(), DrawRect(), SalGraphics::DrawRect(), tools::Rectangle::GetHeight(), tools::Rectangle::GetWidth(), ImplIsRecordLayout(), ImplLogicToDevicePixel(), InitClipRegion(), InitFillColor(), InitLineColor(), is_double_buffered_window(), IsDeviceOutputNecessary(), tools::Rectangle::IsEmpty(), tools::Rectangle::Left(), mbFillColor, mbInitClipRegion, mbInitFillColor, mbInitLineColor, mbLineColor, mbOutputClipped, mpAlphaVDev, mpGraphics, mpMetaFile, tools::Rectangle::Normalize(), and tools::Rectangle::Top().

Referenced by TabPage::Draw(), CheckBox::Draw(), ComboBox::Draw(), Dialog::Draw(), Edit::Draw(), FixedText::Draw(), ListBox::Draw(), VclMultiLineEdit::Draw(), DrawBitmap(), DrawBitmapEx(), DrawBorder(), Printer::DrawBorder(), DrawCheckered(), DrawColorWallpaper(), Printer::DrawDeviceMask(), DrawMask(), DrawOutDev(), DrawProgress(), DrawRect(), vcl::Window::DrawSelectionBackground(), vcl::RenderTools::DrawSelectionBackground(), ImplStdBorderWindowView::DrawWindow(), Printer::EmulateDrawTransparent(), MenuBarWindow::HighlightItem(), ScrollBar::ImplDraw(), Calendar::ImplDraw(), Slider::ImplDraw(), ImplWin::ImplDraw(), ImplDrawBrdWinSymbolButton(), Calendar::ImplDrawDate(), ImplDrawEmphasisMark(), SplitWindow::ImplDrawGrip(), ScrollBar::ImplDrawNative(), RadioButton::ImplDrawRadioButtonState(), ToolBox::ImplErase(), VirtualDevice::ImplFillOpaqueRectangle(), HeaderBar::ImplInvertDrag(), ImplListBoxWindow::ImplPaint(), Menu::ImplPaintMenuTitle(), GraphicObject::ImplRenderTileRecursive(), Edit::ImplRepaint(), TextEngine::ImpPaint(), HelpTextWindow::Paint(), Splitter::Paint(), SvxIconChoiceCtrl_Impl::PaintEmphasis(), IconView::PaintEntry(), SvxIconChoiceCtrl_Impl::PaintEntry(), SvTreeListBox::PaintEntry1(), and MenuFloatingWindow::RenderHighlightItem().

◆ DrawRect() [2/2]

void OutputDevice::DrawRect ( const tools::Rectangle rRect,
sal_uLong  nHorzRount,
sal_uLong  nVertRound 
)

◆ DrawStretchText()

void OutputDevice::DrawStretchText ( const Point rStartPt,
sal_uLong  nWidth,
const OUString &  rStr,
sal_Int32  nIndex = 0,
sal_Int32  nLen = -1 
)

◆ DrawText() [1/2]

void OutputDevice::DrawText ( const Point rStartPt,
const OUString &  rStr,
sal_Int32  nIndex = 0,
sal_Int32  nLen = -1,
std::vector< tools::Rectangle > *  pVector = nullptr,
OUString *  pDisplayText = nullptr,
const SalLayoutGlyphs pLayoutCache = nullptr 
)

◆ DrawText() [2/2]

void OutputDevice::DrawText ( const tools::Rectangle rRect,
const OUString &  rStr,
DrawTextFlags  nStyle = DrawTextFlags::NONE,
std::vector< tools::Rectangle > *  pVector = nullptr,
OUString *  pDisplayText = nullptr,
vcl::ITextLayout _pTextLayout = nullptr 
)

◆ DrawTextArray()

void OutputDevice::DrawTextArray ( const Point rStartPt,
const OUString &  rStr,
o3tl::span< const sal_Int32 >  pDXAry,
o3tl::span< const sal_Bool pKashidaAry = {},
sal_Int32  nIndex = 0,
sal_Int32  nLen = -1,
SalLayoutFlags  flags = SalLayoutFlags::NONE,
const SalLayoutGlyphs pLayoutCache = nullptr 
)

◆ DrawTextLine()

void OutputDevice::DrawTextLine ( const Point rPos,
tools::Long  nWidth,
FontStrikeout  eStrikeout,
FontLineStyle  eUnderline,
FontLineStyle  eOverline,
bool  bUnderlineAbove = false 
)

◆ DrawTransformBitmapExDirect()

bool OutputDevice::DrawTransformBitmapExDirect ( const basegfx::B2DHomMatrix aFullTransform,
const BitmapEx rBitmapEx,
double  fAlpha = 1.0 
)
protectedvirtual

Transform and draw a bitmap directly.

Parameters
aFullTransformThe B2DHomMatrix used for the transformation
rBitmapExReference to the bitmap to be transformed and drawn
Returns
true if it was able to draw the bitmap, false if not

Reimplemented in Printer.

Definition at line 294 of file bitmapex.cxx.

References COL_BLACK(), DrawTransformBitmapExDirect(), SalGraphics::DrawTransformedBitmap(), Bitmap::Erase(), AlphaMask::Erase(), BitmapEx::GetAlpha(), BitmapEx::GetBitmap(), BitmapEx::GetSizePixel(), Bitmap::ImplGetSalBitmap(), is_double_buffered_window(), BitmapEx::IsAlpha(), mpAlphaVDev, and mpGraphics.

Referenced by DrawTransformBitmapExDirect(), and DrawTransformedBitmapEx().

◆ DrawTransformedBitmapEx()

void OutputDevice::DrawTransformedBitmapEx ( const basegfx::B2DHomMatrix rTransformation,
const BitmapEx rBitmapEx,
double  fAlpha = 1.0 
)

Draw BitmapEx transformed.

Parameters
rTransformationThe transformation describing the target positioning of the given bitmap. Transforming the unit object coordinates (0, 0, 1, 1) with this matrix is the transformation to discrete coordinates
rBitmapExThe BitmapEx to be painted
fAlphaOptional additional alpha to use for drawing (0 to 1, 1 being no change).

Definition at line 449 of file bitmapex.cxx.

References AcquireGraphics(), BlackBitmap, AlphaMask::BlendWith(), COL_TRANSPARENT(), basegfx::utils::createScaleTranslateB2DHomMatrix(), basegfx::B2DHomMatrix::decompose(), DrawBitmapEx(), DrawTransformBitmapExDirect(), EnableMapMode(), basegfx::fTools::equalZero(), AlphaMask::Erase(), basegfx::fround(), BitmapEx::GetAlpha(), BitmapEx::GetBitmap(), Size::getHeight(), GetMapMode(), GetMapUnit(), basegfx::Range2D< typename TYPE, typename TRAITS >::getMaxX(), basegfx::Range2D< typename TYPE, typename TRAITS >::getMaxY(), basegfx::B2DRange::getMinimum(), basegfx::Range2D< typename TYPE, typename TRAITS >::getMinX(), basegfx::Range2D< typename TYPE, typename TRAITS >::getMinY(), MapMode::GetOrigin(), basegfx::B2DRange::getRange(), BitmapEx::GetSizeBytes(), Bitmap::GetSizePixel(), BitmapEx::GetSizePixel(), BitmapEx::getTransformed(), Size::getWidth(), basegfx::Tuple2D< typename TYPE >::getX(), basegfx::Tuple2D< typename TYPE >::getY(), GrayBitmap, SalGraphics::HasFastDrawTransformedBitmap(), Size::Height(), ImplGetDeviceTransformation(), ImplIsRecordLayout(), InitClipRegion(), Invert, is_double_buffered_window(), comphelper::LibreOfficeKit::isActive(), BitmapEx::IsAlpha(), basegfx::Range2D< typename TYPE, typename TRAITS >::isEmpty(), BitmapEx::IsEmpty(), basegfx::fTools::less(), mbInitClipRegion, mbOutputClipped, meRasterOp, mnDrawMode, mpGraphics, mpMetaFile, Point, BitmapEx::Rotate(), basegfx::B2DRange::transform(), TransformAndReduceBitmapExToTargetRange(), WhiteBitmap, and Size::Width().

◆ DrawTransparent() [1/3]

void OutputDevice::DrawTransparent ( const basegfx::B2DHomMatrix rObjectTransform,
const basegfx::B2DPolyPolygon rB2DPolyPoly,
double  fTransparency 
)

◆ DrawTransparent() [2/3]

void OutputDevice::DrawTransparent ( const GDIMetaFile rMtf,
const Point rPos,
const Size rSize,
const Gradient rTransparenceGradient 
)

◆ DrawTransparent() [3/3]

void OutputDevice::DrawTransparent ( const tools::PolyPolygon rPolyPoly,
sal_uInt16  nTransparencePercent 
)

◆ DrawTransparentNatively()

bool OutputDevice::DrawTransparentNatively ( const tools::PolyPolygon rPolyPoly,
sal_uInt16  nTransparencePercent 
)
private

◆ DrawWallpaper() [1/2]

void OutputDevice::DrawWallpaper ( const tools::Rectangle rRect,
const Wallpaper rWallpaper 
)

◆ DrawWallpaper() [2/2]

void OutputDevice::DrawWallpaper ( tools::Long  nX,
tools::Long  nY,
tools::Long  nWidth,
tools::Long  nHeight,
const Wallpaper rWallpaper 
)
private

◆ DrawWaveLine()

void OutputDevice::DrawWaveLine ( const Point rStartPos,
const Point rEndPos,
tools::Long  nLineWidth = 1,
tools::Long  nWaveHeight = 3 
)

◆ EmulateDrawTransparent()

void OutputDevice::EmulateDrawTransparent ( const tools::PolyPolygon rPolyPoly,
sal_uInt16  nTransparencePercent 
)
protectedvirtual

◆ EnableMapMode()

void OutputDevice::EnableMapMode ( bool  bEnable = true)

◆ EnableOutput()

void OutputDevice::EnableOutput ( bool  bEnable = true)

◆ EnableRTL()

void OutputDevice::EnableRTL ( bool  bEnable = true)
virtual

Reimplemented in VirtualDevice, and vcl::WindowOutputDevice.

Definition at line 648 of file outdev.cxx.

References VirtualDevice::EnableRTL(), mbEnableRTL, and mpAlphaVDev.

Referenced by vcl::Window::EnableRTL(), and VirtualDevice::EnableRTL().

◆ EndFontSubstitution()

void OutputDevice::EndFontSubstitution ( )
static

◆ Erase() [1/2]

void OutputDevice::Erase ( )

◆ Erase() [2/2]

void OutputDevice::Erase ( const tools::Rectangle rRect)

◆ FinishTrackingFontMappingUse()

OutputDevice::FontMappingUseData OutputDevice::FinishTrackingFontMappingUse ( )
static

Definition at line 1307 of file text.cxx.

References fontMappingUseData.

◆ Flush()

virtual void OutputDevice::Flush ( void  )
inlinevirtual

◆ GetActiveClipRegion()

vcl::Region OutputDevice::GetActiveClipRegion ( ) const
virtual

Reimplemented in vcl::WindowOutputDevice.

Definition at line 195 of file outdev/clipping.cxx.

References GetClipRegion().

Referenced by lcl_canPaint(), and TransformAndReduceBitmapExToTargetRange().

◆ GetAntialiasing()

AntialiasingFlags OutputDevice::GetAntialiasing ( ) const
inline

◆ GetBackground()

const Wallpaper & OutputDevice::GetBackground ( ) const
inline

◆ GetBackgroundColor()

Color OutputDevice::GetBackgroundColor ( ) const
virtual

Reimplemented in Printer, and vcl::WindowOutputDevice.

Definition at line 22 of file background.cxx.

References GetBackground(), and Wallpaper::GetColor().

Referenced by vcl::Window::GetBackgroundColor().

◆ GetBackgroundComponentBounds()

tools::Rectangle OutputDevice::GetBackgroundComponentBounds ( ) const
protectedvirtual

Reimplemented in Printer.

Definition at line 641 of file outdev.cxx.

References GetOutputSizePixel(), and Point.

Referenced by RemoveTransparenciesFromMetaFile().

◆ GetBiDiLayoutFlags()

SalLayoutFlags OutputDevice::GetBiDiLayoutFlags ( std::u16string_view  rStr,
const sal_Int32  nMinIndex,
const sal_Int32  nEndIndex 
) const

◆ GetBitCount()

sal_uInt16 OutputDevice::GetBitCount ( ) const
virtual

◆ GetBitmap()

Bitmap OutputDevice::GetBitmap ( const Point rSrcPt,
const Size rSize 
) const
virtual

◆ GetBitmapEx()

BitmapEx OutputDevice::GetBitmapEx ( const Point rSrcPt,
const Size rSize 
) const

Query extended bitmap (with alpha channel, if available).

Definition at line 149 of file bitmapex.cxx.

References Bitmap::Convert(), GetBitmap(), Bitmap::getPixelFormat(), mpAlphaVDev, vcl::N8_BPP, and N8BitNoConversion.

Referenced by SalInstanceWidget::DoRecursivePaint(), DrawOutDev(), and SalInstanceIconView::insert().

◆ GetButtonBorderSize()

virtual Size OutputDevice::GetButtonBorderSize ( )
inlinevirtual

Reimplemented in Printer.

Definition at line 422 of file outdev.hxx.

◆ GetCanvas()

Reference< css::rendering::XCanvas > OutputDevice::GetCanvas ( ) const

request XCanvas render interface

Definition at line 747 of file outdev.cxx.

References ImplGetCanvas(), and mxCanvas.

Referenced by GDIMetaFile::ImplPlayWithRenderer().

◆ GetCaretPositions()

void OutputDevice::GetCaretPositions ( const OUString &  rStr,
sal_Int32 *  pCaretXArray,
sal_Int32  nIndex,
sal_Int32  nLen,
const SalLayoutGlyphs pGlyphs = nullptr 
) const

◆ GetClipRegion()

vcl::Region OutputDevice::GetClipRegion ( ) const

◆ GetCommonDeviceInfo()

css::awt::DeviceInfo OutputDevice::GetCommonDeviceInfo ( Size const &  aDevSize) const
protected

◆ GetConnectMetaFile()

GDIMetaFile * OutputDevice::GetConnectMetaFile ( ) const
inline

◆ GetCtrlTextWidth()

tools::Long OutputDevice::GetCtrlTextWidth ( const OUString &  rStr,
const SalLayoutGlyphs pLayoutCache = nullptr 
) const

◆ GetDefaultFont()

vcl::Font OutputDevice::GetDefaultFont ( DefaultFontType  nType,
LanguageType  eLang,
GetDefaultFontFlags  nFlags,
const OutputDevice pOutDev = nullptr 
)
static

◆ GetDeviceInfo()

css::awt::DeviceInfo OutputDevice::GetDeviceInfo ( ) const
virtual

Reimplemented in Printer, and vcl::WindowOutputDevice.

Definition at line 735 of file outdev.cxx.

References GetCommonDeviceInfo(), and GetOutputSizePixel().

◆ GetDigitLanguage()

LanguageType OutputDevice::GetDigitLanguage ( ) const
inline

Definition at line 494 of file outdev.hxx.

Referenced by Push().

◆ GetDPIScaleFactor()

float OutputDevice::GetDPIScaleFactor ( ) const
inline

◆ GetDPIScalePercentage()

sal_Int32 OutputDevice::GetDPIScalePercentage ( ) const
inline

Definition at line 402 of file outdev.hxx.

Referenced by ImageRequestParameters::scalePercentage().

◆ GetDPIX()

SAL_DLLPRIVATE sal_Int32 OutputDevice::GetDPIX ( ) const
inline

◆ GetDPIY()

SAL_DLLPRIVATE sal_Int32 OutputDevice::GetDPIY ( ) const
inline

◆ GetDrawMode()

DrawModeFlags OutputDevice::GetDrawMode ( ) const
inline

◆ GetEllipsisString()

OUString OutputDevice::GetEllipsisString ( const OUString &  rStr,
tools::Long  nMaxWidth,
DrawTextFlags  nStyle = DrawTextFlags::EndEllipsis 
) const

Definition at line 2049 of file text.cxx.

References ImplGetEllipsisString().

Referenced by vcl::PDFWriterImpl::drawText(), and getShortenedString().

◆ GetEmphasisAscent()

SAL_DLLPRIVATE tools::Long OutputDevice::GetEmphasisAscent ( ) const
inlineprotected

Definition at line 1182 of file outdev.hxx.

Referenced by vcl::PDFWriterImpl::drawLayout().

◆ GetEmphasisDescent()

SAL_DLLPRIVATE tools::Long OutputDevice::GetEmphasisDescent ( ) const
inlineprotected

Definition at line 1183 of file outdev.hxx.

Referenced by vcl::PDFWriterImpl::drawLayout().

◆ GetExtOutDevData()

vcl::ExtOutDevData * OutputDevice::GetExtOutDevData ( ) const
inline

Definition at line 417 of file outdev.hxx.

Referenced by VirtualDevice::CanEnableNativeWidget().

◆ getFallbackLayout()

std::unique_ptr< SalLayout > OutputDevice::getFallbackLayout ( LogicalFontInstance pLogicalFont,
int  nFallbackLevel,
vcl::text::ImplLayoutArgs rLayoutArgs,
const SalLayoutGlyphs pGlyphs 
) const

◆ GetFillColor()

const Color & OutputDevice::GetFillColor ( ) const
inline

◆ GetFont()

const vcl::Font & OutputDevice::GetFont ( ) const
inline

◆ GetFontCapabilities()

bool OutputDevice::GetFontCapabilities ( vcl::FontCapabilities rFontCapabilities) const

Definition at line 251 of file outdev/font.cxx.

References SalGraphics::GetFontCapabilities(), InitFont(), and mpGraphics.

◆ GetFontCharMap()

bool OutputDevice::GetFontCharMap ( FontCharMapRef rxFontCharMap) const

◆ GetFontExtLeading()

tools::Long OutputDevice::GetFontExtLeading ( ) const
protectedvirtual

Reimplemented in VirtualDevice.

Definition at line 258 of file outdev/font.cxx.

References mpFontInstance.

Referenced by GetFontMetric().

◆ GetFontFaceCollectionCount()

int OutputDevice::GetFontFaceCollectionCount ( ) const

Definition at line 112 of file outdev/font.cxx.

References mpFontFaceCollection, and mxFontCollection.

Referenced by GetFontMetricFromCollection().

◆ GetFontFeatures()

bool OutputDevice::GetFontFeatures ( std::vector< vcl::font::Feature > &  rFontFeatures) const

◆ GetFontInstance()

const LogicalFontInstance * OutputDevice::GetFontInstance ( ) const

◆ GetFontMetric() [1/2]

FontMetric OutputDevice::GetFontMetric ( ) const

◆ GetFontMetric() [2/2]

FontMetric OutputDevice::GetFontMetric ( const vcl::Font rFont) const

Definition at line 224 of file outdev/font.cxx.

References GetFont(), GetFontMetric(), and SetFont().

◆ GetFontMetricFromCollection()

FontMetric OutputDevice::GetFontMetricFromCollection ( int  nDevFontIndex) const

◆ GetGlyphBoundRects()

bool OutputDevice::GetGlyphBoundRects ( const Point rOrigin,
const OUString &  rStr,
int  nIndex,
int  nLen,
std::vector< tools::Rectangle > &  rVector 
) const

◆ GetGradientStepCount()

tools::Long OutputDevice::GetGradientStepCount ( tools::Long  nMinRect)
protectedvirtual

Reimplemented in Printer.

Definition at line 578 of file outdev/gradient.cxx.

Referenced by GetGradientSteps().

◆ GetGradientSteps()

tools::Long OutputDevice::GetGradientSteps ( Gradient const &  rGradient,
tools::Rectangle const &  rRect 
)
private

◆ GetGraphics() [1/2]

SalGraphics * OutputDevice::GetGraphics ( )

Definition at line 191 of file outdev.cxx.

References AcquireGraphics(), DBG_TESTSOLARMUTEX, mpGraphics, and SAL_WARN.

◆ GetGraphics() [2/2]

SalGraphics const * OutputDevice::GetGraphics ( ) const

Get the graphic context that the output device uses to draw on.

If no graphics device exists, then initialize it.

Returns
SalGraphics instance.

Definition at line 201 of file outdev.cxx.

References AcquireGraphics(), DBG_TESTSOLARMUTEX, mpGraphics, and SAL_WARN.

Referenced by Bitmap::CreateDisplayBitmap(), Image::Draw(), and EmbeddedFontsHelper::fontFileUrl().

◆ GetInverseViewTransformation() [1/2]

basegfx::B2DHomMatrix OutputDevice::GetInverseViewTransformation ( ) const

◆ GetInverseViewTransformation() [2/2]

basegfx::B2DHomMatrix OutputDevice::GetInverseViewTransformation ( const MapMode rMapMode) const

Definition at line 922 of file map.cxx.

References GetViewTransformation(), and basegfx::B2DHomMatrix::invert().

◆ GetLayoutMode()

vcl::text::ComplexTextLayoutFlags OutputDevice::GetLayoutMode ( ) const
inline

◆ GetLineColor()

const Color & OutputDevice::GetLineColor ( ) const
inline

◆ GetMapMode()

const MapMode & OutputDevice::GetMapMode ( ) const
inline

◆ GetMinKashida()

tools::Long OutputDevice::GetMinKashida ( ) const

Definition at line 1112 of file outdev/font.cxx.

References ImplDevicePixelToLogicWidth(), ImplNewFont(), and mpFontInstance.

◆ GetMonochromeButtonColor()

virtual Color OutputDevice::GetMonochromeButtonColor ( )
inlinevirtual

Reimplemented in Printer.

Definition at line 423 of file outdev.hxx.

References COL_WHITE().

◆ GetNativeControlRegion()

bool OutputDevice::GetNativeControlRegion ( ControlType  nType,
ControlPart  nPart,
const tools::Rectangle rControlRegion,
ControlState  nState,
const ImplControlValue aValue,
tools::Rectangle rNativeBoundingRegion,
tools::Rectangle rNativeContentRegion 
) const

◆ GetNativeSurfaceHandle()

css::uno::Any OutputDevice::GetNativeSurfaceHandle ( cairo::SurfaceSharedPtr rSurface,
const basegfx::B2ISize rSize 
) const

Return native handle for underlying surface.

◆ GetOutDevType()

OutDevType OutputDevice::GetOutDevType ( ) const
inline

◆ GetOutDevViewType()

OutDevViewType OutputDevice::GetOutDevViewType ( ) const
inline

Definition at line 507 of file outdev.hxx.

◆ GetOutOffXPixel()

tools::Long OutputDevice::GetOutOffXPixel ( ) const
inline

◆ GetOutOffYPixel()

tools::Long OutputDevice::GetOutOffYPixel ( ) const
inline

◆ GetOutputBoundsClipRegion()

vcl::Region OutputDevice::GetOutputBoundsClipRegion ( ) const
virtual

Reimplemented in vcl::WindowOutputDevice.

Definition at line 790 of file text.cxx.

Referenced by DrawText().

◆ GetOutputHeightPixel()

tools::Long OutputDevice::GetOutputHeightPixel ( ) const
inline

Definition at line 318 of file outdev.hxx.

Referenced by ClipToDeviceBounds().

◆ GetOutputOffPixel()

Point OutputDevice::GetOutputOffPixel ( ) const
inline

Definition at line 323 of file outdev.hxx.

References Point.

◆ GetOutputRectPixel()

tools::Rectangle OutputDevice::GetOutputRectPixel ( ) const
inline

◆ GetOutputSize()

Size OutputDevice::GetOutputSize ( ) const
inline

◆ GetOutputSizePixel()

Size OutputDevice::GetOutputSizePixel ( ) const
inline

◆ GetOutputWidthPixel()

tools::Long OutputDevice::GetOutputWidthPixel ( ) const
inline

◆ GetOverlineColor()

const Color & OutputDevice::GetOverlineColor ( ) const
inline

◆ GetOwnerWindow()

virtual vcl::Window * OutputDevice::GetOwnerWindow ( ) const
inlinevirtual

◆ GetPixel()

Color OutputDevice::GetPixel ( const Point rPt) const

◆ GetPixelOffset()

SAL_WARN_UNUSED_RESULT Size OutputDevice::GetPixelOffset ( ) const
inline

Get the offset in pixel.

See also
OutputDevice::SetPixelOffset for details
Returns
the current offset in pixel

Definition at line 1602 of file outdev.hxx.

References SAL_WARN_UNUSED_RESULT.

Referenced by GDIMetaFile::Play().

◆ GetRasterOp()

RasterOp OutputDevice::GetRasterOp ( ) const
inline

◆ GetReadableFontColor()

Color OutputDevice::GetReadableFontColor ( const Color rFontColor,
const Color rBgColor 
) const
virtual

Reimplemented in Printer.

Definition at line 25 of file wallpaper.cxx.

References COL_BLACK(), COL_WHITE(), Color::IsBright(), and Color::IsDark().

◆ GetRefPoint()

const Point & OutputDevice::GetRefPoint ( ) const
inline

Definition at line 308 of file outdev.hxx.

References Point.

Referenced by CalcHatchValues().

◆ GetRenderBackendName()

OUString OutputDevice::GetRenderBackendName ( ) const

Definition at line 233 of file outdev.cxx.

References AcquireGraphics(), SalGraphics::getRenderBackendName(), and mpGraphics.

◆ GetSettings()

const AllSettings & OutputDevice::GetSettings ( ) const
inline

Definition at line 289 of file outdev.hxx.

Referenced by Control::ApplySettings(), StatusBar::ApplySettings(), ToolBox::ApplySettings(), Edit::ApplySettings(), FloatingWindow::ApplySettings(), ScrollBarBox::ApplySettings(), SvTreeListBox::ApplySettings(), VclMultiLineEdit::ApplySettings(), Calendar::ApplySettings(), HelpTextWindow::ApplySettings(), vcl::HyperLabel::ApplySettings(), ImplListBoxWindow::ApplySettings(), ImplWin::ApplySettings(), MenuBarWindow::ApplySettings(), MenuFloatingWindow::ApplySettings(), PushButton::Draw(), ScrollBar::Draw(), SpinField::Draw(), Image::Draw(), DrawCtrlText(), DecorationView::DrawFrame(), DecorationView::DrawHandle(), DrawHatch(), DecorationView::DrawHighlightFrame(), SvImpLBox::DrawNet(), DrawPixel(), vcl::RenderTools::DrawSelectionBackground(), DecorationView::DrawSeparator(), DecorationView::DrawSymbol(), ImplStdBorderWindowView::DrawWindow(), vcl::Window::GetSettings(), GetSingleColorGradientFill(), MenuBarWindow::HighlightItem(), ImplAddNWFSeparator(), SpinField::ImplCalcButtonAreas(), FixedText::ImplDraw(), FixedLine::ImplDraw(), ScrollBar::ImplDraw(), Calendar::ImplDraw(), Slider::ImplDraw(), ImplWin::ImplDraw(), SplitWindow::ImplDrawBorder(), ToolBox::ImplDrawBorder(), SplitWindow::ImplDrawBorderLine(), ImplDrawBrdWinSymbol(), ImplDrawBrdWinSymbolButton(), ToolBox::ImplDrawConstantBackground(), Calendar::ImplDrawDate(), ImplDrawDropdownArrow(), ToolBox::ImplDrawFloatwinBorder(), Control::ImplDrawFrame(), ToolBox::ImplDrawGradientBackground(), ToolBox::ImplDrawGrip(), SplitWindow::ImplDrawGrip(), TabControl::ImplDrawItem(), ToolBox::ImplDrawItem(), HeaderBar::ImplDrawItem(), ScrollBar::ImplDrawNative(), PushButton::ImplDrawPushButtonFrame(), RadioButton::ImplDrawRadioButtonState(), MenuFloatingWindow::ImplDrawScroller(), ToolBox::ImplDrawSeparator(), Calendar::ImplDrawSpin(), ImplDrawSplit(), ImplDrawText(), ImplDrawUpDownButtons(), ToolBox::ImplErase(), ImplNewFont(), ImplListBoxWindow::ImplPaint(), Menu::ImplPaint(), ImplPaintCheckBackground(), Menu::ImplPaintMenuTitle(), vcl::Cursor::ImplPrepForDraw(), Edit::ImplRepaint(), TextEngine::ImpPaint(), ImplStdBorderWindowView::Init(), vcl::PrintDialog::ShowNupOrderWindow::Paint(), HeaderBar::Paint(), StatusBar::Paint(), TabControl::Paint(), SpinField::Paint(), vcl::PrintDialog::PrintPreviewWindow::Paint(), MenuBarWindow::Paint(), MenuFloatingWindow::Paint(), vcl::PaintBufferGuard::PaintBufferGuard(), IconView::PaintEntry(), SvxIconChoiceCtrl_Impl::PaintEntry(), SvTreeListBox::PaintEntry1(), MenuFloatingWindow::RenderHighlightItem(), SetFillColor(), SetFont(), SetLineColor(), SetOverlineColor(), SetSystemTextColor(), and SetTextLineColor().

◆ GetSingleColorGradientFill()

Color OutputDevice::GetSingleColorGradientFill ( )
private

◆ GetSpriteCanvas()

Reference< css::rendering::XSpriteCanvas > OutputDevice::GetSpriteCanvas ( ) const

request XSpriteCanvas render interface

Definition at line 759 of file outdev.cxx.

References ImplGetCanvas(), and mxCanvas.

◆ GetSyncCount()

virtual size_t OutputDevice::GetSyncCount ( ) const
inlinevirtual

Reimplemented in vcl::WindowOutputDevice.

Definition at line 336 of file outdev.hxx.

Referenced by GDIMetaFile::Play().

◆ GetSystemGfxData()

SystemGraphicsData OutputDevice::GetSystemGfxData ( ) const

Definition at line 224 of file outdev.cxx.

References AcquireGraphics(), SalGraphics::GetGraphicsData(), and mpGraphics.

Referenced by GetSystemGfxDataAny().

◆ GetSystemGfxDataAny()

css::uno::Any OutputDevice::GetSystemGfxDataAny ( ) const

◆ GetTextAlign()

TextAlign OutputDevice::GetTextAlign ( ) const
inline

Definition at line 1022 of file outdev.hxx.

References vcl::Font::GetAlignment().

Referenced by vcl::Window::GetTextAlign(), ImplDrawText(), and Push().

◆ GetTextArray()

tools::Long OutputDevice::GetTextArray ( const OUString &  rStr,
std::vector< sal_Int32 > *  pDXAry,
sal_Int32  nIndex = 0,
sal_Int32  nLen = -1,
bool  bCaret = false,
vcl::text::TextLayoutCache const *  pLayoutCache = nullptr,
SalLayoutGlyphs const *const  pLayoutCache = nullptr 
) const

◆ GetTextBoundRect()

bool OutputDevice::GetTextBoundRect ( tools::Rectangle rRect,
const OUString &  rStr,
sal_Int32  nBase = 0,
sal_Int32  nIndex = 0,
sal_Int32  nLen = -1,
sal_uLong  nLayoutWidth = 0,
o3tl::span< const sal_Int32 >  pDXArray = {},
o3tl::span< const sal_Bool pKashidaArray = {},
const SalLayoutGlyphs pGlyphs = nullptr 
) const

Return the exact bounding rectangle of rStr.

The text is then drawn exactly from rRect.TopLeft() to rRect.BottomRight(), don't assume that rRect.TopLeft() is [0, 0].

Please note that you don't always want to use GetTextBoundRect(); in many cases you actually want to use GetTextHeight(), because GetTextBoundRect() gives you the exact bounding rectangle regardless what is the baseline of the text.

Code snippet to get just exactly the text (no filling around that) as a bitmap via a VirtualDevice (regardless what is the baseline):

VirtualDevice aDevice; vcl::Font aFont = aDevice.GetFont(); aFont.SetSize(Size(0, 96)); aFont.SetColor(COL_BLACK); aDevice.SetFont(aFont); aDevice.Erase();

tools::Rectangle aRect; aDevice.GetTextBoundRect(aRect, aText); aDevice.SetOutputSize(Size(aRect.Right() + 1, aRect.Bottom() + 1)); aDevice.SetBackground(Wallpaper(COL_TRANSPARENT)); aDevice.DrawText(Point(0,0), aText);

exactly only the text, regardless of the baseline Bitmap aBitmap(aDevice.GetBitmap(aRect.TopLeft(), aRect.GetSize()));

Code snippet to get the text as a bitmap via a Virtual device that contains even the filling so that the baseline is always preserved (ie. the text will not jump up and down according to whether it contains 'y' or not etc.)

VirtualDevice aDevice;

  • the appropriate font / device setup, see above
      aDevice.SetOutputSize(Size(aDevice.GetTextWidth(aText), aDevice.GetTextHeight()));
      aDevice.SetBackground(Wallpaper(COL_TRANSPARENT));
      aDevice.DrawText(Point(0,0), aText);
    
    bitmap that contains even the space around the text, that means, preserves the baseline etc. Bitmap aBitmap(aDevice.GetBitmap(Point(0, 0), aDevice.GetOutputSize()));

Definition at line 2342 of file text.cxx.

References tools::Rectangle::Bottom(), eDefaultLayout, basegfx::Tuple2D< typename TYPE >::getX(), basegfx::Tuple2D< typename TYPE >::getY(), ImplLayout(), tools::Rectangle::Left(), maMapRes, mbMap, ImplMapRes::mnMapOfsX, ImplMapRes::mnMapOfsY, mnTextOffX, mnTextOffY, nIndex, PixelToLogic(), Point, tools::Rectangle::Right(), tools::Rectangle::SetBottom(), tools::Rectangle::SetEmpty(), tools::Rectangle::SetLeft(), tools::Rectangle::SetRight(), tools::Rectangle::SetTop(), and tools::Rectangle::Top().

Referenced by GetGlyphBoundRects(), Menu::ImplCalcSize(), ImplFontMetricData::ImplInitFlags(), and Menu::ImplPaintMenuTitle().

◆ GetTextBreak() [1/2]

sal_Int32 OutputDevice::GetTextBreak ( const OUString &  rStr,
tools::Long  nTextWidth,
sal_Int32  nIndex,
sal_Int32  nLen = -1,
tools::Long  nCharExtra = 0,
vcl::text::TextLayoutCache const *  pLayoutCache = nullptr,
const SalLayoutGlyphs pGlyphs = nullptr 
) const

◆ GetTextBreak() [2/2]

sal_Int32 OutputDevice::GetTextBreak ( const OUString &  rStr,
tools::Long  nTextWidth,
sal_Unicode  nExtraChar,
sal_Int32 &  rExtraCharPos,
sal_Int32  nIndex,
sal_Int32  nLen,
tools::Long  nCharExtra,
vcl::text::TextLayoutCache const *  pLayoutCache = nullptr,
const SalLayoutGlyphs pGlyphs = nullptr 
) const

Definition at line 1513 of file text.cxx.

References eDefaultLayout, ImplLayout(), LogicWidthToDeviceCoordinate(), nIndex, and Point.

◆ GetTextColor()

const Color & OutputDevice::GetTextColor ( ) const
inline

◆ GetTextFillColor()

Color OutputDevice::GetTextFillColor ( ) const

◆ GetTextHeight()

tools::Long OutputDevice::GetTextHeight ( ) const

◆ GetTextIsRTL()

bool OutputDevice::GetTextIsRTL ( const OUString &  rString,
sal_Int32  nIndex,
sal_Int32  nLen 
) const

◆ GetTextLineColor()

const Color & OutputDevice::GetTextLineColor ( ) const
inline

◆ GetTextOutline()

bool OutputDevice::GetTextOutline ( tools::PolyPolygon rPolyPoly,
const OUString &  rStr 
) const

◆ GetTextOutlines() [1/2]

bool OutputDevice::GetTextOutlines ( basegfx::B2DPolyPolygonVector rVector,
const OUString &  rStr,
sal_Int32  nBase,
sal_Int32  nIndex = 0,
sal_Int32  nLen = -1,
sal_uLong  nLayoutWidth = 0,
o3tl::span< const sal_Int32 >  pDXArray = {},
o3tl::span< const sal_Bool pKashidaArray = {} 
) const

◆ GetTextOutlines() [2/2]

bool OutputDevice::GetTextOutlines ( PolyPolyVector rResultVector,
const OUString &  rStr,
sal_Int32  nBase = 0,
sal_Int32  nIndex = 0,
sal_Int32  nLen = -1,
sal_uLong  nLayoutWidth = 0,
o3tl::span< const sal_Int32 >  pDXArray = {},
o3tl::span< const sal_Bool pKashidaArray = {} 
) const

Definition at line 2497 of file text.cxx.

References GetTextOutlines(), and nIndex.

Referenced by GetTextOutline(), GetTextOutlines(), and WMFWriter::WMFRecord_Escape_Unicode().

◆ GetTextRect()

tools::Rectangle OutputDevice::GetTextRect ( const tools::Rectangle rRect,
const OUString &  rStr,
DrawTextFlags  nStyle = DrawTextFlags::WordBreak,
TextRectInfo pInfo = nullptr,
const vcl::ITextLayout _pTextLayout = nullptr 
) const

◆ GetTextWidth()

tools::Long OutputDevice::GetTextWidth ( const OUString &  rStr,
sal_Int32  nIndex = 0,
sal_Int32  nLen = -1,
vcl::text::TextLayoutCache const *  pLayoutCache = nullptr,
SalLayoutGlyphs const *const  pLayoutCache = nullptr 
) const

◆ GetUnoGraphicsList()

std::vector< VCLXGraphics * > * OutputDevice::GetUnoGraphicsList ( ) const
inline

Definition at line 333 of file outdev.hxx.

Referenced by dispose().

◆ GetViewTransformation() [1/2]

basegfx::B2DHomMatrix OutputDevice::GetViewTransformation ( ) const

◆ GetViewTransformation() [2/2]

basegfx::B2DHomMatrix OutputDevice::GetViewTransformation ( const MapMode rMapMode) const

◆ GetWaveLineSize()

Size OutputDevice::GetWaveLineSize ( tools::Long  nLineWidth) const
protectedvirtual

Reimplemented in Printer.

Definition at line 167 of file textline.cxx.

References mnDPIX, mnDPIY, and nLineWidth.

Referenced by ImplDrawWaveLine().

◆ HasFastDrawTransformedBitmap()

bool OutputDevice::HasFastDrawTransformedBitmap ( ) const

Return true if DrawTransformedBitmapEx() is fast.

Available since: \n 7.2

Definition at line 698 of file outdev/bitmap.cxx.

References AcquireGraphics(), SalGraphics::HasFastDrawTransformedBitmap(), ImplIsRecordLayout(), and mpGraphics.

◆ HasGlyphs()

sal_Int32 OutputDevice::HasGlyphs ( const vcl::Font rFont,
std::u16string_view  rStr,
sal_Int32  nIndex = 0,
sal_Int32  nLen = -1 
) const

Definition at line 1181 of file outdev/font.cxx.

References GetFont(), GetFontCharMap(), i, nIndex, SAL_WARN_IF, and SetFont().

◆ HasMirroredGraphics()

bool OutputDevice::HasMirroredGraphics ( ) const
virtual

◆ HitTestNativeScrollbar()

bool OutputDevice::HitTestNativeScrollbar ( ControlPart  nPart,
const tools::Rectangle rControlRegion,
const Point aPos,
bool &  rIsInside 
) const

Query the native control to determine if it was acted upon.

Definition at line 146 of file nativecontrols.cxx.

References AcquireGraphics(), CanEnableNativeWidget(), SalGraphics::HitTestNativeScrollbar(), mnOutOffX, mnOutOffY, tools::Rectangle::Move(), mpGraphics, and Point.

Referenced by ScrollBar::MouseButtonDown().

◆ ImplBreakLinesSimple()

sal_Int32 OutputDevice::ImplBreakLinesSimple ( const tools::Long  nWidth,
const OUString &  rStr,
const vcl::ITextLayout _rLayout,
const sal_Int32  nPos,
sal_Int32  nBreakPos,
tools::Long nLineWidth 
)
staticprotected

Definition at line 689 of file text.cxx.

Referenced by ImplGetTextLines().

◆ ImplBreakLinesWithIterator()

sal_Int32 OutputDevice::ImplBreakLinesWithIterator ( const tools::Long  nWidth,
const OUString &  rStr,
const vcl::ITextLayout _rLayout,
const css::uno::Reference< css::linguistic2::XHyphenator > &  xHyph,
const css::uno::Reference< css::i18n::XBreakIterator > &  xBI,
const bool  bHyphenate,
const sal_Int32  nPos,
sal_Int32  nBreakPos 
)
staticprotected

◆ ImplClearAllFontData()

void OutputDevice::ImplClearAllFontData ( bool  bNewFontLists)
static

◆ ImplClearFontData()

void OutputDevice::ImplClearFontData ( bool  bNewFontLists)
protectedvirtual

◆ ImplDevicePixelToLogic()

tools::Rectangle OutputDevice::ImplDevicePixelToLogic ( const tools::Rectangle rPixelRect) const

◆ ImplDevicePixelToLogicHeight()

tools::Long OutputDevice::ImplDevicePixelToLogicHeight ( tools::Long  nHeight) const

Convert device pixels to a height in logical units.

To get the logical height, it must calculate the Y-DPI of the device and the map scaling factor.

Parameters
nHeightHeight in device pixels
Returns
Height in logical units.

Definition at line 361 of file map.cxx.

References ImplPixelToLogic(), maMapRes, mbMap, mnDPIY, ImplMapRes::mnMapScDenomY, and ImplMapRes::mnMapScNumY.

Referenced by vcl::PDFWriterImpl::drawLayout(), GetFontMetric(), and GetTextHeight().

◆ ImplDevicePixelToLogicWidth()

tools::Long OutputDevice::ImplDevicePixelToLogicWidth ( tools::Long  nWidth) const

Convert device pixels to a width in logical units.

To get the logical width, it must calculate the X-DPI of the device and the map scaling factor.

Parameters
nWidthWidth in device pixels
Returns
Width in logical units.

Definition at line 353 of file map.cxx.

References ImplPixelToLogic(), maMapRes, mbMap, mnDPIX, ImplMapRes::mnMapScDenomX, and ImplMapRes::mnMapScNumX.

Referenced by DrawHatch(), vcl::PDFWriterImpl::drawLayout(), GetCaretPositions(), GetMinKashida(), and GetTextArray().

◆ ImplDisposeCanvas()

void OutputDevice::ImplDisposeCanvas ( )
protected

Definition at line 810 of file outdev.cxx.

References mxCanvas.

Referenced by vcl::Window::dispose(), and WorkWindow::ShowFullScreenMode().

◆ ImplDrawEmphasisMark()

void OutputDevice::ImplDrawEmphasisMark ( tools::Long  nBaseX,
tools::Long  nX,
tools::Long  nY,
const tools::PolyPolygon rPolyPoly,
bool  bPolyLine,
const tools::Rectangle rRect1,
const tools::Rectangle rRect2 
)
private

◆ ImplDrawEmphasisMarks()

void OutputDevice::ImplDrawEmphasisMarks ( SalLayout rSalLayout)
private

◆ ImplDrawMnemonicLine()

void OutputDevice::ImplDrawMnemonicLine ( tools::Long  nX,
tools::Long  nY,
tools::Long  nWidth 
)
private

◆ ImplDrawPolygon()

void OutputDevice::ImplDrawPolygon ( const tools::Polygon rPoly,
const tools::PolyPolygon pClipPolyPoly = nullptr 
)
private

◆ ImplDrawPolyPolygon() [1/2]

void OutputDevice::ImplDrawPolyPolygon ( const tools::PolyPolygon rPolyPoly,
const tools::PolyPolygon pClipPolyPoly 
)
private

◆ ImplDrawPolyPolygon() [2/2]

void OutputDevice::ImplDrawPolyPolygon ( sal_uInt16  nPoly,
const tools::PolyPolygon rPolyPoly 
)
private

◆ ImplDrawPolyPolygonWithB2DPolyPolygon()

void OutputDevice::ImplDrawPolyPolygonWithB2DPolyPolygon ( const basegfx::B2DPolyPolygon rB2DPolyPoly)
private

◆ ImplDrawRotateText()

bool OutputDevice::ImplDrawRotateText ( SalLayout rSalLayout)

◆ ImplDrawSpecialText()

void OutputDevice::ImplDrawSpecialText ( SalLayout rSalLayout)
private

◆ ImplDrawStraightTextLine()

void OutputDevice::ImplDrawStraightTextLine ( tools::Long  nBaseX,
tools::Long  nBaseY,
tools::Long  nX,
tools::Long  nY,
tools::Long  nWidth,
FontLineStyle  eTextLine,
Color  aColor,
bool  bIsAbove 
)
private

◆ ImplDrawStrikeoutChar()

void OutputDevice::ImplDrawStrikeoutChar ( tools::Long  nBaseX,
tools::Long  nBaseY,
tools::Long  nX,
tools::Long  nY,
tools::Long  nWidth,
FontStrikeout  eStrikeout,
Color  aColor 
)
private

◆ ImplDrawStrikeoutLine()

void OutputDevice::ImplDrawStrikeoutLine ( tools::Long  nBaseX,
tools::Long  nBaseY,
tools::Long  nX,
tools::Long  nY,
tools::Long  nWidth,
FontStrikeout  eStrikeout,
Color  aColor 
)
private

◆ ImplDrawText() [1/2]

void OutputDevice::ImplDrawText ( OutputDevice rTargetDevice,
const tools::Rectangle rRect,
const OUString &  rOrigStr,
DrawTextFlags  nStyle,
std::vector< tools::Rectangle > *  pVector,
OUString *  pDisplayText,
vcl::ITextLayout _rLayout 
)
static

Definition at line 1569 of file text.cxx.

References ALIGN_BASELINE, ALIGN_BOTTOM, aStr, Bottom, Center, Clip, vcl::CLIPREGION, COL_GREEN(), COL_LIGHTGREEN(), convertLineEnd(), ImplMultiTextLineInfo::Count(), Disable, vcl::ITextLayout::DrawText(), EndEllipsis, FontMetric::GetAscent(), GetBackground(), vcl::ITextLayout::GetCaretPositions(), Wallpaper::GetColor(), StyleSettings::GetDisableColor(), StyleSettings::GetFaceColor(), GetFontMetric(), tools::Rectangle::GetHeight(), StyleSettings::GetHighContrastMode(), ImplTextLineInfo::GetIndex(), ImplTextLineInfo::GetLen(), ImplMultiTextLineInfo::GetLine(), StyleSettings::GetOptions(), GetOutOffXPixel(), GetOutOffYPixel(), GetSettings(), AllSettings::GetStyleSettings(), GetTextAlign(), GetTextColor(), GetTextFillColor(), GetTextHeight(), vcl::ITextLayout::GetTextWidth(), tools::Rectangle::GetWidth(), ImplTextLineInfo::GetWidth(), i, ImplDrawMnemonicLine(), ImplGetEllipsisString(), ImplGetTextLines(), ImplLogicWidthToDevicePixel(), IntersectClipRegion(), IsBackground(), Color::IsBright(), Color::IsDark(), utl::ConfigManager::IsFuzzing(), IsTextFillColor(), tools::Rectangle::Left(), Left, LINEEND_LF, LogicToPixel(), LogicWidthToDeviceCoordinate(), Mnemonic, MultiLine, nIndex, NoMnemonics, Point, Pop(), Push(), removeMnemonicFromString(), Right, SAL_WARN_IF, SetTextColor(), SetTextFillColor(), TEXT_DRAW_ELLIPSIS, Top, tools::Rectangle::TopLeft(), and VCenter.

Referenced by AddTextRectActions(), DrawStretchText(), DrawText(), and DrawTextArray().

◆ ImplDrawText() [2/2]

void OutputDevice::ImplDrawText ( SalLayout rSalLayout)

◆ ImplDrawTextBackground()

void OutputDevice::ImplDrawTextBackground ( const SalLayout rSalLayout)

◆ ImplDrawTextDirect()

void OutputDevice::ImplDrawTextDirect ( SalLayout rSalLayout,
bool  bTextLines 
)
private

◆ ImplDrawTextLine()

void OutputDevice::ImplDrawTextLine ( tools::Long  nBaseX,
tools::Long  nX,