43class NextSlidePreview :
public PresenterSlidePreview
47 const css::uno::Reference<css::uno::XComponentContext>& rxContext,
48 const css::uno::Reference<css::drawing::framework::XResourceId>& rxViewId,
49 const css::uno::Reference<css::drawing::framework::XPane>& rxAnchorPane,
50 const ::rtl::Reference<PresenterController>& rpPresenterController)
51 : PresenterSlidePreview(rxContext, rxViewId, rxAnchorPane, rpPresenterController)
55 virtual void SAL_CALL setCurrentPage (
56 const css::uno::Reference<css::drawing::XDrawPage>& rxSlide)
override
58 Reference<presentation::XSlideShowController> xSlideShowController (
60 Reference<drawing::XDrawPage> xSlide;
61 if (xSlideShowController.is())
63 const sal_Int32
nCount (xSlideShowController->getSlideCount());
64 sal_Int32 nNextSlideIndex (-1);
65 if (xSlideShowController->getCurrentSlide() == rxSlide)
67 nNextSlideIndex = xSlideShowController->getNextSlideIndex();
73 if (rxSlide == xSlideShowController->getSlideByIndex(nIndex))
75 nNextSlideIndex =
nIndex + 1;
79 if (nNextSlideIndex >= 0)
81 if (nNextSlideIndex < nCount)
83 xSlide = xSlideShowController->getSlideByIndex(nNextSlideIndex);
96 const Reference<uno::XComponentContext>& rxContext,
101 mxControllerWeak(rxController),
107 const Reference<uno::XComponentContext>& rxContext,
109 const ::rtl::Reference<PresenterController>& rpPresenterController)
113 pFactory->Register(rxController);
114 return Reference<drawing::framework::XResourceFactory>(pFactory);
163 Reference<lang::XComponent> xComponent (rView.second.first, UNO_QUERY);
165 xComponent->dispose();
167 catch (lang::DisposedException&)
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);
217 CachablePresenterView* pView =
dynamic_cast<CachablePresenterView*
>(rxView.get());
222 if (pView !=
nullptr)
223 pView->ReleaseView();
224 Reference<lang::XComponent> xComponent (rxView, UNO_QUERY);
226 xComponent->dispose();
228 catch (lang::DisposedException&)
238 Reference<XResourceId> xViewId (rxView->getResourceId());
241 Reference<XPane> xAnchorPane (
244 (*mpResourceCache)[xViewId->getResourceURL()]
246 pView->DeactivatePresenterView();
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)
272 CachablePresenterView* pView
273 =
dynamic_cast<CachablePresenterView*
>(iView->second.first.get());
274 if (pView !=
nullptr)
275 pView->ActivatePresenterView();
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());
324 CachablePresenterView* pView =
dynamic_cast<CachablePresenterView*
>(xView.get());
325 if (pView !=
nullptr)
326 pView->ActivatePresenterView();
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)));
482CachablePresenterView::CachablePresenterView()
483 : mbIsPresenterViewActive(true)
487void CachablePresenterView::ActivatePresenterView()
489 mbIsPresenterViewActive =
true;
492void CachablePresenterView::DeactivatePresenterView()
494 mbIsPresenterViewActive =
false;
497void CachablePresenterView::ReleaseView()
rtl::Reference< PresenterController > mpPresenterController
css::uno::Reference< css::uno::XComponentContext > mxComponentContext
Show help text that describes the defined keys.
A drawing framework view of the notes of a slide.
std::shared_ptr< PaneDescriptor > SharedPaneDescriptor
virtual void SAL_CALL setCurrentPage(const css::uno::Reference< css::drawing::XDrawPage > &rxSlide) override
Life view in a secondary window of a full screen slide show.
A simple slide sorter for the presenter screen.
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)
std::unique_ptr< ResourceContainer > mpResourceCache
static constexpr OUStringLiteral msCurrentSlidePreviewViewURL
css::uno::Reference< css::drawing::framework::XConfigurationController > mxConfigurationController
PresenterViewFactory(const css::uno::Reference< css::uno::XComponentContext > &rxContext, const rtl::Reference<::sd::DrawController > &rxController, ::rtl::Reference< PresenterController > pPresenterController)
void Register(const ::rtl::Reference<::sd::DrawController > &rxController)
static constexpr OUStringLiteral msToolBarViewURL
void ThrowIfDisposed() const
css::uno::Reference< css::drawing::framework::XView > CreateSlideSorterView(const css::uno::Reference< css::drawing::framework::XResourceId > &rxViewId) const
css::uno::Reference< css::drawing::framework::XView > CreateToolBarView(const css::uno::Reference< css::drawing::framework::XResourceId > &rxViewId) const
virtual css::uno::Reference< css::drawing::framework::XResource > SAL_CALL createResource(const css::uno::Reference< css::drawing::framework::XResourceId > &rxViewId) override
css::uno::Reference< css::drawing::framework::XView > CreateNotesView(const css::uno::Reference< css::drawing::framework::XResourceId > &rxViewId) const
unotools::WeakReference<::sd::DrawController > mxControllerWeak
static constexpr OUStringLiteral msNotesViewURL
virtual ~PresenterViewFactory() override
static constexpr OUStringLiteral msSlideSorterURL
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
::rtl::Reference< PresenterController > mpPresenterController
static constexpr OUStringLiteral msNextSlidePreviewViewURL
static constexpr OUStringLiteral msHelpViewURL
static css::uno::Reference< css::drawing::framework::XResourceFactory > Create(const css::uno::Reference< css::uno::XComponentContext > &rxContext, const ::rtl::Reference<::sd::DrawController > &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...
css::uno::Reference< css::drawing::framework::XView > CreateHelpView(const css::uno::Reference< css::drawing::framework::XResourceId > &rxViewId) const
css::uno::Reference< css::uno::XComponentContext > mxComponentContext
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
virtual void SAL_CALL releaseResource(const css::uno::Reference< css::drawing::framework::XResource > &rxPane) override
::std::pair< css::uno::Reference< css::drawing::framework::XView >, css::uno::Reference< css::drawing::framework::XPane > > ViewResourceDescriptor
css::uno::Reference< css::drawing::framework::XView > CreateSlideShowView(const css::uno::Reference< css::drawing::framework::XResourceId > &rxViewId) const
virtual void SAL_CALL disposing() override
::cppu::WeakComponentImplHelper< css::drawing::framework::XResourceFactory > PresenterViewFactoryInterfaceBase