/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef SDEXT_PRESENTER_PRESENTER_PAINT_MANAGER_HXX #define SDEXT_PRESENTER_PRESENTER_PAINT_MANAGER_HXX #include #include #include #include #include namespace css = ::com::sun::star; namespace sdext { namespace presenter { class PresenterPaneContainer; /** Synchronize painting of windows and canvases. At the moment there is just some processing of invalidate calls. This could be extended to process incoming windowPaint() calls. */ class PresenterPaintManager { public: /** Create paint manager with the window that is the top node in the local window hierarchy. */ PresenterPaintManager ( const css::uno::Reference& rxParentWindow, const css::uno::Reference& rxPresenterHelper, const rtl::Reference& rpPaneContainer); ::boost::function GetInvalidator ( const css::uno::Reference& rxWindow, const bool bSynchronous = false); /** Request a repaint of the whole window. @param rxWindow May be the parent window or one of its descendents. */ void Invalidate ( const css::uno::Reference& rxWindow, const bool bSynchronous = false); void Invalidate ( const css::uno::Reference& rxWindow, const sal_Int16 nInvalidateFlags); /** Request a repaint of a part of a window. @param rxWindow May be the parent window or one of its descendents. */ void Invalidate ( const css::uno::Reference& rxWindow, const css::awt::Rectangle& rRepaintBox, const bool bSynchronous = false); void Invalidate ( const css::uno::Reference& rxWindow, const css::awt::Rectangle& rRepaintBox, const sal_Int16 nInvalidateFlags); private: css::uno::Reference mxParentWindow; css::uno::Reference mxParentWindowPeer; css::uno::Reference mxPresenterHelper; ::rtl::Reference mpPaneContainer; }; } } #endif