[Libreoffice-commits] .: 2 commits - basebmp/test basegfx/inc basegfx/Library_basegfx.mk basegfx/Package_inc.mk basegfx/source basegfx/StaticLibrary_basegfx_s.mk canvas/source oox/inc oox/source sdext/source sd/source svx/Library_svx.mk svx/source unusedcode.easy
Matus Kukan
mkukan at kemper.freedesktop.org
Thu Dec 22 06:34:58 PST 2011
basebmp/test/bmpdemo.cxx | 1
basegfx/Library_basegfx.mk | 2
basegfx/Package_inc.mk | 2
basegfx/StaticLibrary_basegfx_s.mk | 2
basegfx/inc/basegfx/curve/b2dquadraticbezier.hxx | 77
basegfx/inc/basegfx/polygon/b2dpolypolygonrasterconverter.hxx | 145 -
basegfx/source/curve/b2dquadraticbezier.cxx | 106
basegfx/source/polygon/b2dpolypolygonrasterconverter.cxx | 701 -----
basegfx/source/range/b2drangeclipper.cxx | 3
canvas/source/cairo/cairo_spritehelper.cxx | 1
canvas/source/directx/dx_spritehelper.cxx | 1
canvas/source/null/null_spritehelper.cxx | 1
oox/inc/oox/xls/drawingmanager.hxx | 30
oox/inc/oox/xls/ooxformulaparser.hxx | 3
oox/source/vml/vmlshape.cxx | 59
oox/source/xls/drawingfragment.cxx | 17
oox/source/xls/drawingmanager.cxx | 53
oox/source/xls/ooxformulaparser.cxx | 19
oox/source/xls/stylesbuffer.cxx | 81
sd/source/ui/slidesorter/view/SlsButtonBar.cxx | 137
sdext/source/presenter/PresenterController.cxx | 16
sdext/source/presenter/PresenterPaneAnimator.cxx | 1376 ----------
sdext/source/presenter/PresenterPaneAnimator.hxx | 76
sdext/source/presenter/PresenterSlideSorter.cxx | 1
sdext/source/presenter/makefile.mk | 1
svx/Library_svx.mk | 1
svx/source/table/celleditsource.cxx | 1056 -------
svx/source/table/celleditsource.hxx | 92
unusedcode.easy | 31
29 files changed, 4091 deletions(-)
New commits:
commit b769901d5a09d7c8bd9ef666a863ff5e7fce4c1e
Author: Matúš Kukan <matus.kukan at gmail.com>
Date: Thu Dec 22 11:27:50 2011 +0100
unusedcode: remove various unused classes
diff --git a/basebmp/test/bmpdemo.cxx b/basebmp/test/bmpdemo.cxx
index f300a02..6b94921 100644
--- a/basebmp/test/bmpdemo.cxx
+++ b/basebmp/test/bmpdemo.cxx
@@ -51,7 +51,6 @@
#include <basegfx/polygon/b2dlinegeometry.hxx>
#include <basegfx/polygon/b2dpolypolygon.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
-#include <basegfx/polygon/b2dpolypolygonrasterconverter.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
#include <basegfx/numeric/ftools.hxx>
diff --git a/basegfx/Library_basegfx.mk b/basegfx/Library_basegfx.mk
index af62918..fa0607b 100644
--- a/basegfx/Library_basegfx.mk
+++ b/basegfx/Library_basegfx.mk
@@ -97,7 +97,6 @@ $(eval $(call gb_Library_add_exception_objects,basegfx,\
basegfx/source/polygon/b3dpolygonclipper \
basegfx/source/polygon/b2dpolygonclipper \
basegfx/source/polygon/b2dpolypolygoncutter \
- basegfx/source/polygon/b2dpolypolygonrasterconverter \
basegfx/source/polygon/b2dpolygon \
basegfx/source/polygon/b2dpolygontriangulator \
basegfx/source/polygon/b2dpolypolygon \
@@ -117,7 +116,6 @@ $(eval $(call gb_Library_add_exception_objects,basegfx,\
basegfx/source/point/b2ipoint \
basegfx/source/curve/b2dbeziertools \
basegfx/source/curve/b2dcubicbezier \
- basegfx/source/curve/b2dquadraticbezier \
basegfx/source/color/bcolormodifier \
basegfx/source/color/bcolortools \
basegfx/source/raster/rasterconvert3d \
diff --git a/basegfx/Package_inc.mk b/basegfx/Package_inc.mk
index 6d1a4e7..5767a8f 100644
--- a/basegfx/Package_inc.mk
+++ b/basegfx/Package_inc.mk
@@ -80,7 +80,6 @@ $(eval $(call gb_Package_add_file,basegfx_inc,inc/basegfx/polygon/b3dpolypolygon
$(eval $(call gb_Package_add_file,basegfx_inc,inc/basegfx/polygon/b2dpolygoncutandtouch.hxx,basegfx/polygon/b2dpolygoncutandtouch.hxx))
$(eval $(call gb_Package_add_file,basegfx_inc,inc/basegfx/polygon/b2dlinegeometry.hxx,basegfx/polygon/b2dlinegeometry.hxx))
$(eval $(call gb_Package_add_file,basegfx_inc,inc/basegfx/polygon/b3dpolypolygontools.hxx,basegfx/polygon/b3dpolypolygontools.hxx))
-$(eval $(call gb_Package_add_file,basegfx_inc,inc/basegfx/polygon/b2dpolypolygonrasterconverter.hxx,basegfx/polygon/b2dpolypolygonrasterconverter.hxx))
$(eval $(call gb_Package_add_file,basegfx_inc,inc/basegfx/polygon/b3dpolygon.hxx,basegfx/polygon/b3dpolygon.hxx))
$(eval $(call gb_Package_add_file,basegfx_inc,inc/basegfx/polygon/b3dpolygonclipper.hxx,basegfx/polygon/b3dpolygonclipper.hxx))
$(eval $(call gb_Package_add_file,basegfx_inc,inc/basegfx/pixel/bpixel.hxx,basegfx/pixel/bpixel.hxx))
@@ -93,7 +92,6 @@ $(eval $(call gb_Package_add_file,basegfx_inc,inc/basegfx/point/b2dpoint.hxx,bas
$(eval $(call gb_Package_add_file,basegfx_inc,inc/basegfx/point/b2dhompoint.hxx,basegfx/point/b2dhompoint.hxx))
$(eval $(call gb_Package_add_file,basegfx_inc,inc/basegfx/point/b2ipoint.hxx,basegfx/point/b2ipoint.hxx))
$(eval $(call gb_Package_add_file,basegfx_inc,inc/basegfx/curve/b2dcubicbezier.hxx,basegfx/curve/b2dcubicbezier.hxx))
-$(eval $(call gb_Package_add_file,basegfx_inc,inc/basegfx/curve/b2dquadraticbezier.hxx,basegfx/curve/b2dquadraticbezier.hxx))
$(eval $(call gb_Package_add_file,basegfx_inc,inc/basegfx/curve/b2dbeziertools.hxx,basegfx/curve/b2dbeziertools.hxx))
$(eval $(call gb_Package_add_file,basegfx_inc,inc/basegfx/color/bcolor.hxx,basegfx/color/bcolor.hxx))
$(eval $(call gb_Package_add_file,basegfx_inc,inc/basegfx/color/bcolortools.hxx,basegfx/color/bcolortools.hxx))
diff --git a/basegfx/StaticLibrary_basegfx_s.mk b/basegfx/StaticLibrary_basegfx_s.mk
index 891e232..79d6ed9 100644
--- a/basegfx/StaticLibrary_basegfx_s.mk
+++ b/basegfx/StaticLibrary_basegfx_s.mk
@@ -102,7 +102,6 @@ $(eval $(call gb_StaticLibrary_add_generated_exception_objects,basegfx_s,\
CustomTarget/basegfx/source/polygon/b3dpolygonclipper \
CustomTarget/basegfx/source/polygon/b2dpolygonclipper \
CustomTarget/basegfx/source/polygon/b2dpolypolygoncutter \
- CustomTarget/basegfx/source/polygon/b2dpolypolygonrasterconverter \
CustomTarget/basegfx/source/polygon/b2dpolygon \
CustomTarget/basegfx/source/polygon/b2dpolygontriangulator \
CustomTarget/basegfx/source/polygon/b2dpolypolygon \
@@ -122,7 +121,6 @@ $(eval $(call gb_StaticLibrary_add_generated_exception_objects,basegfx_s,\
CustomTarget/basegfx/source/point/b2ipoint \
CustomTarget/basegfx/source/curve/b2dbeziertools \
CustomTarget/basegfx/source/curve/b2dcubicbezier \
- CustomTarget/basegfx/source/curve/b2dquadraticbezier \
CustomTarget/basegfx/source/color/bcolormodifier \
CustomTarget/basegfx/source/color/bcolortools \
CustomTarget/basegfx/source/raster/rasterconvert3d \
diff --git a/basegfx/inc/basegfx/curve/b2dquadraticbezier.hxx b/basegfx/inc/basegfx/curve/b2dquadraticbezier.hxx
deleted file mode 100644
index 10f5767..0000000
--- a/basegfx/inc/basegfx/curve/b2dquadraticbezier.hxx
+++ /dev/null
@@ -1,77 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _BGFX_CURVE_B2DQUADRATICBEZIER_HXX
-#define _BGFX_CURVE_B2DQUADRATICBEZIER_HXX
-
-#include <basegfx/point/b2dpoint.hxx>
-#include <basegfx/basegfxdllapi.h>
-
-//////////////////////////////////////////////////////////////////////////////
-
-namespace basegfx
-{
- class BASEGFX_DLLPUBLIC B2DQuadraticBezier
- {
- ::basegfx::B2DPoint maStartPoint;
- ::basegfx::B2DPoint maEndPoint;
- ::basegfx::B2DPoint maControlPoint;
-
- public:
- B2DQuadraticBezier();
- B2DQuadraticBezier(const B2DQuadraticBezier& rBezier);
- B2DQuadraticBezier(const ::basegfx::B2DPoint& rStart, const ::basegfx::B2DPoint& rEnd);
- B2DQuadraticBezier(const ::basegfx::B2DPoint& rStart,
- const ::basegfx::B2DPoint& rControlPoint, const ::basegfx::B2DPoint& rEnd);
- ~B2DQuadraticBezier();
-
- // assignment operator
- B2DQuadraticBezier& operator=(const B2DQuadraticBezier& rBezier);
-
- // compare operators
- bool operator==(const B2DQuadraticBezier& rBezier) const;
- bool operator!=(const B2DQuadraticBezier& rBezier) const;
-
- // test if control point is placed on the edge
- bool isBezier() const;
-
- // data interface
- ::basegfx::B2DPoint getStartPoint() const { return maStartPoint; }
- void setStartPoint(const ::basegfx::B2DPoint& rValue) { maStartPoint = rValue; }
-
- ::basegfx::B2DPoint getEndPoint() const { return maEndPoint; }
- void setEndPoint(const ::basegfx::B2DPoint& rValue) { maEndPoint = rValue; }
-
- ::basegfx::B2DPoint getControlPoint() const { return maControlPoint; }
- void setControlPoint(const ::basegfx::B2DPoint& rValue) { maControlPoint = rValue; }
- };
-} // end of namespace basegfx
-
-#endif /* _BGFX_CURVE_B2DQUADRATICBEZIER_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basegfx/inc/basegfx/polygon/b2dpolypolygonrasterconverter.hxx b/basegfx/inc/basegfx/polygon/b2dpolypolygonrasterconverter.hxx
deleted file mode 100644
index 36a4793..0000000
--- a/basegfx/inc/basegfx/polygon/b2dpolypolygonrasterconverter.hxx
+++ /dev/null
@@ -1,145 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _BGFX_POLYGON_B2DPOLYPOLYGONRASTERCONVERTER_HXX
-#define _BGFX_POLYGON_B2DPOLYPOLYGONRASTERCONVERTER_HXX
-
-#include <basegfx/point/b2dpoint.hxx>
-#include <basegfx/range/b2drectangle.hxx>
-#include <basegfx/polygon/b2dpolypolygon.hxx>
-#include <basegfx/polygon/b2dpolypolygonfillrule.hxx>
-#include <vector>
-#include <utility>
-#include <basegfx/basegfxdllapi.h>
-
-//////////////////////////////////////////////////////////////////////////////
-
-namespace basegfx
-{
- /** Raster-convert a poly-polygon.
-
- This class can raster-convert a given poly-polygon. Simply
- derive from this, and override the span() method, which will
- get called for every scanline span of the poly-polygon.
-
- @derive
- Overwrite span() with the render output method of your choice.
- */
- class BASEGFX_DLLPUBLIC B2DPolyPolygonRasterConverter
- {
- public:
- /** Create raster-converter for given poly-polygon
- */
- B2DPolyPolygonRasterConverter(const B2DPolyPolygon& rPolyPolyRaster);
-
- /** Create raster-converter for given poly-polygon and raster
- area.
-
- @param rPolyPolyRaster
- Poly-Polygon to raster convert
-
- @param rMinUpdateArea
- Minimal area to touch when raster-converting. The
- rectangle given here is guaranteed to be iterated through
- scanline by scanline (but the raster converter might
- actually use more scanlines, e.g. if the poly-polygon's
- bound rect is larger). One of the cases where this
- parameter comes in handy is when rendering in the 'off'
- spans, and a certain area must be filled. <em>Do not</em>
- use this for clipping, as described above, the touched
- area might also be larger.
- */
- B2DPolyPolygonRasterConverter(const B2DPolyPolygon& rPolyPolyRaster,
- const B2DRectangle& rRasterArea );
-
- virtual ~B2DPolyPolygonRasterConverter();
-
- /** Raster-convert the contained poly-polygon
-
- @param eFillRule
- Fill rule to use for span filling
- */
- void rasterConvert( FillRule eFillRule);
-
- /** Override this method, to be called for every scanline span
- of the poly-polygon
-
- @param rfXLeft
- The left end of the current horizontal span
-
- @param rfXRight
- The right end of the current horizontal span
-
- @param nY
- The y position of the current horizontal span
-
- @param bOn
- Denotes whether this span is on or off, according to the
- active fill rule.
- */
- virtual void span(const double& rfXLeft,
- const double& rfXRight,
- sal_Int32 nY,
- bool bOn ) = 0;
-
- /// @internal
- struct Vertex
- {
- inline Vertex();
- inline Vertex( const B2DPoint&, const B2DPoint&, bool );
-
- B2DPoint aP1;
- B2DPoint aP2;
- bool bDownwards;
- };
-
- private:
- // default: disabled copy/assignment
- B2DPolyPolygonRasterConverter(const B2DPolyPolygonRasterConverter&);
- B2DPolyPolygonRasterConverter& operator=( const B2DPolyPolygonRasterConverter& );
-
- void init();
-
- typedef ::std::vector<Vertex> VectorOfVertices;
- typedef ::std::vector<VectorOfVertices> VectorOfVertexVectors;
-
- /// The poly-polygon to raster-convert
- B2DPolyPolygon maPolyPolygon;
- /// Total bound rect of the poly-polygon
- const B2DRectangle maPolyPolyRectangle;
-
- /** Vector containing for each scanline a vector which in turn
- contains all vertices that start on the specific scanline
- */
- VectorOfVertexVectors maScanlines;
- };
-}
-
-#endif /* _BGFX_POLYGON_B2DPOLYPOLYGONRASTERCONVERTER_HXX */
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basegfx/source/curve/b2dquadraticbezier.cxx b/basegfx/source/curve/b2dquadraticbezier.cxx
deleted file mode 100644
index 4664f92..0000000
--- a/basegfx/source/curve/b2dquadraticbezier.cxx
+++ /dev/null
@@ -1,106 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <basegfx/curve/b2dquadraticbezier.hxx>
-#include <basegfx/numeric/ftools.hxx>
-
-//////////////////////////////////////////////////////////////////////////////
-
-namespace basegfx
-{
- B2DQuadraticBezier::B2DQuadraticBezier(const B2DQuadraticBezier& rBezier)
- : maStartPoint(rBezier.maStartPoint),
- maEndPoint(rBezier.maEndPoint),
- maControlPoint(rBezier.maControlPoint)
- {
- }
-
- B2DQuadraticBezier::B2DQuadraticBezier()
- {
- }
-
- B2DQuadraticBezier::B2DQuadraticBezier(const ::basegfx::B2DPoint& rStart, const ::basegfx::B2DPoint& rEnd)
- : maStartPoint(rStart),
- maEndPoint(rEnd)
- {
- }
-
- B2DQuadraticBezier::B2DQuadraticBezier(const ::basegfx::B2DPoint& rStart, const ::basegfx::B2DPoint& rControl, const ::basegfx::B2DPoint& rEnd)
- : maStartPoint(rStart),
- maEndPoint(rEnd),
- maControlPoint(rControl)
- {
- }
-
- B2DQuadraticBezier::~B2DQuadraticBezier()
- {
- }
-
- // assignment operator
- B2DQuadraticBezier& B2DQuadraticBezier::operator=(const B2DQuadraticBezier& rBezier)
- {
- maStartPoint = rBezier.maStartPoint;
- maEndPoint = rBezier.maEndPoint;
- maControlPoint = rBezier.maControlPoint;
-
- return *this;
- }
-
- // compare operators
- bool B2DQuadraticBezier::operator==(const B2DQuadraticBezier& rBezier) const
- {
- return (
- maStartPoint == rBezier.maStartPoint
- && maEndPoint == rBezier.maEndPoint
- && maControlPoint == rBezier.maControlPoint
- );
- }
-
- bool B2DQuadraticBezier::operator!=(const B2DQuadraticBezier& rBezier) const
- {
- return (
- maStartPoint != rBezier.maStartPoint
- || maEndPoint != rBezier.maEndPoint
- || maControlPoint != rBezier.maControlPoint
- );
- }
-
- // test if control vector is used
- bool B2DQuadraticBezier::isBezier() const
- {
- // if control vector is empty, bezier is not used
- if(maControlPoint == maStartPoint || maControlPoint == maEndPoint)
- return false;
-
- return true;
- }
-} // end of namespace basegfx
-
-// eof
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basegfx/source/polygon/b2dpolypolygonrasterconverter.cxx b/basegfx/source/polygon/b2dpolypolygonrasterconverter.cxx
deleted file mode 100644
index e0a4b58..0000000
--- a/basegfx/source/polygon/b2dpolypolygonrasterconverter.cxx
+++ /dev/null
@@ -1,701 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <basegfx/polygon/b2dpolypolygonrasterconverter.hxx>
-
-#include <basegfx/numeric/ftools.hxx>
-#include <basegfx/polygon/b2dpolygon.hxx>
-#include <basegfx/polygon/b2dpolygontools.hxx>
-#include <basegfx/polygon/b2dpolypolygontools.hxx>
-
-#include <boost/mem_fn.hpp>
-
-#include <algorithm>
-
-namespace basegfx
-{
- class radixSort {
-
- //! public interface
- public:
-
- //! default constructor
- radixSort( void );
-
- //! destructor
- ~radixSort( void );
-
- bool sort( const float *pInput, sal_uInt32 nNumElements, sal_uInt32 dwStride );
-
- inline sal_uInt32 *indices( void ) const { return m_indices1; }
-
- //! private attributes
- private:
-
- // current size of index list
- sal_uInt32 m_current_size;
-
- // last known size of index list
- sal_uInt32 m_previous_size;
-
- // index lists
- sal_uInt32 *m_indices1;
- sal_uInt32 *m_indices2;
-
- sal_uInt32 m_counter[256*4];
- sal_uInt32 m_offset[256];
-
- //! private methods
- private:
-
- bool resize( sal_uInt32 nNumElements );
- inline void reset_indices( void );
- bool prepareCounters( const float *pInput, sal_uInt32 nNumElements, sal_uInt32 dwStride );
- };
-
- inline radixSort::radixSort( void ) {
-
- m_indices1 = NULL;
- m_indices2 = NULL;
- m_current_size = 0;
- m_previous_size = 0;
-
- reset_indices();
- }
-
- inline radixSort::~radixSort( void ) {
-
- delete [] m_indices2;
- delete [] m_indices1;
- }
-
- bool radixSort::resize( sal_uInt32 nNumElements ) {
-
- if(nNumElements==m_previous_size)
- return true;
-
- if(nNumElements > m_current_size) {
-
- // release index lists
- if(m_indices2)
- delete [] m_indices2;
- if(m_indices1)
- delete [] m_indices1;
-
- // allocate new index lists
- m_indices1 = new sal_uInt32[nNumElements];
- m_indices2 = new sal_uInt32[nNumElements];
-
- // check for out of memory situation
- if(!m_indices1 || !m_indices2) {
- delete [] m_indices1;
- delete [] m_indices2;
- m_indices1 = NULL;
- m_indices2 = NULL;
- m_current_size = 0;
- return false;
- }
-
- m_current_size = nNumElements;
- }
-
- m_previous_size = nNumElements;
-
- // initialize indices
- reset_indices();
-
- return true;
- }
-
- inline void radixSort::reset_indices( void ) {
-
- for(sal_uInt32 i=0;i<m_current_size;i++)
- m_indices1[i] = i;
- }
-
- bool radixSort::prepareCounters( const float *pInput, sal_uInt32 nNumElements, sal_uInt32 dwStride ) {
-
- // clear counters
- sal_uInt32 *ptr = m_counter;
- for(int i=0; i<64; ++i)
- {
- *ptr++ = 0;
- *ptr++ = 0;
- *ptr++ = 0;
- *ptr++ = 0;
- *ptr++ = 0;
- *ptr++ = 0;
- *ptr++ = 0;
- *ptr++ = 0;
- *ptr++ = 0;
- *ptr++ = 0;
- *ptr++ = 0;
- *ptr++ = 0;
- *ptr++ = 0;
- *ptr++ = 0;
- *ptr++ = 0;
- *ptr++ = 0;
- }
-
- // prepare pointers to relevant memory addresses
- sal_uInt8 *p = (sal_uInt8*)pInput;
- sal_uInt8 *pe = p+(nNumElements*dwStride);
- sal_uInt32 *h0= &m_counter[0];
- sal_uInt32 *h1= &m_counter[256];
- sal_uInt32 *h2= &m_counter[512];
- sal_uInt32 *h3= &m_counter[768];
-
- sal_uInt32 *Indices = m_indices1;
- float previous_value = *(float *)(((sal_uInt8 *)pInput)+(m_indices1[0]*dwStride));
- bool bSorted = true;
- while(p!=pe) {
- float value = *(float *)(((sal_uInt8 *)pInput)+((*Indices++)*dwStride));
- if(value<previous_value) {
- bSorted = false;
- break;
- }
- previous_value = value;
- h0[*p++]++;
- h1[*p++]++;
- h2[*p++]++;
- h3[*p++]++;
- p += dwStride-4;
- }
- if(bSorted)
- return true;
- while(p!=pe) {
- h0[*p++]++;
- h1[*p++]++;
- h2[*p++]++;
- h3[*p++]++;
- p += dwStride-4;
- }
- return false;
- }
-
- bool radixSort::sort( const float *pInput, sal_uInt32 nNumElements, sal_uInt32 dwStride ) {
-
- if(!(pInput))
- return false;
- if(!(nNumElements))
- return false;
- if(!(resize(nNumElements)))
- return false;
-
- // prepare radix counters, return if already sorted
- if(prepareCounters(pInput,nNumElements,dwStride))
- return true;
-
- // count number of negative values
- sal_uInt32 num_negatives = 0;
- sal_uInt32 *h3= &m_counter[768];
- for(sal_uInt32 i=128;i<256;i++)
- num_negatives += h3[i];
-
- // perform passes, one for each byte
- for(sal_uInt32 j=0;j<4;j++) {
-
- // ignore this pass if all values have the same byte
- bool bRun = true;
- sal_uInt32 *current_counter = &m_counter[j<<8];
- sal_uInt8 unique_value = *(((sal_uInt8*)pInput)+j);
- if(current_counter[unique_value]==nNumElements)
- bRun=false;
-
- // does the incoming byte contain the sign bit?
- sal_uInt32 i;
- if(j!=3) {
- if(bRun) {
- m_offset[0] = 0;
- for(i=1;i<256;i++)
- m_offset[i] = m_offset[i-1] + current_counter[i-1];
- sal_uInt8 *InputBytes = (sal_uInt8 *)pInput;
- sal_uInt32 *Indices = m_indices1;
- sal_uInt32 *IndicesEnd = &m_indices1[nNumElements];
- InputBytes += j;
- while(Indices!=IndicesEnd) {
- sal_uInt32 id = *Indices++;
- m_indices2[m_offset[InputBytes[id*dwStride]]++] = id;
- }
- sal_uInt32 *Tmp = m_indices1;
- m_indices1 = m_indices2;
- m_indices2 = Tmp;
- }
- }
- else {
- if(bRun) {
- m_offset[0] = num_negatives;
- for(i=1;i<128;i++)
- m_offset[i] = m_offset[i-1] + current_counter[i-1];
- m_offset[255] = 0;
- for(i=0;i<127;i++)
- m_offset[254-i] = m_offset[255-i] + current_counter[255-i];
- for(i=128;i<256;i++)
- m_offset[i] += current_counter[i];
- for(i=0;i<nNumElements;i++) {
- sal_uInt32 Radix = (*(sal_uInt32 *)(((sal_uInt8 *)pInput)+(m_indices1[i]*dwStride)))>>24;
- if(Radix<128) m_indices2[m_offset[Radix]++] = m_indices1[i];
- else m_indices2[--m_offset[Radix]] = m_indices1[i];
- }
- sal_uInt32 *Tmp = m_indices1;
- m_indices1 = m_indices2;
- m_indices2 = Tmp;
- }
- else {
- if(unique_value>=128) {
- for(i=0;i<nNumElements;i++)
- m_indices2[i] = m_indices1[nNumElements-i-1];
- sal_uInt32 *Tmp = m_indices1;
- m_indices1 = m_indices2;
- m_indices2 = Tmp;
- }
- }
- }
- }
-
- return true;
- }
-
- //************************************************************
- // Internal vertex storage of B2DPolyPolygonRasterConverter
- //************************************************************
-
- inline B2DPolyPolygonRasterConverter::Vertex::Vertex() :
- aP1(),
- aP2(),
- bDownwards( true )
- {
- }
-
- inline B2DPolyPolygonRasterConverter::Vertex::Vertex( const B2DPoint& rP1, const B2DPoint& rP2, bool bDown ) :
- aP1( rP1 ),
- aP2( rP2 ),
- bDownwards( bDown )
- {
- }
-
-
- //************************************************************
- // Helper class for holding horizontal line segments during raster
- // conversion
- //************************************************************
-
- namespace
- {
- class ImplLineNode
- {
- public:
- sal_Int32 mnYCounter;
- float mfXPos;
- float mfXDelta;
- bool mbDownwards;
-
- public:
- /**rP1 and rP2 must not have equal y values, when rounded
- to integer!
- */
- ImplLineNode(const B2DPoint& rP1, const B2DPoint& rP2, bool bDown) :
- mnYCounter( fround(rP2.getY()) - fround(rP1.getY()) ),
- mfXPos( (float)(rP1.getX()) ),
- mfXDelta((float) ((rP2.getX() - rP1.getX()) / mnYCounter) ),
- mbDownwards( bDown )
- {
- }
-
- /// get current x position
- const float& getXPos() const
- {
- return mfXPos;
- }
-
- /// returns true, if line ends on this Y value
- float nextLine()
- {
- if(mnYCounter>=0)
- {
- // go one step in Y
- mfXPos += mfXDelta;
- --mnYCounter;
- return mfXDelta;
- }
-
- return 0.0f;
- }
-
- bool isEnded() const
- {
- return mnYCounter<=0;
- }
-
- bool isDownwards() const
- {
- return mbDownwards;
- }
- };
- }
-
- typedef ::std::vector<ImplLineNode> VectorOfLineNodes;
-
-
- //************************************************************
- // Base2D PolyPolygon Raster Converter (Rasterizer)
- //************************************************************
-
- namespace
- {
- struct VertexComparator
- {
- bool operator()( const B2DPolyPolygonRasterConverter::Vertex& rLHS,
- const B2DPolyPolygonRasterConverter::Vertex& rRHS )
- {
- return rLHS.aP1.getX() < rRHS.aP1.getX();
- }
- };
- }
-
- void B2DPolyPolygonRasterConverter::init()
- {
- if(!maPolyPolyRectangle.isEmpty())
- {
- const sal_Int32 nMinY( fround(maPolyPolyRectangle.getMinY()) );
- const sal_Int32 nScanlines(fround(maPolyPolyRectangle.getMaxY()) - nMinY);
-
- maScanlines.resize( nScanlines+1 );
-
- // add all polygons
- for( sal_uInt32 i(0), nCount(maPolyPolygon.count());
- i < nCount;
- ++i )
- {
- // add all vertices
- const B2DPolygon& rPoly( maPolyPolygon.getB2DPolygon(i) );
- for( sal_uInt32 k(0), nVertices(rPoly.count());
- k<nVertices;
- ++k )
- {
- const B2DPoint& rP1( rPoly.getB2DPoint(k) );
- const B2DPoint& rP2( rPoly.getB2DPoint( (k + 1) % nVertices ) );
-
- const sal_Int32 nVertexYP1( fround(rP1.getY()) );
- const sal_Int32 nVertexYP2( fround(rP2.getY()) );
-
- // insert only vertices which are not strictly
- // horizontal. Note that the ImplLineNode relies on
- // this.
- if(nVertexYP1 != nVertexYP2)
- {
- if( nVertexYP2 < nVertexYP1 )
- {
- const sal_Int32 nStartScanline(nVertexYP2 - nMinY);
-
- // swap edges
- maScanlines[ nStartScanline ].push_back( Vertex(rP2, rP1, false) );
- }
- else
- {
- const sal_Int32 nStartScanline(nVertexYP1 - nMinY);
-
- maScanlines[ nStartScanline ].push_back( Vertex(rP1, rP2, true) );
- }
- }
- }
- }
-
- // now sort all scanlines, with increasing x coordinates
- VectorOfVertexVectors::iterator aIter( maScanlines.begin() );
- VectorOfVertexVectors::iterator aEnd( maScanlines.end() );
- while( aIter != aEnd )
- {
- ::std::sort( aIter->begin(),
- aIter->end(),
- VertexComparator() );
- ++aIter;
- }
- }
- }
-
- B2DPolyPolygonRasterConverter::B2DPolyPolygonRasterConverter( const B2DPolyPolygon& rPolyPoly ) :
- maPolyPolygon( rPolyPoly ),
- maPolyPolyRectangle( tools::getRange( rPolyPoly ) ),
- maScanlines()
- {
- init();
- }
-
- namespace
- {
- B2DRectangle getCombinedBounds( const B2DPolyPolygon& rPolyPolyRaster,
- const B2DRectangle& rRasterArea )
- {
- B2DRectangle aRect( tools::getRange( rPolyPolyRaster ) );
- aRect.expand( rRasterArea );
-
- return aRect;
- }
- }
-
- B2DPolyPolygonRasterConverter::B2DPolyPolygonRasterConverter( const B2DPolyPolygon& rPolyPolyRaster,
- const B2DRectangle& rRasterArea ) :
- maPolyPolygon( rPolyPolyRaster ),
- maPolyPolyRectangle(
- getCombinedBounds( rPolyPolyRaster,
- rRasterArea ) ),
- maScanlines()
- {
- init();
- }
-
- B2DPolyPolygonRasterConverter::~B2DPolyPolygonRasterConverter()
- {
- }
-
- namespace
- {
- class LineNodeGenerator
- {
- public:
- LineNodeGenerator( VectorOfLineNodes& rActiveVertices ) :
- mrActiveVertices( rActiveVertices )
- {
- }
-
- void operator()( const B2DPolyPolygonRasterConverter::Vertex& rVertex )
- {
- mrActiveVertices.push_back( ImplLineNode(rVertex.aP1,
- rVertex.aP2,
- rVertex.bDownwards) );
- }
-
- private:
- VectorOfLineNodes& mrActiveVertices;
- };
-
- struct LineNodeComparator
- {
- bool operator()( const ImplLineNode& rLHS, const ImplLineNode& rRHS )
- {
- return rLHS.getXPos() < rRHS.getXPos();
- }
- };
- }
-
- void B2DPolyPolygonRasterConverter::rasterConvert( FillRule eFillRule )
- {
- if( maScanlines.empty() )
- return; // no scanlines at all -> bail out
-
- const sal_Int32 nMinY( fround(maPolyPolyRectangle.getMinY()) );
- const sal_Int32 nScanlines(fround(maPolyPolyRectangle.getMaxY()) - nMinY);
-
- // Vector of currently active vertices. A vertex is active, if
- // it crosses or touches the current scanline.
- VectorOfLineNodes aActiveVertices;
-
- // mickey's optimized version...
- radixSort rs;
- std::size_t nb(0);
- std::size_t nb_previous(0);
- bool bSort(false);
-
- // process each scanline
- for( sal_Int32 y(0); y <= nScanlines; ++y )
- {
- // add vertices which start at current scanline into
- // active vertex vector
- ::std::for_each( maScanlines[y].begin(),
- maScanlines[y].end(),
- LineNodeGenerator( aActiveVertices ) );
- nb = aActiveVertices.size();
- if(nb != nb_previous)
- {
- nb_previous = nb;
- bSort = true;
- }
-
- // sort with increasing X
- if(bSort)
- {
- bSort = false;
-
- if( nb )
- {
- rs.sort(&aActiveVertices[0].mfXPos,
- nb,
- sizeof(ImplLineNode));
- }
- }
-
- const std::size_t nLen( nb );
- if( !nLen )
- {
- // empty scanline - call derived with an 'off' span
- // for the full width
- span( maPolyPolyRectangle.getMinX(),
- maPolyPolyRectangle.getMaxX(),
- nMinY + y,
- false );
- }
- else
- {
- const sal_Int32 nCurrY( nMinY + y );
-
- // scanline not empty - forward all scans to derived,
- // according to selected fill rule
-
- // TODO(P1): Maybe allow these 'off' span calls to be
- // switched off (or all 'on' span calls, depending on
- // use case scenario)
-
- // sorting didn't change the order of the elements
- // in memory but prepared a list of indices in sorted order.
- // thus we now process the nodes with an additional indirection.
- sal_uInt32 *sorted = rs.indices();
-
- // call derived with 'off' span for everything left of first active span
- if( aActiveVertices[sorted[0]].getXPos() > maPolyPolyRectangle.getMinX() )
- {
- span( maPolyPolyRectangle.getMinX(),
- aActiveVertices[sorted[0]].getXPos(),
- nCurrY,
- false );
- }
-
- switch( eFillRule )
- {
- default:
- OSL_FAIL("B2DPolyPolygonRasterConverter::rasterConvert(): Unexpected fill rule");
- return;
-
- case FillRule_EVEN_ODD:
- // process each span in current scanline, with
- // even-odd fill rule
- for( ::std::size_t i(0), nLength(aActiveVertices.size());
- i+1 < nLength;
- ++i )
- {
- sal_uInt32 nIndex = sorted[i];
- sal_uInt32 nNextIndex = sorted[i+1];
- span( aActiveVertices[nIndex].getXPos(),
- aActiveVertices[nNextIndex].getXPos(),
- nCurrY,
- i % 2 == 0 );
-
- float delta = aActiveVertices[nIndex].nextLine();
- if(delta > 0.0f)
- {
- if(aActiveVertices[nIndex].getXPos() > aActiveVertices[nNextIndex].getXPos())
- bSort = true;
- }
- else if(delta < 0.0f)
- {
- if(i)
- {
- sal_uInt32 nPrevIndex = sorted[i-1];
- if(aActiveVertices[nIndex].getXPos() < aActiveVertices[nPrevIndex].getXPos())
- bSort = true;
- }
- }
- }
- break;
-
- case FillRule_NONZERO_WINDING_NUMBER:
- // process each span in current scanline, with
- // non-zero winding numbe fill rule
- sal_Int32 nWindingNumber(0);
- for( ::std::size_t i(0), nLength(aActiveVertices.size());
- i+1 < nLength;
- ++i )
- {
- sal_uInt32 nIndex = sorted[i];
- sal_uInt32 nNextIndex = sorted[i+1];
- nWindingNumber += -1 + 2*aActiveVertices[nIndex].isDownwards();
-
- span( aActiveVertices[nIndex].getXPos(),
- aActiveVertices[nNextIndex].getXPos(),
- nCurrY,
- nWindingNumber != 0 );
-
- float delta = aActiveVertices[nIndex].nextLine();
- if(delta > 0.0f)
- {
- if(aActiveVertices[nIndex].getXPos() > aActiveVertices[nNextIndex].getXPos())
- bSort = true;
- }
- else if(delta < 0.0f)
- {
- if(i)
- {
- sal_uInt32 nPrevIndex = sorted[i-1];
- if(aActiveVertices[nIndex].getXPos() < aActiveVertices[nPrevIndex].getXPos())
- bSort = true;
- }
- }
- }
- break;
- }
-
- // call derived with 'off' span for everything right of last active span
- if( aActiveVertices[sorted[nb-1]].getXPos()+1.0 < maPolyPolyRectangle.getMaxX() )
- {
- span( aActiveVertices[sorted[nb-1]].getXPos()+1.0,
- maPolyPolyRectangle.getMaxX(),
- nCurrY,
- false );
- }
-
- // also call nextLine on very last line node
- sal_uInt32 nIndex = sorted[nb-1];
- float delta = aActiveVertices[nIndex].nextLine();
- if(delta < 0.0f)
- {
- if(nb)
- {
- sal_uInt32 nPrevIndex = sorted[nb-2];
- if(aActiveVertices[nIndex].getXPos() < aActiveVertices[nPrevIndex].getXPos())
- bSort = true;
- }
- }
- }
-
- // remove line nodes which have ended on the current scanline
- aActiveVertices.erase( ::std::remove_if( aActiveVertices.begin(),
- aActiveVertices.end(),
- ::boost::mem_fn( &ImplLineNode::isEnded ) ),
- aActiveVertices.end() );
- nb = aActiveVertices.size();
- if(nb != nb_previous)
- {
- nb_previous = nb;
- bSort = true;
- }
- }
- }
-}
-// eof
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basegfx/source/range/b2drangeclipper.cxx b/basegfx/source/range/b2drangeclipper.cxx
index 660f439..1deede8 100644
--- a/basegfx/source/range/b2drangeclipper.cxx
+++ b/basegfx/source/range/b2drangeclipper.cxx
@@ -620,9 +620,6 @@ namespace basegfx
// right event come last. This is advantageous for the
// clip algorithm below, see handleRightEdgeCrossing().
- // TODO(P3): Use radix sort (from
- // b2dpolypolygonrasterconverter, or have your own
- // templatized version).
std::stable_sort( o_rEventVector.begin(),
o_rEventVector.end() );
}
diff --git a/canvas/source/cairo/cairo_spritehelper.cxx b/canvas/source/cairo/cairo_spritehelper.cxx
index 8be1eeb..fa09c87 100644
--- a/canvas/source/cairo/cairo_spritehelper.cxx
+++ b/canvas/source/cairo/cairo_spritehelper.cxx
@@ -42,7 +42,6 @@
#include <basegfx/numeric/ftools.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
-#include <basegfx/polygon/b2dpolypolygonrasterconverter.hxx>
#include <basegfx/polygon/b2dpolygontriangulator.hxx>
#include <basegfx/polygon/b2dpolygoncutandtouch.hxx>
diff --git a/canvas/source/directx/dx_spritehelper.cxx b/canvas/source/directx/dx_spritehelper.cxx
index b773cb2..972fb68 100644
--- a/canvas/source/directx/dx_spritehelper.cxx
+++ b/canvas/source/directx/dx_spritehelper.cxx
@@ -43,7 +43,6 @@
#include <basegfx/numeric/ftools.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
-#include <basegfx/polygon/b2dpolypolygonrasterconverter.hxx>
#include <basegfx/polygon/b2dpolygontriangulator.hxx>
#include <basegfx/polygon/b2dpolygoncutandtouch.hxx>
diff --git a/canvas/source/null/null_spritehelper.cxx b/canvas/source/null/null_spritehelper.cxx
index e2eb5fd..be097ac 100644
--- a/canvas/source/null/null_spritehelper.cxx
+++ b/canvas/source/null/null_spritehelper.cxx
@@ -42,7 +42,6 @@
#include <basegfx/numeric/ftools.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
-#include <basegfx/polygon/b2dpolypolygonrasterconverter.hxx>
#include <basegfx/polygon/b2dpolygontriangulator.hxx>
#include <basegfx/polygon/b2dpolygoncutandtouch.hxx>
diff --git a/sd/source/ui/slidesorter/view/SlsButtonBar.cxx b/sd/source/ui/slidesorter/view/SlsButtonBar.cxx
index d2fa7c7..23f98ac 100644
--- a/sd/source/ui/slidesorter/view/SlsButtonBar.cxx
+++ b/sd/source/ui/slidesorter/view/SlsButtonBar.cxx
@@ -100,26 +100,6 @@ private:
namespace {
- /** Rectangular button bar that covers the whole width of the preview.
- */
- class RectangleBackgroundTheme : public ButtonBar::BackgroundTheme
- {
- public:
- RectangleBackgroundTheme(
- const ::boost::shared_ptr<Theme>& rpTheme,
- const ::std::vector<SharedButton>& rButtons);
- virtual ~RectangleBackgroundTheme() { }
- virtual BitmapEx CreateBackground (
- const OutputDevice& rTemplateDevice,
- const bool bIsButtonDown) const;
- virtual Point GetBackgroundLocation (void);
- virtual Rectangle GetButtonArea (void);
- protected:
- virtual void Layout (void);
- private:
- sal_Int32 mnBarHeight;
- };
-
/** Button bar is composed of three images, the left and right end of
the bar and the center image. Buttons are only placed over the
center image. The center image is painted as is, it is not scaled.
@@ -826,123 +806,6 @@ Button::IconSize ButtonBar::BackgroundTheme::GetIconSize (void) const
-
-//===== RectangleBackgroundTheme ============================================
-
-RectangleBackgroundTheme::RectangleBackgroundTheme (
- const ::boost::shared_ptr<Theme>& rpTheme,
- const ::std::vector<SharedButton>& rButtons)
- : BackgroundTheme(rpTheme, rButtons),
- mnBarHeight(0)
-{
-}
-
-
-
-
-BitmapEx RectangleBackgroundTheme::CreateBackground (
- const OutputDevice& rTemplateDevice,
- const bool bIsButtonDown) const
-{
- OSL_ASSERT(mpTheme);
-
- // Setup background color.
- Color aTopFillColor (mpTheme->GetGradientColor(
- Theme::Gradient_ButtonBackground,
- Theme::Fill1));
- Color aTopBorderColor (mpTheme->GetGradientColor(
- Theme::Gradient_ButtonBackground,
- Theme::Border1));
- Color aBottomFillColor (mpTheme->GetGradientColor(
- Theme::Gradient_ButtonBackground,
- Theme::Fill2));
- Color aBottomBorderColor (mpTheme->GetGradientColor(
- Theme::Gradient_ButtonBackground,
- Theme::Border2));
- if (bIsButtonDown)
- {
- aTopFillColor.DecreaseLuminance(50);
- aTopBorderColor.DecreaseLuminance(50);
- aBottomFillColor.DecreaseLuminance(50);
- aBottomBorderColor.DecreaseLuminance(50);
- }
-
- const int nWidth (maPreviewBoundingBox.GetWidth()+2);
- const int nHeight (mnBarHeight);
- const int nCenter (nHeight / 2);
-
- VirtualDevice aDevice (rTemplateDevice, 0, 8);
- aDevice.SetOutputSizePixel(Size(nWidth,nHeight));
-
- // Fill upper and lower half.
- aDevice.SetLineColor();
- aDevice.SetFillColor(aTopFillColor);
- aDevice.DrawRect(Rectangle(0,0,nWidth-1,nCenter));
- aDevice.SetFillColor(aBottomFillColor);
- aDevice.DrawRect(Rectangle(0,nCenter,nWidth-1,nHeight-1));
-
- // Draw border.
- aDevice.SetFillColor();
- aDevice.SetLineColor(aTopBorderColor);
- aDevice.DrawLine(Point(0,nCenter),Point(0,0));
- aDevice.DrawLine(Point(0,0), Point(nWidth-1,0));
- aDevice.DrawLine(Point(nWidth-1,0),Point(nWidth-1,nCenter));
- aDevice.SetLineColor(aBottomBorderColor);
- aDevice.DrawLine(Point(0,nCenter),Point(0,nHeight-1));
- aDevice.DrawLine(Point(0,nHeight-1), Point(nWidth-1,nHeight-1));
- aDevice.DrawLine(Point(nWidth-1,nHeight-1),Point(nWidth-1,nCenter));
-
- return aDevice.GetBitmapEx(Point(0,0), Size(nWidth,nHeight));
-}
-
-
-
-
-Point RectangleBackgroundTheme::GetBackgroundLocation (void)
-{
- return Point(
- maPreviewBoundingBox.Left()-1,
- maPreviewBoundingBox.Bottom() - mnBarHeight + 2);
-}
-
-
-
-
-Rectangle RectangleBackgroundTheme::GetButtonArea (void)
-{
- return Rectangle(
- maPreviewBoundingBox.Left(),
- maPreviewBoundingBox.Bottom() - mnBarHeight + 2,
- maPreviewBoundingBox.Right(),
- maPreviewBoundingBox.Bottom());
-}
-
-
-
-
-void RectangleBackgroundTheme::Layout (void)
-{
- if (maPreviewBoundingBox.GetWidth() < maMinimumLargeButtonAreaSize.Width())
- if (maPreviewBoundingBox.GetWidth() < maMinimumMediumButtonAreaSize.Width())
- {
- meIconSize = Button::IconSize_Small;
- mnBarHeight = maMinimumSmallButtonAreaSize.Height();
- }
- else
- {
- meIconSize = Button::IconSize_Medium;
- mnBarHeight = maMinimumMediumButtonAreaSize.Height();
- }
- else
- {
- meIconSize = Button::IconSize_Large;
- mnBarHeight = maMinimumLargeButtonAreaSize.Height();
- }
-}
-
-
-
-
//===== BitmapBackgroundTheme =================================================
BitmapBackgroundTheme::BitmapBackgroundTheme (
diff --git a/sdext/source/presenter/PresenterController.cxx b/sdext/source/presenter/PresenterController.cxx
index d6a50f5..3a4b5f6 100644
--- a/sdext/source/presenter/PresenterController.cxx
+++ b/sdext/source/presenter/PresenterController.cxx
@@ -38,7 +38,6 @@
#include "PresenterScreen.hxx"
#include "PresenterNotesView.hxx"
#include "PresenterPaintManager.hxx"
-#include "PresenterPaneAnimator.hxx"
#include "PresenterPaneBase.hxx"
#include "PresenterPaneContainer.hxx"
#include "PresenterPaneBorderPainter.hxx"
@@ -121,7 +120,6 @@ PresenterController::PresenterController (
mxCurrentSlide(),
mxNextSlide(),
mpWindowManager(new PresenterWindowManager(rxContext,mpPaneContainer,this)),
- mpCurrentPaneAnimation(),
mnWindowBackgroundColor(0x00ffffff),
mpTheme(),
mxMainWindow(),
@@ -260,7 +258,6 @@ void PresenterController::disposing (void)
mnCurrentSlideIndex = -1;
mxCurrentSlide = NULL;
mxNextSlide = NULL;
- mpCurrentPaneAnimation.reset();
mpTheme.reset();
{
Reference<lang::XComponent> xComponent (
@@ -576,19 +573,6 @@ Reference<drawing::XPresenterHelper> PresenterController::GetPresenterHelper (vo
-
-void PresenterController::HideSlideSorter (void)
-{
- if (mpCurrentPaneAnimation.get() != NULL)
- {
- mpCurrentPaneAnimation->HidePane();
- mpCurrentPaneAnimation.reset();
- }
-}
-
-
-
-
void PresenterController::ShowView (const OUString& rsViewURL)
{
PresenterPaneContainer::SharedPaneDescriptor pDescriptor (
diff --git a/sdext/source/presenter/PresenterPaneAnimator.cxx b/sdext/source/presenter/PresenterPaneAnimator.cxx
deleted file mode 100644
index e42923c..0000000
--- a/sdext/source/presenter/PresenterPaneAnimator.cxx
+++ /dev/null
@@ -1,1376 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#include "PresenterPaneAnimator.hxx"
-
-#include "PresenterAnimation.hxx"
-#include "PresenterAnimator.hxx"
-#include "PresenterCanvasHelper.hxx"
-#include "PresenterController.hxx"
-#include "PresenterGeometryHelper.hxx"
-#include "PresenterPaintManager.hxx"
-#include "PresenterPaneContainer.hxx"
-#include "PresenterPaneFactory.hxx"
-#include "PresenterSprite.hxx"
-#include "PresenterSpritePane.hxx"
-#include "PresenterWindowManager.hxx"
-
-#include <com/sun/star/awt/PosSize.hpp>
-#include <com/sun/star/awt/XWindowPeer.hpp>
-#include <com/sun/star/rendering/CompositeOperation.hpp>
-#include <boost/bind.hpp>
-#include <boost/bind/protect.hpp>
-#include <boost/enable_shared_from_this.hpp>
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::drawing::framework;
-using ::rtl::OUString;
-using ::std::vector;
-
-namespace sdext { namespace presenter {
-
-namespace {
-
- class PaneGroup;
-
- class PresenterPaneAnimatorBase
- : public ::boost::enable_shared_from_this<PresenterPaneAnimatorBase>,
- public PresenterPaneAnimator
- {
- public:
- PresenterPaneAnimatorBase (
- const css::uno::Reference<css::drawing::framework::XResourceId>& rxPaneId,
- const ::rtl::Reference<PresenterController>& rpPresenterController,
- const bool bAnimate,
- const EndActions& rShowEndActions,
- const EndActions& rEndEndActions);
- virtual ~PresenterPaneAnimatorBase (void);
-
- typedef ::std::vector< ::boost::function<void()> > EndOperators;
-
- void ActivatePanes (void);
- void ActivatePane (
- const css::uno::Reference<css::drawing::framework::XResourceId>& rxPaneId);
- void RestoreFrozenWindows (void);
- void FreezePanes (const Reference<rendering::XSpriteCanvas>& rxCanvas);
-
- protected:
- ::rtl::Reference<PresenterController> mpPresenterController;
- ::rtl::Reference<PresenterPaneContainer> mpPaneContainer;
- ::rtl::Reference<PresenterWindowManager> mpWindowManager;
- ::std::vector< ::boost::shared_ptr<PaneGroup> > maPaneGroups;
- css::uno::Reference<css::drawing::framework::XResourceId> mxCenterPaneId;
- bool mbDoAnimation;
- EndActions maShowEndActions;
- EndActions maHideEndActions;
-
- void DeactivatePanes (void);
- void ResizePane (
- const css::uno::Reference<css::drawing::framework::XResourceId>& rxPaneId,
- const geometry::RealRectangle2D& rBox);
- void DeactivatePane (
- const css::uno::Reference<css::drawing::framework::XResourceId>& rxPaneId);
- };
-
-
- class UnfoldInCenterAnimator : public PresenterPaneAnimatorBase
- {
- public:
- UnfoldInCenterAnimator (
- const css::uno::Reference<css::drawing::framework::XResourceId>& rxPaneId,
- const ::rtl::Reference<PresenterController>& rpPresenterController,
- const bool bAnimate,
- const EndActions& rShowEndActions,
- const EndActions& rEndEndActions);
-
- virtual ~UnfoldInCenterAnimator (void);
-
- virtual void ShowPane (void);
-
- virtual void HidePane (void);
-
- private:
- geometry::RealRectangle2D maCenterPaneBox;
-
- void SetupPaneGroups (void);
- geometry::RealRectangle2D MovePanesAway (
- const css::geometry::RealRectangle2D& rFreeCenterArea);
- };
-
-
- class MoveInFromBottomAnimator : public PresenterPaneAnimatorBase
- {
- public:
- MoveInFromBottomAnimator(
- const css::uno::Reference<css::drawing::framework::XResourceId>& rxPaneId,
- const ::rtl::Reference<PresenterController>& rpPresenterController,
- const bool bAnimate,
- const EndActions& rShowEndActions,
- const EndActions& rEndEndActions);
- virtual ~MoveInFromBottomAnimator (void);
-
- virtual void ShowPane (void);
- virtual void HidePane (void);
-
- private:
- ::boost::shared_ptr<PresenterSprite> maNewPaneSprite;
- geometry::RealRectangle2D maCenterPaneBox;
-
- void CreateShowAnimation (
- const css::uno::Reference<css::drawing::framework::XResourceId>& rxPaneId,
- const EndOperators& rpEndOperators,
- const css::uno::Reference<css::rendering::XSpriteCanvas>& rxSpriteCanvas,
- const bool bAnimate,
- const css::geometry::RealPoint2D& rStartLocation,
- const css::geometry::RealPoint2D& rEndLocation);
- };
-
-
- class TransparentOverlayAnimator : public PresenterPaneAnimatorBase
- {
- public:
- TransparentOverlayAnimator(
- const css::uno::Reference<css::drawing::framework::XResourceId>& rxPaneId,
- const ::rtl::Reference<PresenterController>& rpPresenterController,
- const bool bAnimate,
- const EndActions& rShowEndActions,
- const EndActions& rEndEndActions);
- virtual ~TransparentOverlayAnimator (void);
-
- virtual void ShowPane (void);
- virtual void HidePane (void);
-
- private:
- PresenterSprite maBackgroundSprite;
- void CreateBackgroundSprite (void);
- };
-
-
- class PaneDescriptor
- {
- public:
- PresenterPaneContainer::SharedPaneDescriptor mpPaneDescriptor;
-
- PaneDescriptor (const PresenterPaneContainer::SharedPaneDescriptor& rpDescriptor);
- void Restore (void) const;
- private:
- double mnLeft;
- double mnTop;
- double mnRight;
- double mnBottom;
- };
-
- class MultiAnimation : public PresenterAnimation
- {
- public:
- typedef ::boost::function<void(double)> Animation;
- MultiAnimation (const sal_uInt32 nDuration);
- void AddAnimation (const Animation& rAnimation);
- virtual void Run (const double nProgress, const sal_uInt64 nCurrentTime);
- private:
- vector<Animation> maAnimations;
- };
-
-
- class PaneGroup
- {
- public:
- PaneGroup (void);
- ~PaneGroup (void);
- void AddPane (const PresenterPaneContainer::SharedPaneDescriptor& rpPane);
- void CreateSubstitution (const Reference<rendering::XSpriteCanvas>& rxCanvas);
- void ThawPanes (void);
- void Restore (void);
- ::boost::shared_ptr<PresenterSprite> GetSubstitution (void) const;
- css::geometry::RealRectangle2D GetOriginalBoundingBox (void) const;
- css::geometry::RealRectangle2D GetCurrentBoundingBox (void) const;
- void MovePanes (
- const double nXOffset,
- const double nYOffset,
- const ::rtl::Reference<PresenterWindowManager>& rpWindowManager);
- void ActivatePanes (void);
- void DeactivatePanes (void);
- void HidePanes (void);
- void ShowPanes (void);
-
- private:
- vector<PaneDescriptor> maPanes;
- awt::Rectangle maOriginalBoundingBox;
- css::geometry::RealRectangle2D maCurrentBoundingBox;
- ::boost::shared_ptr<PresenterSprite> mpSubstitution;
-
- };
- typedef ::boost::shared_ptr<PaneGroup> SharedPaneGroup;
-
- void InterpolatePosition (
- const ::boost::function<void(geometry::RealPoint2D)>& rSetter,
- double nP,
- const geometry::RealPoint2D rInitialBox,
- const geometry::RealPoint2D rFinalBox);
-
- template<typename T>
- void InterpolateValue (
- const ::boost::function<void(T)>& rSetter,
- double nP,
- const T aInitialValue,
- const T aFinalValue);
-
- void SpriteTransform(
- const rtl::Reference<PresenterPaneContainer>& rpPaneContainer,
- const Reference<XResourceId>& rxPaneId,
- const Reference<awt::XWindow>& rxSpriteOwnerWindow,
- const ::boost::shared_ptr<PresenterPaintManager>& rpPaintManager,
- const bool bAppear,
- const double nX,
- const double nInitialTop,
- const double nFinalTop,
- const double nP);
-
- void SpritePaneMove (
- const rtl::Reference<PresenterPaneContainer>& rpPaneContainer,
- const Reference<XResourceId>& rxPaneId,
- const geometry::RealPoint2D& rLocation);
-
- geometry::RealPoint2D GetLocation (const geometry::RealRectangle2D& rBox);
- geometry::RealSize2D GetSize (const geometry::RealRectangle2D& rBox);
-
-
-} // end of anonymous namespace
-
-
-
-
-//===== PresenterPaneAnimator =================================================
-
-namespace {
-
-PresenterPaneAnimatorBase::PresenterPaneAnimatorBase (
- const css::uno::Reference<css::drawing::framework::XResourceId>& rxPaneId,
- const ::rtl::Reference<PresenterController>& rpPresenterController,
- const bool bAnimate,
- const EndActions& rShowEndActions,
- const EndActions& rHideEndActions)
- : mpPresenterController(rpPresenterController),
- mpPaneContainer(rpPresenterController->GetPaneContainer()),
- mpWindowManager(rpPresenterController->GetWindowManager()),
- maPaneGroups(),
- mxCenterPaneId(rxPaneId),
- mbDoAnimation(bAnimate),
- maShowEndActions(rShowEndActions),
- maHideEndActions(rHideEndActions)
-{
-}
-
-
-
-
-PresenterPaneAnimatorBase::~PresenterPaneAnimatorBase (void)
-{
-}
-
-
-
-
-void PresenterPaneAnimatorBase::FreezePanes (const Reference<rendering::XSpriteCanvas>& rxCanvas)
-{
- ::std::vector<SharedPaneGroup>::const_iterator iGroup;
- for (iGroup=maPaneGroups.begin(); iGroup!=maPaneGroups.end(); ++iGroup)
- {
- (*iGroup)->CreateSubstitution(rxCanvas);
- (*iGroup)->GetSubstitution()->MoveTo(GetLocation((*iGroup)->GetOriginalBoundingBox()));
- }
-}
-
-
-
-
-void PresenterPaneAnimatorBase::ActivatePanes (void)
-{
- ActivatePane(mxCenterPaneId);
-
- ::std::vector<SharedPaneGroup>::const_iterator iGroup;
- for (iGroup=maPaneGroups.begin(); iGroup!=maPaneGroups.end(); ++iGroup)
- {
- (*iGroup)->ShowPanes();
- (*iGroup)->ActivatePanes();
- (*iGroup)->GetSubstitution()->Hide();
- }
-
- mpWindowManager->Update();
-}
-
-
-
-
-void PresenterPaneAnimatorBase::DeactivatePanes (void)
-{
- ::std::vector<SharedPaneGroup>::const_iterator iGroup;
- for (iGroup=maPaneGroups.begin(); iGroup!=maPaneGroups.end(); ++iGroup)
- {
- (*iGroup)->GetSubstitution()->Show();
- (*iGroup)->DeactivatePanes();
- (*iGroup)->HidePanes();
- }
-
- mpWindowManager->Update();
-}
-
-
-
-
-void PresenterPaneAnimatorBase::ResizePane (
- const Reference<drawing::framework::XResourceId>& rxPaneId,
- const geometry::RealRectangle2D& rBox)
-{
- PresenterPaneContainer::SharedPaneDescriptor pDescriptor (
- mpPaneContainer->FindPaneId(rxPaneId));
- if (pDescriptor.get() != NULL)
- {
- mpWindowManager->SetPanePosSizeAbsolute (
- rxPaneId->getResourceURL(),
- rBox.X1,
- rBox.Y1,
- rBox.X2-rBox.X1,
- rBox.Y2-rBox.Y1);
- mpWindowManager->Layout();
- if ( ! pDescriptor->maSpriteProvider.empty())
- {
- pDescriptor->maSpriteProvider()->Resize(GetSize(rBox));
- }
- }
-}
-
-
-
-
-void PresenterPaneAnimatorBase::RestoreFrozenWindows (void)
-{
- ::std::vector<SharedPaneGroup>::const_iterator iGroup;
- for (iGroup=maPaneGroups.begin(); iGroup!=maPaneGroups.end(); ++iGroup)
- {
- (*iGroup)->Restore();
- (*iGroup)->ShowPanes();
- (*iGroup)->ActivatePanes();
- (*iGroup)->GetSubstitution()->Hide();
- }
- maPaneGroups.clear();
-
- ActivatePane(mxCenterPaneId);
-
- mpWindowManager->Update();
-}
-
-
-
-
-void PresenterPaneAnimatorBase::ActivatePane (
- const Reference<drawing::framework::XResourceId>& rxPaneId)
-{
- PresenterPaneContainer::SharedPaneDescriptor pDescriptor (
- mpPaneContainer->FindPaneId(rxPaneId));
- if (pDescriptor.get() != NULL)
- pDescriptor->SetActivationState(true);
-}
-
-
-
-
-void PresenterPaneAnimatorBase::DeactivatePane (
- const Reference<drawing::framework::XResourceId>& rxPaneId)
-{
- PresenterPaneContainer::SharedPaneDescriptor pDescriptor (
- mpPaneContainer->FindPaneId(rxPaneId));
- if (pDescriptor.get() != NULL)
- pDescriptor->SetActivationState(false);
-}
-
-
-
-
-//===== UnfoldInCenterAnimator ================================================
-
-UnfoldInCenterAnimator::UnfoldInCenterAnimator (
- const css::uno::Reference<css::drawing::framework::XResourceId>& rxPaneId,
- const ::rtl::Reference<PresenterController>& rpPresenterController,
- const bool bAnimate,
- const EndActions& rShowEndActions,
- const EndActions& rEndEndActions)
- : PresenterPaneAnimatorBase(rxPaneId, rpPresenterController, bAnimate,
- rShowEndActions, rEndEndActions)
-{
-}
-
-
-
-
-UnfoldInCenterAnimator::~UnfoldInCenterAnimator (void)
-{
-}
-
-
-
-
-void UnfoldInCenterAnimator::ShowPane (void)
-{
- OSL_ASSERT(mpWindowManager.get()!=NULL);
-
- Reference<awt::XWindow> xParentWindow (mpWindowManager->GetParentWindow(), UNO_QUERY);
- if ( ! xParentWindow.is())
- return;
-
- Reference<rendering::XSpriteCanvas> xCanvas (mpWindowManager->GetParentCanvas(), UNO_QUERY);
- if ( ! xCanvas.is())
- return;
-
- Reference<rendering::XBitmap> xParentBitmap (xCanvas, UNO_QUERY);
- if ( ! xParentBitmap.is())
- return;
-
- Reference<rendering::XGraphicDevice> xDevice(xCanvas->getDevice());
- if ( ! xDevice.is())
- return;
-
- awt::Rectangle aWindowBox (xParentWindow->getPosSize());
-
- // Create two pane groups that will be moved together. One contains the
- // notes view, the other group contains all other panes.
- SetupPaneGroups();
-
- // Setup the places where the two pane groups are moved to.
- maCenterPaneBox
- = MovePanesAway(geometry::RealRectangle2D(0,200,aWindowBox.Width, aWindowBox.Height-200));
-
- // Setup the final size of the new pane so that it fits into the space
- // between the two pane groups.
- ResizePane(mxCenterPaneId, maCenterPaneBox);
-
- // Avoid that the center pane updates its previews while being animated.
- DeactivatePane(mxCenterPaneId);
-
- // Replace the pane groups with sprites that look like the panes but can
- // be moved around much faster.
- FreezePanes(xCanvas);
-
- // The vertical center of the new pane.
- const double nY0 ((maPaneGroups[0]->GetOriginalBoundingBox().Y2
- + maPaneGroups[1]->GetOriginalBoundingBox().Y1) / 2);
-
- // Make sure that the new pane is painted once before the animation starts.
- SpriteTransform(
- mpPaneContainer,
- mxCenterPaneId,
- xParentWindow,
- mpPresenterController->GetPaintManager(),
- true,
- maCenterPaneBox.X1,
- nY0,
- maCenterPaneBox.Y1,
- 0);
- PresenterPaneContainer::SharedPaneDescriptor pDescriptor (
- mpPaneContainer->FindPaneId(mxCenterPaneId));
- if (pDescriptor.get() != NULL)
- {
- mpPresenterController->GetPaintManager()->Invalidate(
- pDescriptor->mxBorderWindow,
- true);
- }
-
- // Animate the upper and lower window bitmaps.
- ::boost::shared_ptr<MultiAnimation> pMultiAnimation (
- new MultiAnimation(mbDoAnimation ? 500 : 0));
-
- // Animate the pane group sprites to be moved up or down.
- vector<SharedPaneGroup>::const_iterator iGroup;
- for (iGroup=maPaneGroups.begin(); iGroup!=maPaneGroups.end(); ++iGroup)
- {
- pMultiAnimation->AddAnimation(
- ::boost::bind(
- InterpolatePosition,
- ::boost::protect(::boost::bind(
- &PresenterSprite::MoveTo, (*iGroup)->GetSubstitution(), _1)),
- _1,
- GetLocation((*iGroup)->GetOriginalBoundingBox()),
- GetLocation((*iGroup)->GetCurrentBoundingBox())));
- }
-
- // Animate the new center pane to expand.
- pMultiAnimation->AddAnimation(
- ::boost::bind(
- SpriteTransform,
- mpPaneContainer,
- mxCenterPaneId,
- xParentWindow,
- mpPresenterController->GetPaintManager(),
- true,
- maCenterPaneBox.X1,
- nY0,
- maCenterPaneBox.Y1,
- _1));
-
- // Call updateScreen after each animation step.
- if (xCanvas.is())
- pMultiAnimation->AddAnimation(
- ::boost::bind(&rendering::XSpriteCanvas::updateScreen, xCanvas, sal_False));
-
- // Activate the panes when the animation is over.
- pMultiAnimation->AddEndCallback(
- ::boost::bind(&PresenterPaneAnimatorBase::ActivatePanes, shared_from_this()));
- EndActions::const_iterator iAction;
- for (iAction=maShowEndActions.begin(); iAction!=maShowEndActions.end(); ++iAction)
- pMultiAnimation->AddEndCallback(*iAction);
-
- // Start the animation.
- ::boost::shared_ptr<PresenterAnimator> pAnimator (mpPresenterController->GetAnimator());
- OSL_ASSERT(pAnimator.get()!=NULL);
- pAnimator->AddAnimation(SharedPresenterAnimation(pMultiAnimation));
-
- mpWindowManager->Update();
-}
-
-
-
-
-void UnfoldInCenterAnimator::HidePane (void)
-{
- OSL_ASSERT(mpWindowManager.get()!=NULL);
-
- Reference<awt::XWindow> xParentWindow (mpWindowManager->GetParentWindow(), UNO_QUERY);
- if ( ! xParentWindow.is())
- return;
-
- DeactivatePanes();
- DeactivatePane(mxCenterPaneId);
-
- ::boost::shared_ptr<PresenterAnimator> pAnimator (mpPresenterController->GetAnimator());
- const awt::Rectangle aWindowBox (xParentWindow->getPosSize());
- const rendering::ViewState aViewState (
- geometry::AffineMatrix2D(1,0,0, 0,1,0),
- NULL);
- const rendering::RenderState aRenderState (
- geometry::AffineMatrix2D(1,0,0, 0,1,0),
- NULL,
- Sequence<double>(4),
- rendering::CompositeOperation::SOURCE);
-
- // Animate the uppder and lower window bitmaps.
- Reference<rendering::XSpriteCanvas> xSpriteCanvas (mpWindowManager->GetParentCanvas(), UNO_QUERY);
- ::boost::shared_ptr<MultiAnimation> pMultiAnimation (new MultiAnimation(mbDoAnimation ? 500 : 1));
-
- vector<SharedPaneGroup>::const_iterator iGroup;
- for (iGroup=maPaneGroups.begin(); iGroup!=maPaneGroups.end(); ++iGroup)
- {
- pMultiAnimation->AddAnimation(
- ::boost::bind(
- InterpolatePosition,
- ::boost::protect(::boost::bind(
- &PresenterSprite::MoveTo, (*iGroup)->GetSubstitution(), _1)),
- _1,
- GetLocation((*iGroup)->GetCurrentBoundingBox()),
- GetLocation((*iGroup)->GetOriginalBoundingBox())));
- }
-
- // Animate the new center pane to collapse.
- const double nY0 ((maPaneGroups[0]->GetOriginalBoundingBox().Y2
- + maPaneGroups[1]->GetOriginalBoundingBox().Y1) / 2);
- pMultiAnimation->AddAnimation(
- ::boost::bind(
- SpriteTransform,
- mpPaneContainer,
- mxCenterPaneId,
- xParentWindow,
- mpPresenterController->GetPaintManager(),
- false,
- maCenterPaneBox.X1,
- nY0,
- maCenterPaneBox.Y1,
- _1));
-
- if (mbDoAnimation)
- {
- pMultiAnimation->AddAnimation(
- ::boost::bind(&rendering::XSpriteCanvas::updateScreen, xSpriteCanvas, sal_False));
- }
- pMultiAnimation->AddEndCallback(
- ::boost::bind(&PresenterPaneAnimatorBase::RestoreFrozenWindows, shared_from_this()));
- EndActions::const_iterator iAction;
- for (iAction=maHideEndActions.begin(); iAction!=maHideEndActions.end(); ++iAction)
- pMultiAnimation->AddEndCallback(*iAction);
-
- pAnimator->AddAnimation(SharedPresenterAnimation(pMultiAnimation));
-}
-
-
-
-
-void UnfoldInCenterAnimator::SetupPaneGroups (void)
-{
- maPaneGroups.clear();
-
- // Setup the upper pane group.
- SharedPaneGroup pUpperPanes (new PaneGroup());
- pUpperPanes->AddPane(mpPaneContainer->FindPaneURL(
- PresenterPaneFactory::msCurrentSlidePreviewPaneURL));
- pUpperPanes->AddPane(mpPaneContainer->FindPaneURL(
- PresenterPaneFactory::msNextSlidePreviewPaneURL));
- pUpperPanes->AddPane(mpPaneContainer->FindPaneURL(
- PresenterPaneFactory::msToolBarPaneURL));
- pUpperPanes->AddPane(mpPaneContainer->FindPaneURL(
- PresenterPaneFactory::msHelpPaneURL));
- maPaneGroups.push_back(pUpperPanes);
-
- // Setup the lower pane group.
- SharedPaneGroup pLowerPanes (new PaneGroup());
- pLowerPanes->AddPane(mpPaneContainer->FindPaneURL(
- PresenterPaneFactory::msNotesPaneURL));
- maPaneGroups.push_back(pLowerPanes);
-}
-
-
-
-
-geometry::RealRectangle2D UnfoldInCenterAnimator::MovePanesAway (
- const geometry::RealRectangle2D& rFreeCenterArea)
-{
- SharedPaneGroup aUpperPanes = maPaneGroups[0];
- SharedPaneGroup aLowerPanes = maPaneGroups[1];
-
- // Move upper pane group out of the way.
- const double nTop (rFreeCenterArea.Y1);
- const double nUpperVerticalOffset (nTop - aUpperPanes->GetOriginalBoundingBox().Y2);
- aUpperPanes->MovePanes(0, nUpperVerticalOffset, mpWindowManager);
-
- // Move lower pane group out of the way.
- const double nBottom (rFreeCenterArea.Y2);
- const double nLowerVerticalOffset (nBottom - aLowerPanes->GetOriginalBoundingBox().Y1);
- aLowerPanes->MovePanes(0, nLowerVerticalOffset, mpWindowManager);
-
- return geometry::RealRectangle2D(
- ::std::min(
- aUpperPanes->GetOriginalBoundingBox().X1,
- aLowerPanes->GetOriginalBoundingBox().X1),
- nTop+20,
- ::std::max(
- aUpperPanes->GetOriginalBoundingBox().X2,
- aLowerPanes->GetOriginalBoundingBox().X2),
- nBottom-20);
-}
-
-
-
-
-//===== MoveInFromBottomAnimator ==============================================
-
-MoveInFromBottomAnimator::MoveInFromBottomAnimator (
- const css::uno::Reference<css::drawing::framework::XResourceId>& rxPaneId,
- const ::rtl::Reference<PresenterController>& rpPresenterController,
- const bool bAnimate,
- const EndActions& rShowEndActions,
- const EndActions& rEndEndActions)
- : PresenterPaneAnimatorBase(rxPaneId, rpPresenterController, bAnimate,
- rShowEndActions, rEndEndActions),
- maNewPaneSprite()
-{
-}
-
-
-
-
-MoveInFromBottomAnimator::~MoveInFromBottomAnimator (void)
-{
-}
-
-
-
-
-void MoveInFromBottomAnimator::ShowPane (void)
-{
- OSL_ASSERT(mpWindowManager.get()!=NULL);
-
- Reference<awt::XWindow> xParentWindow (mpWindowManager->GetParentWindow(), UNO_QUERY);
- if ( ! xParentWindow.is())
- return;
-
- Reference<rendering::XSpriteCanvas> xCanvas (mpWindowManager->GetParentCanvas(), UNO_QUERY);
- if ( ! xCanvas.is())
- return;
-
- Reference<rendering::XBitmap> xParentBitmap (xCanvas, UNO_QUERY);
- if ( ! xParentBitmap.is())
- return;
-
- Reference<rendering::XGraphicDevice> xDevice(xCanvas->getDevice());
- if ( ! xDevice.is())
- return;
-
- awt::Rectangle aWindowBox (xParentWindow->getPosSize());
-
- // Create a pane group that just contains the notes view.
- SharedPaneGroup pLowerPanes (new PaneGroup());
- pLowerPanes->AddPane(mpPaneContainer->FindPaneURL(
- PresenterPaneFactory::msNotesPaneURL));
- maPaneGroups.push_back(pLowerPanes);
-
- // Deactivate the panes that will take place in the animation.
- pLowerPanes->DeactivatePanes();
- DeactivatePane(mxCenterPaneId);
-
- // Set the size of the new pane.
- maCenterPaneBox = pLowerPanes->GetOriginalBoundingBox();
- ResizePane(mxCenterPaneId, maCenterPaneBox);
-
- geometry::RealPoint2D aStartLocation (maCenterPaneBox.X1, aWindowBox.Height);
- geometry::RealPoint2D aEndLocation (maCenterPaneBox.X1, maCenterPaneBox.Y1);
-
- // Get the sprite of the new pane, make it visible and move it to the
- // start location.
- PresenterPaneContainer::SharedPaneDescriptor pDescriptor (
- mpPaneContainer->FindPaneId(mxCenterPaneId));
- if (pDescriptor.get() != NULL)
- {
- if (pDescriptor->mxBorderWindow.is())
- pDescriptor->mxBorderWindow->setVisible(sal_True);
-
- maNewPaneSprite = pDescriptor->maSpriteProvider();
- if (maNewPaneSprite.get() != NULL)
- {
- maNewPaneSprite->MoveTo(aStartLocation);
- maNewPaneSprite->Show();
- }
- xCanvas->updateScreen(sal_False);
- }
-
- CreateShowAnimation(
- mxCenterPaneId,
- maShowEndActions,
- xCanvas,
- mbDoAnimation,
- aStartLocation,
- aEndLocation);
-
- mpWindowManager->Update();
-}
-
-
-
-
-void MoveInFromBottomAnimator::HidePane (void)
-{
- OSL_ASSERT(mpWindowManager.get()!=NULL);
-
- Reference<awt::XWindow> xParentWindow (mpWindowManager->GetParentWindow(), UNO_QUERY);
- if ( ! xParentWindow.is())
- return;
-
- Reference<rendering::XSpriteCanvas> xCanvas (mpWindowManager->GetParentCanvas(), UNO_QUERY);
- if ( ! xCanvas.is())
- return;
-
- DeactivatePanes();
- DeactivatePane(mxCenterPaneId);
-
- SharedPaneGroup aPanes (maPaneGroups[0]);
-
- aPanes->ShowPanes();
-
- ::boost::shared_ptr<MultiAnimation> pMultiAnimation (
- new MultiAnimation(mbDoAnimation ? 500 : 0));
- awt::Rectangle aWindowBox (xParentWindow->getPosSize());
-
- // Animate the new center pane to collapse.
- pMultiAnimation->AddAnimation(
- ::boost::bind(
- InterpolatePosition,
- ::boost::protect(::boost::bind(&SpritePaneMove, mpPaneContainer, mxCenterPaneId, _1)),
- _1,
- geometry::RealPoint2D(maCenterPaneBox.X1, maCenterPaneBox.Y1),
- geometry::RealPoint2D(maCenterPaneBox.X1, aWindowBox.Height)));
-
- if (mbDoAnimation)
- {
- pMultiAnimation->AddAnimation(
- ::boost::bind(&rendering::XSpriteCanvas::updateScreen, xCanvas, sal_False));
- }
- pMultiAnimation->AddEndCallback(
- ::boost::bind(&PresenterPaneAnimatorBase::RestoreFrozenWindows, shared_from_this()));
- EndActions::const_iterator iAction;
- for (iAction=maHideEndActions.begin(); iAction!=maHideEndActions.end(); ++iAction)
- pMultiAnimation->AddEndCallback(*iAction);
-
- ::boost::shared_ptr<PresenterAnimator> pAnimator (mpPresenterController->GetAnimator());
- pAnimator->AddAnimation(SharedPresenterAnimation(pMultiAnimation));
-}
-
-
-
-
-void MoveInFromBottomAnimator::CreateShowAnimation (
- const Reference<drawing::framework::XResourceId>& rxPaneId,
- const EndOperators& rEndOperators,
- const Reference<rendering::XSpriteCanvas>& rxSpriteCanvas,
- const bool bAnimate,
- const geometry::RealPoint2D& rStartLocation,
- const geometry::RealPoint2D& rEndLocation)
-{
- // Animate the uppder and lower window bitmaps.
- ::boost::shared_ptr<MultiAnimation> pMultiAnimation (new MultiAnimation(bAnimate ? 500 : 0));
-
- // Animate new pane to move in from the buttom.
- pMultiAnimation->AddAnimation(
- ::boost::bind(
- InterpolatePosition,
- ::boost::protect(::boost::bind(&SpritePaneMove, mpPaneContainer, rxPaneId, _1)),
- _1,
- rStartLocation,
- rEndLocation));
-
- // Call updateScreen after each animation step.
- if (rxSpriteCanvas.is())
- pMultiAnimation->AddAnimation(
- ::boost::bind(&rendering::XSpriteCanvas::updateScreen, rxSpriteCanvas, sal_False));
-
- // Activate the panes when the animation is over.
- pMultiAnimation->AddEndCallback(
- ::boost::bind(&PaneGroup::HidePanes, maPaneGroups[0]));
- pMultiAnimation->AddEndCallback(
- ::boost::bind(&PresenterPaneAnimatorBase::ActivatePane, shared_from_this(), mxCenterPaneId));
- EndActions::const_iterator iAction;
- for (iAction=rEndOperators.begin(); iAction!=rEndOperators.end(); ++iAction)
- pMultiAnimation->AddEndCallback(*iAction);
-
- // Start the animation.
- ::boost::shared_ptr<PresenterAnimator> pAnimator (mpPresenterController->GetAnimator());
- OSL_ASSERT(pAnimator.get()!=NULL);
- pAnimator->AddAnimation(SharedPresenterAnimation(pMultiAnimation));
-}
-
-
-
-
-
-//===== TransparentOverlayAnimator ============================================
-
-TransparentOverlayAnimator::TransparentOverlayAnimator (
- const css::uno::Reference<css::drawing::framework::XResourceId>& rxPaneId,
- const ::rtl::Reference<PresenterController>& rpPresenterController,
- const bool bAnimate,
- const EndActions& rShowEndActions,
- const EndActions& rEndEndActions)
- : PresenterPaneAnimatorBase(
- rxPaneId,
- rpPresenterController,
- bAnimate,
- rShowEndActions,
- rEndEndActions),
- maBackgroundSprite()
-{
-}
-
-
-
-
-TransparentOverlayAnimator::~TransparentOverlayAnimator (void)
-{
-}
-
-
-
-
-void TransparentOverlayAnimator::ShowPane (void)
-{
- EndActions::const_iterator iAction;
- for (iAction=maShowEndActions.begin(); iAction!=maShowEndActions.end(); ++iAction)
- (*iAction)();
-
- CreateBackgroundSprite();
-
- Reference<awt::XWindow> xParentWindow (mpWindowManager->GetParentWindow(), UNO_QUERY);
- if (xParentWindow.is())
- {
- const awt::Rectangle aWindowBox (xParentWindow->getPosSize());
- SharedPaneGroup pAllPanes (new PaneGroup());
- pAllPanes->AddPane(mpPaneContainer->FindPaneURL(
- PresenterPaneFactory::msCurrentSlidePreviewPaneURL));
- pAllPanes->AddPane(mpPaneContainer->FindPaneURL(
- PresenterPaneFactory::msNextSlidePreviewPaneURL));
- pAllPanes->AddPane(mpPaneContainer->FindPaneURL(
- PresenterPaneFactory::msToolBarPaneURL));
- pAllPanes->AddPane(mpPaneContainer->FindPaneURL(
- PresenterPaneFactory::msHelpPaneURL));
- pAllPanes->AddPane(mpPaneContainer->FindPaneURL(
- PresenterPaneFactory::msNotesPaneURL));
- maPaneGroups.push_back(pAllPanes);
- pAllPanes->DeactivatePanes();
- mpWindowManager->Update();
- }
-
- PresenterPaneContainer::SharedPaneDescriptor pDescriptor (
- mpPaneContainer->FindPaneId(mxCenterPaneId));
- if (pDescriptor.get() != NULL)
- {
- PresenterSpritePane* pPane = dynamic_cast<PresenterSpritePane*>(
- pDescriptor->mxPane.get());
- if (pPane != NULL)
- pPane->ShowTransparentBorder();
-
- pDescriptor->SetActivationState(true);
- if (pDescriptor->mxBorderWindow.is())
- pDescriptor->mxBorderWindow->setVisible(sal_True);
- }
-}
-
-
-
-
-void TransparentOverlayAnimator::HidePane (void)
-{
- maPaneGroups[0]->ActivatePanes();
- EndActions::const_iterator iAction;
- for (iAction=maHideEndActions.begin(); iAction!=maHideEndActions.end(); ++iAction)
- (*iAction)();
- mpWindowManager->Update();
-}
-
-
-
-
-void TransparentOverlayAnimator::CreateBackgroundSprite (void)
-{
- Reference<awt::XWindow> xParentWindow (mpWindowManager->GetParentWindow(), UNO_QUERY);
- Reference<rendering::XSpriteCanvas> xParentCanvas (mpWindowManager->GetParentCanvas(), UNO_QUERY);
- if (xParentWindow.is() && xParentCanvas.is())
- {
- const awt::Rectangle aWindowBox (xParentWindow->getPosSize());
- maBackgroundSprite.SetFactory(xParentCanvas);
- maBackgroundSprite.Resize(
- geometry::RealSize2D(aWindowBox.Width, aWindowBox.Height));
- maBackgroundSprite.MoveTo(
- geometry::RealPoint2D(aWindowBox.X, aWindowBox.Y));
- maBackgroundSprite.SetAlpha(0.5);
- maBackgroundSprite.Show();
-
- Reference<rendering::XCanvas> xCanvas (maBackgroundSprite.GetCanvas());
-
- if (xCanvas.is())
- {
- rendering::ViewState aViewState(
- geometry::AffineMatrix2D(1,0,0, 0,1,0),
- NULL);
-
- rendering::RenderState aRenderState(
- geometry::AffineMatrix2D(1,0,0, 0,1,0),
- NULL,
- Sequence<double>(4),
- rendering::CompositeOperation::SOURCE);
- PresenterCanvasHelper::SetDeviceColor(aRenderState, util::Color(0x80808080));
-
- Reference<rendering::XPolyPolygon2D> xPolygon (
- PresenterGeometryHelper::CreatePolygon(aWindowBox, xCanvas->getDevice()));
- if (xPolygon.is())
- xCanvas->fillPolyPolygon(
- xPolygon,
- aViewState,
- aRenderState);
- }
- }
-}
-
-
-
-
-//===== PaneGroup =============================================================
-
-PaneGroup::PaneGroup (void)
- : maPanes(),
- maOriginalBoundingBox(),
- maCurrentBoundingBox(),
- mpSubstitution(new PresenterSprite())
-{
-}
-
-
-
-
-PaneGroup::~PaneGroup (void)
-{
- mpSubstitution.reset();
-}
-
-
-
-
-void PaneGroup::AddPane (const PresenterPaneContainer::SharedPaneDescriptor& rpPane)
-{
- OSL_ASSERT(rpPane.get() != NULL);
-
- if (rpPane->mxBorderWindow.is())
- {
- PaneDescriptor aDescriptor (rpPane);
- maPanes.push_back(aDescriptor);
- maOriginalBoundingBox = PresenterGeometryHelper::Union(
- maOriginalBoundingBox,
- rpPane->mxBorderWindow->getPosSize());
- }
-}
-
-
-
-
-void PaneGroup::CreateSubstitution (const Reference<rendering::XSpriteCanvas>& rxCanvas)
-{
- // Get the bitmap of the background.
- Reference<rendering::XBitmap> xBackgroundBitmap (rxCanvas, UNO_QUERY);
- if ( ! xBackgroundBitmap.is())
- return;
-
- // Create the sprite.
- mpSubstitution->SetFactory(rxCanvas);
- mpSubstitution->Resize(
- geometry::RealSize2D(maOriginalBoundingBox.Width, maOriginalBoundingBox.Height));
-
- // Fill it with the background inside the bounding box.
- const rendering::ViewState aViewState (
- geometry::AffineMatrix2D(1,0,0, 0,1,0),
- NULL);
- const rendering::RenderState aRenderState (
- geometry::AffineMatrix2D(1,0,-maOriginalBoundingBox.X, 0,1,-maOriginalBoundingBox.Y),
- NULL,
- Sequence<double>(4),
- rendering::CompositeOperation::SOURCE);
-
- Reference<rendering::XCanvas> xSpriteCanvas (mpSubstitution->GetCanvas());
- if (xSpriteCanvas.is())
- xSpriteCanvas->drawBitmap(xBackgroundBitmap, aViewState, aRenderState);
-}
-
-
-
-
-void PaneGroup::Restore (void)
-{
- vector<PaneDescriptor>::iterator iPane;
- for (iPane=maPanes.begin(); iPane!=maPanes.end(); ++iPane)
- {
- iPane->Restore();
- }
-}
-
-
-
-::boost::shared_ptr<PresenterSprite> PaneGroup::GetSubstitution (void) const
-{
- return mpSubstitution;
-}
-
-
-
-
-geometry::RealRectangle2D PaneGroup::GetOriginalBoundingBox (void) const
-{
- return geometry::RealRectangle2D(
- maOriginalBoundingBox.X,
- maOriginalBoundingBox.Y,
- maOriginalBoundingBox.X + maOriginalBoundingBox.Width,
- maOriginalBoundingBox.Y + maOriginalBoundingBox.Height);
-}
-
-
-
-
-geometry::RealRectangle2D PaneGroup::GetCurrentBoundingBox (void) const
-{
- return maCurrentBoundingBox;
-}
-
-
-
-
-void PaneGroup::MovePanes (
- const double nXOffset,
- const double nYOffset,
- const ::rtl::Reference<PresenterWindowManager>& rpWindowManager
- )
-{
- awt::Rectangle aBBox;
- vector<PaneDescriptor>::iterator iPane;
- for (iPane=maPanes.begin(); iPane!=maPanes.end(); ++iPane)
- {
- awt::Rectangle aBox (iPane->mpPaneDescriptor->mxBorderWindow->getPosSize());
- aBox.X += sal_Int32(nXOffset);
- aBox.Y += sal_Int32(nYOffset);
- rpWindowManager->SetPanePosSizeAbsolute(
- iPane->mpPaneDescriptor->mxPaneId->getResourceURL(),
- aBox.X,
- aBox.Y,
- aBox.Width,
- aBox.Height);
- aBBox = PresenterGeometryHelper::Union(aBBox, aBox);
- }
- maCurrentBoundingBox = geometry::RealRectangle2D(
- aBBox.X, aBBox.Y, aBBox.X+aBBox.Width, aBBox.Y+aBBox.Height);
-}
-
-
-
-
-void PaneGroup::ActivatePanes (void)
-{
- vector<PaneDescriptor>::iterator iPane;
- for (iPane=maPanes.begin(); iPane!=maPanes.end(); ++iPane)
- {
- iPane->mpPaneDescriptor->SetActivationState(true);
- }
-}
-
-
-
-
-void PaneGroup::DeactivatePanes (void)
-{
- vector<PaneDescriptor>::iterator iPane;
- for (iPane=maPanes.begin(); iPane!=maPanes.end(); ++iPane)
- {
- iPane->mpPaneDescriptor->SetActivationState(false);
- }
-}
-
-
-
-
-void PaneGroup::ShowPanes (void)
-{
- vector<PaneDescriptor>::iterator iPane;
- for (iPane=maPanes.begin(); iPane!=maPanes.end(); ++iPane)
- {
- iPane->mpPaneDescriptor->mxBorderWindow->setVisible(sal_True);
- iPane->mpPaneDescriptor->mxContentWindow->setVisible(sal_True);
- }
-}
-
-
-
-
-void PaneGroup::HidePanes (void)
-{
- vector<PaneDescriptor>::iterator iPane;
- for (iPane=maPanes.begin(); iPane!=maPanes.end(); ++iPane)
- {
- iPane->mpPaneDescriptor->mxBorderWindow->setVisible(sal_False);
- iPane->mpPaneDescriptor->mxContentWindow->setVisible(sal_False);
- }
-}
-
-
-
-
-//===== PaneDescriptor ========================================================
-
-PaneDescriptor::PaneDescriptor (const PresenterPaneContainer::SharedPaneDescriptor& rpDescriptor)
- : mpPaneDescriptor(rpDescriptor),
- mnLeft(rpDescriptor->mnLeft),
- mnTop(rpDescriptor->mnTop),
- mnRight(rpDescriptor->mnRight),
- mnBottom(rpDescriptor->mnBottom)
-{
-}
-
-
-
-
-void PaneDescriptor::Restore (void) const
-{
- mpPaneDescriptor->mnLeft = mnLeft;
- mpPaneDescriptor->mnTop = mnTop;
- mpPaneDescriptor->mnRight = mnRight;
- mpPaneDescriptor->mnBottom = mnBottom;
-}
-
-
-
-
-//===== MultiAnimation ========================================================
-
-MultiAnimation::MultiAnimation (const sal_uInt32 nDuration)
- : PresenterAnimation(0, nDuration, 1000/50),
- maAnimations()
-{
-}
-
-
-
-
-void MultiAnimation::AddAnimation (const Animation& rAnimation)
-{
- maAnimations.push_back(rAnimation);
-}
-
-
-
-
-void MultiAnimation::Run (const double nProgress, const sal_uInt64 nCurrentTime)
-{
- (void)nCurrentTime;
- vector<Animation>::const_iterator iAnimation (maAnimations.begin());
- vector<Animation>::const_iterator iEnd (maAnimations.end());
- for ( ; iAnimation!=iEnd; ++iAnimation)
- (*iAnimation)(nProgress);
-}
-
-
-
-
-//===== functors ==============================================================
-
-void InterpolatePosition (
- const ::boost::function<void(geometry::RealPoint2D)>& rSetter,
- double nP,
- const geometry::RealPoint2D rInitialBox,
- const geometry::RealPoint2D rFinalBox)
-{
- const double nQ (1 - nP);
-
- OSL_TRACE("InterpolatePosition %f", nP);
- rSetter(
- geometry::RealPoint2D(
- nQ * rInitialBox.X + nP * rFinalBox.X,
- nQ * rInitialBox.Y + nP * rFinalBox.Y));
-}
-
-
-
-
-template<typename T>
- void InterpolateValue (
- const ::boost::function<void(T)>& rSetter,
- double nP,
- const T aInitialValue,
- const T aFinalValue)
-{
- const double nQ (1 - nP);
-
- rSetter(T(nQ * aInitialValue + nP * aFinalValue));
-}
-
-
-
-
-void SpriteTransform(
- const rtl::Reference<PresenterPaneContainer>& rpPaneContainer,
- const Reference<XResourceId>& rxPaneId,
- const Reference<awt::XWindow>& rxSpriteOwnerWindow,
- const ::boost::shared_ptr<PresenterPaintManager>& rpPaintManager,
- const bool bAppear,
- const double nX,
- const double nInitialTop,
- const double nFinalTop,
- const double nP)
-{
- OSL_ASSERT(rpPaintManager.get()!=NULL);
-
- PresenterPaneContainer::SharedPaneDescriptor pDescriptor (
- rpPaneContainer->FindPaneId(rxPaneId));
- if (pDescriptor.get() != NULL
- && ! pDescriptor->maSpriteProvider.empty()
- && pDescriptor->mxBorderWindow.is())
- {
- ::boost::shared_ptr<PresenterSprite> pSprite (pDescriptor->maSpriteProvider());
- if (pSprite.get())
- {
- // There seems to be a problem with sprites not correctly
- // invalidating the background when being transformed. As a
- // workaround invalidate the background in the bounding box of
- // the sprite before the transformation.
- rpPaintManager->Invalidate(
- rxSpriteOwnerWindow,
- awt::Rectangle(
- sal::static_int_cast<sal_Int32>(pSprite->GetLocation().X),
- sal::static_int_cast<sal_Int32>(pSprite->GetLocation().Y),
- sal::static_int_cast<sal_Int32>(pSprite->GetSize().Width),
- sal::static_int_cast<sal_Int32>(pSprite->GetSize().Height)));
-
- const double nYScale (bAppear ? nP : 1-nP);
- pSprite->Transform(geometry::AffineMatrix2D(
- 1, 0, 0,
- 0, nYScale, 0));
- pSprite->MoveTo(
- geometry::RealPoint2D(nX, nYScale*nFinalTop + (1-nYScale)*nInitialTop));
- pSprite->Show();
-
- pDescriptor->mxBorderWindow->setVisible(sal_True);
- }
- }
-}
-
-
-
-
-void SpritePaneMove (
- const rtl::Reference<PresenterPaneContainer>& rpPaneContainer,
- const Reference<XResourceId>& rxPaneId,
- const geometry::RealPoint2D& rLocation)
-{
- PresenterPaneContainer::SharedPaneDescriptor pDescriptor (
- rpPaneContainer->FindPaneId(rxPaneId));
- if (pDescriptor.get() != NULL
- && ! pDescriptor->maSpriteProvider.empty()
- && pDescriptor->mxBorderWindow.is())
- {
- ::boost::shared_ptr<PresenterSprite> pSprite (pDescriptor->maSpriteProvider());
- if (pSprite.get() != NULL)
- {
- pDescriptor->mxBorderWindow->setVisible(sal_True);
- pSprite->MoveTo(rLocation);
- }
- }
-}
-
-
-
-
-geometry::RealPoint2D GetLocation (const geometry::RealRectangle2D& rBox)
-{
- return geometry::RealPoint2D(rBox.X1, rBox.Y1);
-}
-
-
-
-
-geometry::RealSize2D GetSize (const geometry::RealRectangle2D& rBox)
-{
- return geometry::RealSize2D(rBox.X2-rBox.X1, rBox.Y2-rBox.Y1);
-}
-
-} // end of anonymous namespace
-
-
-
-
-} } // end of namespace ::sdext::presenter
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sdext/source/presenter/PresenterPaneAnimator.hxx b/sdext/source/presenter/PresenterPaneAnimator.hxx
deleted file mode 100644
index 6d3ab9e..0000000
--- a/sdext/source/presenter/PresenterPaneAnimator.hxx
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef SDEXT_PRESENTER_PRESENTER_PANE_ANIMATOR_HXXs
-#define SDEXT_PRESENTER_PRESENTER_PANE_ANIMATOR_HXX
-
-#include <com/sun/star/awt/Point.hpp>
-#include <com/sun/star/awt/Rectangle.hpp>
-#include <com/sun/star/awt/XWindow.hpp>
-#include <com/sun/star/drawing/framework/XResourceId.hpp>
-#include <com/sun/star/geometry/RealPoint2D.hpp>
-#include <com/sun/star/rendering/XBitmap.hpp>
-#include <com/sun/star/rendering/XSprite.hpp>
-#include <com/sun/star/rendering/XSpriteCanvas.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <rtl/ref.hxx>
-#include <vector>
-#include <boost/function.hpp>
-#include <boost/noncopyable.hpp>
-#include <boost/shared_ptr.hpp>
-
-namespace css = ::com::sun::star;
-
-namespace sdext { namespace presenter {
-
-class PresenterController;
-class PresenterPaneContainer;
-class PresenterWindowManager;
-
-/** Base class for different types of pane animations. Each of these
- animations either shows or hides a single pane.
-*/
-class PresenterPaneAnimator
- : private ::boost::noncopyable
-{
-public:
- virtual void ShowPane (void) = 0;
- virtual void HidePane (void) = 0;
-
-protected:
- virtual ~PresenterPaneAnimator (void) {};
-};
-
-
-typedef ::std::vector< ::boost::function<void()> > EndActions;
-
-} }
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sdext/source/presenter/PresenterSlideSorter.cxx b/sdext/source/presenter/PresenterSlideSorter.cxx
index 05f84d2..038b383 100644
--- a/sdext/source/presenter/PresenterSlideSorter.cxx
+++ b/sdext/source/presenter/PresenterSlideSorter.cxx
@@ -1201,7 +1201,6 @@ void PresenterSlideSorter::SetVerticalOffset (const double nYOffset)
void PresenterSlideSorter::GotoSlide (const sal_Int32 nSlideIndex)
{
mxSlideShowController->gotoSlideIndex(nSlideIndex);
- mpPresenterController->HideSlideSorter();
}
diff --git a/sdext/source/presenter/makefile.mk b/sdext/source/presenter/makefile.mk
index 7d74d96..39ef906 100644
--- a/sdext/source/presenter/makefile.mk
+++ b/sdext/source/presenter/makefile.mk
@@ -72,7 +72,6 @@ SLOFILES= \
$(SLO)$/PresenterNotesView.obj \
$(SLO)$/PresenterPaintManager.obj \
$(SLO)$/PresenterPane.obj \
- $(SLO)$/PresenterPaneAnimator.obj \
$(SLO)$/PresenterPaneBase.obj \
$(SLO)$/PresenterPaneBorderManager.obj \
$(SLO)$/PresenterPaneBorderPainter.obj \
diff --git a/svx/Library_svx.mk b/svx/Library_svx.mk
index 9165c9e..2057d95 100644
--- a/svx/Library_svx.mk
+++ b/svx/Library_svx.mk
@@ -186,7 +186,6 @@ $(eval $(call gb_Library_add_exception_objects,svx,\
svx/source/smarttags/SmartTagMgr \
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list