diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2009-11-30 14:44:46 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2009-11-30 14:44:46 +0000 |
commit | 1becba6356524f199edea28c718a052e0e6f1478 (patch) | |
tree | 6174adc2801e23e531629692187998f86834562f /sdext/source/presenter | |
parent | 08b4374045238631144b6927bf6f1253e98cd6b2 (diff) | |
parent | 17ca33d11352af246ecbb2f2c92e614aff4e1021 (diff) |
slideshow1: merge with DEV300 m44
Diffstat (limited to 'sdext/source/presenter')
-rw-r--r-- | sdext/source/presenter/PresenterPaneBorderPainter.hxx | 1 | ||||
-rw-r--r-- | sdext/source/presenter/PresenterSlideShowView.cxx | 48 | ||||
-rw-r--r-- | sdext/source/presenter/PresenterSlideShowView.hxx | 7 | ||||
-rw-r--r-- | sdext/source/presenter/PresenterTimer.cxx | 10 |
4 files changed, 46 insertions, 20 deletions
diff --git a/sdext/source/presenter/PresenterPaneBorderPainter.hxx b/sdext/source/presenter/PresenterPaneBorderPainter.hxx index e09192734f7f..45fbe3340cd5 100644 --- a/sdext/source/presenter/PresenterPaneBorderPainter.hxx +++ b/sdext/source/presenter/PresenterPaneBorderPainter.hxx @@ -32,7 +32,6 @@ #ifndef SDEXT_PRESENTER_PRESENTER_PANE_BORDER_PAINTER_HXX #define SDEXT_PRESENTER_PRESENTER_PANE_BORDER_PAINTER_HXX -#include <vcl/bitmap.hxx> #include <com/sun/star/uno/XComponentContext.hpp> #include <com/sun/star/awt/Rectangle.hpp> #include <com/sun/star/drawing/framework/XPaneBorderPainter.hpp> diff --git a/sdext/source/presenter/PresenterSlideShowView.cxx b/sdext/source/presenter/PresenterSlideShowView.cxx index 2816c7bee395..10e1b80f6805 100644 --- a/sdext/source/presenter/PresenterSlideShowView.cxx +++ b/sdext/source/presenter/PresenterSlideShowView.cxx @@ -82,6 +82,8 @@ PresenterSlideShowView::PresenterSlideShowView ( mxPointer(), mxWindow(), mxViewWindow(), + mxTopPane(), + mxPresenterHelper(), mxBackgroundPolygon1(), mxBackgroundPolygon2(), mbIsViewAdded(false), @@ -114,6 +116,13 @@ void PresenterSlideShowView::LateInit (void) if (xSlideShowComponent.is()) xSlideShowComponent->addEventListener(static_cast<awt::XWindowListener*>(this)); + Reference<lang::XMultiComponentFactory> xFactory ( + mxComponentContext->getServiceManager(), UNO_QUERY_THROW); + mxPresenterHelper.set (xFactory->createInstanceWithContext( + OUString::createFromAscii("com.sun.star.comp.Draw.PresenterHelper"), + mxComponentContext), + UNO_QUERY_THROW); + // Use view id and controller to retrieve window and canvas from // configuration controller. Reference<XControllerManager> xCM (mxController, UNO_QUERY_THROW); @@ -121,6 +130,8 @@ void PresenterSlideShowView::LateInit (void) if (xCC.is()) { + mxTopPane.set(xCC->getResource(mxViewId->getAnchor()->getAnchor()), UNO_QUERY); + Reference<XPane> xPane (xCC->getResource(mxViewId->getAnchor()), UNO_QUERY_THROW); mxWindow = xPane->getWindow(); @@ -142,8 +153,8 @@ void PresenterSlideShowView::LateInit (void) // Create a window for the actual slide show view. It is places // centered and with maximal size inside the pane. mxViewWindow = CreateViewWindow(mxWindow); - mxViewCanvas = CreateViewCanvas(mxViewWindow, - Reference<XPane>(xCC->getResource(mxViewId->getAnchor()->getAnchor()), UNO_QUERY)); + + mxViewCanvas = CreateViewCanvas(mxViewWindow); if (mxViewWindow.is()) { @@ -553,6 +564,19 @@ void SAL_CALL PresenterSlideShowView::setMouseCursor(::sal_Int16 nPointerShape) +awt::Rectangle SAL_CALL PresenterSlideShowView::getCanvasArea( ) throw (RuntimeException) +{ + if( mxViewWindow.is() && mxTopPane.is() ) + return mxPresenterHelper->getWindowExtentsRelative( mxViewWindow, mxTopPane->getWindow() ); + + awt::Rectangle aRectangle; + + aRectangle.X = aRectangle.Y = aRectangle.Width = aRectangle.Height = 0; + + return aRectangle; +} + + //----- lang::XEventListener -------------------------------------------------- @@ -986,22 +1010,14 @@ Reference<awt::XWindow> PresenterSlideShowView::CreateViewWindow ( Reference<rendering::XCanvas> PresenterSlideShowView::CreateViewCanvas ( - const Reference<awt::XWindow>& rxViewWindow, - const Reference<XPane>& rxParentPane) const + const Reference<awt::XWindow>& rxViewWindow) const { // Create a canvas for the view window. - Reference<lang::XMultiComponentFactory> xFactory ( - mxComponentContext->getServiceManager(), UNO_QUERY_THROW); - Reference<drawing::XPresenterHelper> xPresenterHelper( - xFactory->createInstanceWithContext( - OUString::createFromAscii("com.sun.star.comp.Draw.PresenterHelper"), - mxComponentContext), - UNO_QUERY_THROW); - return xPresenterHelper->createSharedCanvas( - Reference<rendering::XSpriteCanvas>(rxParentPane->getCanvas(), UNO_QUERY), - rxParentPane->getWindow(), - rxParentPane->getCanvas(), - rxParentPane->getWindow(), + return mxPresenterHelper->createSharedCanvas( + Reference<rendering::XSpriteCanvas>(mxTopPane->getCanvas(), UNO_QUERY), + mxTopPane->getWindow(), + mxTopPane->getCanvas(), + mxTopPane->getWindow(), rxViewWindow); } diff --git a/sdext/source/presenter/PresenterSlideShowView.hxx b/sdext/source/presenter/PresenterSlideShowView.hxx index 4525a38b04db..4bb12a1aadb0 100644 --- a/sdext/source/presenter/PresenterSlideShowView.hxx +++ b/sdext/source/presenter/PresenterSlideShowView.hxx @@ -149,6 +149,8 @@ public: virtual void SAL_CALL setMouseCursor(::sal_Int16 nPointerShape) throw (css::uno::RuntimeException); + virtual ::com::sun::star::awt::Rectangle SAL_CALL getCanvasArea( ) + throw (::com::sun::star::uno::RuntimeException); // lang::XEventListener virtual void SAL_CALL disposing (const css::lang::EventObject& rEvent) @@ -236,6 +238,8 @@ private: css::uno::Reference<css::awt::XPointer> mxPointer; css::uno::Reference<css::awt::XWindow> mxWindow; css::uno::Reference<css::awt::XWindow> mxViewWindow; + css::uno::Reference<css::drawing::framework::XPane> mxTopPane; + css::uno::Reference<css::drawing::XPresenterHelper> mxPresenterHelper; css::uno::Reference<css::rendering::XPolyPolygon2D> mxBackgroundPolygon1; css::uno::Reference<css::rendering::XPolyPolygon2D> mxBackgroundPolygon2; bool mbIsViewAdded; @@ -267,8 +271,7 @@ private: css::uno::Reference<css::awt::XWindow> CreateViewWindow ( const css::uno::Reference<css::awt::XWindow>& rxParentWindow) const; css::uno::Reference<css::rendering::XCanvas> CreateViewCanvas ( - const css::uno::Reference<css::awt::XWindow>& rxWindow, - const css::uno::Reference<css::drawing::framework::XPane>& rxParentPane) const; + const css::uno::Reference<css::awt::XWindow>& rxWindow) const; void Resize (void); diff --git a/sdext/source/presenter/PresenterTimer.cxx b/sdext/source/presenter/PresenterTimer.cxx index 45aba5f8bdce..f66289f2e5e6 100644 --- a/sdext/source/presenter/PresenterTimer.cxx +++ b/sdext/source/presenter/PresenterTimer.cxx @@ -76,7 +76,6 @@ class TimerScheduler { public: static ::boost::shared_ptr<TimerScheduler> Instance (void); - static void Release (void); static SharedTimerTask CreateTimerTask ( const PresenterTimer::Task& rTask, const TimeValue& rDueTime, @@ -107,12 +106,15 @@ private: ::osl::Mutex maCurrentTaskMutex; SharedTimerTask mpCurrentTask; + static void Release (void); + TimerScheduler (void); virtual ~TimerScheduler (void); class Deleter {public: void operator () (TimerScheduler* pScheduler) { delete pScheduler; } }; friend class Deleter; virtual void SAL_CALL run (void); + virtual void SAL_CALL onTerminated (void); }; @@ -380,7 +382,13 @@ void SAL_CALL TimerScheduler::run (void) mpCurrentTask.reset(); } } +} + + + +void SAL_CALL TimerScheduler::onTerminated (void) +{ Release(); } |