/************************************************************** * * 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 SD_PRESENTER_PRESENTER_SPRITE_PANE_HXX #define SD_PRESENTER_PRESENTER_SPRITE_PANE_HXX #include "PresenterPaneBase.hxx" #include "PresenterSprite.hxx" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace css = ::com::sun::star; namespace sdext { namespace presenter { /** Use a sprite to display the contents and the border of a pane. Windows are still used to define the locations and sizes of both the border and the pane content. Note that every resize results in a disposed canvas. Therefore call getCanvas in every repaint or at least after every resize. */ class PresenterSpritePane : public PresenterPaneBase { public: PresenterSpritePane ( const css::uno::Reference& rxContext, const ::rtl::Reference& rpPresenterController); virtual ~PresenterSpritePane (void); virtual void SAL_CALL disposing (void); using css::lang::XEventListener::disposing; ::boost::shared_ptr GetSprite (void); static ::rtl::OUString getImplementationName_static (void); static css::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_static (void); static css::uno::Reference Create( const css::uno::Reference& rxContext) SAL_THROW((css::uno::Exception)); void ShowTransparentBorder (void); // XPane virtual css::uno::Reference SAL_CALL getWindow (void) throw (css::uno::RuntimeException); virtual css::uno::Reference SAL_CALL getCanvas (void) throw (css::uno::RuntimeException); // XWindowListener virtual void SAL_CALL windowResized (const css::awt::WindowEvent& rEvent) throw (css::uno::RuntimeException); virtual void SAL_CALL windowMoved (const css::awt::WindowEvent& rEvent) throw (css::uno::RuntimeException); virtual void SAL_CALL windowShown (const css::lang::EventObject& rEvent) throw (css::uno::RuntimeException); virtual void SAL_CALL windowHidden (const css::lang::EventObject& rEvent) throw (css::uno::RuntimeException); // XPaintListener virtual void SAL_CALL windowPaint (const css::awt::PaintEvent& rEvent) throw (css::uno::RuntimeException); private: css::uno::Reference mxParentWindow; css::uno::Reference mxParentCanvas; ::boost::shared_ptr mpSprite; virtual void CreateCanvases ( const css::uno::Reference& rxParentWindow, const css::uno::Reference& rxParentCanvas); void UpdateCanvases (void); }; } } // end of namespace ::sd::presenter #endif