summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compilerplugins/clang/store/constantfunction.cxx4
-rw-r--r--sdext/Library_PresenterScreen.mk1
-rw-r--r--sdext/source/presenter/PresenterPaneBorderManager.cxx507
-rw-r--r--sdext/source/presenter/PresenterPaneBorderManager.hxx154
-rw-r--r--sdext/source/presenter/PresenterWindowManager.cxx68
5 files changed, 1 insertions, 733 deletions
diff --git a/compilerplugins/clang/store/constantfunction.cxx b/compilerplugins/clang/store/constantfunction.cxx
index 891eb5361f5c..b7a0b9d0d5f7 100644
--- a/compilerplugins/clang/store/constantfunction.cxx
+++ b/compilerplugins/clang/store/constantfunction.cxx
@@ -344,10 +344,6 @@ bool ConstantFunction::VisitFunctionDecl(const FunctionDecl * pFunctionDecl) {
if (aFunctionName == "sdext::presenter::PresenterFrameworkObserver::True") {
return true;
}
- // hidden behind the ENABLE_PANE_RESIZING macro
- if (aFunctionName == "sdext::presenter::PresenterWindowManager::UpdateWindowList") {
- return true;
- }
// callback, sw/source/core/doc/tblrwcl.cxx
if (aFunctionName == "lcl_DelOtherBox") {
return true;
diff --git a/sdext/Library_PresenterScreen.mk b/sdext/Library_PresenterScreen.mk
index d67158d57877..7edc2b24e88b 100644
--- a/sdext/Library_PresenterScreen.mk
+++ b/sdext/Library_PresenterScreen.mk
@@ -43,7 +43,6 @@ $(eval $(call gb_Library_add_exception_objects,PresenterScreen,\
sdext/source/presenter/PresenterPaintManager \
sdext/source/presenter/PresenterPane \
sdext/source/presenter/PresenterPaneBase \
- sdext/source/presenter/PresenterPaneBorderManager \
sdext/source/presenter/PresenterPaneBorderPainter \
sdext/source/presenter/PresenterPaneContainer \
sdext/source/presenter/PresenterPaneFactory \
diff --git a/sdext/source/presenter/PresenterPaneBorderManager.cxx b/sdext/source/presenter/PresenterPaneBorderManager.cxx
deleted file mode 100644
index acfba8a4f7ae..000000000000
--- a/sdext/source/presenter/PresenterPaneBorderManager.cxx
+++ /dev/null
@@ -1,507 +0,0 @@
-/* -*- 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/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-// The body of this file is only used when PresenterWindowManager defines
-// the preprocessor symbol ENABLE_PANE_RESIZING, which by default is not the
-// case.
-#ifdef ENABLE_PANE_RESIZING
-
-#include "PresenterPaneBorderManager.hxx"
-#include "PresenterController.hxx"
-#include "PresenterPaintManager.hxx"
-#include <com/sun/star/awt/PosSize.hpp>
-#include <com/sun/star/awt/SystemPointer.hpp>
-#include <com/sun/star/awt/WindowAttribute.hpp>
-#include <com/sun/star/awt/WindowDescriptor.hpp>
-#include <com/sun/star/awt/WindowClass.hpp>
-#include <com/sun/star/awt/XWindow2.hpp>
-#include <com/sun/star/awt/XWindowPeer.hpp>
-#include <com/sun/star/lang/XMultiComponentFactory.hpp>
-#include <osl/mutex.hxx>
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-
-namespace sdext { namespace presenter {
-
-//===== Service ===============================================================
-
-OUString PresenterPaneBorderManager::getImplementationName_static()
-{
- return OUString("com.sun.star.comp.Draw.PresenterPaneBorderManager");
-}
-
-Sequence<OUString> PresenterPaneBorderManager::getSupportedServiceNames_static()
-{
- static const OUString sServiceName(
- "com.sun.star.drawing.PresenterPaneBorderManager");
- return Sequence<OUString>(&sServiceName, 1);
-}
-
-Reference<XInterface> PresenterPaneBorderManager::Create (const Reference<uno::XComponentContext>& rxContext)
-{
- return Reference<XInterface>(static_cast<XWeak*>(
- new PresenterPaneBorderManager(rxContext, NULL)));
-}
-
-//===== PresenterPaneBorderManager ============================================
-
-PresenterPaneBorderManager::PresenterPaneBorderManager (
- const Reference<XComponentContext>& rxContext,
- const ::rtl::Reference<PresenterController>& rpPresenterController)
- : PresenterPaneBorderManagerInterfaceBase(m_aMutex),
- mpPresenterController(rpPresenterController),
- mxComponentContext(rxContext),
- mxPresenterHelper(),
- maWindowList(),
- mnPointerType(),
- maDragAnchor(),
- meDragType(Outside),
- mxOuterDragWindow(),
- mxInnerDragWindow(),
- mxPointer()
-{
- Reference<lang::XMultiComponentFactory> xFactory (rxContext->getServiceManager());
- if (xFactory.is())
- {
- mxPointer = awt::Pointer::create(rxContext);
-
- mxPresenterHelper.set(
- xFactory->createInstanceWithContext(
- "com.sun.star.comp.Draw.PresenterHelper",
- rxContext),
- UNO_QUERY_THROW);
- }
-}
-
-PresenterPaneBorderManager::~PresenterPaneBorderManager()
-{
-}
-
-void PresenterPaneBorderManager::disposing()
-{
- WindowList::const_iterator iDescriptor;
- for (iDescriptor=maWindowList.begin(); iDescriptor!=maWindowList.end(); ++iDescriptor)
- {
- iDescriptor->first->removeMouseListener(this);
- iDescriptor->first->removeMouseMotionListener(this);
- }
- maWindowList.clear();
-}
-
-namespace {
-const static sal_Int32 mnOutside = 0;
-const static sal_Int32 mnLeft = 0x01;
-const static sal_Int32 mnHorizontalCenter = 0x02;
-const static sal_Int32 mnRight = 0x04;
-const static sal_Int32 mnTop = 0x10;
-const static sal_Int32 mnVerticalCenter = 0x20;
-const static sal_Int32 mnBottom = 0x40;
-}
-
-PresenterPaneBorderManager::BorderElement
- PresenterPaneBorderManager::ClassifyBorderElementUnderMouse (
- const Reference<awt::XWindow>& rxOuterWindow,
- const Reference<awt::XWindow>& rxInnerWindow,
- const awt::Point aPosition) const
-{
- OSL_ASSERT(rxOuterWindow.is());
- OSL_ASSERT(rxInnerWindow.is());
-
- awt::Rectangle aOuterBox (rxOuterWindow->getPosSize());
- const awt::Rectangle aInnerBox (rxInnerWindow->getPosSize());
-
- // Coordinates of the pointer position are given in the window
- // coordinate system. Therefore the upper left corner of the outer box
- // is the origin.
- aOuterBox.X = 0;
- aOuterBox.Y = 0;
-
- sal_Int32 nCode = 0;
-
- // Add horizontal classification to nCode.
- if (aPosition.X < aInnerBox.X)
- if (aPosition.X < aOuterBox.X)
- nCode = mnOutside;
- else
- nCode = mnLeft;
- else if (aPosition.X >= aInnerBox.X+aInnerBox.Width)
- if (aPosition.X >= aOuterBox.X+aOuterBox.Width)
- nCode = mnOutside;
- else
- nCode = mnRight;
- else
- nCode = mnHorizontalCenter;
-
- // Add vertical classification to nCode.
- if (aPosition.Y < aInnerBox.Y)
- if (aPosition.Y < aOuterBox.Y)
- nCode |= mnOutside;
- else
- nCode |= mnTop;
- else if (aPosition.Y >= aInnerBox.Y+aInnerBox.Height)
- if (aPosition.Y >= aOuterBox.Y+aOuterBox.Height)
- nCode |= mnOutside;
- else
- nCode |= mnBottom;
- else
- nCode |= mnVerticalCenter;
-
- // Translate bits in nCode into BorderElement value.
- switch (nCode)
- {
- case mnOutside:
- case mnOutside | mnLeft:
- case mnOutside | mnRight:
- case mnOutside | mnHorizontalCenter:
- case mnTop | mnOutside:
- case mnBottom | mnOutside:
- case mnVerticalCenter | mnOutside:
- default:
- return Outside;
-
- case mnVerticalCenter | mnHorizontalCenter:
- return Content;
-
- case mnTop | mnLeft:
- return TopLeft;
-
- case mnTop | mnRight:
- return TopRight;
-
- case mnTop | mnHorizontalCenter:
- return Top;
-
- case mnBottom | mnLeft:
- return BottomLeft;
-
- case mnBottom | mnRight:
- return BottomRight;
-
- case mnBottom | mnHorizontalCenter:
- return Bottom;
-
- case mnVerticalCenter | mnLeft:
- return Left;
-
- case mnVerticalCenter | mnRight:
- return Right;
- }
-}
-
-//----- XInitialization -------------------------------------------------------
-
-void SAL_CALL PresenterPaneBorderManager::initialize (const Sequence<Any>& rArguments)
- throw (Exception, RuntimeException)
-{
- ThrowIfDisposed();
-
- if (rArguments.getLength()%2 == 1 && mxComponentContext.is())
- {
- try
- {
- mxParentWindow.set(rArguments[0], UNO_QUERY_THROW);
-
- // Get the outer and inner windows from the argument list and
- // build a window list of it.
- for (sal_Int32 nIndex=1; nIndex<rArguments.getLength(); nIndex+=2)
- {
- Reference<awt::XWindow> xOuterWindow (rArguments[nIndex], UNO_QUERY_THROW);
- Reference<awt::XWindow> xInnerWindow (rArguments[nIndex+1], UNO_QUERY_THROW);
-
- maWindowList.push_back(WindowDescriptor(xOuterWindow,xInnerWindow));
-
- xOuterWindow->addMouseListener(this);
- xOuterWindow->addMouseMotionListener(this);
- }
- }
- catch (RuntimeException&)
- {
- PresenterPaneBorderManager::disposing();
- throw;
- }
- }
- else
- {
- throw RuntimeException(
- "PresenterPane: invalid number of arguments",
- static_cast<XWeak*>(this));
- }
-}
-
-//----- XMouseListener --------------------------------------------------------
-
-void SAL_CALL PresenterPaneBorderManager::mousePressed (const css::awt::MouseEvent& rEvent)
- throw (css::uno::RuntimeException)
-{
- ThrowIfDisposed();
- ::osl::MutexGuard aGuard (::osl::Mutex::getGlobalMutex());
-
- // Find window descriptor of the window that has been clicked.
- WindowList::const_iterator iDescriptor;
- for (iDescriptor=maWindowList.begin(); iDescriptor!=maWindowList.end(); ++iDescriptor)
- if (iDescriptor->first == rEvent.Source)
- break;
-
- if (iDescriptor != maWindowList.end())
- {
- // Prepare dragging.
- mxOuterDragWindow = iDescriptor->first;
- mxInnerDragWindow = iDescriptor->second;
- OSL_ASSERT(mxOuterDragWindow.is() && mxInnerDragWindow.is());
- const awt::Rectangle aOuterBox (mxOuterDragWindow->getPosSize());
- maDragAnchor.X = rEvent.X + aOuterBox.X;
- maDragAnchor.Y = rEvent.Y + aOuterBox.Y;
- meDragType = ClassifyBorderElementUnderMouse(
- mxOuterDragWindow,
- mxInnerDragWindow,
- awt::Point(rEvent.X, rEvent.Y));
- }
-}
-
-void SAL_CALL PresenterPaneBorderManager::mouseReleased (const css::awt::MouseEvent& rEvent)
- throw (css::uno::RuntimeException)
-{
- (void)rEvent;
- ThrowIfDisposed();
- ::osl::MutexGuard aGuard (::osl::Mutex::getGlobalMutex());
-
- ReleaseMouse(mxOuterDragWindow);
- meDragType = PresenterPaneBorderManager::Outside;
- mxOuterDragWindow = NULL;
- mxInnerDragWindow = NULL;
-}
-
-void SAL_CALL PresenterPaneBorderManager::mouseEntered (const css::awt::MouseEvent& rEvent)
- throw (css::uno::RuntimeException)
-{
- (void)rEvent;
-}
-
-void SAL_CALL PresenterPaneBorderManager::mouseExited (const css::awt::MouseEvent& rEvent)
- throw (css::uno::RuntimeException)
-{
- (void)rEvent;
- ThrowIfDisposed();
- ::osl::MutexGuard aGuard (::osl::Mutex::getGlobalMutex());
-
- ReleaseMouse(mxOuterDragWindow);
- meDragType = PresenterPaneBorderManager::Outside;
- mxOuterDragWindow = NULL;
- mxInnerDragWindow = NULL;
-}
-
-//----- XMouseMotionListener --------------------------------------------------
-
-void SAL_CALL PresenterPaneBorderManager::mouseMoved (const css::awt::MouseEvent& rEvent)
- throw (css::uno::RuntimeException)
-{
- ThrowIfDisposed();
- ::osl::MutexGuard aGuard (::osl::Mutex::getGlobalMutex());
-
- WindowList::const_iterator iDescriptor;
- for (iDescriptor=maWindowList.begin(); iDescriptor!=maWindowList.end(); ++iDescriptor)
- if (iDescriptor->first == rEvent.Source)
- break;
- if (iDescriptor != maWindowList.end())
- {
- // Choose pointer shape according to position in the window border.
- switch (ClassifyBorderElementUnderMouse(
- iDescriptor->first,
- iDescriptor->second,
- awt::Point(rEvent.X,rEvent.Y)))
- {
- case PresenterPaneBorderManager::Top:
- mnPointerType = awt::SystemPointer::MOVE;
- break;
- case PresenterPaneBorderManager::TopLeft:
- mnPointerType = awt::SystemPointer::WINDOW_NWSIZE;
- break;
- case PresenterPaneBorderManager::TopRight:
- mnPointerType = awt::SystemPointer::WINDOW_NESIZE;
- break;
- case PresenterPaneBorderManager::Left:
- mnPointerType = awt::SystemPointer::WINDOW_WSIZE;
- break;
- case PresenterPaneBorderManager::Right:
- mnPointerType = awt::SystemPointer::WINDOW_ESIZE;
- break;
- case PresenterPaneBorderManager::BottomLeft:
- mnPointerType = awt::SystemPointer::WINDOW_SWSIZE;
- break;
- case PresenterPaneBorderManager::BottomRight:
- mnPointerType = awt::SystemPointer::WINDOW_SESIZE;
- break;
- case PresenterPaneBorderManager::Bottom:
- mnPointerType = awt::SystemPointer::WINDOW_SSIZE;
- break;
-
- case PresenterPaneBorderManager::Content:
- case PresenterPaneBorderManager::Outside:
- default:
- mnPointerType = awt::SystemPointer::ARROW;
- break;
- }
-
- // Make the pointer shape visible.
- Reference<awt::XWindowPeer> xPeer (iDescriptor->first, UNO_QUERY);
- if (xPeer.is())
- {
- if (mxPointer.is())
- mxPointer->setType(mnPointerType);
- xPeer->setPointer(mxPointer);
- }
- }
-}
-
-void SAL_CALL PresenterPaneBorderManager::mouseDragged (const css::awt::MouseEvent& rEvent)
- throw (css::uno::RuntimeException)
-{
- ThrowIfDisposed();
- ::osl::MutexGuard aGuard (::osl::Mutex::getGlobalMutex());
-
- if ( ! mxOuterDragWindow.is())
- return;
-
- CaptureMouse(mxOuterDragWindow);
-
- const awt::Rectangle aOldBox (mxOuterDragWindow->getPosSize());
- const sal_Int32 nX = rEvent.X + aOldBox.X;
- const sal_Int32 nY = rEvent.Y + aOldBox.Y;
- const sal_Int32 nDiffX = nX - maDragAnchor.X;
- const sal_Int32 nDiffY = nY - maDragAnchor.Y;
- maDragAnchor.X = nX;
- maDragAnchor.Y = nY;
-
- const sal_Int32 nOldRight = aOldBox.X + aOldBox.Width;
- const sal_Int32 nOldBottom = aOldBox.Y + aOldBox.Height;
-
- awt::Rectangle aBox (aOldBox);
- sal_Int32 nRight = aBox.X + aBox.Width;
- sal_Int32 nBottom = aBox.Y + aBox.Height;
-
- // Update position and/or size according to initial pointer position
- // inside the window border.
- switch (meDragType)
- {
- case PresenterPaneBorderManager::Top:
- aBox.X += nDiffX; aBox.Y += nDiffY;
- nRight += nDiffX; nBottom += nDiffY;
- break;
- case PresenterPaneBorderManager::TopLeft:
- aBox.X += nDiffX; aBox.Y += nDiffY;
- break;
- case PresenterPaneBorderManager::TopRight:
- nRight += nDiffX; aBox.Y += nDiffY;
- break;
- case PresenterPaneBorderManager::Left:
- aBox.X += nDiffX;
- break;
- case PresenterPaneBorderManager::Right:
- nRight += nDiffX;
- break;
- case PresenterPaneBorderManager::BottomLeft:
- aBox.X += nDiffX; nBottom += nDiffY;
- break;
- case PresenterPaneBorderManager::BottomRight:
- nRight += nDiffX; nBottom += nDiffY;
- break;
- case PresenterPaneBorderManager::Bottom:
- nBottom += nDiffY;
- break;
- default: break;
- }
-
- aBox.Width = nRight - aBox.X;
- aBox.Height = nBottom - aBox.Y;
- if (aBox.Width > 20
- && aBox.Height > 20)
- {
- // Set position and/or size of the border window to the new values.
- sal_Int16 nFlags (0);
- if (aBox.X != aOldBox.X)
- nFlags |= awt::PosSize::X;
- if (aBox.Y != aOldBox.Y)
- nFlags |= awt::PosSize::Y;
- if (aBox.Width != aOldBox.Width)
- nFlags |= awt::PosSize::WIDTH;
- if (aBox.Height != aOldBox.Height)
- nFlags |= awt::PosSize::HEIGHT;
- mxOuterDragWindow->setPosSize(aBox.X, aBox.Y, aBox.Width, aBox.Height, nFlags);
-
- // Invalidate that is or was covered by the border window before and
- // after the move/resize.
- if (mpPresenterController.get() != NULL)
- {
- const sal_Int32 nLeft = ::std::min(aOldBox.X,aBox.X);
- const sal_Int32 nTop = ::std::min(aOldBox.Y,aBox.Y);
- const sal_Int32 nWidth = ::std::max(nOldRight,nRight) - nLeft;
- const sal_Int32 nHeight = ::std::max(nOldBottom,nBottom) - nTop;
-
- OSL_ASSERT(mpPresenterController->GetPaintManager().get()!=NULL);
- mpPresenterController->GetPaintManager()->Invalidate(
- mxParentWindow,
- ::awt::Rectangle(nLeft,nTop,nWidth-1,nHeight-1));
- }
- }
-}
-
-//----- lang::XEventListener --------------------------------------------------
-
-void SAL_CALL PresenterPaneBorderManager::disposing (const lang::EventObject& rEvent)
- throw (RuntimeException)
-{
- WindowList::iterator iDescriptor;
- for (iDescriptor=maWindowList.begin(); iDescriptor!=maWindowList.end(); ++iDescriptor)
- if (iDescriptor->first == rEvent.Source)
- {
- maWindowList.erase(iDescriptor);
- break;
- }
-}
-
-
-void PresenterPaneBorderManager::CaptureMouse (const Reference<awt::XWindow>& rxWindow)
-{
- if (mxPresenterHelper.is())
- mxPresenterHelper->captureMouse(rxWindow);
-}
-
-void PresenterPaneBorderManager::ReleaseMouse (const Reference<awt::XWindow>& rxWindow)
-{
- if (mxPresenterHelper.is())
- mxPresenterHelper->releaseMouse(rxWindow);
-}
-
-void PresenterPaneBorderManager::ThrowIfDisposed()
- throw (css::lang::DisposedException)
-{
- if (rBHelper.bDisposed || rBHelper.bInDispose)
- {
- throw lang::DisposedException (
- "PresenterPaneBorderManager object has already been disposed",
- static_cast<uno::XWeak*>(this));
- }
-}
-
-} } // end of namespace ::sd::presenter
-
-#endif // ENABLE_PANE_RESIZING
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sdext/source/presenter/PresenterPaneBorderManager.hxx b/sdext/source/presenter/PresenterPaneBorderManager.hxx
deleted file mode 100644
index f5251da5b216..000000000000
--- a/sdext/source/presenter/PresenterPaneBorderManager.hxx
+++ /dev/null
@@ -1,154 +0,0 @@
-/* -*- 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/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef INCLUDED_SDEXT_SOURCE_PRESENTER_PRESENTERPANEBORDERMANAGER_HXX
-#define INCLUDED_SDEXT_SOURCE_PRESENTER_PRESENTERPANEBORDERMANAGER_HXX
-
-// The body of this file is only used when PresenterWindowManager defines
-// the preprocessor symbol ENABLE_PANE_RESIZING, which by default is not the
-// case.
-#ifdef ENABLE_PANE_RESIZING
-
-#include <cppuhelper/basemutex.hxx>
-#include <cppuhelper/compbase.hxx>
-#include <com/sun/star/awt/Point.hpp>
-#include <com/sun/star/awt/Size.hpp>
-#include <com/sun/star/awt/XGraphics.hpp>
-#include <com/sun/star/awt/XMouseListener.hpp>
-#include <com/sun/star/awt/XMouseMotionListener.hpp>
-#include <com/sun/star/awt/XPointer.hpp>
-#include <com/sun/star/awt/XWindowListener.hpp>
-#include <com/sun/star/container/XChild.hpp>
-#include <com/sun/star/drawing/XPresenterHelper.hpp>
-#include <com/sun/star/drawing/framework/XPane.hpp>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/rendering/XCanvas.hpp>
-#include <rtl/ref.hxx>
-
-namespace sdext { namespace presenter {
-
-class PresenterController;
-
-namespace {
- typedef ::cppu::WeakComponentImplHelper <
- css::lang::XInitialization,
- css::awt::XMouseListener,
- css::awt::XMouseMotionListener
- > PresenterPaneBorderManagerInterfaceBase;
-}
-
-/** Manage the interactive moving and resizing of panes.
-*/
-class PresenterPaneBorderManager
- : protected ::cppu::BaseMutex,
- public PresenterPaneBorderManagerInterfaceBase
-{
-public:
- PresenterPaneBorderManager (
- const css::uno::Reference<css::uno::XComponentContext>& rxContext,
- const ::rtl::Reference<PresenterController>& rpPresenterController);
- virtual ~PresenterPaneBorderManager();
- PresenterPaneBorderManager(const PresenterPaneBorderManager&) = delete;
- PresenterPaneBorderManager& operator=(const PresenterPaneBorderManager&) = delete;
-
- virtual void SAL_CALL disposing();
-
- static OUString getImplementationName_static();
- static css::uno::Sequence< OUString > getSupportedServiceNames_static();
- static css::uno::Reference<css::uno::XInterface> Create(
- const css::uno::Reference<css::uno::XComponentContext>& rxContext);
-
- // XInitialization
-
- virtual void SAL_CALL initialize (const css::uno::Sequence<css::uno::Any>& rArguments)
- throw (css::uno::Exception, css::uno::RuntimeException);
-
- // XMouseListener
-
- virtual void SAL_CALL mousePressed (const css::awt::MouseEvent& rEvent)
- throw (css::uno::RuntimeException);
-
- virtual void SAL_CALL mouseReleased (const css::awt::MouseEvent& rEvent)
- throw (css::uno::RuntimeException);
-
- virtual void SAL_CALL mouseEntered (const css::awt::MouseEvent& rEvent)
- throw (css::uno::RuntimeException);
-
- virtual void SAL_CALL mouseExited (const css::awt::MouseEvent& rEvent)
- throw (css::uno::RuntimeException);
-
- // XMouseMotionListener
-
- virtual void SAL_CALL mouseMoved (const css::awt::MouseEvent& rEvent)
- throw (css::uno::RuntimeException);
-
- virtual void SAL_CALL mouseDragged (const css::awt::MouseEvent& rEvent)
- throw (css::uno::RuntimeException);
-
- // lang::XEventListener
- virtual void SAL_CALL disposing (const css::lang::EventObject& rEvent)
- throw (css::uno::RuntimeException);
-
-private:
- enum BorderElement { Top, TopLeft, TopRight, Left, Right, BottomLeft, BottomRight, Bottom,
- Content, Outside };
-
- ::rtl::Reference<PresenterController> mpPresenterController;
- css::uno::Reference<css::uno::XComponentContext> mxComponentContext;
- css::uno::Reference<css::drawing::XPresenterHelper> mxPresenterHelper;
- /** The parent window is stored so that it can be invalidated when one
- of its children is resized or moved. It is assumed to be the parent
- window of all outer windows stored in maWindowList.
- */
- css::uno::Reference<css::awt::XWindow> mxParentWindow;
- typedef ::std::pair<css::uno::Reference<css::awt::XWindow>,
- css::uno::Reference<css::awt::XWindow> > WindowDescriptor;
- typedef ::std::vector<WindowDescriptor> WindowList;
- WindowList maWindowList;
-
- sal_Int32 mnPointerType;
- css::awt::Point maDragAnchor;
- BorderElement meDragType;
- css::uno::Reference<css::awt::XWindow> mxOuterDragWindow;
- css::uno::Reference<css::awt::XWindow> mxInnerDragWindow;
- css::uno::Reference<css::awt::XPointer> mxPointer;
-
- BorderElement ClassifyBorderElementUnderMouse (
- const css::uno::Reference<css::awt::XWindow>& rxOuterDragWindow,
- const css::uno::Reference<css::awt::XWindow>& rxInnerDragWindow,
- const css::awt::Point aPosition) const;
- void CreateWindows (const css::uno::Reference<css::awt::XWindow>& rxParentWindow);
- void CaptureMouse (const css::uno::Reference<css::awt::XWindow>& rxWindow);
- void ReleaseMouse (const css::uno::Reference<css::awt::XWindow>& rxWindow);
-
- /** This method throws a DisposedException when the object has already been
- disposed.
- */
- void ThrowIfDisposed()
- throw (css::lang::DisposedException);
-};
-
-} } // end of namespace ::sd::presenter
-
-#endif // ENABLE_PANE_RESIZING
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sdext/source/presenter/PresenterWindowManager.cxx b/sdext/source/presenter/PresenterWindowManager.cxx
index 1522a097f032..02e409aae9aa 100644
--- a/sdext/source/presenter/PresenterWindowManager.cxx
+++ b/sdext/source/presenter/PresenterWindowManager.cxx
@@ -17,9 +17,6 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#undef ENABLE_PANE_RESIZING
-//#define ENABLE_PANE_RESIZING
-
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
#include "PresenterWindowManager.hxx"
@@ -28,7 +25,6 @@
#include "PresenterHelper.hxx"
#include "PresenterPaintManager.hxx"
#include "PresenterPaneBase.hxx"
-#include "PresenterPaneBorderManager.hxx"
#include "PresenterPaneBorderPainter.hxx"
#include "PresenterPaneContainer.hxx"
#include "PresenterPaneFactory.hxx"
@@ -86,7 +82,7 @@ PresenterWindowManager::PresenterWindowManager (
maLayoutListeners(),
mbIsMouseClickPending(false)
{
- UpdateWindowList();
+
}
PresenterWindowManager::~PresenterWindowManager()
@@ -112,9 +108,6 @@ void SAL_CALL PresenterWindowManager::disposing()
{
(*iPane)->mxBorderWindow->removeWindowListener(this);
(*iPane)->mxBorderWindow->removeFocusListener(this);
-#ifndef ENABLE_PANE_RESIZING
- (*iPane)->mxBorderWindow->removeMouseListener(this);
-#endif
}
}
}
@@ -313,15 +306,7 @@ void SAL_CALL PresenterWindowManager::mousePressed (const css::awt::MouseEvent&
void SAL_CALL PresenterWindowManager::mouseReleased (const css::awt::MouseEvent& rEvent)
throw(css::uno::RuntimeException, std::exception)
{
-#ifndef ENABLE_PANE_RESIZING
- if (mbIsMouseClickPending)
- {
- mbIsMouseClickPending = false;
- mpPresenterController->HandleMouseClick(rEvent);
- }
-#else
(void)rEvent;
-#endif
}
void SAL_CALL PresenterWindowManager::mouseEntered (const css::awt::MouseEvent& rEvent)
@@ -1121,56 +1106,6 @@ Reference<rendering::XPolyPolygon2D> PresenterWindowManager::CreateClipPolyPolyg
return xPolyPolygon;
}
-void PresenterWindowManager::UpdateWindowList()
-{
-#ifdef ENABLE_PANE_RESIZING
- try
- {
- OSL_ASSERT(mxComponentContext.is());
-
- Reference<lang::XComponent> xComponent (mxPaneBorderManager, UNO_QUERY);
- if (xComponent.is())
- xComponent->dispose();
-
- Reference<lang::XMultiComponentFactory> xFactory (mxComponentContext->getServiceManager());
- if (xFactory.is())
- {
- Sequence<Any> aArguments (1 + mpPaneContainer->maPanes.size()*2);
- sal_Int32 nIndex (0);
- aArguments[nIndex++] = Any(mxParentWindow);
- for (sal_uInt32 nPaneIndex=0; nPaneIndex<mpPaneContainer->maPanes.size(); ++nPaneIndex)
- {
- if ( ! mpPaneContainer->maPanes[nPaneIndex]->mbIsActive)
- continue;
-
- const Reference<awt::XWindow> xBorderWindow (
- mpPaneContainer->maPanes[nPaneIndex]->mxBorderWindow);
- const Reference<awt::XWindow> xContentWindow (
- mpPaneContainer->maPanes[nPaneIndex]->mxContentWindow);
- const Reference<awt::XWindow2> xBorderWindow2(xBorderWindow, UNO_QUERY);
- if (xBorderWindow.is()
- && xContentWindow.is()
- && ( ! xBorderWindow2.is() || xBorderWindow2->isVisible()))
- {
- aArguments[nIndex++] = Any(xBorderWindow);
- aArguments[nIndex++] = Any(xContentWindow);
- }
- }
-
- aArguments.realloc(nIndex);
- rtl::Reference<PresenterPaneBorderManager> pManager (
- new PresenterPaneBorderManager (
- mxComponentContext,
- mpPresenterController));
- pManager->initialize(aArguments);
- mxPaneBorderManager.set(static_cast<XWeak*>(pManager.get()));
- }
- }
- catch (RuntimeException&)
- {
- }
-#endif
-}
void PresenterWindowManager::Invalidate()
{
@@ -1181,7 +1116,6 @@ void PresenterWindowManager::Update()
mxClipPolygon = nullptr;
mbIsLayoutPending = true;
- UpdateWindowList();
Invalidate();
}