summaryrefslogtreecommitdiff
path: root/sd/source/ui/framework/factories/FullScreenPane.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/framework/factories/FullScreenPane.cxx')
-rw-r--r--sd/source/ui/framework/factories/FullScreenPane.cxx297
1 files changed, 0 insertions, 297 deletions
diff --git a/sd/source/ui/framework/factories/FullScreenPane.cxx b/sd/source/ui/framework/factories/FullScreenPane.cxx
deleted file mode 100644
index e2bbd185e..000000000
--- a/sd/source/ui/framework/factories/FullScreenPane.cxx
+++ /dev/null
@@ -1,297 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "precompiled_sd.hxx"
-
-#include "FullScreenPane.hxx"
-#include "ViewShellBase.hxx"
-#include <cppcanvas/vclfactory.hxx>
-#include <sfx2/dispatch.hxx>
-#include <vcl/wrkwin.hxx>
-#include <vcl/svapp.hxx>
-#include <vcl/dialog.hxx>
-#include <toolkit/helper/vclunohelper.hxx>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/frame/XLayoutManager.hpp>
-#include <com/sun/star/lang/IllegalArgumentException.hpp>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/util/URL.hpp>
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::drawing::framework;
-using ::rtl::OUString;
-
-#define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString)))
-
-namespace sd { namespace framework {
-
-FullScreenPane::FullScreenPane (
- const Reference<XComponentContext>& rxComponentContext,
- const Reference<XResourceId>& rxPaneId,
- const ::Window* pViewShellWindow)
- : FrameWindowPane(rxPaneId,NULL),
- mxComponentContext(rxComponentContext),
- mpWorkWindow(NULL)
-{
- ::Window* pParent = NULL;
- mpWorkWindow.reset(new WorkWindow(
- pParent,
- 0)); // 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.get() == NULL)
- return;
-
- // Create a new top-leve window that is displayed full screen.
- mpWorkWindow->ShowFullScreenMode(sal_True, nScreenNumber);
- // For debugging (non-fullscreen) use mpWorkWindow->SetScreenNumber(nScreenNumber);
- mpWorkWindow->SetMenuBarMode(MENUBAR_MODE_HIDE);
- mpWorkWindow->SetBorderStyle(WINDOW_BORDER_REMOVEBORDER);
- mpWorkWindow->SetBackground(Wallpaper());
- // Don't show the window right now in order to allow the setting of an
- // accessibility object: accessibility objects are typically
- // requested by AT-tools when the window is shown. Chaning it
- // afterwards may or may not work.
-
- // Add resize listener at the work window.
- Link aWindowEventHandler (LINK(this, FullScreenPane, WindowEventHandler));
- mpWorkWindow->AddEventListener(aWindowEventHandler);
-
- // Set title and icon of the new window to those of the current window
- // of the view shell.
- if (pViewShellWindow != NULL)
- {
- const SystemWindow* pSystemWindow = pViewShellWindow->GetSystemWindow();
- mpWorkWindow->SetText(pSystemWindow->GetText());
- mpWorkWindow->SetIcon(pSystemWindow->GetIcon());
- }
-
- // For some reason the VCL canvas can not paint into a WorkWindow.
- // Therefore a child window is created that covers the WorkWindow
- // completely.
- mpWindow = new ::Window(mpWorkWindow.get());
- mpWindow->SetPosSizePixel(Point(0,0), mpWorkWindow->GetSizePixel());
- mpWindow->SetBackground(Wallpaper());
- mxWindow = VCLUnoHelper::GetInterface(mpWindow);
-
- // Create the canvas.
- mxCanvas = CreateCanvas();
-
- mpWindow->GrabFocus();
-}
-
-
-
-
-FullScreenPane::~FullScreenPane (void) throw()
-{
-}
-
-
-
-
-void SAL_CALL FullScreenPane::disposing (void)
-{
- // We have created the window pointed to by mpWindow, we delete it.
- if (mpWindow != NULL)
- {
- delete mpWindow;
- }
-
- if (mpWorkWindow.get() != NULL)
- {
- Link aWindowEventHandler (LINK(this, FullScreenPane, WindowEventHandler));
- mpWorkWindow->RemoveEventListener(aWindowEventHandler);
- mpWorkWindow.reset();
- }
-
-
- FrameWindowPane::disposing();
-}
-
-
-
-
-//----- XPane -----------------------------------------------------------------
-
-sal_Bool SAL_CALL FullScreenPane::isVisible (void)
- throw (RuntimeException)
-{
- ThrowIfDisposed();
-
- if (mpWindow != NULL)
- return mpWindow->IsReallyVisible();
- else
- return false;
-}
-
-
-
-
-void SAL_CALL FullScreenPane::setVisible (const sal_Bool bIsVisible)
- throw (RuntimeException)
-{
- ThrowIfDisposed();
-
- if (mpWindow != NULL)
- mpWindow->Show(bIsVisible);
- if (mpWorkWindow != NULL)
- mpWorkWindow->Show(bIsVisible);
-}
-
-
-
-
-Reference<accessibility::XAccessible> SAL_CALL FullScreenPane::getAccessible (void)
- throw (RuntimeException)
-{
- ThrowIfDisposed();
-
- if (mpWorkWindow != NULL)
- return mpWorkWindow->GetAccessible(sal_False);
- else
- return NULL;
-}
-
-
-
-
-void SAL_CALL FullScreenPane::setAccessible (
- const Reference<accessibility::XAccessible>& rxAccessible)
- throw (RuntimeException)
-{
- ThrowIfDisposed();
-
- if (mpWindow != NULL)
- {
- Reference<lang::XInitialization> xInitializable (rxAccessible, UNO_QUERY);
- if (xInitializable.is())
- {
- ::Window* pParentWindow = mpWindow->GetParent();
- Reference<accessibility::XAccessible> xAccessibleParent;
- if (pParentWindow != NULL)
- xAccessibleParent = pParentWindow->GetAccessible();
- Sequence<Any> aArguments (1);
- aArguments[0] = Any(xAccessibleParent);
- xInitializable->initialize(aArguments);
- }
- GetWindow()->SetAccessible(rxAccessible);
- }
-}
-
-
-
-
-//-----------------------------------------------------------------------------
-
-IMPL_LINK(FullScreenPane, WindowEventHandler, VclWindowEvent*, pEvent)
-{
- switch (pEvent->GetId())
- {
- case VCLEVENT_WINDOW_RESIZE:
- GetWindow()->SetPosPixel(Point(0,0));
- GetWindow()->SetSizePixel(Size(
- mpWorkWindow->GetSizePixel().Width(),
- mpWorkWindow->GetSizePixel().Height()));
- break;
-
- case VCLEVENT_OBJECT_DYING:
- mpWorkWindow.reset();
- break;
- }
- return 1;
-}
-
-
-
-
-Reference<rendering::XCanvas> FullScreenPane::CreateCanvas (void)
- throw (RuntimeException)
-{
- ::Window* pWindow = VCLUnoHelper::GetWindow(mxWindow);
- if (pWindow != NULL)
- {
- Sequence<Any> aArg (5);
-
- // common: first any is VCL pointer to window (for VCL canvas)
- aArg[0] = makeAny(reinterpret_cast<sal_Int64>(pWindow));
- aArg[1] = Any();
- aArg[2] = makeAny(::com::sun::star::awt::Rectangle());
- aArg[3] = makeAny(sal_False);
- aArg[4] = makeAny(mxWindow);
-
- Reference<lang::XMultiServiceFactory> xFactory (
- mxComponentContext->getServiceManager(), UNO_QUERY_THROW);
- return Reference<rendering::XCanvas>(
- xFactory->createInstanceWithArguments(
- OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.rendering.SpriteCanvas.VCL")),
- aArg),
- UNO_QUERY);
- }
- else
- throw RuntimeException();
-}
-
-
-
-
-void FullScreenPane::ExtractArguments (
- const Reference<XResourceId>& rxPaneId,
- sal_Int32& rnScreenNumberReturnValue)
-{
- // Extract arguments from the resource URL.
- const util::URL aURL = rxPaneId->getFullResourceURL();
- sal_Int32 nIndex = 0;
- while (nIndex >= 0)
- {
- const OUString aToken = aURL.Arguments.getToken(0, '&', nIndex);
- if (aToken.getLength() > 0)
- {
- // Split at the first '='.
- const sal_Int32 nAssign = aToken.indexOf('=');
- const OUString sKey = aToken.copy(0, nAssign);
- const OUString sValue = aToken.copy(nAssign+1);
-
- if (sKey.compareToAscii("ScreenNumber") == 0)
- {
- rnScreenNumberReturnValue = sValue.toInt32();
- }
- }
- }
-}
-
-
-} } // end of namespace sd::framework
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */