diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-09-14 14:36:38 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-09-21 07:30:12 +0200 |
commit | 58b5c13b00cd4d881e1d6313316cc621198a4b04 (patch) | |
tree | d532a6e389c585d593c4affdaef1f8668415620b | |
parent | 7b0de91faaaf9a051e082ec7ea5024474f4a1299 (diff) |
sfx2: add SfxLokHelper
This is meant to be a class that is visible outside sfx2 (so e.g.
desktop can use it later), but has access to various sfx2 internals.
Change-Id: I83204963492b11c1c4a621e86528a64fba27acf3
-rw-r--r-- | include/sfx2/lokhelper.hxx | 21 | ||||
-rw-r--r-- | sfx2/Library_sfx.mk | 1 | ||||
-rw-r--r-- | sfx2/source/view/lokhelper.cxx | 29 |
3 files changed, 51 insertions, 0 deletions
diff --git a/include/sfx2/lokhelper.hxx b/include/sfx2/lokhelper.hxx new file mode 100644 index 000000000000..d439bcedce19 --- /dev/null +++ b/include/sfx2/lokhelper.hxx @@ -0,0 +1,21 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include <sfx2/dllapi.h> + +class SfxViewShell; + +class SFX2_DLLPUBLIC SfxLokHelper +{ +public: + /// Create a new view shell for pViewShell's object shell. + static int createView(SfxViewShell* pViewShell); +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sfx2/Library_sfx.mk b/sfx2/Library_sfx.mk index faba426f66c3..9f0bb3dad062 100644 --- a/sfx2/Library_sfx.mk +++ b/sfx2/Library_sfx.mk @@ -297,6 +297,7 @@ $(eval $(call gb_Library_add_exception_objects,sfx,\ sfx2/source/view/frame2 \ sfx2/source/view/frmload \ sfx2/source/view/ipclient \ + sfx2/source/view/lokhelper \ sfx2/source/view/printer \ sfx2/source/view/sfxbasecontroller \ sfx2/source/view/userinputinterception \ diff --git a/sfx2/source/view/lokhelper.cxx b/sfx2/source/view/lokhelper.cxx new file mode 100644 index 000000000000..4f500e0388ef --- /dev/null +++ b/sfx2/source/view/lokhelper.cxx @@ -0,0 +1,29 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include <sfx2/lokhelper.hxx> +#include <sfx2/viewsh.hxx> +#include <sfx2/request.hxx> +#include <sfx2/sfxsids.hrc> +#include <sfx2/viewfrm.hxx> + +#include <shellimpl.hxx> + +int SfxLokHelper::createView(SfxViewShell* pViewShell) +{ + SfxViewFrame* pViewFrame = pViewShell->GetViewFrame(); + SfxRequest aRequest(pViewFrame, SID_NEWWINDOW); + pViewFrame->ExecView_Impl(aRequest); + + // The SfxViewShell ctor always puts the view shell to the end of the vector. + SfxViewShellArr_Impl& rViewArr = SfxGetpApp()->GetViewShells_Impl(); + return rViewArr.size() - 1; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |