1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #ifndef SDEXT_PRESENTER_PRESENTER_PANE_ANIMATOR_HXXs 29 #define SDEXT_PRESENTER_PRESENTER_PANE_ANIMATOR_HXX 30 31 #include <com/sun/star/awt/Point.hpp> 32 #include <com/sun/star/awt/Rectangle.hpp> 33 #include <com/sun/star/awt/XWindow.hpp> 34 #include <com/sun/star/drawing/framework/XResourceId.hpp> 35 #include <com/sun/star/geometry/RealPoint2D.hpp> 36 #include <com/sun/star/rendering/XBitmap.hpp> 37 #include <com/sun/star/rendering/XSprite.hpp> 38 #include <com/sun/star/rendering/XSpriteCanvas.hpp> 39 #include <com/sun/star/uno/XComponentContext.hpp> 40 #include <rtl/ref.hxx> 41 #include <vector> 42 #include <boost/function.hpp> 43 #include <boost/noncopyable.hpp> 44 #include <boost/shared_ptr.hpp> 45 46 namespace css = ::com::sun::star; 47 48 namespace sdext { namespace presenter { 49 50 class PresenterController; 51 class PresenterPaneContainer; 52 class PresenterWindowManager; 53 54 /** Base class for different types of pane animations. Each of these 55 animations either shows or hides a single pane. 56 */ 57 class PresenterPaneAnimator 58 : private ::boost::noncopyable 59 { 60 public: 61 virtual void ShowPane (void) = 0; 62 virtual void HidePane (void) = 0; 63 64 protected: 65 virtual ~PresenterPaneAnimator (void) {}; 66 }; 67 68 69 typedef ::std::vector< ::boost::function<void()> > EndActions; 70 71 ::boost::shared_ptr<PresenterPaneAnimator> CreateUnfoldInCenterAnimator ( 72 const css::uno::Reference<css::drawing::framework::XResourceId>& rxPaneId, 73 const ::rtl::Reference<PresenterController>& rpPresenterController, 74 const bool bAnimate, 75 const EndActions& rShowEndActions, 76 const EndActions& rEndEndActions); 77 78 ::boost::shared_ptr<PresenterPaneAnimator> CreateMoveInFromBottomAnimator ( 79 const css::uno::Reference<css::drawing::framework::XResourceId>& rxPaneId, 80 const ::rtl::Reference<PresenterController>& rpPresenterController, 81 const bool bAnimate, 82 const EndActions& rShowEndActions, 83 const EndActions& rEndEndActions); 84 85 ::boost::shared_ptr<PresenterPaneAnimator> CreateTransparentOverlay ( 86 const css::uno::Reference<css::drawing::framework::XResourceId>& rxPaneId, 87 const ::rtl::Reference<PresenterController>& rpPresenterController, 88 const bool bAnimate, 89 const EndActions& rShowEndActions, 90 const EndActions& rEndEndActions); 91 92 } } 93 94 #endif 95