28 #include <com/sun/star/drawing/framework/XControllerManager.hpp>
42 class NextSlidePreview :
public PresenterSlidePreview
46 const css::uno::Reference<css::uno::XComponentContext>& rxContext,
47 const css::uno::Reference<css::drawing::framework::XResourceId>& rxViewId,
48 const css::uno::Reference<css::drawing::framework::XPane>& rxAnchorPane,
49 const ::rtl::Reference<PresenterController>& rpPresenterController)
50 : PresenterSlidePreview(rxContext, rxViewId, rxAnchorPane, rpPresenterController)
54 virtual void SAL_CALL setCurrentPage (
55 const css::uno::Reference<css::drawing::XDrawPage>& rxSlide)
override
57 Reference<presentation::XSlideShowController> xSlideShowController (
60 if (xSlideShowController.is())
62 const sal_Int32
nCount (xSlideShowController->getSlideCount());
63 sal_Int32 nNextSlideIndex (-1);
64 if (xSlideShowController->getCurrentSlide() == rxSlide)
66 nNextSlideIndex = xSlideShowController->getNextSlideIndex();
72 if (rxSlide == xSlideShowController->getSlideByIndex(nIndex))
74 nNextSlideIndex =
nIndex + 1;
78 if (nNextSlideIndex >= 0)
80 if (nNextSlideIndex < nCount)
82 xSlide = xSlideShowController->getSlideByIndex(nNextSlideIndex);
96 const Reference<frame::XController>& rxController,
97 const ::rtl::Reference<PresenterController>& rpPresenterController)
100 mxControllerWeak(rxController),
107 const Reference<frame::XController>& rxController,
108 const ::rtl::Reference<PresenterController>& rpPresenterController)
112 pFactory->Register(rxController);
113 return Reference<drawing::framework::XResourceFactory>(pFactory);
121 Reference<XControllerManager> xCM (rxController, UNO_QUERY_THROW);
165 xComponent->dispose();
167 catch (lang::DisposedException&)
171 mpResourceCache.reset();
177 const Reference<XResourceId>& rxViewId)
181 Reference<XResource> xView;
185 Reference<XPane> xAnchorPane (
189 if (xView ==
nullptr)
196 pDescriptor->SetActivationState(
true);
212 rxView->getResourceId()->getAnchor()));
214 pDescriptor->SetActivationState(
false);
222 if (pView !=
nullptr)
226 xComponent->dispose();
228 catch (lang::DisposedException&)
238 Reference<XResourceId> xViewId (rxView->getResourceId());
241 Reference<XPane> xAnchorPane (
244 (*mpResourceCache)[xViewId->getResourceURL()]
253 const Reference<XResourceId>& rxViewId,
254 const Reference<XPane>& rxAnchorPane)
const
261 const OUString sResourceURL (rxViewId->getResourceURL());
264 ResourceContainer::const_iterator iView (
mpResourceCache->find(sResourceURL));
270 if (iView->second.second == rxAnchorPane)
274 if (pView !=
nullptr)
276 return iView->second.first;
289 const Reference<XResourceId>& rxViewId,
290 const Reference<XPane>& rxAnchorPane)
292 Reference<XView> xView;
296 const OUString sResourceURL (rxViewId->getResourceURL());
325 if (pView !=
nullptr)
337 const Reference<XResourceId>& rxViewId)
const
339 Reference<XView> xView;
354 pShowView->LateInit();
366 const Reference<XResourceId>& rxViewId,
367 const Reference<XPane>& rxAnchorPane)
const
369 Reference<XView> xView;
379 static_cast<XWeak*>(
new NextSlidePreview(
395 const Reference<XResourceId>& rxViewId)
const
405 const Reference<XResourceId>& rxViewId)
const
407 Reference<XView> xView;
416 xView.set(static_cast<XWeak*>(
433 const Reference<XResourceId>& rxViewId)
const
435 Reference<XView> xView;
461 const Reference<XResourceId>& rxViewId)
const
472 if (rBHelper.bDisposed || rBHelper.bInDispose)
474 throw lang::DisposedException (
475 "PresenterViewFactory object has already been disposed",
476 const_cast<uno::XWeak*>(static_cast<const uno::XWeak*>(
this)));
483 : mbIsPresenterViewActive(true)
static constexpr OUStringLiteral msCurrentSlidePreviewViewURL
css::uno::Reference< css::drawing::framework::XConfigurationController > mxConfigurationController
::std::pair< css::uno::Reference< css::drawing::framework::XView >, css::uno::Reference< css::drawing::framework::XPane > > ViewResourceDescriptor
virtual css::uno::Reference< css::drawing::framework::XResource > SAL_CALL createResource(const css::uno::Reference< css::drawing::framework::XResourceId > &rxViewId) override
static constexpr OUStringLiteral msNotesViewURL
css::uno::Reference< css::drawing::framework::XView > CreateToolBarView(const css::uno::Reference< css::drawing::framework::XResourceId > &rxViewId) const
css::uno::Reference< css::drawing::framework::XView > CreateNotesView(const css::uno::Reference< css::drawing::framework::XResourceId > &rxViewId) const
css::uno::WeakReference< css::frame::XController > mxControllerWeak
static constexpr OUStringLiteral msNextSlidePreviewViewURL
css::uno::Reference< css::drawing::framework::XResource > CreateView(const css::uno::Reference< css::drawing::framework::XResourceId > &rxViewId, const css::uno::Reference< css::drawing::framework::XPane > &rxAnchorPane)
::cppu::WeakComponentImplHelper< css::drawing::framework::XResourceFactory > PresenterViewFactoryInterfaceBase
virtual void SAL_CALL disposing() override
static constexpr OUStringLiteral msToolBarViewURL
css::uno::Reference< css::drawing::framework::XResource > GetViewFromCache(const css::uno::Reference< css::drawing::framework::XResourceId > &rxViewId, const css::uno::Reference< css::drawing::framework::XPane > &rxAnchorPane) const
A drawing framework view of the notes of a slide.
void Register(const css::uno::Reference< css::frame::XController > &rxController)
virtual ~PresenterViewFactory() override
css::uno::Reference< css::uno::XComponentContext > mxComponentContext
void ThrowIfDisposed() const
css::uno::Reference< css::drawing::framework::XView > CreateHelpView(const css::uno::Reference< css::drawing::framework::XResourceId > &rxViewId) const
std::unique_ptr< ResourceContainer > mpResourceCache
Show help text that describes the defined keys.
virtual void SAL_CALL setCurrentPage(const css::uno::Reference< css::drawing::XDrawPage > &rxSlide) override
css::uno::Reference< css::drawing::framework::XView > CreateSlidePreviewView(const css::uno::Reference< css::drawing::framework::XResourceId > &rxViewId, const css::uno::Reference< css::drawing::framework::XPane > &rxPane) const
static css::uno::Reference< css::drawing::framework::XResourceFactory > Create(const css::uno::Reference< css::uno::XComponentContext > &rxContext, const css::uno::Reference< css::frame::XController > &rxController, const ::rtl::Reference< PresenterController > &rpPresenterController)
Create a new instance of this class and register it as resource factory in the drawing framework of t...
rtl::Reference< PresenterController > mpPresenterController
A simple slide sorter for the presenter screen.
::rtl::Reference< PresenterController > mpPresenterController
css::uno::Reference< css::uno::XComponentContext > mxComponentContext
PresenterViewFactory(const css::uno::Reference< css::uno::XComponentContext > &rxContext, const css::uno::Reference< css::frame::XController > &rxController, const ::rtl::Reference< PresenterController > &rpPresenterController)
std::shared_ptr< PaneDescriptor > SharedPaneDescriptor
virtual void SAL_CALL releaseResource(const css::uno::Reference< css::drawing::framework::XResource > &rxPane) override
Life view in a secondary window of a full screen slide show.
virtual void ReleaseView()
Called before the view is disposed.
static constexpr OUStringLiteral msHelpViewURL
static constexpr OUStringLiteral msSlideSorterURL
css::uno::Reference< css::drawing::framework::XView > CreateSlideShowView(const css::uno::Reference< css::drawing::framework::XResourceId > &rxViewId) const
bool mbIsPresenterViewActive
Base class for presenter views that allows the view factory to store them in a cache and reuse deacti...
virtual void DeactivatePresenterView()
Called when the view is put into a cache.
css::uno::Reference< css::drawing::framework::XView > CreateSlideSorterView(const css::uno::Reference< css::drawing::framework::XResourceId > &rxViewId) const
virtual void ActivatePresenterView()