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>
36 #include <rtl/ref.hxx>
41 class PresenterController;
42 class PresenterPaneBorderPainter;
45 typedef ::cppu::WeakComponentImplHelper<
46 css::awt::XWindowListener,
47 css::awt::XPaintListener,
48 css::awt::XMouseListener,
49 css::awt::XFocusListener
58 public PresenterWindowManagerInterfaceBase
62 const css::uno::Reference<css::uno::XComponentContext>& rxContext,
63 const ::rtl::Reference<PresenterPaneContainer>& rpPaneContainer,
64 const ::rtl::Reference<PresenterController>& rpPresenterController);
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);
::rtl::Reference< PresenterController > mpPresenterController
css::uno::Reference< css::rendering::XCanvas > mxParentCanvas
void ThrowIfDisposed() const
void PaintChildren(const css::awt::PaintEvent &rEvent) const
css::uno::Reference< css::rendering::XBitmap > mxScaledBackgroundBitmap
::std::vector< css::uno::Reference< css::document::XEventListener > > LayoutListenerContainer
virtual void SAL_CALL mouseExited(const css::awt::MouseEvent &rEvent) override
bool mbIsLayouting
This flag is set to while the Layout() method is being executed.
void SetLayoutMode(const LayoutMode eMode)
void SetSlideSorterState(bool bIsActive)
void RestoreViewMode()
Restore the layout mode (or slide sorter state) from the configuration.
virtual void SAL_CALL mouseEntered(const css::awt::MouseEvent &rEvent) override
css::uno::Reference< css::uno::XInterface > mxPaneBorderManager
::cppu::WeakComponentImplHelper< css::awt::XWindowListener, css::awt::XPaintListener, css::awt::XMouseListener, css::awt::XFocusListener > PresenterWindowManagerInterfaceBase
virtual void SAL_CALL windowHidden(const css::lang::EventObject &rEvent) override
void SetViewMode(const ViewMode eMode)
The high-level method to switch the view mode.
std::shared_ptr< PresenterBitmapContainer::BitmapDescriptor > SharedBitmapDescriptor
virtual void SAL_CALL windowResized(const css::awt::WindowEvent &rEvent) override
void ProvideBackgroundBitmap()
std::shared_ptr< PresenterTheme > mpTheme
virtual void SAL_CALL focusGained(const css::awt::FocusEvent &rEvent) override
virtual void SAL_CALL mousePressed(const css::awt::MouseEvent &rEvent) override
A theme is a set of properties describing fonts, colors, and bitmaps to be used to draw background...
void SetTheme(const std::shared_ptr< PresenterTheme > &rpTheme)
::rtl::Reference< PresenterPaneBorderPainter > mpPaneBorderPainter
void RemoveLayoutListener(const css::uno::Reference< css::document::XEventListener > &rxListener)
void SetHelpViewState(bool bIsActive)
PresenterWindowManager(const css::uno::Reference< css::uno::XComponentContext > &rxContext, const ::rtl::Reference< PresenterPaneContainer > &rpPaneContainer, const ::rtl::Reference< PresenterController > &rpPresenterController)
virtual void SAL_CALL windowPaint(const css::awt::PaintEvent &rEvent) override
css::geometry::RealRectangle2D LayoutToolBar()
Layout the tool bar and return its outer bounding box.
void SetParentPane(const css::uno::Reference< css::drawing::framework::XPane > &rxPane)
void SetPaneBorderPainter(const ::rtl::Reference< PresenterPaneBorderPainter > &rPainter)
void AddLayoutListener(const css::uno::Reference< css::document::XEventListener > &rxListener)
A simple manager of the positions of the panes of the presenter screen.
css::uno::Reference< css::rendering::XPolyPolygon2D > mxClipPolygon
virtual void SAL_CALL windowShown(const css::lang::EventObject &rEvent) override
css::awt::Size CalculatePaneSize(const double nOuterWidth, const OUString &rsPaneURL)
LayoutListenerContainer maLayoutListeners
bool mbIsMouseClickPending
::rtl::Reference< PresenterPaneContainer > mpPaneContainer
void SAL_CALL disposing() override
virtual void SAL_CALL mouseReleased(const css::awt::MouseEvent &rEvent) override
void StoreViewMode(const ViewMode eViewMode)
void PaintBackground(const css::awt::Rectangle &rUpdateBox)
void SetPanePosSizeAbsolute(const OUString &rsPaneURL, const double nX, const double nY, const double nWidth, const double nHeight)
virtual ~PresenterWindowManager() override
PresenterWindowManager & operator=(const PresenterWindowManager &)=delete
void UpdateWindowSize(const css::uno::Reference< css::awt::XWindow > &rxBorderWindow)
bool mbIsSlideSorterActive
virtual void SAL_CALL focusLost(const css::awt::FocusEvent &rEvent) override
ViewMode GetViewMode() const
css::uno::Reference< css::awt::XWindow > mxParentWindow
void LayoutStandardMode()
void NotifyLayoutModeChange()
Notify changes of the layout mode and of the slide sorter state.
virtual void SAL_CALL windowMoved(const css::awt::WindowEvent &rEvent) override
void LayoutSlideSorterMode()
css::uno::Reference< css::rendering::XPolyPolygon2D > CreateClipPolyPolygon() const
css::uno::Reference< css::uno::XComponentContext > mxComponentContext
SharedBitmapDescriptor mpBackgroundBitmap
void SetPauseState(bool bIsPaused)
void NotifyViewCreation(const css::uno::Reference< css::drawing::framework::XView > &rxView)