summaryrefslogtreecommitdiff
path: root/vcl/inc/ios
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2013-01-19 14:22:05 +0200
committerTor Lillqvist <tml@iki.fi>2013-01-19 15:49:50 +0200
commitbae655a7c2c5bb7e612b068eea34ec5780c58513 (patch)
tree5bacb417176829a2665007c4f86d485e9e75c42d /vcl/inc/ios
parentc34cad49fadd376a61904e2201d85fbe908c348b (diff)
De-duplication of CoreText code and headers for OS X and iOS
Nominally renamed the AquaSalGraphics class to QuartzSalGraphics, as it isn't now then "Aqua" (Mac OS X) specific any more. Actually, for Mac OS X, because lots of code in vcl/aqua expects it to be called AquaSalGraphics (just like the alternative class used when using the obsolete ATSUI API on Mac OS X), use a #define to make it still be called AquaSalGraphics to the compiler's eyes. For iOS it can be called QuartzSalGraphics.
Diffstat (limited to 'vcl/inc/ios')
-rw-r--r--vcl/inc/ios/common.h45
-rw-r--r--vcl/inc/ios/salbmp.h3
-rw-r--r--vcl/inc/ios/salcoretextfontutils.hxx84
-rw-r--r--vcl/inc/ios/salcoretextlayout.hxx81
-rw-r--r--vcl/inc/ios/salcoretextstyle.hxx59
-rw-r--r--vcl/inc/ios/salframe.h4
-rw-r--r--vcl/inc/ios/salgdi.h307
-rw-r--r--vcl/inc/ios/salgdicommon.hxx2
-rw-r--r--vcl/inc/ios/salvd.h8
9 files changed, 8 insertions, 585 deletions
diff --git a/vcl/inc/ios/common.h b/vcl/inc/ios/common.h
deleted file mode 100644
index e37804ca3925..000000000000
--- a/vcl/inc/ios/common.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef _VCL_IOS_COMMON_H
-#define _VCL_IOS_COMMON_H
-
-#include <sal/types.h>
-#include <premac.h>
-#include <CoreGraphics/CoreGraphics.h>
-#include <CoreText/CoreText.h>
-#include <UIKit/UIKit.h>
-#include <postmac.h>
-#include <tools/debug.hxx>
-
-// CoreFoundation designers, in their wisdom, decided that CFRelease of NULL
-// cause a Crash, yet few API can return NULL when asking for the creation
-// of an object, which force us to peper the code with egly if construct everywhere
-// and open the door to very nasty crash on rare occasion
-// this macro hide the mess
-#define SafeCFRelease(a) do { if(a) { CFRelease(a); (a)=NULL; } } while(false)
-
-
-#define round_to_long(a) ((a) >= 0 ? ((long)((a) + 0.5)) : ((long)((a) - 0.5)))
-
-#include "vcl/salgtype.hxx"
-
-#endif/* _VCL_IOS_COMMON_H */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/ios/salbmp.h b/vcl/inc/ios/salbmp.h
index 6f61b21d5482..816e5231184e 100644
--- a/vcl/inc/ios/salbmp.h
+++ b/vcl/inc/ios/salbmp.h
@@ -27,7 +27,7 @@
#include "vcl/salbtype.hxx"
#include "ios/salconst.h"
-#include "ios/salgdi.h"
+#include "coretext/salgdi.h"
#include "saldata.hxx"
#include "salinst.hxx"
@@ -45,7 +45,6 @@ struct BitmapBuffer;
class BitmapColor;
class BitmapPalette;
class IosSalVirtualDevice;
-class IosSalGraphics;
class IosSalBitmap : public SalBitmap
{
diff --git a/vcl/inc/ios/salcoretextfontutils.hxx b/vcl/inc/ios/salcoretextfontutils.hxx
deleted file mode 100644
index 6293392e8cd1..000000000000
--- a/vcl/inc/ios/salcoretextfontutils.hxx
+++ /dev/null
@@ -1,84 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef _VCL_IOS_CORETEXT_SALCORETEXTFONTUTILS_HXX
-#define _VCL_IOS_CORETEXT_SALCORETEXTFONTUTILS_HXX
-
-class CoreTextPhysicalFontFace;
-class ImplDevFontList;
-
-#include <boost/unordered_map.hpp>
-
-#include <vcl/fontcapabilities.hxx>
-
-#include "outfont.hxx"
-#include "impfont.hxx"
-
-class CoreTextPhysicalFontFace : public PhysicalFontFace
-{
-public:
- CoreTextPhysicalFontFace(const ImplDevFontAttributes&, CTFontRef font);
- virtual ~CoreTextPhysicalFontFace();
- virtual PhysicalFontFace* Clone() const;
- virtual ImplFontEntry* CreateFontInstance( FontSelectPattern& ) const;
- virtual sal_IntPtr GetFontId() const { return (sal_IntPtr)m_CTFontRef;};
- CTFontRef GetCTFont() const { return m_CTFontRef; };
- const ImplFontCharMap* GetImplFontCharMap();
- bool GetImplFontCapabilities(vcl::FontCapabilities &rFontCapabilities);
- bool HasChar( sal_uInt32 cChar ) const;
- void ReadOs2Table();
- void ReadIosCmapEncoding();
- bool HasCJKSupport();
- bool GetRawFontData( std::vector<unsigned char>& rBuffer, bool* pJustCFF ) const;
-
-private:
- void DetermineCJKSupport_OS2(CFDataRef rOS2Table);
- void DetermineCJKSupport_cmap(CFDataRef rCmapTable);
- CTFontRef m_CTFontRef;
- mutable const ImplFontCharMap* m_pCharMap;
- mutable vcl::FontCapabilities m_aFontCapabilities;
- mutable bool m_bHasOs2Table;
- mutable bool m_bOs2TableRead;
- mutable bool m_bCmapTableRead; // true if cmap encoding of Mac font is read
- mutable bool m_bHasCJKSupport; // #i78970# CJK fonts need extra leading
- mutable bool m_bFontCapabilitiesRead;
-};
-
-/* This class has the responsibility of assembling a list of CoreText
- fonts available on the system and enabling access to that list.
- */
-class SystemFontList
-{
-public:
- SystemFontList();
- ~SystemFontList();
-
- void AnnounceFonts( ImplDevFontList& ) const;
- CoreTextPhysicalFontFace* GetFontDataFromRef( CTFontRef ) const;
-
-private:
- typedef boost::unordered_map<CTFontRef,CoreTextPhysicalFontFace*> CoreTextFontContainer;
- CoreTextFontContainer m_aFontContainer;
-
- void InitGlyphFallbacks();
-};
-
-#endif // _VCL_IOS_CORETEXT_SALCORETEXTFONTUTILS_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/ios/salcoretextlayout.hxx b/vcl/inc/ios/salcoretextlayout.hxx
deleted file mode 100644
index 5898066e586a..000000000000
--- a/vcl/inc/ios/salcoretextlayout.hxx
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef _VCL_IOS_CORETEXT_SALCORETEXTLAYOUT_HXX
-#define _VCL_IOS_CORETEXT_SALCORETEXTLAYOUT_HXX
-
-#include <tools/poly.hxx>
-
-#include "sallayout.hxx"
-
-class IosSalGraphics;
-class CoreTextStyleInfo;
-
-class CoreTextLayout : public SalLayout
-{
-public:
- CoreTextLayout( IosSalGraphics* graphics, CoreTextStyleInfo* style);
- virtual ~CoreTextLayout();
-
- virtual void AdjustLayout( ImplLayoutArgs& );
- virtual void DrawText( SalGraphics& ) const;
- virtual void DropGlyph( int nStart );
- virtual long FillDXArray( long* pDXArray ) const;
- virtual bool GetBoundRect( SalGraphics&, Rectangle& ) const;
- virtual void GetCaretPositions( int nArraySize, long* pCaretXArray ) const;
- virtual bool GetGlyphOutlines( SalGraphics&, PolyPolyVector& ) const;
- virtual int GetNextGlyphs( int nLen, sal_GlyphId* pGlyphs, Point& rPos, int&,
- sal_Int32* pGlyphAdvances, int* pCharIndexes ) const;
- virtual int GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) const;
- virtual long GetTextWidth() const;
- virtual void InitFont() const;
- virtual bool LayoutText( ImplLayoutArgs& );
- virtual void MoveGlyph( int nStart, long nNewXPos );
- virtual void Simplify( bool bIsBase );
-
-private:
- void Clean();
- bool InitGIA() const;
-
- IosSalGraphics* m_graphics;
- CoreTextStyleInfo* m_style;
- mutable int m_glyphs_count;
- mutable int m_chars_count;
- mutable int* m_chars2glyphs;
- mutable int* m_glyphs2chars;
- mutable CGGlyph* m_glyphs;
- mutable int* m_char_widths;
- mutable int* m_glyph_advances;
- mutable CGPoint* m_glyph_positions;
- CTTypesetterRef m_typesetter;
- CTLineRef m_line;
- mutable bool m_has_bound_rec;
- mutable Rectangle m_bound_rect;
- CGFloat m_base_advance;
- mutable CGFloat m_cached_width;
- mutable CFIndex m_current_run_index;
- mutable CFIndex m_current_glyph_index;
- mutable CFIndex m_current_glyphrun_index;
- mutable CFArrayRef m_runs;
-
-};
-
-#endif // _VCL_IOS_CORETEXT_SALCORETEXTLAYOUT_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/ios/salcoretextstyle.hxx b/vcl/inc/ios/salcoretextstyle.hxx
deleted file mode 100644
index eafba5144226..000000000000
--- a/vcl/inc/ios/salcoretextstyle.hxx
+++ /dev/null
@@ -1,59 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef _VCL_AQUA_CORETEXT_SALCORETEXTSTYLE_HXX
-#define _VCL_AQUA_CORETEXT_SALCORETEXTSTYLE_HXX
-
-#include "ios/salgdicommon.hxx"
-
-class FontSelectPattern;
-class CoreTextPhysicalFontFace;
-
-class CoreTextStyleInfo
-{
-public:
- CoreTextStyleInfo();
- ~CoreTextStyleInfo();
- CTFontRef GetFont() const { return m_CTFont; };
- CoreTextPhysicalFontFace* GetFontFace() const { return m_font_face; };
- long GetFontStretchedSize() const;
- float GetFontStretchFactor() const { return m_stretch_factor; };
- CTParagraphStyleRef GetParagraphStyle() const { return m_CTParagraphStyle; } ;
- CGSize GetSize() const;
- CGColorRef GetColor() const { return m_color; } ;
- void SetColor(SalColor color);
- void SetColor(void);
- void SetFont(FontSelectPattern* requested_font);
-
-private:
- bool m_fake_bold;
- bool m_fake_italic;
- CGAffineTransform m_matrix;
- float m_stretch_factor;
- float m_font_scale;
- float m_fake_dpi_scale;
- CTParagraphStyleRef m_CTParagraphStyle;
- CTFontRef m_CTFont;
- CGColorRef m_color;
- CoreTextPhysicalFontFace* m_font_face;
-};
-
-#endif // _VCL_AQUA_CORETEXT_SALCORETEXTSTYLE_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/ios/salframe.h b/vcl/inc/ios/salframe.h
index b3d64389ca0b..9ca4fe72f4ed 100644
--- a/vcl/inc/ios/salframe.h
+++ b/vcl/inc/ios/salframe.h
@@ -34,7 +34,7 @@
#include <boost/shared_ptr.hpp>
-class IosSalGraphics;
+class QuartzSalGraphics;
class IosSalFrame;
class IosSalTimer;
class IosSalInstance;
@@ -53,7 +53,7 @@ public:
UIWindow* mpWindow;
UIView* mpView;
CGRect maScreenRect; // for mirroring purposes
- IosSalGraphics* mpGraphics;
+ QuartzSalGraphics* mpGraphics;
IosSalFrame* mpParent;
SystemEnvData maSysData;
int mnMinWidth; // min. client width in pixels
diff --git a/vcl/inc/ios/salgdi.h b/vcl/inc/ios/salgdi.h
deleted file mode 100644
index ac00f8c7918e..000000000000
--- a/vcl/inc/ios/salgdi.h
+++ /dev/null
@@ -1,307 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef _VCL_IOS_SALGDI_H
-#define _VCL_IOS_SALGDI_H
-
-#include "basegfx/polygon/b2dpolypolygon.hxx"
-
-#include "ios/iosvcltypes.h"
-#include "ios/salcoretextfontutils.hxx"
-#include "ios/salframe.h"
-#include "salgdi.hxx"
-
-#include "ios/salgdicommon.hxx"
-
-class CoreTextStyleInfo;
-
-// -------------------
-// - IosSalGraphics -
-// -------------------
-class IosSalGraphics : public SalGraphics
-{
- friend class CoreTextLayout;
-protected:
- IosSalFrame* mpFrame;
- CGLayerRef mxLayer; //< Quartz graphics layer
- CGContextRef mrContext; //< Quartz drawing context
- class XorEmulation* mpXorEmulation;
- int mnXorMode; //< 0: off 1: on 2: invert only
- int mnWidth;
- int mnHeight;
- int mnBitmapDepth; //< zero unless bitmap
- long mnRealDPIX; //< device X-resolution of this graphics
- long mnRealDPIY; //< device Y-resolution of this graphics
-
- /// some graphics implementations (e.g. IosSalInfoPrinter) scale
- /// everything down by a factor (see SetupPrinterGraphics for details)
- /// so we have to compensate for it with the inverse factor
- double mfFakeDPIScale;
- double mfFontScale;
-
-
- CGMutablePathRef mxClipPath; //< path representing current clip region
-
- /// Drawing colors
- RGBAColor maLineColor; //< pen color RGBA
- RGBAColor maFillColor; //< brush color RGBA
-
- bool mbNonAntialiasedText; //< allows text to be rendered without antialiasing
-
- // Graphics types
-
- bool mbPrinter; //< is this a printer graphics
- bool mbVirDev; //< is this a virtual device graphics
- bool mbWindow; //< is this a window graphics
-
- CoreTextStyleInfo* m_style;
-
-public:
- IosSalGraphics();
- virtual ~IosSalGraphics();
-
- bool IsPenVisible() const { return maLineColor.IsVisible(); }
- bool IsBrushVisible() const { return maFillColor.IsVisible(); }
-
- void SetWindowGraphics( IosSalFrame* pFrame );
- void SetPrinterGraphics( CGContextRef, long nRealDPIX, long nRealDPIY, double fFakeScale );
- void SetVirDevGraphics( CGLayerRef, CGContextRef, int nBitDepth = 0 );
-
- void initResolution( UIWindow* );
- void copyResolution( IosSalGraphics& );
- void updateResolution();
-
- bool IsWindowGraphics() const { return mbWindow; }
- bool IsPrinterGraphics() const { return mbPrinter; }
- bool IsVirDevGraphics() const { return mbVirDev; }
- IosSalFrame* getGraphicsFrame() const { return mpFrame; }
- void setGraphicsFrame( IosSalFrame* pFrame ) { mpFrame = pFrame; }
-
- void ImplDrawPixel( long nX, long nY, const RGBAColor& ); // helper to draw single pixels
-
- bool CheckContext();
- CGContextRef GetContext();
- void UpdateWindow( CGRect& ); // delivered in UIView coordinates
- void RefreshRect( const CGRect& );
- void RefreshRect(float lX, float lY, float lWidth, float lHeight);
-
- void SetState();
- void UnsetState();
- // InvalidateContext does an UnsetState and sets mrContext to 0
- void InvalidateContext();
-
- virtual bool setClipRegion( const Region& );
-
- // draw --> LineColor and FillColor and RasterOp and ClipRegion
- virtual void drawPixel( long nX, long nY );
- virtual void drawPixel( long nX, long nY, SalColor nSalColor );
- virtual void drawLine( long nX1, long nY1, long nX2, long nY2 );
- virtual void drawRect( long nX, long nY, long nWidth, long nHeight );
- virtual void drawPolyLine( sal_uLong nPoints, const SalPoint* pPtAry );
- virtual void drawPolygon( sal_uLong nPoints, const SalPoint* pPtAry );
- virtual void drawPolyPolygon( sal_uLong nPoly, const sal_uLong* pPoints, PCONSTSALPOINT* pPtAry );
- virtual bool drawPolyPolygon( const ::basegfx::B2DPolyPolygon&, double fTransparency );
- virtual sal_Bool drawPolyLineBezier( sal_uLong nPoints, const SalPoint* pPtAry, const sal_uInt8* pFlgAry );
- virtual sal_Bool drawPolygonBezier( sal_uLong nPoints, const SalPoint* pPtAry, const sal_uInt8* pFlgAry );
- virtual sal_Bool drawPolyPolygonBezier( sal_uLong nPoly, const sal_uLong* pPoints,
- const SalPoint* const* pPtAry, const sal_uInt8* const* pFlgAry );
- virtual bool drawPolyLine(
- const ::basegfx::B2DPolygon&,
- double fTransparency,
- const ::basegfx::B2DVector& rLineWidths,
- basegfx::B2DLineJoin,
- com::sun::star::drawing::LineCap eLineCap);
-
- // CopyArea --> No RasterOp, but ClipRegion
- virtual void copyArea( long nDestX, long nDestY, long nSrcX, long nSrcY, long nSrcWidth,
- long nSrcHeight, sal_uInt16 nFlags );
-
- // CopyBits and DrawBitmap --> RasterOp and ClipRegion
- // CopyBits() --> pSrcGraphics == NULL, then CopyBits on same Graphics
- virtual void copyBits( const SalTwoRect* pPosAry, SalGraphics* pSrcGraphics );
- virtual void drawBitmap( const SalTwoRect* pPosAry, const SalBitmap& rSalBitmap );
- virtual void drawBitmap( const SalTwoRect* pPosAry,
- const SalBitmap& rSalBitmap,
- SalColor nTransparentColor );
- virtual void drawBitmap( const SalTwoRect* pPosAry,
- const SalBitmap& rSalBitmap,
- const SalBitmap& rTransparentBitmap );
- virtual void drawMask( const SalTwoRect* pPosAry,
- const SalBitmap& rSalBitmap,
- SalColor nMaskColor );
-
- virtual SalBitmap* getBitmap( long nX, long nY, long nWidth, long nHeight );
- virtual SalColor getPixel( long nX, long nY );
-
- // invert --> ClipRegion (only Windows or VirDevs)
- virtual void invert( long nX, long nY, long nWidth, long nHeight, SalInvert nFlags);
- virtual void invert( sal_uLong nPoints, const SalPoint* pPtAry, SalInvert nFlags );
-
- virtual sal_Bool drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, sal_uLong nSize );
-
- virtual bool drawAlphaBitmap( const SalTwoRect&,
- const SalBitmap& rSourceBitmap,
- const SalBitmap& rAlphaBitmap );
-
- virtual bool drawAlphaRect( long nX, long nY, long nWidth,
- long nHeight, sal_uInt8 nTransparency );
-
- CGPoint* makeCGptArray(sal_uLong nPoints, const SalPoint* pPtAry);
- // native widget rendering methods that require mirroring
- virtual sal_Bool hitTestNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion,
- const Point& aPos, sal_Bool& rIsInside );
- virtual sal_Bool drawNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion,
- ControlState nState, const ImplControlValue& aValue,
- const rtl::OUString& aCaption );
- virtual sal_Bool getNativeControlRegion( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion,
- ControlState nState, const ImplControlValue& aValue,
- const rtl::OUString& aCaption,
- Rectangle &rNativeBoundingRegion,
- Rectangle &rNativeContentRegion );
-
- // get device resolution
- virtual void GetResolution( long& rDPIX, long& rDPIY );
- // get the depth of the device
- virtual sal_uInt16 GetBitCount() const;
- // get the width of the device
- virtual long GetGraphicsWidth() const;
-
- // set the clip region to empty
- virtual void ResetClipRegion();
-
- // set the line color to transparent (= don't draw lines)
- virtual void SetLineColor();
- // set the line color to a specific color
- virtual void SetLineColor( SalColor nSalColor );
- // set the fill color to transparent (= don't fill)
- virtual void SetFillColor();
- // set the fill color to a specific color, shapes will be
- // filled accordingly
- virtual void SetFillColor( SalColor nSalColor );
- // enable/disable XOR drawing
- virtual void SetXORMode( bool bSet, bool bInvertOnly );
- // set line color for raster operations
- virtual void SetROPLineColor( SalROPColor nROPColor );
- // set fill color for raster operations
- virtual void SetROPFillColor( SalROPColor nROPColor );
- // set the text color to a specific color
- virtual void SetTextColor( SalColor nSalColor );
- // set the font
- virtual sal_uInt16 SetFont( FontSelectPattern*, int nFallbackLevel );
- // get the current font's etrics
- virtual void GetFontMetric( ImplFontMetricData*, int nFallbackLevel );
- // get kernign pairs of the current font
- // return only PairCount if (pKernPairs == NULL)
- virtual sal_uLong GetKernPairs( sal_uLong nPairs, ImplKernPairData* pKernPairs );
- // get the repertoire of the current font
- virtual const ImplFontCharMap* GetImplFontCharMap() const;
- virtual bool GetImplFontCapabilities(vcl::FontCapabilities &rFontCapabilities) const;
- // graphics must fill supplied font list
- virtual void GetDevFontList( ImplDevFontList* );
- // graphics must drop any cached font info
- virtual void ClearDevFontCache();
- // graphics should call ImplAddDevFontSubstitute on supplied
- // OutputDevice for all its device specific preferred font substitutions
- virtual void GetDevFontSubstList( OutputDevice* );
- virtual bool AddTempDevFont( ImplDevFontList*, const rtl::OUString& rFileURL,
- const rtl::OUString& rFontName );
- // CreateFontSubset: a method to get a subset of glyhps of a font
- // inside a new valid font file
- // returns TRUE if creation of subset was successfull
- // parameters: rToFile: contains a osl file URL to write the subset to
- // pFont: describes from which font to create a subset
- // pGlyphIDs: the glyph ids to be extracted
- // pEncoding: the character code corresponding to each glyph
- // pWidths: the advance widths of the correspoding glyphs (in PS font units)
- // nGlyphs: the number of glyphs
- // rInfo: additional outgoing information
- // implementation note: encoding 0 with glyph id 0 should be added implicitly
- // as "undefined character"
- virtual sal_Bool CreateFontSubset( const rtl::OUString& rToFile,
- const PhysicalFontFace* pFont,
- long* pGlyphIDs,
- sal_uInt8* pEncoding,
- sal_Int32* pWidths,
- int nGlyphs,
- FontSubsetInfo& rInfo);
-
- // GetFontEncodingVector: a method to get the encoding map Unicode
- // to font encoded character; this is only used for type1 fonts and
- // may return NULL in case of unknown encoding vector
- // if ppNonEncoded is set and non encoded characters (that is type1
- // glyphs with only a name) exist it is set to the corresponding
- // map for non encoded glyphs; the encoding vector contains -1
- // as encoding for these cases
- virtual const Ucs2SIntMap* GetFontEncodingVector( const PhysicalFontFace*, const Ucs2OStrMap** ppNonEncoded );
-
- // GetEmbedFontData: gets the font data for a font marked
- // embeddable by GetDevFontList or NULL in case of error
- // parameters: pFont: describes the font in question
- // pWidths: the widths of all glyphs from char code 0 to 255
- // pWidths MUST support at least 256 members;
- // rInfo: additional outgoing information
- // pDataLen: out parameter, contains the byte length of the returned buffer
- virtual const void* GetEmbedFontData( const PhysicalFontFace*,
- const sal_Ucs* pUnicodes,
- sal_Int32* pWidths,
- FontSubsetInfo& rInfo,
- long* pDataLen );
- // frees the font data again
- virtual void FreeEmbedFontData( const void* pData, long nDataLen );
-
- virtual void GetGlyphWidths( const PhysicalFontFace*,
- bool bVertical,
- Int32Vector& rWidths,
- Ucs2UIntMap& rUnicodeEnc );
-
- virtual sal_Bool GetGlyphBoundRect( sal_GlyphId nIndex, Rectangle& );
- virtual sal_Bool GetGlyphOutline( sal_GlyphId nIndex, basegfx::B2DPolyPolygon& );
-
- virtual SalLayout* GetTextLayout( ImplLayoutArgs&, int nFallbackLevel );
- virtual void DrawServerFontLayout( const ServerFontLayout& );
- virtual bool supportsOperation( OutDevSupportType ) const;
-
- // Query the platform layer for control support
- virtual sal_Bool IsNativeControlSupported( ControlType nType, ControlPart nPart );
-
- virtual SystemGraphicsData GetGraphicsData() const;
- virtual SystemFontData GetSysFontData( int /* nFallbacklevel */ ) const;
-
-private:
- // differences between VCL, Quartz and kHiThemeOrientation coordinate systems
- // make some graphics seem to be vertically-mirrored from a VCL perspective
- bool IsFlipped() const { return mbWindow; };
-
- void ApplyXorContext();
- void Pattern50Fill();
- UInt32 getState( ControlState nState );
- UInt32 getTrackState( ControlState nState );
- bool GetRawFontData( const PhysicalFontFace* pFontData,
- std::vector<unsigned char>& rBuffer,
- bool* pJustCFF );
-};
-
-inline void IosSalGraphics::RefreshRect( const CGRect& rRect )
-{
- RefreshRect( rRect.origin.x, rRect.origin.y, rRect.size.width, rRect.size.height );
-}
-
-#endif // _VCL_IOS_SALGDI_H
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/ios/salgdicommon.hxx b/vcl/inc/ios/salgdicommon.hxx
index c27ebef8d987..6d8edcfd95db 100644
--- a/vcl/inc/ios/salgdicommon.hxx
+++ b/vcl/inc/ios/salgdicommon.hxx
@@ -20,6 +20,8 @@
#ifndef _VCL_IOS_SALGDICOMMON_H
#define _VCL_IOS_SALGDICOMMON_H
+#include <vcl/salgtype.hxx>
+
// abstracting quartz color instead of having to use an CGFloat[] array
class RGBAColor
{
diff --git a/vcl/inc/ios/salvd.h b/vcl/inc/ios/salvd.h
index e82423acefc4..792b9d6d8732 100644
--- a/vcl/inc/ios/salvd.h
+++ b/vcl/inc/ios/salvd.h
@@ -21,7 +21,7 @@
#define _SV_SALVD_H
#include "ios/salcolorutils.hxx"
-#include "ios/salgdi.h"
+#include "coretext/salgdi.h"
#include "salvd.hxx"
@@ -39,8 +39,6 @@ typedef SalVirDevDataPtr *SalVirDevDataHandle;
// =======================================================================
-class IosSalGraphics;
-
class IosSalVirtualDevice : public SalVirtualDevice
{
private:
@@ -49,12 +47,12 @@ private:
CGContextRef mxBitmapContext;
int mnBitmapDepth;
CGLayerRef mxLayer; // Quartz layer
- IosSalGraphics* mpGraphics; // current VirDev graphics
+ QuartzSalGraphics* mpGraphics; // current VirDev graphics
void Destroy();
public:
- IosSalVirtualDevice( IosSalGraphics* pGraphic, long nDX, long nDY, sal_uInt16 nBitCount, const SystemGraphicsData *pData );
+ IosSalVirtualDevice( QuartzSalGraphics* pGraphic, long nDX, long nDY, sal_uInt16 nBitCount, const SystemGraphicsData *pData );
virtual ~IosSalVirtualDevice();
virtual SalGraphics* GetGraphics();