summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/sfx2/lokhelper.hxx21
-rw-r--r--sfx2/Library_sfx.mk1
-rw-r--r--sfx2/source/view/lokhelper.cxx29
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: */