Add ITiledRenderable.
We want to have a simple interface that allows access to tiled rendering without digging into the internals of writer (and in the future calc/impress/draw). Change-Id: Ia9c278a48c919333186e5361ff25bb1ab603b846
This commit is contained in:
48
include/vcl/ITiledRenderable.hxx
Normal file
48
include/vcl/ITiledRenderable.hxx
Normal file
@@ -0,0 +1,48 @@
|
||||
/* -*- 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/.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef INCLUDED_VCL_ITILEDRENDERABLE_HXX
|
||||
#define INCLUDED_VCL_ITILEDRENDERABLE_HXX
|
||||
|
||||
#include <tools/gen.hxx>
|
||||
#include <vcl/virdev.hxx>
|
||||
|
||||
namespace vcl
|
||||
{
|
||||
|
||||
class VCL_DLLPUBLIC ITiledRenderable
|
||||
{
|
||||
public:
|
||||
virtual ~ITiledRenderable() {};
|
||||
|
||||
/**
|
||||
* Paint a tile to a given VirtualDevice.
|
||||
*
|
||||
* Output parameters are measured in pixels, tile parameters are in
|
||||
* twips.
|
||||
*/
|
||||
virtual void paintTile( VirtualDevice &rDevice,
|
||||
int nOutputWidth,
|
||||
int nOutputHeight,
|
||||
int nTilePosX,
|
||||
int nTilePosY,
|
||||
long nTileWidth,
|
||||
long nTileHeight ) = 0;
|
||||
|
||||
/**
|
||||
* Get the document size in twips.
|
||||
*/
|
||||
virtual Size getDocumentSize() = 0;
|
||||
|
||||
};
|
||||
|
||||
} // namespace vcl
|
||||
|
||||
#endif // INCLUDED_VCL_ITILEDRENDERABLE_HXX
|
@@ -67,6 +67,7 @@
|
||||
#include <cppuhelper/weak.hxx>
|
||||
#include <cppuhelper/implbase2.hxx>
|
||||
#include <cppuhelper/implbase4.hxx>
|
||||
#include <vcl/ITiledRenderable.hxx>
|
||||
|
||||
#include <unobaseclass.hxx>
|
||||
#include <viewopt.hxx>
|
||||
@@ -161,7 +162,8 @@ SwXTextDocumentBaseClass;
|
||||
|
||||
class SW_DLLPUBLIC SwXTextDocument : public SwXTextDocumentBaseClass,
|
||||
public SvxFmMSFactory,
|
||||
public SfxBaseModel
|
||||
public SfxBaseModel,
|
||||
public ::vcl::ITiledRenderable
|
||||
{
|
||||
private:
|
||||
class Impl;
|
||||
@@ -428,6 +430,16 @@ public:
|
||||
// ::com::sun::star::util::XCloneable
|
||||
virtual ::com::sun::star::uno::Reference< ::com::sun::star::util::XCloneable > SAL_CALL createClone( ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
|
||||
|
||||
// ITiledRenderable
|
||||
virtual void paintTile( VirtualDevice &rDevice,
|
||||
int nOutputWidth,
|
||||
int nOutputHeight,
|
||||
int nTilePosX,
|
||||
int nTilePosY,
|
||||
long nTileWidth,
|
||||
long nTileHeight ) SAL_OVERRIDE;
|
||||
virtual Size getDocumentSize() SAL_OVERRIDE;
|
||||
|
||||
void Invalidate();
|
||||
void Reactivate(SwDocShell* pNewDocShell);
|
||||
SwXDocumentPropertyHelper * GetPropertyHelper ();
|
||||
|
@@ -3119,6 +3119,24 @@ uno::Reference< util::XCloneable > SwXTextDocument::createClone( ) throw (uno::
|
||||
return uno::Reference< util::XCloneable >( xNewModel, UNO_QUERY );
|
||||
}
|
||||
|
||||
void SwXTextDocument::paintTile( VirtualDevice &rDevice,
|
||||
int nOutputWidth, int nOutputHeight,
|
||||
int nTilePosX, int nTilePosY,
|
||||
long nTileWidth, long nTileHeight )
|
||||
{
|
||||
SwDoc* pDoc = pDocShell->GetDoc();
|
||||
SwViewShell* pViewShell = pDoc->GetCurrentViewShell();
|
||||
pViewShell->PaintTile(rDevice, nOutputWidth, nOutputHeight,
|
||||
nTilePosX, nTilePosY, nTileWidth, nTileHeight);
|
||||
}
|
||||
|
||||
Size SwXTextDocument::getDocumentSize()
|
||||
{
|
||||
SwDoc* pDoc = pDocShell->GetDoc();
|
||||
SwViewShell* pViewShell = pDoc->GetCurrentViewShell();
|
||||
return pViewShell->GetDocSize();
|
||||
}
|
||||
|
||||
void * SAL_CALL SwXTextDocument::operator new( size_t t) throw()
|
||||
{
|
||||
return SwXTextDocumentBaseClass::operator new(t);
|
||||
|
Reference in New Issue
Block a user