2004/09/03 15:06:27 thb 1.1.2.6: #110496# Changed view clear mechanics: now, the XSlideShowView is responsible for full view clears. Furthermore, implemented resizing during the running slideshow 2004/08/31 01:12:35 thb 1.1.2.5: #110496# Implemented shape broadcasting, added CurrentPage property when calling the UnoGraphicExporter for shape metafiles 2004/08/19 00:17:18 thb 1.1.2.4: #110496# Mostly fixes for correct text animation and iteration, plus a first working version of an optimized redraw 2004/08/05 20:00:01 thb 1.1.2.3: #110496# Moved from source/engine 2004/08/01 20:08:14 thb 1.1.2.2: #110496# Changed slideshow API to match the needs of sd more closely 2004/07/22 19:34:39 thb 1.1.2.1: #110496# Initial revision
173 lines
6.0 KiB
C++
173 lines
6.0 KiB
C++
/*************************************************************************
|
|
*
|
|
* $RCSfile: view.hxx,v $
|
|
*
|
|
* $Revision: 1.2 $
|
|
*
|
|
* last change: $Author: rt $ $Date: 2004-11-26 19:23:38 $
|
|
*
|
|
* The Contents of this file are made available subject to the terms of
|
|
* either of the following licenses
|
|
*
|
|
* - GNU Lesser General Public License Version 2.1
|
|
* - Sun Industry Standards Source License Version 1.1
|
|
*
|
|
* Sun Microsystems Inc., October, 2000
|
|
*
|
|
* GNU Lesser General Public License Version 2.1
|
|
* =============================================
|
|
* Copyright 2000 by Sun Microsystems, Inc.
|
|
* 901 San Antonio Road, Palo Alto, CA 94303, USA
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License version 2.1, as published by the Free Software Foundation.
|
|
*
|
|
* This library 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 for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
|
* MA 02111-1307 USA
|
|
*
|
|
*
|
|
* Sun Industry Standards Source License Version 1.1
|
|
* =================================================
|
|
* The contents of this file are subject to the Sun Industry Standards
|
|
* Source License Version 1.1 (the "License"); You may not use this file
|
|
* except in compliance with the License. You may obtain a copy of the
|
|
* License at http://www.openoffice.org/license.html.
|
|
*
|
|
* Software provided under this License is provided on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
|
|
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
|
|
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
|
|
* See the License for the specific provisions governing your rights and
|
|
* obligations concerning the Software.
|
|
*
|
|
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
|
|
*
|
|
* Copyright: 2000 by Sun Microsystems, Inc.
|
|
*
|
|
* All Rights Reserved.
|
|
*
|
|
* Contributor(s): _______________________________________
|
|
*
|
|
*
|
|
************************************************************************/
|
|
|
|
#ifndef _SLIDESHOW_VIEW_HXX
|
|
#define _SLIDESHOW_VIEW_HXX
|
|
|
|
#ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_
|
|
#include <com/sun/star/uno/Reference.hxx>
|
|
#endif
|
|
|
|
#ifndef _CPPCANVAS_SPRITECANVAS_HXX
|
|
#include <cppcanvas/spritecanvas.hxx>
|
|
#endif
|
|
|
|
#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
|
|
#include <basegfx/matrix/b2dhommatrix.hxx>
|
|
#endif
|
|
#ifndef _BGFX_VECTOR_B2DSIZE_HXX
|
|
#include <basegfx/vector/b2dsize.hxx>
|
|
#endif
|
|
#ifndef _BGFX_POLYGON_B2DPOLYPOLYGON_HXX
|
|
#include <basegfx/polygon/b2dpolypolygon.hxx>
|
|
#endif
|
|
|
|
#ifndef BOOST_SHARED_PTR_HPP_INCLUDED
|
|
#include <boost/shared_ptr.hpp>
|
|
#endif
|
|
|
|
#include <vector>
|
|
|
|
#include <viewlayer.hxx>
|
|
|
|
|
|
/* Definition of View interface */
|
|
|
|
namespace presentation
|
|
{
|
|
namespace internal
|
|
{
|
|
class View : public ViewLayer
|
|
{
|
|
public:
|
|
/** Create a new view layer for this view
|
|
*/
|
|
virtual ViewLayerSharedPtr createViewLayer() const = 0;
|
|
|
|
/** Clear the view layer area
|
|
*/
|
|
virtual void clear() const = 0;
|
|
|
|
/** Query whether view content is still valid.
|
|
|
|
This method returns false, if the view content has
|
|
been destroyed until the last update. That might
|
|
happen e.g. during window resizes, or when volatile
|
|
bitmaps become reclaimed by the system. If this method
|
|
returns false, the slideshow must assume that the
|
|
whole view area needs a repaint. A call to clear()
|
|
sets the content to valid again.
|
|
*/
|
|
virtual bool isContentDestroyed() const = 0;
|
|
|
|
/** Update screen representation from backbuffer
|
|
*/
|
|
virtual bool updateScreen() const = 0;
|
|
|
|
/** Get the overall view transformation.
|
|
|
|
This method should <em>not</em> simply return the
|
|
underlying canvas' transformation, but rather provide
|
|
a layer above that. This enables clients of the
|
|
slideshow to set their own user space transformation
|
|
at the canvas, whilst the slideshow adds their
|
|
transformation on top of that. Concretely, this method
|
|
returns the user transform (implicitely calculated
|
|
from the setViewSize() method), combined with the view
|
|
transformation.
|
|
*/
|
|
virtual ::basegfx::B2DHomMatrix getTransformation() const = 0;
|
|
|
|
/** Set the size of the user view coordinate system.
|
|
|
|
This method sets the width and height of the view in
|
|
document coordinates (i.e. 'logical' coordinates). The
|
|
resulting transformation is then concatenated with the
|
|
underlying view transformation, returned by the
|
|
getTransformation() method.
|
|
*/
|
|
virtual void setViewSize( const ::basegfx::B2DSize& ) = 0;
|
|
|
|
/** Set clipping on this view.
|
|
|
|
@param rClip
|
|
Clip poly-polygon to set. The polygon is interpreted
|
|
in the user coordinate system, i.e. the view has the
|
|
size as given by setViewSize().
|
|
*/
|
|
virtual void setClip( const ::basegfx::B2DPolyPolygon& rClip ) = 0;
|
|
|
|
/** Change the view's mouse cursor.
|
|
|
|
@param nPointerShape
|
|
One of the ::com::sun::star::awt::SystemPointer
|
|
constant group members.
|
|
*/
|
|
virtual void setMouseCursor( sal_Int16 nPointerShape ) = 0;
|
|
};
|
|
|
|
typedef ::boost::shared_ptr< View > ViewSharedPtr;
|
|
typedef ::std::vector< ViewSharedPtr > ViewVector;
|
|
}
|
|
}
|
|
|
|
#endif /* _SLIDESHOW_VIEW_HXX */
|