diff options
author | Kurt Zenker <kz@openoffice.org> | 2008-04-03 13:06:05 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2008-04-03 13:06:05 +0000 |
commit | 4eb00aecbc14ca5594397821a9b7723f05aaa89d (patch) | |
tree | 6c2264800d310d1c26454943c278c1fb57a2a73f /sd/source/ui/presenter | |
parent | 480f36eb5e938fc8852427127636413ca67c4424 (diff) |
INTEGRATION: CWS presenterview (1.1.2); FILE ADDED
2008/02/26 12:48:37 af 1.1.2.1: #i18486# Initial revision.
Diffstat (limited to 'sd/source/ui/presenter')
-rw-r--r-- | sd/source/ui/presenter/CanvasUpdateRequester.hxx | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/sd/source/ui/presenter/CanvasUpdateRequester.hxx b/sd/source/ui/presenter/CanvasUpdateRequester.hxx new file mode 100644 index 000000000000..2b32e9a94b41 --- /dev/null +++ b/sd/source/ui/presenter/CanvasUpdateRequester.hxx @@ -0,0 +1,88 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: CanvasUpdateRequester.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: kz $ $Date: 2008-04-03 14:06:05 $ + * + * The Contents of this file are made available subject to + * the terms of GNU Lesser General Public License Version 2.1. + * + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2005 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 + * + ************************************************************************/ + +#ifndef SD_PRESENTER_CANVAS_UPDATE_REQUESTER_HEADER +#define SD_PRESENTER_CANVAS_UPDATE_REQUESTER_HEADER + +#include "precompiled_sd.hxx" + +#include <com/sun/star/rendering/XSpriteCanvas.hpp> +#include <boost/noncopyable.hpp> +#include <boost/shared_ptr.hpp> +#include <sal/types.h> +#include <tools/solar.h> +#include <tools/link.hxx> +#include <vector> + +namespace css = ::com::sun::star; + +namespace sd { namespace presenter { + +/** Each UpdateRequester handles update requests (calls to + XCanvas::updateScreen()) for one shared canvas (a canvas that has one or + more PresenterCanvas wrappers). Multiple calls are collected and lead + to a single call to updateScreen. +*/ +class CanvasUpdateRequester : private ::boost::noncopyable +{ +public: + /** Return the Canvas UpdateRequester object for the given shared + canvas. A new object is created when it does not already exist. + */ + static ::boost::shared_ptr<CanvasUpdateRequester> Instance ( + const css::uno::Reference<css::rendering::XSpriteCanvas>& rxCanvas); + + void RequestUpdate (const sal_Bool bUpdateAll); + +private: + CanvasUpdateRequester (const css::uno::Reference<css::rendering::XSpriteCanvas>& rxCanvas); + ~CanvasUpdateRequester (void); + class Deleter; friend class Deleter; + + typedef ::std::vector< + ::std::pair< + css::uno::Reference<css::rendering::XSpriteCanvas>, + ::boost::shared_ptr<CanvasUpdateRequester> > > RequesterMap; + static RequesterMap maRequesterMap; + + css::uno::Reference<css::rendering::XSpriteCanvas> mxCanvas; + ULONG mnUserEventId; + sal_Bool mbUpdateFlag; + DECL_LINK(Callback, void*); +}; + +} } // end of namespace ::sd::presenter + +#endif |