summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vcl/headless/svpframe.cxx4
-rw-r--r--vcl/headless/svpgdi.cxx8
-rw-r--r--vcl/inc/headless/svpframe.hxx2
-rw-r--r--vcl/inc/headless/svpgdi.hxx73
-rw-r--r--vcl/inc/headless/svpvd.hxx4
-rw-r--r--vcl/inc/quartz/salbmp.h4
-rw-r--r--vcl/inc/quartz/salgdi.h37
-rw-r--r--vcl/quartz/salgdi.cxx74
-rw-r--r--vcl/quartz/salgdicommon.cxx1
-rw-r--r--vcl/quartz/salgdiutils.cxx20
10 files changed, 75 insertions, 152 deletions
diff --git a/vcl/headless/svpframe.cxx b/vcl/headless/svpframe.cxx
index dad80d1c3a4d..4df65242fe24 100644
--- a/vcl/headless/svpframe.cxx
+++ b/vcl/headless/svpframe.cxx
@@ -32,6 +32,10 @@ using namespace basegfx;
SvpSalFrame* SvpSalFrame::s_pFocusFrame = NULL;
+#ifdef IOS
+#define SvpSalGraphics AquaSalGraphics
+#endif
+
#ifndef IOS
namespace {
diff --git a/vcl/headless/svpgdi.cxx b/vcl/headless/svpgdi.cxx
index a72c901714a6..b65e7b973e0e 100644
--- a/vcl/headless/svpgdi.cxx
+++ b/vcl/headless/svpgdi.cxx
@@ -738,12 +738,4 @@ bool SvpSalGraphics::supportsOperation( OutDevSupportType ) const
#endif
-#ifdef IOS
-
-void SvpSalGraphics::RefreshRect(float /* lX */, float /* lY */, float /* lWidth */, float /* lHeight */)
-{
-}
-
-#endif
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/headless/svpframe.hxx b/vcl/inc/headless/svpframe.hxx
index 8e0bbd4da30c..4154252ac3b0 100644
--- a/vcl/inc/headless/svpframe.hxx
+++ b/vcl/inc/headless/svpframe.hxx
@@ -29,8 +29,8 @@
#include <list>
#ifdef IOS
-#define SvpSalGraphics AquaSalGraphics
#define SvpSalInstance AquaSalInstance
+#define SvpSalGraphics AquaSalGraphics
#endif
class SvpSalInstance;
diff --git a/vcl/inc/headless/svpgdi.hxx b/vcl/inc/headless/svpgdi.hxx
index 9ae3d0539796..23b76caeeea0 100644
--- a/vcl/inc/headless/svpgdi.hxx
+++ b/vcl/inc/headless/svpgdi.hxx
@@ -29,26 +29,13 @@
#include "sallayout.hxx"
#ifdef IOS
-#include "quartz/salgdi.h"
-#include <premac.h>
-#include <Foundation/Foundation.h>
-#include <CoreGraphics/CoreGraphics.h>
-#include <postmac.h>
-#endif
+#define SvpSalGraphics AquaSalGraphics
+#else
class ServerFont;
-#ifdef IOS
-// To keep changes to the CoreText code shared with AOO to a minimum,
-// let's continue calling the SalGraphics subclass "AquaSalGraphics" even if it
-// is used by us also on iOS, where of course the term "Aqua" has no meaning at all.
-// (Note that even on OS X, using the term "Aqua" is a misunderstanding or obsolete.)
-#define SvpSalGraphics AquaSalGraphics
-#endif
-
class SvpSalGraphics : public SalGraphics
{
-#ifndef IOS
basebmp::BitmapDeviceSharedPtr m_aDevice;
basebmp::BitmapDeviceSharedPtr m_aOrigDevice;
@@ -84,42 +71,6 @@ private:
public:
void setDevice( basebmp::BitmapDeviceSharedPtr& rDevice );
-#else
- friend class CTLayout;
-
- CGLayerRef mxLayer;
- // mirror AquaSalVirtualDevice::mbForeignContext for SvpSalGraphics objects related to such
- bool mbForeignContext;
- CGContextRef mrContext;
- int mnContextStackDepth;
- class XorEmulation* mpXorEmulation;
- int mnXorMode; // 0: off 1: on 2: invert only
- int mnWidth;
- int mnHeight;
- int mnBitmapDepth; // zero unless bitmap
-
- /// path representing current clip region
- CGMutablePathRef mxClipPath;
-
- /// Drawing colors
- /// pen color RGBA
- RGBAColor maLineColor;
- /// brush color RGBA
- RGBAColor maFillColor;
-
- // Device Font settings
- const CoreTextFontData* mpFontData;
- CoreTextStyle* mpTextStyle;
- RGBAColor maTextColor;
- /// allows text to be rendered without antialiasing
- bool mbNonAntialiasedText;
-
- /// is this a printer graphics
- bool mbPrinter;
- /// is this a virtual device graphics
- bool mbVirDev;
-#endif
-
protected:
vcl::Region m_aClipRegion;
@@ -252,28 +203,10 @@ public:
virtual void BeginPaint() SAL_OVERRIDE { };
virtual void EndPaint() SAL_OVERRIDE { };
-#ifdef IOS
void SetVirDevGraphics( CGLayerRef xLayer, CGContextRef xContext, int = 0 );
+};
- bool CheckContext();
- CGContextRef GetContext();
- bool GetRawFontData( const PhysicalFontFace* pFontData,
- std::vector<unsigned char>& rBuffer,
- bool* pJustCFF );
- void RefreshRect( const CGRect& ) { };
- void RefreshRect(float lX, float lY, float lWidth, float lHeight);
- void SetState();
- void UnsetState();
- void InvalidateContext();
- bool IsPenVisible() const { return maLineColor.IsVisible(); }
- bool IsBrushVisible() const { return maFillColor.IsVisible(); }
- void ImplDrawPixel( long nX, long nY, const RGBAColor& ); // helper to draw single pixels
- CGPoint* makeCGptArray(sal_uInt32 nPoints, const SalPoint* pPtAry);
- bool IsFlipped() const { return false; }
- void ApplyXorContext();
- void Pattern50Fill();
#endif
-};
#endif // INCLUDED_VCL_INC_HEADLESS_SVPGDI_HXX
diff --git a/vcl/inc/headless/svpvd.hxx b/vcl/inc/headless/svpvd.hxx
index f6a9cc5307fe..e69bf8f4828c 100644
--- a/vcl/inc/headless/svpvd.hxx
+++ b/vcl/inc/headless/svpvd.hxx
@@ -24,10 +24,6 @@
#include <list>
-#ifdef IOS
-#define SvpSalGraphics AquaSalGraphics
-#endif
-
class SvpSalGraphics;
class SvpSalVirtualDevice : public SalVirtualDevice
diff --git a/vcl/inc/quartz/salbmp.h b/vcl/inc/quartz/salbmp.h
index c98cf2f22c21..7a012bb5e535 100644
--- a/vcl/inc/quartz/salbmp.h
+++ b/vcl/inc/quartz/salbmp.h
@@ -26,11 +26,7 @@
#include "vcl/salbtype.hxx"
-#ifdef MACOSX
#include "quartz/salgdi.h"
-#else
-#include "headless/svpgdi.hxx"
-#endif
#include "salinst.hxx"
#include "salvd.hxx"
diff --git a/vcl/inc/quartz/salgdi.h b/vcl/inc/quartz/salgdi.h
index 9a5d4da8ab05..2b7da0da981e 100644
--- a/vcl/inc/quartz/salgdi.h
+++ b/vcl/inc/quartz/salgdi.h
@@ -136,15 +136,15 @@ private:
CTFontContainer maFontContainer;
};
-#ifdef MACOSX
-
// - AquaSalGraphics -
class AquaSalGraphics : public SalGraphics
{
friend class CTLayout;
protected:
+#ifdef MACOSX
AquaSalFrame* mpFrame;
+#endif
CGLayerRef mxLayer; // Quartz graphics layer
CGContextRef mrContext; // Quartz drawing context
int mnContextStackDepth;
@@ -179,9 +179,17 @@ protected:
bool mbPrinter;
/// is this a virtual device graphics
bool mbVirDev;
+#ifdef MACOSX
/// is this a window graphics
bool mbWindow;
+#else // IOS
+
+ // mirror AquaSalVirtualDevice::mbForeignContext for SvpSalGraphics objects related to such
+ bool mbForeignContext;
+
+#endif
+
public:
AquaSalGraphics();
virtual ~AquaSalGraphics();
@@ -192,7 +200,7 @@ public:
void SetWindowGraphics( AquaSalFrame* pFrame );
void SetPrinterGraphics( CGContextRef, long nRealDPIX, long nRealDPIY );
void SetVirDevGraphics( CGLayerRef, CGContextRef, int nBitDepth = 0 );
-
+#ifdef MACOSX
void initResolution( NSWindow* );
void copyResolution( AquaSalGraphics& );
void updateResolution();
@@ -200,16 +208,18 @@ public:
bool IsWindowGraphics() const { return mbWindow; }
AquaSalFrame* getGraphicsFrame() const { return mpFrame; }
void setGraphicsFrame( AquaSalFrame* pFrame ) { mpFrame = pFrame; }
+#endif
void ImplDrawPixel( long nX, long nY, const RGBAColor& ); // helper to draw single pixels
bool CheckContext();
CGContextRef GetContext();
+#ifdef MACOSX
void UpdateWindow( NSRect& ); // delivered in NSView coordinates
-#if !defined(__LP64__) && !defined(NS_BUILD_32_LIKE_64)
- void RefreshRect( const CGRect& );
-#endif
void RefreshRect( const NSRect& );
+#else
+ void RefreshRect( const CGRect& ) {}
+#endif
void RefreshRect(float lX, float lY, float lWidth, float lHeight);
void SetState();
@@ -292,6 +302,7 @@ public:
CGPoint* makeCGptArray(sal_uInt32 nPoints, const SalPoint* pPtAry);
// native widget rendering methods that require mirroring
+#ifdef MACOSX
virtual bool hitTestNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion,
const Point& aPos, bool& rIsInside ) SAL_OVERRIDE;
virtual bool drawNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion,
@@ -300,6 +311,7 @@ public:
virtual bool getNativeControlRegion( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion, ControlState nState,
const ImplControlValue& aValue, const OUString& aCaption,
Rectangle &rNativeBoundingRegion, Rectangle &rNativeContentRegion ) SAL_OVERRIDE;
+#endif
// get device resolution
virtual void GetResolution( sal_Int32& rDPIX, sal_Int32& rDPIY ) SAL_OVERRIDE;
@@ -397,8 +409,10 @@ public:
virtual void DrawServerFontLayout( const ServerFontLayout& ) SAL_OVERRIDE;
virtual bool supportsOperation( OutDevSupportType ) const SAL_OVERRIDE;
+#ifdef MACOSX
// Query the platform layer for control support
virtual bool IsNativeControlSupported( ControlType nType, ControlPart nPart ) SAL_OVERRIDE;
+#endif
virtual SystemGraphicsData
GetGraphicsData() const SAL_OVERRIDE;
@@ -410,7 +424,7 @@ public:
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; }
+ bool IsFlipped() const;
void ApplyXorContext();
void Pattern50Fill();
@@ -423,14 +437,7 @@ private:
// --- some trivial inlines
-#if !defined(__LP64__) && !defined(NS_BUILD_32_LIKE_64)
-
-inline void AquaSalGraphics::RefreshRect( const CGRect& rRect )
-{
- RefreshRect( rRect.origin.x, rRect.origin.y, rRect.size.width, rRect.size.height );
-}
-
-#endif
+#ifdef MACOSX
inline void AquaSalGraphics::RefreshRect( const NSRect& rRect )
{
diff --git a/vcl/quartz/salgdi.cxx b/vcl/quartz/salgdi.cxx
index 0b1ffefa1944..2cb8271c570c 100644
--- a/vcl/quartz/salgdi.cxx
+++ b/vcl/quartz/salgdi.cxx
@@ -227,10 +227,11 @@ void CoreTextFontData::ReadMacCmapEncoding( void ) const
return;
}
-AquaSalGraphics::AquaSalGraphics()
+AquaSalGraphics::AquaSalGraphics():
#ifdef MACOSX
- : mpFrame( NULL )
- , mxLayer( NULL )
+ mpFrame( NULL ),
+#endif
+ mxLayer( NULL )
, mrContext( NULL )
#if OSL_DEBUG_LEVEL > 0
, mnContextStackDepth( 0 )
@@ -251,28 +252,10 @@ AquaSalGraphics::AquaSalGraphics()
, mbNonAntialiasedText( false )
, mbPrinter( false )
, mbVirDev( false )
+#ifdef MACOSX
, mbWindow( false )
#else
- : mxLayer( NULL )
, mbForeignContext( false )
- , mrContext( NULL )
-#if OSL_DEBUG_LEVEL > 0
- , mnContextStackDepth( 0 )
-#endif
- , mpXorEmulation( NULL )
- , mnXorMode( 0 )
- , mnWidth( 0 )
- , mnHeight( 0 )
- , mnBitmapDepth( 0 )
- , mxClipPath( NULL )
- , maLineColor( COL_WHITE )
- , maFillColor( COL_BLACK )
- , mpFontData( NULL )
- , mpTextStyle( NULL )
- , maTextColor( COL_BLACK )
- , mbNonAntialiasedText( false )
- , mbPrinter( false )
- , mbVirDev( false )
#endif
{
SAL_INFO( "vcl.quartz", "AquaSalGraphics::AquaSalGraphics() this=" << this );
@@ -315,15 +298,11 @@ AquaSalGraphics::~AquaSalGraphics()
}
}
-#ifndef IOS
-
SalGraphicsImpl* AquaSalGraphics::GetImpl() const
{
return NULL;
}
-#endif
-
void AquaSalGraphics::SetTextColor( SalColor nSalColor )
{
maTextColor = RGBAColor( nSalColor );
@@ -783,11 +762,46 @@ SystemFontData AquaSalGraphics::GetSysFontData( int /* nFallbacklevel */ ) const
return aSysFontData;
}
-#ifdef IOS
+bool AquaSalGraphics::IsFlipped() const
+{
+#ifdef MACOSX
+ return mbWindow;
+#else
+ return false;
+#endif
+}
+
+void AquaSalGraphics::RefreshRect(float lX, float lY, float lWidth, float lHeight)
+{
+#ifdef MACOSX
+ if( ! mbWindow ) // view only on Window graphics
+ return;
+
+ if( mpFrame )
+ {
+ // update a little more around the designated rectangle
+ // this helps with antialiased rendering
+ // Rounding down x and width can accumulate a rounding error of up to 2
+ // The decrementing of x, the rounding error and the antialiasing border
+ // require that the width and the height need to be increased by four
+ const Rectangle aVclRect(Point(static_cast<long int>(lX-1),
+ static_cast<long int>(lY-1) ),
+ Size( static_cast<long int>(lWidth+4),
+ static_cast<long int>(lHeight+4) ) );
+ mpFrame->maInvalidRect.Union( aVclRect );
+ }
+#else
+ (void) lX;
+ (void) lY;
+ (void) lWidth;
+ (void) lHeight;
+ return;
+#endif
+}
-// Note that "SvpSalGraphics" is actually called AquaSalGraphics for iOS
+#ifdef IOS
-bool SvpSalGraphics::CheckContext()
+bool AquaSalGraphics::CheckContext()
{
if (mbForeignContext)
{
@@ -799,7 +813,7 @@ bool SvpSalGraphics::CheckContext()
return false;
}
-CGContextRef SvpSalGraphics::GetContext()
+CGContextRef AquaSalGraphics::GetContext()
{
if ( !mrContext )
CheckContext();
diff --git a/vcl/quartz/salgdicommon.cxx b/vcl/quartz/salgdicommon.cxx
index 21c8d2a1ea5d..1c119ab7f45e 100644
--- a/vcl/quartz/salgdicommon.cxx
+++ b/vcl/quartz/salgdicommon.cxx
@@ -36,6 +36,7 @@
#ifdef IOS
#include "saldatabasic.hxx"
+#include <vcl/sysdata.hxx>
#endif
#if defined(IOS) && defined(DBG_UTIL)
diff --git a/vcl/quartz/salgdiutils.cxx b/vcl/quartz/salgdiutils.cxx
index 704fef56f9ce..403651b39116 100644
--- a/vcl/quartz/salgdiutils.cxx
+++ b/vcl/quartz/salgdiutils.cxx
@@ -173,26 +173,6 @@ CGContextRef AquaSalGraphics::GetContext()
return mrContext;
}
-void AquaSalGraphics::RefreshRect(float lX, float lY, float lWidth, float lHeight)
-{
- if( ! mbWindow ) // view only on Window graphics
- return;
-
- if( mpFrame )
- {
- // update a little more around the designated rectangle
- // this helps with antialiased rendering
- // Rounding down x and width can accumulate a rounding error of up to 2
- // The decrementing of x, the rounding error and the antialiasing border
- // require that the width and the height need to be increased by four
- const Rectangle aVclRect(Point(static_cast<long int>(lX-1),
- static_cast<long int>(lY-1) ),
- Size( static_cast<long int>(lWidth+4),
- static_cast<long int>(lHeight+4) ) );
- mpFrame->maInvalidRect.Union( aVclRect );
- }
-}
-
void AquaSalGraphics::UpdateWindow( NSRect& )
{
if( !mpFrame )