diff options
-rw-r--r-- | compilerplugins/clang/store/constantfunction.cxx | 4 | ||||
-rw-r--r-- | sdext/Library_PresenterScreen.mk | 1 | ||||
-rw-r--r-- | sdext/source/presenter/PresenterPaneBorderManager.cxx | 507 | ||||
-rw-r--r-- | sdext/source/presenter/PresenterPaneBorderManager.hxx | 154 | ||||
-rw-r--r-- | sdext/source/presenter/PresenterWindowManager.cxx | 68 |
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(); } |