officecfg/registry/schema/org/openoffice/Office/Impress.xcs | 7 ++ sd/source/ui/app/optsitem.cxx | 19 ++++- sd/source/ui/dlg/tpoption.cxx | 24 ++++--- sd/source/ui/framework/factories/FullScreenPane.cxx | 23 ++++--- sd/source/ui/framework/factories/FullScreenPane.hxx | 3 sd/source/ui/inc/optsitem.hxx | 39 ++++++------ sd/source/ui/inc/tpoption.hxx | 1 sd/uiconfig/simpress/ui/optimpressgeneralpage.ui | 21 ++++++ sdext/source/presenter/PresenterScreen.cxx | 26 +++++++- sdext/source/presenter/PresenterScreen.hxx | 6 + 10 files changed, 124 insertions(+), 45 deletions(-)
New commits: commit a15bcda0e21be04bec424172192f2416b7f52422 Author: Daniel Lohmann <libreofficecontribut...@dldld.de> AuthorDate: Mon Nov 14 19:17:14 2022 +0100 Commit: Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de> CommitDate: Thu Nov 17 06:57:40 2022 +0100 tdf#33495: Allow presenter console in windowed mode Added an option in the Impress settings window to set the presenter console into fullscreen/windowed mode. This will then be used the next time a presentation is started. Two pictures of how the result looks are given in the bug tracker. Change-Id: I231f9180301301a9eccf9984ea4dcd529bd7dfce Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142359 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de> diff --git a/officecfg/registry/schema/org/openoffice/Office/Impress.xcs b/officecfg/registry/schema/org/openoffice/Office/Impress.xcs index acf2673f54a7..fefd4ba2f6bf 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Impress.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Impress.xcs @@ -570,6 +570,13 @@ </info> <value>true</value> </prop> + <prop oor:name="PresenterScreenFullScreen" oor:type="xs:boolean" oor:nillable="false"> + <info> + <desc>Indicates whether the Presenter Screen Console is shown in FullScreen mode.</desc> + <label>Presenter Screen FullScreen</label> + </info> + <value>true</value> + </prop> </group> <group oor:name="Compatibility"> <info> diff --git a/sd/source/ui/app/optsitem.cxx b/sd/source/ui/app/optsitem.cxx index 5baff32e2df8..fb9aac86d491 100644 --- a/sd/source/ui/app/optsitem.cxx +++ b/sd/source/ui/app/optsitem.cxx @@ -409,7 +409,8 @@ SdOptionsMisc::SdOptionsMisc( bool bImpress, bool bUseConfig ) : bDoubleClickTextEdit( true ), bClickChangeRotation( false ), bEnableSdremote( false ), - bEnablePresenterScreen( true), + bEnablePresenterScreen( true ), + bPresenterScreenFullScreen( true ), bSolidDragging( true ), bSummationOfParagraphs( false ), bTabBarVisible( true ), @@ -443,7 +444,8 @@ bool SdOptionsMisc::operator==( const SdOptionsMisc& rOpt ) const IsDoubleClickTextEdit() == rOpt.IsDoubleClickTextEdit() && IsClickChangeRotation() == rOpt.IsClickChangeRotation() && IsEnableSdremote() == rOpt.IsEnableSdremote() && - IsEnablePresenterScreen() == rOpt.IsEnablePresenterScreen()&& + IsEnablePresenterScreen() == rOpt.IsEnablePresenterScreen() && + IsPresenterScreenFullScreen() == rOpt.IsPresenterScreenFullScreen() && IsSummationOfParagraphs() == rOpt.IsSummationOfParagraphs() && IsTabBarVisible() == rOpt.IsTabBarVisible() && IsSolidDragging() == rOpt.IsSolidDragging() && @@ -500,6 +502,7 @@ void SdOptionsMisc::GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) "PenWidth", "Start/EnableSdremote", "Start/EnablePresenterScreen", + "Start/PresenterScreenFullScreen", "TabBarVisible" }; @@ -562,8 +565,11 @@ bool SdOptionsMisc::ReadData( const Any* pValues ) if( pValues[25].hasValue() ) SetEnablePresenterScreen( *o3tl::doAccess<bool>(pValues[ 25 ]) ); - if( pValues[26].hasValue() ) { - SetTabBarVisible( *o3tl::doAccess<bool>(pValues[ 26 ]) ); + if (pValues[26].hasValue() ) + SetPresenterScreenFullScreen( *o3tl::doAccess<bool>(pValues[ 26 ]) ); + + if( pValues[27].hasValue() ) { + SetTabBarVisible( *o3tl::doAccess<bool>(pValues[ 27 ]) ); } } @@ -606,7 +612,8 @@ bool SdOptionsMisc::WriteData( Any* pValues ) const pValues[ 23 ] <<= GetPresentationPenWidth(); pValues[ 24 ] <<= IsEnableSdremote(); pValues[ 25 ] <<= IsEnablePresenterScreen(); - pValues[ 26 ] <<= IsTabBarVisible(); + pValues[ 26 ] <<= IsPresenterScreenFullScreen(); + pValues[ 27 ] <<= IsTabBarVisible(); } return true; @@ -633,6 +640,7 @@ SdOptionsMiscItem::SdOptionsMiscItem( SdOptions const * pOpts, ::sd::FrameView c maOptionsMisc.SetStartWithTemplate( pOpts->IsStartWithTemplate() ); maOptionsMisc.SetEnableSdremote( pOpts->IsEnableSdremote() ); maOptionsMisc.SetEnablePresenterScreen( pOpts->IsEnablePresenterScreen() ); + maOptionsMisc.SetPresenterScreenFullScreen( pOpts->IsPresenterScreenFullScreen() ); maOptionsMisc.SetSummationOfParagraphs( pOpts->IsSummationOfParagraphs() ); maOptionsMisc.SetTabBarVisible( pOpts->IsTabBarVisible() ); maOptionsMisc.SetShowUndoDeleteWarning( pOpts->IsShowUndoDeleteWarning() ); @@ -710,6 +718,7 @@ void SdOptionsMiscItem::SetOptions( SdOptions* pOpts ) const pOpts->SetClickChangeRotation( maOptionsMisc.IsClickChangeRotation() ); pOpts->SetEnableSdremote( maOptionsMisc.IsEnableSdremote() ); pOpts->SetEnablePresenterScreen( maOptionsMisc.IsEnablePresenterScreen() ); + pOpts->SetPresenterScreenFullScreen( maOptionsMisc.IsPresenterScreenFullScreen() ); pOpts->SetSummationOfParagraphs( maOptionsMisc.IsSummationOfParagraphs() ); pOpts->SetTabBarVisible( maOptionsMisc.IsTabBarVisible() ); diff --git a/sd/source/ui/dlg/tpoption.cxx b/sd/source/ui/dlg/tpoption.cxx index 8c1408de0b57..3d214f56df72 100644 --- a/sd/source/ui/dlg/tpoption.cxx +++ b/sd/source/ui/dlg/tpoption.cxx @@ -186,6 +186,7 @@ SdTpOptionsMisc::SdTpOptionsMisc(weld::Container* pPage, weld::DialogController* , m_xMtrFldTabstop(m_xBuilder->weld_metric_spin_button("metricFields", FieldUnit::MM)) , m_xCbxEnableSdremote(m_xBuilder->weld_check_button("enremotcont")) , m_xCbxEnablePresenterScreen(m_xBuilder->weld_check_button("enprsntcons")) + , m_xCbxPresenterScreenFullScreen(m_xBuilder->weld_check_button("enprsntconsfullscreen")) , m_xCbxCompatibility(m_xBuilder->weld_check_button("cbCompatibility")) , m_xScaleFrame(m_xBuilder->weld_frame("scaleframe")) , m_xCbScale(m_xBuilder->weld_combo_box("scaleBox")) @@ -329,15 +330,16 @@ bool SdTpOptionsMisc::FillItemSet( SfxItemSet* rAttrs ) { bool bModified = false; - if( m_xCbxStartWithTemplate->get_state_changed_from_saved() || - m_xCbxMarkedHitMovesAlways->get_state_changed_from_saved() || - m_xCbxQuickEdit->get_state_changed_from_saved() || - m_xCbxPickThrough->get_state_changed_from_saved() || - m_xCbxMasterPageCache->get_state_changed_from_saved() || - m_xCbxCopy->get_state_changed_from_saved() || - m_xCbxEnableSdremote->get_state_changed_from_saved() || - m_xCbxEnablePresenterScreen->get_state_changed_from_saved() || - m_xCbxCompatibility->get_state_changed_from_saved() || + if( m_xCbxStartWithTemplate->get_state_changed_from_saved() || + m_xCbxMarkedHitMovesAlways->get_state_changed_from_saved() || + m_xCbxQuickEdit->get_state_changed_from_saved() || + m_xCbxPickThrough->get_state_changed_from_saved() || + m_xCbxMasterPageCache->get_state_changed_from_saved() || + m_xCbxCopy->get_state_changed_from_saved() || + m_xCbxEnableSdremote->get_state_changed_from_saved() || + m_xCbxEnablePresenterScreen->get_state_changed_from_saved() || + m_xCbxPresenterScreenFullScreen->get_state_changed_from_saved() || + m_xCbxCompatibility->get_state_changed_from_saved() || m_xCbxDistort->get_state_changed_from_saved()) { SdOptionsMiscItem aOptsItem; @@ -350,6 +352,7 @@ bool SdTpOptionsMisc::FillItemSet( SfxItemSet* rAttrs ) aOptsItem.GetOptionsMisc().SetDragWithCopy( m_xCbxCopy->get_active() ); aOptsItem.GetOptionsMisc().SetEnableSdremote( m_xCbxEnableSdremote->get_active() ); aOptsItem.GetOptionsMisc().SetEnablePresenterScreen( m_xCbxEnablePresenterScreen->get_active() ); + aOptsItem.GetOptionsMisc().SetPresenterScreenFullScreen( m_xCbxPresenterScreenFullScreen->get_active() ); aOptsItem.GetOptionsMisc().SetSummationOfParagraphs( m_xCbxCompatibility->get_active() ); aOptsItem.GetOptionsMisc().SetCrookNoContortion( m_xCbxDistort->get_active() ); rAttrs->Put( aOptsItem ); @@ -399,6 +402,7 @@ void SdTpOptionsMisc::Reset( const SfxItemSet* rAttrs ) m_xCbxCopy->set_active( aOptsItem.GetOptionsMisc().IsDragWithCopy() ); m_xCbxEnableSdremote->set_active( aOptsItem.GetOptionsMisc().IsEnableSdremote() ); m_xCbxEnablePresenterScreen->set_active( aOptsItem.GetOptionsMisc().IsEnablePresenterScreen() ); + m_xCbxPresenterScreenFullScreen->set_active( aOptsItem.GetOptionsMisc().IsPresenterScreenFullScreen() ); m_xCbxCompatibility->set_active( aOptsItem.GetOptionsMisc().IsSummationOfParagraphs() ); m_xCbxDistort->set_active( aOptsItem.GetOptionsMisc().IsCrookNoContortion() ); m_xCbxStartWithTemplate->save_state(); @@ -410,6 +414,7 @@ void SdTpOptionsMisc::Reset( const SfxItemSet* rAttrs ) m_xCbxCopy->save_state(); m_xCbxEnableSdremote->save_state(); m_xCbxEnablePresenterScreen->save_state(); + m_xCbxPresenterScreenFullScreen->save_state(); m_xCbxCompatibility->save_state(); m_xCbxDistort->save_state(); @@ -496,6 +501,7 @@ void SdTpOptionsMisc::SetDrawMode() m_xNewDocumentFrame->hide(); m_xCbxEnableSdremote->hide(); m_xCbxEnablePresenterScreen->hide(); + m_xCbxPresenterScreenFullScreen->hide(); m_xCbxCompatibility->hide(); m_xNewDocLb->hide(); m_xCbScale->show(); diff --git a/sd/source/ui/framework/factories/FullScreenPane.cxx b/sd/source/ui/framework/factories/FullScreenPane.cxx index dbf34213ff24..39da06144c09 100644 --- a/sd/source/ui/framework/factories/FullScreenPane.cxx +++ b/sd/source/ui/framework/factories/FullScreenPane.cxx @@ -40,23 +40,27 @@ FullScreenPane::FullScreenPane ( : FrameWindowPane(rxPaneId,nullptr), mxComponentContext(rxComponentContext) { + sal_Int32 nScreenNumber = 1; + bool bFullScreen = true; + ExtractArguments(rxPaneId, nScreenNumber, bFullScreen); + vcl::Window* pParent = nullptr; - mpWorkWindow.reset(VclPtr<WorkWindow>::Create( + WinBits nStyle = bFullScreen ? 0 : (WB_BORDER | WB_MOVEABLE | WB_SIZEABLE); + mpWorkWindow.reset(VclPtr<WorkWindow>::Create( pParent, - 0)); // For debugging (non-fullscreen) use WB_BORDER | WB_MOVEABLE | WB_SIZEABLE)); + nStyle)); // For debugging (non-fullscreen) use WB_BORDER | WB_MOVEABLE | WB_SIZEABLE)); if ( ! rxPaneId.is()) throw lang::IllegalArgumentException(); - sal_Int32 nScreenNumber = 1; - ExtractArguments(rxPaneId, nScreenNumber); - if (!mpWorkWindow) return; // Create a new top-level window that is displayed full screen. - mpWorkWindow->ShowFullScreenMode(true, nScreenNumber); + if (bFullScreen) + mpWorkWindow->ShowFullScreenMode(bFullScreen, nScreenNumber); + // For debugging (non-fullscreen) use mpWorkWindow->SetScreenNumber(nScreenNumber); mpWorkWindow->SetMenuBarMode(MenuBarMode::Hide); mpWorkWindow->SetBorderStyle(WindowBorderStyle::REMOVEBORDER); @@ -206,7 +210,8 @@ Reference<rendering::XCanvas> FullScreenPane::CreateCanvas() void FullScreenPane::ExtractArguments ( const Reference<XResourceId>& rxPaneId, - sal_Int32& rnScreenNumberReturnValue) + sal_Int32& rnScreenNumberReturnValue, + bool& rbFullScreen) { // Extract arguments from the resource URL. const util::URL aURL = rxPaneId->getFullResourceURL(); @@ -218,6 +223,10 @@ void FullScreenPane::ExtractArguments ( { rnScreenNumberReturnValue = o3tl::toInt32(sValue); } + if (o3tl::starts_with(aToken, u"FullScreen=", &sValue)) + { + rbFullScreen = o3tl::equalsAscii(sValue, "true"); + } } } diff --git a/sd/source/ui/framework/factories/FullScreenPane.hxx b/sd/source/ui/framework/factories/FullScreenPane.hxx index b33804ee5856..138503d02f1a 100644 --- a/sd/source/ui/framework/factories/FullScreenPane.hxx +++ b/sd/source/ui/framework/factories/FullScreenPane.hxx @@ -77,7 +77,8 @@ private: static void ExtractArguments ( const css::uno::Reference<css::drawing::framework::XResourceId>& rxPaneId, - sal_Int32& rnScreenNumberReturnValue); + sal_Int32& rnScreenNumberReturnValue, + bool& rbFullScreen); }; } // end of namespace sd::framework diff --git a/sd/source/ui/inc/optsitem.hxx b/sd/source/ui/inc/optsitem.hxx index 979b90b78425..0b5347f7c639 100644 --- a/sd/source/ui/inc/optsitem.hxx +++ b/sd/source/ui/inc/optsitem.hxx @@ -185,25 +185,26 @@ private: sal_Int32 nDefaultObjectSizeWidth; sal_Int32 nDefaultObjectSizeHeight; - bool bStartWithTemplate : 1; // Misc/NewDoc/AutoPilot - bool bMarkedHitMovesAlways : 1; // Misc/ObjectMoveable - bool bMoveOnlyDragging : 1; // Currently, not in use !!! - bool bCrookNoContortion : 1; // Misc/NoDistort - bool bQuickEdit : 1; // Misc/TextObject/QuickEditing - bool bMasterPageCache : 1; // Misc/BackgroundCache - bool bDragWithCopy : 1; // Misc/CopyWhileMoving - bool bPickThrough : 1; // Misc/TextObject/Selectable - bool bDoubleClickTextEdit : 1; // Misc/DclickTextedit - bool bClickChangeRotation : 1; // Misc/RotateClick - bool bEnableSdremote : 1; // Misc/Start/EnableSdremote - bool bEnablePresenterScreen : 1; // Misc/Start/EnablePresenterDisplay - bool bSolidDragging : 1; // Misc/ModifyWithAttributes - bool bSummationOfParagraphs : 1; // misc/SummationOfParagraphs - bool bTabBarVisible : 1; // Misc/TabBarVisible - bool bShowUndoDeleteWarning : 1; // Misc/ShowUndoDeleteWarning + bool bStartWithTemplate : 1; // Misc/NewDoc/AutoPilot + bool bMarkedHitMovesAlways : 1; // Misc/ObjectMoveable + bool bMoveOnlyDragging : 1; // Currently, not in use !!! + bool bCrookNoContortion : 1; // Misc/NoDistort + bool bQuickEdit : 1; // Misc/TextObject/QuickEditing + bool bMasterPageCache : 1; // Misc/BackgroundCache + bool bDragWithCopy : 1; // Misc/CopyWhileMoving + bool bPickThrough : 1; // Misc/TextObject/Selectable + bool bDoubleClickTextEdit : 1; // Misc/DclickTextedit + bool bClickChangeRotation : 1; // Misc/RotateClick + bool bEnableSdremote : 1; // Misc/Start/EnableSdremote + bool bEnablePresenterScreen : 1; // Misc/Start/EnablePresenterScreen + bool bPresenterScreenFullScreen : 1; // Misc/Start/PresenterScreenFullScreen + bool bSolidDragging : 1; // Misc/ModifyWithAttributes + bool bSummationOfParagraphs : 1; // misc/SummationOfParagraphs + bool bTabBarVisible : 1; // Misc/TabBarVisible + bool bShowUndoDeleteWarning : 1; // Misc/ShowUndoDeleteWarning // #i75315# - bool bSlideshowRespectZOrder : 1; // Misc/SlideshowRespectZOrder - bool bShowComments : 1; // Misc/ShowComments + bool bSlideshowRespectZOrder : 1; // Misc/SlideshowRespectZOrder + bool bShowComments : 1; // Misc/ShowComments bool bPreviewNewEffects; bool bPreviewChangedEffects; @@ -247,6 +248,7 @@ public: bool IsClickChangeRotation() const { Init(); return bClickChangeRotation; } bool IsEnableSdremote() const { Init(); return bEnableSdremote; } bool IsEnablePresenterScreen() const { Init(); return bEnablePresenterScreen; } + bool IsPresenterScreenFullScreen() const { Init(); return bPresenterScreenFullScreen; } bool IsSolidDragging() const { Init(); return bSolidDragging; } bool IsSummationOfParagraphs() const { Init(); return bSummationOfParagraphs; }; bool IsTabBarVisible() const { Init(); return bTabBarVisible; }; @@ -287,6 +289,7 @@ public: void SetClickChangeRotation( bool bOn ) { if( bClickChangeRotation != bOn ) { OptionsChanged(); bClickChangeRotation = bOn; } } void SetEnableSdremote( bool bOn ) { if( bEnableSdremote != bOn ) { OptionsChanged(); bEnableSdremote = bOn; } } void SetEnablePresenterScreen( bool bOn ) { if( bEnablePresenterScreen != bOn ) { OptionsChanged(); bEnablePresenterScreen = bOn; } } + void SetPresenterScreenFullScreen( bool bOn ) { if ( bPresenterScreenFullScreen != bOn) { OptionsChanged(); bPresenterScreenFullScreen = bOn; } } void SetSummationOfParagraphs( bool bOn ){ if ( bOn != bSummationOfParagraphs ) { OptionsChanged(); bSummationOfParagraphs = bOn; } } void SetTabBarVisible( bool bOn ){ if ( bOn != bTabBarVisible ) { OptionsChanged(); bTabBarVisible = bOn; } } /** Set the printer independent layout mode. diff --git a/sd/source/ui/inc/tpoption.hxx b/sd/source/ui/inc/tpoption.hxx index d0f010a26332..995916331223 100644 --- a/sd/source/ui/inc/tpoption.hxx +++ b/sd/source/ui/inc/tpoption.hxx @@ -88,6 +88,7 @@ private: std::unique_ptr<weld::CheckButton> m_xCbxEnableSdremote; std::unique_ptr<weld::CheckButton> m_xCbxEnablePresenterScreen; + std::unique_ptr<weld::CheckButton> m_xCbxPresenterScreenFullScreen; std::unique_ptr<weld::CheckButton> m_xCbxCompatibility; //Scale diff --git a/sd/uiconfig/simpress/ui/optimpressgeneralpage.ui b/sd/uiconfig/simpress/ui/optimpressgeneralpage.ui index 449248536fb9..6cb9eba76c7f 100644 --- a/sd/uiconfig/simpress/ui/optimpressgeneralpage.ui +++ b/sd/uiconfig/simpress/ui/optimpressgeneralpage.ui @@ -96,7 +96,7 @@ <property name="label-xalign">0</property> <property name="shadow-type">none</property> <child> - <!-- n-columns=1 n-rows=2 --> + <!-- n-columns=1 n-rows=3 --> <object class="GtkGrid" id="grid5"> <property name="visible">True</property> <property name="can-focus">False</property> @@ -144,6 +144,25 @@ <property name="top-attach">0</property> </packing> </child> + <child> + <object class="GtkCheckButton" id="enprsntconsfullscreen"> + <property name="label" translatable="yes" context="optimpressgeneralpage|enprsntconsfullscreen">Presenter Console Fullscreen</property> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="receives-default">False</property> + <property name="use-underline">True</property> + <property name="draw-indicator">True</property> + <child internal-child="accessible"> + <object class="AtkObject" id="enprsntconsfullscreen-atkobject"> + <property name="AtkObject::accessible-description" translatable="yes" context="extended_tip|enprsntconsfullscreen">Specifies that you want to show the Presenter Console as fullscreen window.</property> + </object> + </child> + </object> + <packing> + <property name="left-attach">0</property> + <property name="top-attach">2</property> + </packing> + </child> </object> </child> <child type="label"> diff --git a/sdext/source/presenter/PresenterScreen.cxx b/sdext/source/presenter/PresenterScreen.cxx index 993f9677803d..c4f2cda50f3e 100644 --- a/sdext/source/presenter/PresenterScreen.cxx +++ b/sdext/source/presenter/PresenterScreen.cxx @@ -261,6 +261,19 @@ bool PresenterScreen::isPresenterScreenEnabled(const css::uno::Reference<css::un >>= dEnablePresenterScreen; return dEnablePresenterScreen; } + +bool PresenterScreen::isPresenterScreenFullScreen(const css::uno::Reference<css::uno::XComponentContext>& rxContext) +{ + bool dPresenterScreenFullScreen = true; + PresenterConfigurationAccess aConfiguration ( + rxContext, + "/org.openoffice.Office.Impress/", + PresenterConfigurationAccess::READ_ONLY); + aConfiguration.GetConfigurationNode("Misc/Start/PresenterScreenFullScreen") + >>= dPresenterScreenFullScreen; + return dPresenterScreenFullScreen; +} + void SAL_CALL PresenterScreen::disposing() { Reference<XConfigurationController> xCC (mxConfigurationControllerWeak); @@ -324,7 +337,7 @@ void PresenterScreen::InitializePresenterScreen() mxConfigurationControllerWeak = xCC; Reference<drawing::framework::XResourceId> xMainPaneId( - GetMainPaneId(xPresentation)); + GetMainPaneId(xPresentation, xContext)); // An empty reference means that the presenter screen can // not or must not be displayed. if ( ! xMainPaneId.is()) @@ -506,7 +519,8 @@ sal_Int32 PresenterScreen::GetPresenterScreenFromScreen( sal_Int32 nPresentation } Reference<drawing::framework::XResourceId> PresenterScreen::GetMainPaneId ( - const Reference<presentation::XPresentation2>& rxPresentation) const + const Reference<presentation::XPresentation2>& rxPresentation, + const Reference<XComponentContext>& xContext) const { // A negative value means that the presentation spans all available // displays. That leaves no room for the presenter. @@ -514,10 +528,16 @@ Reference<drawing::framework::XResourceId> PresenterScreen::GetMainPaneId ( if (nScreen < 0) return nullptr; + auto fullScreenStr = isPresenterScreenFullScreen(xContext) + ? OUString("true") + : OUString("false"); + return ResourceId::create( Reference<XComponentContext>(mxContextWeak), PresenterHelper::msFullScreenPaneURL - + "?FullScreen=true&ScreenNumber=" + + "?FullScreen=" + + fullScreenStr + + "&ScreenNumber=" + OUString::number(nScreen)); } diff --git a/sdext/source/presenter/PresenterScreen.hxx b/sdext/source/presenter/PresenterScreen.hxx index 90d23ad4b7bd..3e4caf19442a 100644 --- a/sdext/source/presenter/PresenterScreen.hxx +++ b/sdext/source/presenter/PresenterScreen.hxx @@ -104,6 +104,9 @@ public: static bool isPresenterScreenEnabled( const css::uno::Reference<css::uno::XComponentContext>& rxContext); + static bool isPresenterScreenFullScreen( + const css::uno::Reference<css::uno::XComponentContext>& rxContext); + /** Make the presenter screen visible. */ void InitializePresenterScreen(); @@ -217,7 +220,8 @@ private: is displayed on another screen than the full screen presentation. */ css::uno::Reference<css::drawing::framework::XResourceId> GetMainPaneId ( - const css::uno::Reference<css::presentation::XPresentation2>& rxPresentation) const; + const css::uno::Reference<css::presentation::XPresentation2>& rxPresentation, + const css::uno::Reference<com::sun::star::uno::XComponentContext>& xContext) const; }; }