From e13ba48c7ff428ee0da29ee3bbb29ee3a1063540 Mon Sep 17 00:00:00 2001 From: Srijan Bhatia Date: Wed, 24 Jun 2020 20:35:00 +0530 Subject: tdf#90978 add exit button to impress presenter console Change-Id: If8a5226d700eb7a4137218191b5abc85bbb36b4d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97041 Tested-by: Jenkins Tested-by: Heiko Tietze Reviewed-by: Heiko Tietze --- ...resenterscreen-ButtonExitPresenterMouseOver.png | Bin 0 -> 771 bytes .../presenterscreen-ButtonExitPresenterNormal.png | Bin 0 -> 909 bytes ...resenterscreen-ButtonExitPresenterMouseOver.svg | 1 + .../presenterscreen-ButtonExitPresenterNormal.svg | 1 + .../data/org/openoffice/Office/PresenterScreen.xcu | 59 +++++++++++++++++++++ sd/inc/bitmaps.hlst | 2 + sd/source/ui/presenter/PresenterHelper.cxx | 4 ++ sdext/source/presenter/PresenterController.cxx | 14 +++++ sdext/source/presenter/PresenterController.hxx | 1 + .../source/presenter/PresenterProtocolHandler.cxx | 26 +++++++++ 10 files changed, 108 insertions(+) create mode 100644 icon-themes/colibre/sd/res/presenterscreen-ButtonExitPresenterMouseOver.png create mode 100644 icon-themes/colibre/sd/res/presenterscreen-ButtonExitPresenterNormal.png create mode 100644 icon-themes/colibre_svg/sd/res/presenterscreen-ButtonExitPresenterMouseOver.svg create mode 100644 icon-themes/colibre_svg/sd/res/presenterscreen-ButtonExitPresenterNormal.svg diff --git a/icon-themes/colibre/sd/res/presenterscreen-ButtonExitPresenterMouseOver.png b/icon-themes/colibre/sd/res/presenterscreen-ButtonExitPresenterMouseOver.png new file mode 100644 index 000000000000..8abf67288d8a Binary files /dev/null and b/icon-themes/colibre/sd/res/presenterscreen-ButtonExitPresenterMouseOver.png differ diff --git a/icon-themes/colibre/sd/res/presenterscreen-ButtonExitPresenterNormal.png b/icon-themes/colibre/sd/res/presenterscreen-ButtonExitPresenterNormal.png new file mode 100644 index 000000000000..bccf5e20b4ea Binary files /dev/null and b/icon-themes/colibre/sd/res/presenterscreen-ButtonExitPresenterNormal.png differ diff --git a/icon-themes/colibre_svg/sd/res/presenterscreen-ButtonExitPresenterMouseOver.svg b/icon-themes/colibre_svg/sd/res/presenterscreen-ButtonExitPresenterMouseOver.svg new file mode 100644 index 000000000000..97f1804fc32f --- /dev/null +++ b/icon-themes/colibre_svg/sd/res/presenterscreen-ButtonExitPresenterMouseOver.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icon-themes/colibre_svg/sd/res/presenterscreen-ButtonExitPresenterNormal.svg b/icon-themes/colibre_svg/sd/res/presenterscreen-ButtonExitPresenterNormal.svg new file mode 100644 index 000000000000..33321a959164 --- /dev/null +++ b/icon-themes/colibre_svg/sd/res/presenterscreen-ButtonExitPresenterNormal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu b/officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu index d5d3bc2e10eb..c60645af20d3 100644 --- a/officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu +++ b/officecfg/registry/data/org/openoffice/Office/PresenterScreen.xcu @@ -618,6 +618,65 @@ + + + VerticalSeparator + + + + + 76797C + + + + + + + ExitPresenter + + + Button + + + + Exit + + + + bitmaps/ButtonExitPresenterNormal.png + + + + vnd.org.libreoffice.presenterscreen:ExitPresenter + + + + 12 + + + Bold + + + B3B7BC + + + Center + + + + + + + bitmaps/ButtonExitPresenterMouseOver.png + + + + + FFFFFF + + + + diff --git a/sd/inc/bitmaps.hlst b/sd/inc/bitmaps.hlst index 69248b4759ba..748ea562efa1 100644 --- a/sd/inc/bitmaps.hlst +++ b/sd/inc/bitmaps.hlst @@ -103,6 +103,7 @@ #define BMP_PRESENTERSCREEN_BORDER_TOOLBAR_TOP "sd/res/presenterscreen-BorderToolbarTop.png" #define BMP_PRESENTERSCREEN_BORDER_ACTIVE_LEFT "sd/res/presenterscreen-BorderActiveLeft.png" #define BMP_PRESENTERSCREEN_BUTTON_HELP_NORMAL "sd/res/presenterscreen-ButtonHelpNormal.png" +#define BMP_PRESENTERSCREEN_BUTTON_EXIT_PRESENTER_NORMAL "sd/res/presenterscreen-ButtonExitPresenterNormal.png" #define BMP_PRESENTERSCREEN_BORDER_ACTIVE_BOTTOM_CALLOUT "sd/res/presenterscreen-BorderActiveBottomCallout.png" #define BMP_PRESENTERSCREEN_BORDER_TOOLBAR_LEFT "sd/res/presenterscreen-BorderToolbarLeft.png" #define BMP_PRESENTERSCREEN_BUTTON_SLIDE_SORTER_NORMAL "sd/res/presenterscreen-ButtonSlideSorterNormal.png" @@ -164,6 +165,7 @@ #define BMP_PRESENTERSCREEN_BORDER_CURRENT_SLIDE_BOTTOM_LEFT "sd/res/presenterscreen-BorderCurrentSlideBottomLeft.png" #define BMP_PRESENTERSCREEN_BORDER_TOP_RIGHT "sd/res/presenterscreen-BorderTopRight.png" #define BMP_PRESENTERSCREEN_BUTTON_HELP_MOUSE_OVER "sd/res/presenterscreen-ButtonHelpMouseOver.png" +#define BMP_PRESENTERSCREEN_BUTTON_EXIT_PRESENTER_MOUSE_OVER "sd/res/presenterscreen-ButtonExitPresenterMouseOver.png" #define BMP_PRESENTERSCREEN_SCROLLBAR_THUMB_TOP_NORMAL "sd/res/presenterscreen-ScrollbarThumbTopNormal.png" #define BMP_PRESENTERSCREEN_SCROLLBAR_ARROW_UP_SELECTED "sd/res/presenterscreen-ScrollbarArrowUpSelected.png" #define BMP_PRESENTERSCREEN_SCROLLBAR_ARROW_UP_DISABLED "sd/res/presenterscreen-ScrollbarArrowUpDisabled.png" diff --git a/sd/source/ui/presenter/PresenterHelper.cxx b/sd/source/ui/presenter/PresenterHelper.cxx index 0ce0a02f424f..ec1d63e7029c 100644 --- a/sd/source/ui/presenter/PresenterHelper.cxx +++ b/sd/source/ui/presenter/PresenterHelper.cxx @@ -276,6 +276,10 @@ Reference SAL_CALL PresenterHelper::loadBitmap ( BMP_PRESENTERSCREEN_BUTTON_HELP_NORMAL }, { "bitmaps/ButtonHelpSelected.png", BMP_PRESENTERSCREEN_BUTTON_HELP_SELECTED }, + { "bitmaps/ButtonExitPresenterMouseOver.png", + BMP_PRESENTERSCREEN_BUTTON_EXIT_PRESENTER_MOUSE_OVER }, + { "bitmaps/ButtonExitPresenterNormal.png", + BMP_PRESENTERSCREEN_BUTTON_EXIT_PRESENTER_NORMAL }, { "bitmaps/ButtonMinusDisabled.png", BMP_PRESENTERSCREEN_BUTTON_MINUS_DISABLED }, { "bitmaps/ButtonMinusMouseOver.png", diff --git a/sdext/source/presenter/PresenterController.cxx b/sdext/source/presenter/PresenterController.cxx index c37ee6f8b097..281f77e59d5e 100644 --- a/sdext/source/presenter/PresenterController.cxx +++ b/sdext/source/presenter/PresenterController.cxx @@ -1157,6 +1157,20 @@ void PresenterController::SwitchMonitors() pScreen->SwitchMonitors(); } +void PresenterController::ExitPresenter() +{ + if( mxController.is() ) + { + Reference< XPresentationSupplier > xPS( mxController->getModel(), UNO_QUERY ); + if( xPS.is() ) + { + Reference< XPresentation > xP( xPS->getPresentation() ); + if( xP.is() ) + xP->end(); + } + } +} + } // end of namespace ::sdext::presenter /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sdext/source/presenter/PresenterController.hxx b/sdext/source/presenter/PresenterController.hxx index 400fb9174f11..1a9d8a1aaa04 100644 --- a/sdext/source/presenter/PresenterController.hxx +++ b/sdext/source/presenter/PresenterController.hxx @@ -110,6 +110,7 @@ public: void ShowView (const OUString& rsViewURL); void HideView (const OUString& rsViewURL); void SwitchMonitors(); + void ExitPresenter(); void DispatchUnoCommand (const OUString& rsCommand) const; css::uno::Reference GetDispatch ( const css::util::URL& rURL) const; diff --git a/sdext/source/presenter/PresenterProtocolHandler.cxx b/sdext/source/presenter/PresenterProtocolHandler.cxx index 029365e3b21d..64b00fd36f67 100644 --- a/sdext/source/presenter/PresenterProtocolHandler.cxx +++ b/sdext/source/presenter/PresenterProtocolHandler.cxx @@ -164,6 +164,15 @@ namespace { const sal_Int32 mnSizeChange; }; + class ExitPresenterCommand : public Command + { + public: + explicit ExitPresenterCommand(const rtl::Reference& rpPresenterController); + virtual void Execute() override; + private: + rtl::Reference mpPresenterController; + }; + } // end of anonymous namespace namespace { @@ -398,6 +407,8 @@ Command* PresenterProtocolHandler::Dispatch::CreateCommand ( return new SetHelpViewCommand(true, rpPresenterController); if (rsURLPath == "ShrinkNotesFont") return new NotesFontSizeCommand(rpPresenterController, -1); + if (rsURLPath == "ExitPresenter") + return new ExitPresenterCommand(rpPresenterController); return nullptr; } @@ -805,6 +816,21 @@ Any NotesFontSizeCommand::GetState() const return Any(); } +//===== ExitPresenterCommand ================================================== + +ExitPresenterCommand::ExitPresenterCommand (const rtl::Reference& rpPresenterController) +: mpPresenterController(rpPresenterController) +{ +} + +void ExitPresenterCommand::Execute() +{ + if ( ! mpPresenterController.is()) + return; + + mpPresenterController->ExitPresenter(); +} + } // end of namespace ::sdext::presenter /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit