1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: viewappletshape.hxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef INCLUDED_SLIDESHOW_VIEWAPPLETSHAPE_HXX
32 #define INCLUDED_SLIDESHOW_VIEWAPPLETSHAPE_HXX
34 #include <basegfx/range/b2drectangle.hxx>
35 #include <com/sun/star/awt/Point.hpp>
37 #include <boost/utility.hpp>
38 #include <boost/shared_ptr.hpp>
40 #include "viewlayer.hxx"
42 namespace com
{ namespace sun
{ namespace star
{
44 class XSynchronousFrameLoader
;
48 class XComponentContext
;
58 /** This class is the viewable representation of a draw
59 document's applet object, associated to a specific View
61 The class is able to render the associated applet on View
64 class ViewAppletShape
: private boost::noncopyable
67 /** Create a ViewAppletShape for the given View
70 The associated View object.
76 The service name to use, when actually creating the
80 Table of plain ASCII property names, to copy from
83 @param nNumPropEntries
84 Number of property table entries (in pPropCopyTable)
86 ViewAppletShape( const ViewLayerSharedPtr
& rViewLayer
,
87 const ::com::sun::star::uno::Reference
<
88 ::com::sun::star::drawing::XShape
>& rxShape
,
89 const ::rtl::OUString
& rServiceName
,
90 const char** pPropCopyTable
,
91 sal_Size nNumPropEntries
,
92 const ::com::sun::star::uno::Reference
<
93 ::com::sun::star::uno::XComponentContext
>& rxContext
);
95 /** destroy the object
97 virtual ~ViewAppletShape();
99 /** Query the associated view layer of this shape
101 ViewLayerSharedPtr
getViewLayer() const;
104 //------------------------------------------------------------------
106 /** Notify the ViewShape that an animation starts now
108 This method enters animation mode on the associate
109 target view. The shape can be animated in parallel on
113 The current applet shape bounds
115 @return whether the mode change finished successfully.
117 bool startApplet( const ::basegfx::B2DRectangle
& rBounds
);
119 /** Notify the ViewShape that it is no longer animated
121 This methods ends animation mode on the associate
127 //------------------------------------------------------------------
129 /** Render the ViewShape
131 This method renders the ViewAppletShape on the associated view.
134 The current applet shape bounds
136 @return whether the rendering finished successfully.
138 bool render( const ::basegfx::B2DRectangle
& rBounds
) const;
140 /** Resize the ViewShape
142 This method resizes the ViewAppletShape on the
143 associated view. It does not render.
146 The current applet shape bounds
148 @return whether the resize finished successfully.
150 bool resize( const ::basegfx::B2DRectangle
& rBounds
) const;
154 ViewLayerSharedPtr mpViewLayer
;
156 /// the actual viewer component for this applet
157 ::com::sun::star::uno::Reference
<
158 ::com::sun::star::frame::XSynchronousFrameLoader
> mxViewer
;
160 /// the frame containing the applet
161 ::com::sun::star::uno::Reference
<
162 ::com::sun::star::frame::XFrame
> mxFrame
;
163 ::com::sun::star::uno::Reference
<
164 ::com::sun::star::uno::XComponentContext
> mxComponentContext
;
167 typedef ::boost::shared_ptr
< ViewAppletShape
> ViewAppletShapeSharedPtr
;
172 #endif /* INCLUDED_SLIDESHOW_VIEWAPPLETSHAPE_HXX */