20#ifndef INCLUDED_SDEXT_SOURCE_PRESENTER_PRESENTERWINDOWMANAGER_HXX
21#define INCLUDED_SDEXT_SOURCE_PRESENTER_PRESENTERWINDOWMANAGER_HXX
25#include <com/sun/star/awt/Size.hpp>
26#include <com/sun/star/awt/XFocusListener.hpp>
27#include <com/sun/star/awt/XPaintListener.hpp>
28#include <com/sun/star/awt/XWindow.hpp>
29#include <com/sun/star/awt/XWindowListener.hpp>
30#include <com/sun/star/document/XEventListener.hpp>
31#include <com/sun/star/drawing/framework/XPane.hpp>
32#include <com/sun/star/rendering/XBitmap.hpp>
33#include <com/sun/star/uno/XComponentContext.hpp>
41class PresenterController;
42class PresenterPaneBorderPainter;
45typedef ::cppu::WeakComponentImplHelper<
46 css::awt::XWindowListener,
47 css::awt::XPaintListener,
48 css::awt::XMouseListener,
49 css::awt::XFocusListener
62 const css::uno::Reference<css::uno::XComponentContext>& rxContext,
71 void SetParentPane (
const css::uno::Reference<css::drawing::framework::XPane>& rxPane);
72 void SetTheme (
const std::shared_ptr<PresenterTheme>& rpTheme);
73 void NotifyViewCreation (
const css::uno::Reference<css::drawing::framework::XView>& rxView);
75 const OUString& rsPaneURL,
79 const double nHeight);
107 const css::uno::Reference<css::document::XEventListener>& rxListener);
109 const css::uno::Reference<css::document::XEventListener>& rxListener);
113 virtual void SAL_CALL
windowResized (
const css::awt::WindowEvent& rEvent)
override;
115 virtual void SAL_CALL
windowMoved (
const css::awt::WindowEvent& rEvent)
override;
117 virtual void SAL_CALL
windowShown (
const css::lang::EventObject& rEvent)
override;
119 virtual void SAL_CALL
windowHidden (
const css::lang::EventObject& rEvent)
override;
123 virtual void SAL_CALL
windowPaint (
const css::awt::PaintEvent& rEvent)
override;
127 virtual void SAL_CALL
mousePressed (
const css::awt::MouseEvent& rEvent)
override;
129 virtual void SAL_CALL
mouseReleased (
const css::awt::MouseEvent& rEvent)
override;
131 virtual void SAL_CALL
mouseEntered (
const css::awt::MouseEvent& rEvent)
override;
133 virtual void SAL_CALL
mouseExited (
const css::awt::MouseEvent& rEvent)
override;
137 virtual void SAL_CALL
focusGained (
const css::awt::FocusEvent& rEvent)
override;
139 virtual void SAL_CALL
focusLost (
const css::awt::FocusEvent& rEvent)
override;
144 const css::lang::EventObject& rEvent)
override;
168 typedef ::std::vector<css::uno::Reference<css::document::XEventListener> >
173 void PaintChildren (
const css::awt::PaintEvent& rEvent)
const;
174 void UpdateWindowSize (
const css::uno::Reference<css::awt::XWindow>& rxBorderWindow);
191 const double nOuterWidth,
192 const OUString& rsPaneURL);
A simple manager of the positions of the panes of the presenter screen.
virtual void SAL_CALL windowMoved(const css::awt::WindowEvent &rEvent) override
void SetPaneBorderPainter(const ::rtl::Reference< PresenterPaneBorderPainter > &rPainter)
void NotifyLayoutModeChange()
Notify changes of the layout mode and of the slide sorter state.
virtual void SAL_CALL windowPaint(const css::awt::PaintEvent &rEvent) override
void UpdateWindowSize(const css::uno::Reference< css::awt::XWindow > &rxBorderWindow)
ViewMode GetViewMode() const
void SetTheme(const std::shared_ptr< PresenterTheme > &rpTheme)
bool mbIsLayouting
This flag is set to <TRUE> while the Layout() method is being executed.
css::geometry::RealRectangle2D LayoutToolBar()
Layout the tool bar and return its outer bounding box.
virtual void SAL_CALL disposing(const css::lang::EventObject &rEvent) override
virtual void SAL_CALL focusLost(const css::awt::FocusEvent &rEvent) override
void AddLayoutListener(const css::uno::Reference< css::document::XEventListener > &rxListener)
css::uno::Reference< css::rendering::XBitmap > mxScaledBackgroundBitmap
void SetLayoutMode(const LayoutMode eMode)
virtual void SAL_CALL mouseReleased(const css::awt::MouseEvent &rEvent) override
virtual void SAL_CALL windowShown(const css::lang::EventObject &rEvent) override
void LayoutSlideSorterMode()
void SetPanePosSizeAbsolute(const OUString &rsPaneURL, const double nX, const double nY, const double nWidth, const double nHeight)
PresenterWindowManager(const css::uno::Reference< css::uno::XComponentContext > &rxContext, ::rtl::Reference< PresenterPaneContainer > pPaneContainer, ::rtl::Reference< PresenterController > pPresenterController)
void LayoutStandardMode()
css::uno::Reference< css::uno::XInterface > mxPaneBorderManager
virtual void SAL_CALL windowHidden(const css::lang::EventObject &rEvent) override
virtual void SAL_CALL windowResized(const css::awt::WindowEvent &rEvent) override
css::uno::Reference< css::rendering::XCanvas > mxParentCanvas
virtual void SAL_CALL mouseEntered(const css::awt::MouseEvent &rEvent) override
virtual void SAL_CALL focusGained(const css::awt::FocusEvent &rEvent) override
void PaintChildren(const css::awt::PaintEvent &rEvent) const
void RemoveLayoutListener(const css::uno::Reference< css::document::XEventListener > &rxListener)
void NotifyViewCreation(const css::uno::Reference< css::drawing::framework::XView > &rxView)
virtual void SAL_CALL mousePressed(const css::awt::MouseEvent &rEvent) override
void SetPauseState(bool bIsPaused)
::rtl::Reference< PresenterPaneContainer > mpPaneContainer
LayoutListenerContainer maLayoutListeners
css::uno::Reference< css::rendering::XPolyPolygon2D > mxClipPolygon
void SetHelpViewState(bool bIsActive)
void RestoreViewMode()
Restore the layout mode (or slide sorter state) from the configuration.
::std::vector< css::uno::Reference< css::document::XEventListener > > LayoutListenerContainer
void PaintBackground(const css::awt::Rectangle &rUpdateBox)
void SAL_CALL disposing() override
SharedBitmapDescriptor mpBackgroundBitmap
PresenterWindowManager & operator=(const PresenterWindowManager &)=delete
PresenterWindowManager(const PresenterWindowManager &)=delete
::rtl::Reference< PresenterPaneBorderPainter > mpPaneBorderPainter
void ProvideBackgroundBitmap()
virtual void SAL_CALL mouseExited(const css::awt::MouseEvent &rEvent) override
void ThrowIfDisposed() const
void SetSlideSorterState(bool bIsActive)
css::awt::Size CalculatePaneSize(const double nOuterWidth, const OUString &rsPaneURL)
std::shared_ptr< PresenterTheme > mpTheme
bool mbIsSlideSorterActive
virtual ~PresenterWindowManager() override
void SetViewMode(const ViewMode eMode)
The high-level method to switch the view mode.
::rtl::Reference< PresenterController > mpPresenterController
void SetParentPane(const css::uno::Reference< css::drawing::framework::XPane > &rxPane)
css::uno::Reference< css::awt::XWindow > mxParentWindow
bool mbIsMouseClickPending
css::uno::Reference< css::uno::XComponentContext > mxComponentContext
css::uno::Reference< css::rendering::XPolyPolygon2D > CreateClipPolyPolygon() const
void StoreViewMode(const ViewMode eViewMode)
::cppu::WeakComponentImplHelper< css::awt::XWindowListener, css::awt::XPaintListener, css::awt::XMouseListener, css::awt::XFocusListener > PresenterWindowManagerInterfaceBase
std::shared_ptr< PresenterBitmapContainer::BitmapDescriptor > SharedBitmapDescriptor