summaryrefslogtreecommitdiff
path: root/sd/source/ui/slidesorter/inc/controller
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/slidesorter/inc/controller')
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx346
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsAnimationFunction.hxx180
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsAnimator.hxx144
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsClipboard.hxx235
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsCurrentSlideManager.hxx131
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsFocusManager.hxx236
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsInsertionIndicatorHandler.hxx153
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsPageObjectFactory.hxx99
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsPageSelector.hxx232
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsProperties.hxx146
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsScrollBarManager.hxx286
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsSelectionFunction.hxx206
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsSelectionManager.hxx170
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsSelectionObserver.hxx85
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsSlideFunction.hxx76
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsSlotManager.hxx127
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsTransferable.hxx87
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsVisibleAreaManager.hxx100
18 files changed, 0 insertions, 3039 deletions
diff --git a/sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx b/sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx
deleted file mode 100644
index 912397c8c..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx
+++ /dev/null
@@ -1,346 +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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_SLIDE_SORTER_CONTROLLER_HXX
-#define SD_SLIDESORTER_SLIDE_SORTER_CONTROLLER_HXX
-
-#include "model/SlsSharedPageDescriptor.hxx"
-#include "ViewShell.hxx"
-
-#include <com/sun/star/drawing/XDrawPages.hpp>
-
-#include <sfx2/shell.hxx>
-#include <sfx2/viewfac.hxx>
-#include <tools/link.hxx>
-#include <tools/gen.hxx>
-#include <comphelper/implementationreference.hxx>
-
-namespace sd { namespace slidesorter {
-class SlideSorter;
-} }
-
-namespace sd { namespace slidesorter { namespace view {
-class SlideSorterView;
-class HighlightObject;
-} } }
-
-namespace sd { namespace slidesorter { namespace model {
-class SlideSorterModel;
-} } }
-
-namespace css = ::com::sun::star;
-
-namespace sd { namespace slidesorter { namespace controller {
-
-class Animator;
-class Clipboard;
-class CurrentSlideManager;
-class FocusManager;
-class InsertionIndicatorHandler;
-class Listener;
-class PageSelector;
-class ScrollBarManager;
-class SelectionFunction;
-class SelectionManager;
-class SelectionObserver;
-class SlotManager;
-class VisibleAreaManager;
-
-class SlideSorterController
-{
-public:
- /** Create a new controller for the slide sorter.
- @param pParentWindow
- The window that contains the controls of the new
- controller.
- */
- SlideSorterController (SlideSorter& rSlideSorter);
-
- /** Late initialization. Call this method once a new new object has been
- created.
- */
- virtual void Init (void);
-
- virtual ~SlideSorterController (void);
-
- void Dispose (void);
-
- /** Place and size the scroll bars and the browser window so that the
- given rectangle is filled.
- @return
- The space occupied by the browser window is returned.
- */
- Rectangle Resize (const Rectangle& rAvailableSpace);
-
- /** Determine which of the UI elements--the scroll bars, the scroll bar
- filler, the actual slide sorter view--are visible and place them in
- the area last passed to Resize().
- @param bForce
- When <TRUE/> is given (<FALSE/> is the default) then the content
- window and with it the SlideSorterView is resized event when its
- size does not change (the size does change when the visibility
- of scroll bars changes.)
- @return
- Returns the space occupied by the browser window.
- */
- Rectangle Rearrange (bool bForce = false);
-
- /** Return the descriptor of the page that is rendered under the
- given position. This takes the IsOnlyPreviewTriggersMouseOver
- property into account.
- @return
- Returns a pointer to a page descriptor instead of a
- reference because when no page is found at the position
- then NULL is returned to indicate this.
- */
- model::SharedPageDescriptor GetPageAt (const Point& rPixelPosition);
-
- PageSelector& GetPageSelector (void);
- FocusManager& GetFocusManager (void);
- controller::Clipboard& GetClipboard (void);
-
- /** Return the object that manages the scroll bars.
- */
- ScrollBarManager& GetScrollBarManager (void);
-
- ::boost::shared_ptr<CurrentSlideManager> GetCurrentSlideManager (void) const;
- ::boost::shared_ptr<SlotManager> GetSlotManager (void) const;
- ::boost::shared_ptr<SelectionManager> GetSelectionManager (void) const;
- ::boost::shared_ptr<InsertionIndicatorHandler> GetInsertionIndicatorHandler (void) const;
-
- /** This method forwards the call to the SlideSorterView and executes
- pending operations like moving selected pages into the visible area.
- */
- void Paint (const Rectangle& rRect, ::Window* pWin);
-
- void FuTemporary (SfxRequest& rRequest);
- void FuPermanent (SfxRequest& rRequest);
- void FuSupport (SfxRequest& rRequest);
- bool Command (
- const CommandEvent& rEvent,
- ::sd::Window* pWindow);
-
- void GetCtrlState (SfxItemSet &rSet);
- void GetStatusBarState (SfxItemSet& rSet);
-
- void ExecCtrl (SfxRequest& rRequest);
- void GetAttrState (SfxItemSet& rSet);
- void ExecStatusBar (SfxRequest& rRequest);
-
- bool IsLocked (void) const;
-
- /** Create an object of this inner class to prevent updates due to model
- changes.
- */
- class ModelChangeLock
- {public:
- ModelChangeLock (SlideSorterController& rController);
- ~ModelChangeLock (void);
- void Release (void);
- private:
- SlideSorterController* mpController;
- };
- friend class ModelChangeLock;
-
-
- /** Handle a change of the model, that is, handle the removal and
- insertion of whole pages or a change of the edit mode.
-
- This method is a convenience function that simply calls
- PreModelChange() and then PostModelChange().
- */
- void HandleModelChange (void);
-
- DECL_LINK(WindowEventHandler, VclWindowEvent*);
-
- /** Update the display of all pages. This involves a redraw and
- releasing previews and caches.
- */
- void UpdateAllPages (void);
-
- /** This factory method creates a selection function.
- */
- virtual FunctionReference CreateSelectionFunction (SfxRequest& rRequest);
-
- /** When the current function of the view shell is the slide sorter
- selection function then return a reference to it. Otherwise return
- an empty reference.
- */
- ::rtl::Reference<SelectionFunction> GetCurrentSelectionFunction (void);
-
- /** Prepare for a change of the edit mode. Depending on the current
- edit mode we may save the selection so that it can be restored when
- later changing back to the current edit mode.
- */
- void PrepareEditModeChange (void);
-
- /** Set a new edit mode and return whether the edit mode really
- has been changed. For proper saving and restoring of the selection
- this method should be called between calls to
- PrepareEditModeChange() and FinishEditModeChange().
- @return
- A return value of <TRUE/> indicates that the edit mode has
- changed.
- */
- bool ChangeEditMode (EditMode eEditMode);
-
- /** Finish the change of the edit mode. Here we may select a page or
- restore a previously saved selection.
- */
- void FinishEditModeChange (void);
-
- /** Call this method when the name of one of the pages has changed.
- This is then notified to the accessibility object, when that exists.
- @param nPageIndex
- The index of the page whose name has been changed.
- @param rsOldName
- The old name of the page. The new name can be taken from the
- page object.
- */
- void PageNameHasChanged (int nPageIndex, const String& rsOldName);
-
- /** Return whether a context menu has been opened by the called
- SlideSorterController object and is still open.
- */
- bool IsContextMenuOpen (void) const;
-
- /** Provide the set of pages to be displayed in the slide sorter. The
- GetDocumentSlides() method can be found only in the SlideSorterModel.
- */
- void SetDocumentSlides (const css::uno::Reference<css::container::XIndexAccess>& rxSlides);
-
- /** Return an Animator object.
- */
- ::boost::shared_ptr<Animator> GetAnimator (void) const;
-
- VisibleAreaManager& GetVisibleAreaManager (void) const;
-
- void CheckForMasterPageAssignment (void);
-
-private:
- SlideSorter& mrSlideSorter;
- model::SlideSorterModel& mrModel;
- view::SlideSorterView& mrView;
- ::boost::scoped_ptr<PageSelector> mpPageSelector;
- ::boost::scoped_ptr<FocusManager> mpFocusManager;
- ::boost::shared_ptr<SlotManager> mpSlotManager;
- ::boost::scoped_ptr<controller::Clipboard> mpClipboard;
- ::boost::scoped_ptr<ScrollBarManager> mpScrollBarManager;
- mutable ::boost::shared_ptr<CurrentSlideManager> mpCurrentSlideManager;
- ::boost::shared_ptr<SelectionManager> mpSelectionManager;
- ::boost::shared_ptr<InsertionIndicatorHandler> mpInsertionIndicatorHandler;
- ::boost::shared_ptr<Animator> mpAnimator;
- ::boost::scoped_ptr<VisibleAreaManager> mpVisibleAreaManager;
-
- // The listener listens to UNO events and thus is a UNO object.
- // For proper life time management and at the same time free access to
- // the implementation object we use the ImplementationReference class.
- ::rtl::Reference<controller::Listener> mpListener;
-
- int mnModelChangeLockCount;
- bool mbIsForcedRearrangePending;
-
- bool mbPreModelChangeDone;
- bool mbPostModelChangePending;
-
- ::std::vector<Link> maSelectionChangeListeners;
-
- /** This array stores the indices of the selected page descriptors at
- the time when the edit mode is switched to EM_MASTERPAGE. With this
- we can restore the selection when switching back to EM_PAGE mode.
- */
- ::std::vector<SdPage*> maSelectionBeforeSwitch;
- /// The current page before the edit mode is switched to EM_MASTERPAGE.
- int mnCurrentPageBeforeSwitch;
-
- /** The master page to select after the edit mode is changed. This
- member is used to pass the pointer from PrepareEditModeChange() to
- FinishEditModeChange().
- */
- SdPage* mpEditModeChangeMasterPage;
-
- /** This rectangle in the parent window encloses scroll bars and slide
- sorter window. It is set when Resize() is called.
- */
- Rectangle maTotalWindowArea;
-
- /** This counter is used to avoid processing of reentrant calls to
- Paint().
- */
- sal_Int32 mnPaintEntranceCount;
-
- /** Remember whether the context menu is open.
- */
- bool mbIsContextMenuOpen;
-
- /** Delete the given list of normal pages. This method is a helper
- function for DeleteSelectedPages().
- @param rSelectedNormalPages
- A list of normal pages. Supplying master pages is an error.
- */
- void DeleteSelectedNormalPages (const ::std::vector<SdPage*>& rSelectedNormalPages);
-
- /** Delete the given list of master pages. This method is a helper
- function for DeleteSelectedPages().
- @param rSelectedMasterPages
- A list of master pages. Supplying normal pages is an error.
- */
- void DeleteSelectedMasterPages (const ::std::vector<SdPage*>& rSelectedMasterPages);
-
- /** Prepare for several model changes, i.e. prevent time-consuming and
- non-critical operations like repaints until UnlockModelChange() is
- called. Ciritcal operations like releasing references to pages that
- do not exist anymore are executed.
- */
- void LockModelChange (void);
-
- /** Further calls to HandleModelChange() will result in a full featured
- update of model, view, and controller. When HandleModelChange() has
- been called since the last LockModelChange() then this is done right
- away to bring the view up-to-date.
- */
- void UnlockModelChange (void);
-
- /** Prepare for a model change. This method does all the things that
- need to be done _before_ the model changes, e.g. because they need
- access to the model data before the change.
- */
- void PreModelChange (void);
-
- /** Complete a model change. This includes the recreation of data
- structures that depend on the model and the request for a repaint to
- show the changes.
- */
- void PostModelChange (void);
-};
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsAnimationFunction.hxx b/sd/source/ui/slidesorter/inc/controller/SlsAnimationFunction.hxx
deleted file mode 100644
index e26ca94cf..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsAnimationFunction.hxx
+++ /dev/null
@@ -1,180 +0,0 @@
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_CONTROLLER_ANIMATION_FUNCTION_HXX
-#define SD_SLIDESORTER_CONTROLLER_ANIMATION_FUNCTION_HXX
-
-#include "model/SlsSharedPageDescriptor.hxx"
-#include <basegfx/point/b2dpoint.hxx>
-#include <boost/noncopyable.hpp>
-#include <boost/function.hpp>
-#include <tools/gen.hxx>
-#include <vector>
-
-namespace sd { namespace slidesorter { namespace view {
-class SlideSorterView;
-} } }
-
-
-
-namespace sd { namespace slidesorter { namespace controller {
-
-/** A collection of functions that are usefull when creating animations.
- They are collected here until a better place is found.
-*/
-class AnimationFunction
- : private ::boost::noncopyable
-{
-public:
- /** Acceleration function that maps [0,1] to [0,1] linearly, ie it
- returns the given time value unaltered.
- */
- static double Linear (const double nTime);
-
- /** Acceleration function that maps [0,1] to [0,1]. Speed starts fast
- and ends slow following the sine function.
- */
- static double FastInSlowOut_Sine (const double nTime);
-
- /** Acceleration function that maps [0,1] to [0,1]. Speed starts fast
- and ends slow following the square root function.
- */
- static double FastInSlowOut_Root (const double nTime);
-
- /** Acceleration function that maps [0,1] to [0,0]. Speed starts slow,
- rises, drops and ends slow following the sine function.
- */
- static double SlowInSlowOut_0to0_Sine (const double nTime);
-
- /** Acceleration function that maps [0,1] to [0,0]. Speed starts slow,
- rises and drops several times and ends slow following multiple
- cycles of the the sine function.
- */
- static double Vibrate_Sine (const double nTime);
-
- /** Scale point linearly.
- */
- static Point ScalePoint (const Point& rPoint, const double nTime);
-
- /** Blend two points together according to the given weight.
- */
- static double Blend (const double nStartValue, const double nEndValue, const double nWeight);
-
- /** Apply a gradual visual state change. The kind of change, i.e. the
- previous and the new states are expected to be already set. This
- method only adjusts the blending of the visual representation from
- one state to the other.
- */
- static void ApplyVisualStateChange (
- const model::SharedPageDescriptor& rpDescriptor,
- view::SlideSorterView& rView,
- const double nTime);
-
- /** Apply a gradual change of a previously set offset to the location of
- a page object.
- */
- static void ApplyLocationOffsetChange (
- const model::SharedPageDescriptor& rpDescriptor,
- view::SlideSorterView& rView,
- const Point aLocationOffset);
-
- /** Apply a gradual change the alpha value from the old value to a
- new value (set prior to this call.)
- */
- static void ApplyButtonAlphaChange(
- const model::SharedPageDescriptor& rpDescriptor,
- view::SlideSorterView& rView,
- const double nButtonAlpha,
- const double nButtonBarAlpha);
-};
-
-
-
-
-class AnimationBezierFunction
-{
-public:
- /** Create a cubic bezier curve whose start and end points are given
- implicitly as P0=(0,0) and P3=(1,1).
- */
- AnimationBezierFunction (
- const double nX1,
- const double nY1,
- const double nX2,
- const double nY2);
-
- /** Create a cubic bezier curve whose start and end points are given
- implicitly as P0=(0,0) and P3=(1,1). The second control point is
- implicitly given as P2=(1-nY1,1-nX1).
- */
- AnimationBezierFunction (
- const double nX1,
- const double nY1);
-
- ::basegfx::B2DPoint operator() (const double nT);
-
-private:
- const double mnX1;
- const double mnY1;
- const double mnX2;
- const double mnY2;
-
- double EvaluateComponent (
- const double nT,
- const double nV1,
- const double nV2);
-};
-
-
-
-
-/** Turn a parametric function into one whose y-Values depend on its
- x-Values. Note a lot of interpolation takes place. The resulting
- accuracy should be good enough for the purpose of acceleration
- function for animations.
-*/
-class AnimationParametricFunction
-{
-public:
- typedef ::boost::function<basegfx::B2DPoint(double)> ParametricFunction;
- AnimationParametricFunction (const ParametricFunction& rFunction);
-
- double operator() (const double nX);
-
-private:
- /** y-Values of the parametric function given to the constructor
- evaluated (and interpolated) for evenly spaced x-Values.
- */
- ::std::vector<double> maY;
-};
-
-
-
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsAnimator.hxx b/sd/source/ui/slidesorter/inc/controller/SlsAnimator.hxx
deleted file mode 100644
index 4a2659f46..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsAnimator.hxx
+++ /dev/null
@@ -1,144 +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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_CONTROLLER_ANIMATOR_HXX
-#define SD_SLIDESORTER_CONTROLLER_ANIMATOR_HXX
-
-#include "SlideSorter.hxx"
-#include "view/SlideSorterView.hxx"
-#include <canvas/elapsedtime.hxx>
-#include <vcl/timer.hxx>
-#include <sal/types.h>
-#include <vector>
-#include <boost/function.hpp>
-#include <boost/noncopyable.hpp>
-#include <boost/scoped_ptr.hpp>
-#include <boost/shared_ptr.hpp>
-
-
-namespace sd { namespace slidesorter { namespace controller {
-
-/** Experimental class for simple eye candy animations.
-*/
-class Animator
- : private ::boost::noncopyable
-{
-public:
- /** In some circumstances we have to avoid animation and jump to the
- final animation state immediately. Use this enum instead of a bool
- to be more expressive.
- */
- enum AnimationMode { AM_Animated, AM_Immediate };
-
- Animator (SlideSorter& rSlideSorter);
- ~Animator (void);
-
- /** When disposed the animator will stop its work immediately and not
- process any timer events anymore.
- */
- void Dispose (void);
-
- /** An animation object is called with values between 0 and 1 as single
- argument to its operator() method.
- */
- typedef ::boost::function1<void, double> AnimationFunctor;
- typedef ::boost::function0<void> FinishFunctor;
-
- typedef sal_Int32 AnimationId;
- static const AnimationId NotAnAnimationId = -1;
-
- /** Schedule a new animation for execution. The () operator of that
- animation will be called with increasing values between 0 and 1 for
- the specified duration.
- @param rAnimation
- The animation operation.
- @param nStartOffset
- Time in milli seconds before the animation is started.
- @param nDuration
- The duration in milli seconds.
- */
- AnimationId AddAnimation (
- const AnimationFunctor& rAnimation,
- const sal_Int32 nStartOffset,
- const sal_Int32 nDuration,
- const FinishFunctor& rFinishFunctor = FinishFunctor());
-
- AnimationId AddInfiniteAnimation (
- const AnimationFunctor& rAnimation,
- const double nDelta);
-
- /** Abort and remove an animation. In order to reduce the bookkeeping
- on the caller side, it is OK to call this method with an animation
- function that is not currently being animated. Such a call is
- silently ignored.
- */
- void RemoveAnimation (const AnimationId nAnimationId);
-
- /** A typical use case for this method is the temporary shutdown of the
- slidesorter when the slide sorter bar is put into a cache due to a
- change of the edit mode.
- */
- void RemoveAllAnimations (void);
-
-private:
- SlideSorter& mrSlideSorter;
- Timer maTimer;
- bool mbIsDisposed;
- class Animation;
- typedef ::std::vector<boost::shared_ptr<Animation> > AnimationList;
- AnimationList maAnimations;
- ::canvas::tools::ElapsedTime maElapsedTime;
-
- ::boost::scoped_ptr<view::SlideSorterView::DrawLock> mpDrawLock;
-
- AnimationId mnNextAnimationId;
-
- DECL_LINK(TimeoutHandler, Timer*);
-
- /** Execute one step of every active animation.
- @param nTime
- Time measured in milli seconds with some arbitrary reference point.
- @return
- When one or more animation has finished then <TRUE/> is
- returned. Call CleanUpAnimationList() in this case.
- */
- bool ProcessAnimations (const double nTime);
-
- /** Remove animations that have expired.
- */
- void CleanUpAnimationList (void);
-
- void RequestNextFrame (const double nFrameStart = 0);
-};
-
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsClipboard.hxx b/sd/source/ui/slidesorter/inc/controller/SlsClipboard.hxx
deleted file mode 100644
index fd83227f3..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsClipboard.hxx
+++ /dev/null
@@ -1,235 +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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_CLIPBOARD
-#define SD_SLIDESORTER_CLIPBOARD
-
-#include "ViewClipboard.hxx"
-#include "controller/SlsSelectionObserver.hxx"
-#include <sal/types.h>
-#include <tools/solar.h>
-#include <svx/svdpage.hxx>
-
-#include <set>
-
-class SfxRequest;
-class Window;
-
-struct AcceptDropEvent;
-class DropTargetHelper;
-struct ExecuteDropEvent;
-class Point;
-class SdPage;
-class Window;
-
-namespace sd {
-class Window;
-}
-
-namespace sd { namespace slidesorter {
-class SlideSorter;
-} }
-
-namespace sd { namespace slidesorter { namespace model {
-class PageDescriptor;
-} } }
-
-namespace sd { namespace slidesorter { namespace controller {
-
-class SlideSorterController;
-
-class Clipboard
- : public ViewClipboard
-{
-public:
- Clipboard (SlideSorter& rSlideSorter);
- ~Clipboard (void);
-
- void HandleSlotCall (SfxRequest& rRequest);
-
- void DoCut (::Window* pWindow = 0);
- void DoCopy (::Window* pWindow = 0);
- void DoPaste (::Window* pWindow = 0);
- void DoDelete (::Window* pWindow = 0);
-
- void StartDrag (
- const Point& rDragPt,
- ::Window* pWindow );
-
- void DragFinished (
- sal_Int8 nDropAction);
-
- sal_Int8 AcceptDrop (
- const AcceptDropEvent& rEvt,
- DropTargetHelper& rTargetHelper,
- ::sd::Window* pTargetWindow = NULL,
- sal_uInt16 nPage = SDRPAGE_NOTFOUND,
- sal_uInt16 nLayer = SDRPAGE_NOTFOUND );
-
- sal_Int8 ExecuteDrop (
- const ExecuteDropEvent& rEvt,
- DropTargetHelper& rTargetHelper,
- ::sd::Window* pTargetWindow = NULL,
- sal_uInt16 nPage = SDRPAGE_NOTFOUND,
- sal_uInt16 nLayer = SDRPAGE_NOTFOUND);
-
- void Abort (void);
-
-protected:
- virtual sal_uInt16 DetermineInsertPosition (
- const SdTransferable& rTransferable);
-
- virtual sal_uInt16 InsertSlides (
- const SdTransferable& rTransferable,
- sal_uInt16 nInsertPosition);
-
-private:
- SlideSorter& mrSlideSorter;
- SlideSorterController& mrController;
-
- typedef ::std::vector<SdPage*> PageList;
- /** Remember the pages that are dragged to another document or to
- another place in the same document so that they can be removed after
- a move operation.
- */
- PageList maPagesToRemove;
-
- /** Remember the pages inserted from another document or another place
- in the same document so that they can be selected after the
- drag-and-drop operation is completed.
- */
- PageList maPagesToSelect;
-
- /** When pages are moved or copied then the selection of the slide
- sorter has to be updated. This flag is used to remember whether the
- selection has to be updated or can stay as it is (sal_False).
- */
- bool mbUpdateSelectionPending;
-
- /** Used when a drop is executed to combine all undo actions into one.
- Typically created in ExecuteDrop() and released in DragFinish().
- */
- class UndoContext;
- ::boost::scoped_ptr<UndoContext> mpUndoContext;
-
- ::boost::scoped_ptr<SelectionObserver::Context> mpSelectionObserverContext;
- sal_uLong mnDragFinishedUserEventId;
-
- void CreateSlideTransferable (
- ::Window* pWindow,
- bool bDrag);
-
- /** Select the pages stored in the maPagesToSelect member. The list in
- the member is cleared afterwards.
- */
- void SelectPages (void);
-
- /** Determine the position of where to insert the pages in the current
- transferable of the sd module.
- @param pWindow
- This window is used as parent for dialogs that have to be shown
- to the user.
- @return
- The index in the range [0,n] (both inclusive) with n the number
- of pages is returned.
- */
- sal_Int32 GetInsertionPosition (::Window* pWindow);
-
- /** Paste the pages of the transferable of the sd module at the given
- position.
- @param nInsertPosition
- The position at which to insert the pages. The valid range is
- [0,n] (both inclusive) with n the number of pages in the
- document.
- @return
- The number of inserted pages is returned.
- */
- sal_Int32 PasteTransferable (sal_Int32 nInsertPosition);
-
- /** Select a range of pages of the model. Typicall usage is the
- selection of newly inserted pages.
- @param nFirstIndex
- The index of the first page to select.
- @param nPageCount
- The number of pages to select.
- */
- void SelectPageRange (sal_Int32 nFirstIndex, sal_Int32 nPageCount);
-
- /** Return <TRUE/> when the current transferable in the current state of
- the slidesorter is acceptable to be pasted. For this the
- transferable has to
- a) exist,
- b) contain one or more regular draw pages, no master pages.
- When master pages are involved, either in the transferable or in the
- slide sorter (by it displaying master pages) the drop of the
- transferable is not accepted. The reason is the missing
- implementation of proper handling master pages copy-and-paste.
- */
- enum DropType { DT_PAGE, DT_SHAPE, DT_NONE };
- DropType IsDropAccepted (void) const;
-
- /** This method contains the code for AcceptDrop() and ExecuteDrop() shapes.
- There are only minor differences for the two cases at this level.
- @param eCommand
- This parameter specifies whether to do a AcceptDrop() or
- ExecuteDrop().
- @param rPosition
- Since the event is given as void pointer we can not take the
- mouse position from it. The caller has to supply it in this
- parameter.
- @param pDropEvent
- Event though the AcceptDropEvent and ExecuteDropEvent are very
- similar they do not have a common base class. Because of that
- we have to use a void* to pase these structs.
- @param nPage
- When the page number is given as 0xffff then it is replaced by
- the number of the page at the mouse position. If the mouse is
- not over a page then neither AcceptDrop() nor ExecuteDrop() are
- executed.
- */
- enum DropCommand { DC_ACCEPT, DC_EXECUTE };
- sal_Int8 ExecuteOrAcceptShapeDrop (
- DropCommand eCommand,
- const Point& rPosition,
- const void* pDropEvent ,
- DropTargetHelper& rTargetHelper,
- ::sd::Window* pTargetWindow,
- sal_uInt16 nPage,
- sal_uInt16 nLayer);
-
- /** Asynchronous part of DragFinished. The argument is the sal_Int8
- nDropAction, disguised as void*.
- */
- DECL_LINK(ProcessDragFinished, void*);
-};
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsCurrentSlideManager.hxx b/sd/source/ui/slidesorter/inc/controller/SlsCurrentSlideManager.hxx
deleted file mode 100644
index 6e3bb250e..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsCurrentSlideManager.hxx
+++ /dev/null
@@ -1,131 +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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_CURRENT_SLIDE_MANAGER_HXX
-#define SD_SLIDESORTER_CURRENT_SLIDE_MANAGER_HXX
-
-#include "model/SlsSharedPageDescriptor.hxx"
-#include <vcl/timer.hxx>
-#include <tools/link.hxx>
-#include <com/sun/star/drawing/XDrawPage.hpp>
-
-class SdPage;
-
-namespace sd { namespace slidesorter {
-class SlideSorter;
-} }
-
-
-namespace sd { namespace slidesorter { namespace controller {
-
-/** Manage the current slide. This includes setting the according flags at
- the PageDescriptor objects and setting the current slide at the main
- view shell.
-
- Switching pages is triggered only after a little delay. This allows
- fast travelling through a larger set of slides without having to wait
- for the edit view to update its content after every slide change.
-*/
-class CurrentSlideManager
-{
-public:
- /** Create a new CurrentSlideManager object that manages the current
- slide for the given SlideSorter.
- */
- CurrentSlideManager (SlideSorter& rSlideSorter);
-
- ~CurrentSlideManager (void);
-
- /** Call this when the current page of the main view shell has been
- switched. Use SwitchCurrentSlide() to initiate such a switch.
- */
- void NotifyCurrentSlideChange (const sal_Int32 nSlideIndex);
- void NotifyCurrentSlideChange (const SdPage* pPage);
-
- /** Call this method to switch the current page of the main view shell
- to the given slide. Use CurrentSlideHasChanged() when the current
- slide change has been initiated by someone else.
- @param nSlideIndex
- Zero based index in the range [0,number-of-slides).
- @param bUpdateSelection
- When <TRUE/> then the page selection is cleared and only the new
- current slide is selected.
- */
- void SwitchCurrentSlide (
- const sal_Int32 nSlideIndex,
- const bool bUpdateSelection = false);
- void SwitchCurrentSlide (
- const model::SharedPageDescriptor& rpSlide,
- const bool bUpdateSelection = false);
-
- /** Return the page descriptor for the current slide. Note, that when
- there is no current slide then the returned pointer is empty.
- */
- model::SharedPageDescriptor GetCurrentSlide (void);
-
- /** Release all references to model data.
- */
- void PrepareModelChange (void);
-
- /** Modify inner state in reaction to a change of the SlideSorterModel.
- */
- void HandleModelChange (void);
-
-private:
- SlideSorter& mrSlideSorter;
- sal_Int32 mnCurrentSlideIndex;
- model::SharedPageDescriptor mpCurrentSlide;
- /** Timer to control the delay after which to ask
- XController/ViewShellBase to switch to another slide.
- */
- Timer maSwitchPageDelayTimer;
-
- bool IsCurrentSlideIsValid (void);
- void SetCurrentSlideAtViewShellBase (const model::SharedPageDescriptor& rpSlide);
- void SetCurrentSlideAtTabControl (const model::SharedPageDescriptor& rpSlide);
- void SetCurrentSlideAtXController (const model::SharedPageDescriptor& rpSlide);
-
- /** When switching from one slide to a new current slide then this
- method releases all ties to the old slide.
- */
- void ReleaseCurrentSlide (void);
-
- /** When switching from one slide to a new current slide then this
- method connects to the new current slide.
- */
- void AcquireCurrentSlide (const sal_Int32 nSlideIndex);
-
- DECL_LINK(SwitchPageCallback,void*);
-};
-
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsFocusManager.hxx b/sd/source/ui/slidesorter/inc/controller/SlsFocusManager.hxx
deleted file mode 100644
index 05305d3b2..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsFocusManager.hxx
+++ /dev/null
@@ -1,236 +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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_FOCUS_MANAGER_HXX
-#define SD_SLIDESORTER_FOCUS_MANAGER_HXX
-
-#include <model/SlsSharedPageDescriptor.hxx>
-
-#include <sal/types.h>
-#include <tools/link.hxx>
-#include <vector>
-
-namespace sd { namespace slidesorter {
-class SlideSorter;
-} }
-
-
-namespace sd { namespace slidesorter { namespace controller {
-
-/** This class manages the focus of the slide sorter. There is the focus
- page which is or is not focused. Initialized to point to the first page
- it can be set to other pages by using the MoveFocus() method. The
- focused state of the focus page can be toggled with the ToggleFocus()
- method.
-*/
-class FocusManager
-{
-public:
- /** Create a new focus manager that operates on the pages of the model
- associated with the given controller. The focus page is set to the
- first page. Focused state is off.
- */
- FocusManager (SlideSorter& rSlideSorter);
-
- ~FocusManager (void);
-
- enum FocusMoveDirection
- {
- FMD_NONE,
- FMD_LEFT,
- FMD_RIGHT,
- FMD_UP,
- FMD_DOWN
- };
-
- /** Move the focus from the currently focused page to one that is
- displayed adjacent to it, either vertically or horizontally.
- @param eDirection
- Direction in which to move the focus. Wrap arround is done
- differently when moving vertically or horizontally. Vertical
- wrap arround takes place in the same column, i.e. when you are
- in the top row and move up you come out in the bottom row in the
- same column. Horizontal wrap arround moves to the next
- (FMD_RIGHT) or previous (FMD_LEFT) page. Moving to the right
- from the last page goes to the first page and vice versa.
- When FMD_NONE is given, the current page index is checked for
- being valid. If it is not, then it is set to the nearest valid
- page index.
- */
- void MoveFocus (FocusMoveDirection eDirection);
-
- /** Show the focus indicator of the current slide.
- @param bScrollToFocus
- When <TRUE/> (the default) then the view is scrolled so that the
- focus rectangle lies inside its visible area.
- */
- void ShowFocus (const bool bScrollToFocus = true);
-
- /** Hide the focus indicator.
- */
- void HideFocus (void);
-
- /** Toggle the focused state of the current slide.
- @return
- Returns the focused state of the focus page after the call.
- */
- bool ToggleFocus (void);
-
- /** Return whether the window managed by the called focus manager has
- the input focus of the application.
- */
- bool HasFocus (void) const;
-
- /** Return the descriptor of the page that currently has the focus.
- @return
- When there is no page that currently has the focus then NULL is
- returned.
- */
- model::SharedPageDescriptor GetFocusedPageDescriptor (void) const;
-
- /** Return the index of the page that currently has the focus as it is
- accepted by the slide sorter model.
- @return
- When there is no page that currently has the focus then -1 is
- returned.
- */
- sal_Int32 GetFocusedPageIndex (void) const;
-
- /** Set the focused page to the one described by the given page
- descriptor. The visibility of the focus indicator is not modified.
- @param rDescriptor
- One of the page descriptors that are currently managed by the
- SlideSorterModel.
- */
- void SetFocusedPage (const model::SharedPageDescriptor& rDescriptor);
-
- /** Set the focused page to the one described by the given page
- index. The visibility of the focus indicator is not modified.
- @param nPageIndex
- A valid page index that is understood by the SlideSorterModel.
- */
- void SetFocusedPage (sal_Int32 nPageIndex);
-
- void SetFocusedPageToCurrentPage (void);
-
- /** Return <TRUE/> when the focus inidcator is currently shown. A
- prerequisite is that the window managed by this focus manager has
- the input focus as indicated by a <TRUE/> return value of
- HasFocus(). It is not necessary that the focus indicator is
- visible. It may have been scrolled outside the visible area.
- */
- bool IsFocusShowing (void) const;
-
- /** Add a listener that is called when the focus is shown or hidden or
- set to another page object.
- @param rListener
- When this method is called multiple times for the same listener
- the second and all following calls are ignored. Each listener
- is added only once.
- */
- void AddFocusChangeListener (const Link& rListener);
-
- /** Remove a focus change listener.
- @param rListener
- It is save to pass a listener that was not added are has been
- removed previously. Such calls are ignored.
- */
- void RemoveFocusChangeListener (const Link& rListener);
-
- /** Move focus to sibling outside the actual slide sorter. This is
- typically the tool bar with the close button.
- */
- void SetFocusToToolBox (void);
-
- /** Create an instance of this class to temporarily hide the focus
- indicator. It is restored to its former visibility state when the
- FocusHider is destroyed.
- */
- class FocusHider
- {
- public:
- FocusHider (FocusManager&);
- ~FocusHider (void);
- private:
- bool mbFocusVisible;
- FocusManager& mrManager;
- };
-
-private:
- SlideSorter& mrSlideSorter;
-
- /** Index of the page that may be focused. It is -1 when the model
- contains no page.
- */
- sal_Int32 mnPageIndex;
-
- /** This flag indicates whether the page pointed to by mpFocusDescriptor
- has the focus.
- */
- bool mbPageIsFocused;
-
- ::std::vector<Link> maFocusChangeListeners;
-
- /** When vertical wrap is active then pressing UP in the top row moves
- the focus to the bottom row, DOWN in the bottom row moves the focus
- to the top row.
- */
- bool mbIsVerticalWrapActive;
-
- /** Reset the focus state of the given descriptor and request a repaint
- so that the focus indicator is hidden.
- @param pDescriptor
- When NULL is given then the call is ignored.
- */
- void HideFocusIndicator (const model::SharedPageDescriptor& rpDescriptor);
-
- /** Set the focus state of the given descriptor, scroll it into the
- visible area and request a repaint so that the focus indicator is
- made visible.
- @param pDescriptor
- When NULL is given then the call is ignored.
- @param bScrollToFocus
- When <TRUE/> (the default) then the view is scrolled so that the
- focus rectangle lies inside its visible area.
- */
- void ShowFocusIndicator (
- const model::SharedPageDescriptor& rpDescriptor,
- const bool bScrollToFocus);
-
- /** Call all currently registered listeners that a focus change has
- happended. The focus may be hidden or shown or moved from one page
- object to another.
- */
- void NotifyFocusChangeListeners (void) const;
-};
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsInsertionIndicatorHandler.hxx b/sd/source/ui/slidesorter/inc/controller/SlsInsertionIndicatorHandler.hxx
deleted file mode 100644
index 6c4026bac..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsInsertionIndicatorHandler.hxx
+++ /dev/null
@@ -1,153 +0,0 @@
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_INSERTION_INDICATOR_HANDLER_HXX
-#define SD_SLIDESORTER_INSERTION_INDICATOR_HANDLER_HXX
-
-#include "view/SlsInsertAnimator.hxx"
-
-#include "view/SlsLayouter.hxx"
-
-namespace sd { namespace slidesorter { class SlideSorter; } }
-namespace sd { namespace slidesorter { namespace model {
-class PageEnumeration;
-} } }
-namespace sd { namespace slidesorter { namespace view {
-class InsertAnimator;
-class InsertionIndicatorOverlay;
-} } }
-
-
-namespace sd { namespace slidesorter { namespace controller {
-
-class Transferable;
-
-
-/** Manage the visibility and location of the insertion indicator. Its
- actual display is controlled by the InsertionIndicatorOverlay.
-*/
-class InsertionIndicatorHandler
-{
-public:
- InsertionIndicatorHandler (SlideSorter& rSlideSorter);
- ~InsertionIndicatorHandler (void);
-
- enum Mode { CopyMode, MoveMode, UnknownMode };
- static Mode GetModeFromDndAction (const sal_Int8 nDndAction);
-
- /** Activate the insertion marker at the given coordinates.
- */
- void Start (const bool bIsOverSourceView);
-
- /** Deactivate the insertion marker.
- */
- void End (const controller::Animator::AnimationMode eMode);
-
- /** This context make sure that the insertion indicator is shown
- (provided that the clipboard is not empty) while the context is
- alive. Typically used while a context menu is displayed.
- */
- class ForceShowContext
- {
- public:
- ForceShowContext (const ::boost::shared_ptr<InsertionIndicatorHandler>& rpHandler);
- ~ForceShowContext (void);
- private:
- const ::boost::shared_ptr<InsertionIndicatorHandler> mpHandler;
- };
-
- /** Update the indicator icon from the current transferable (from the
- clipboard or an active drag and drop operation.)
- */
- void UpdateIndicatorIcon (const Transferable* pTransferable);
-
- /** Set the position of the insertion marker to the given coordinates.
- */
- void UpdatePosition (
- const Point& rMouseModelPosition,
- const Mode eMode);
- void UpdatePosition (
- const Point& rMouseModelPosition,
- const sal_Int8 nDndAction);
-
- /** Return whether the insertion marker is active.
- */
- bool IsActive (void) const;
-
- /** Return the insertion index that corresponds with the current
- graphical location of the insertion indicator.
- */
- sal_Int32 GetInsertionPageIndex (void) const;
-
- /** Determine whether moving the current selection to the current
- position of the insertion marker would alter the document. This
- would be the case when the selection is not consecutive or would be
- moved to a position outside and not adjacent to the selection.
- */
- bool IsInsertionTrivial (
- const sal_Int32 nInsertionIndex,
- const Mode eMode) const;
- /** This method is like the other variant. It operates implicitly
- on the current insertion index as would be returned by
- GetInsertionPageIndex().
- */
- bool IsInsertionTrivial (const sal_Int8 nDndAction);
-
-private:
- SlideSorter& mrSlideSorter;
- ::boost::shared_ptr<view::InsertAnimator> mpInsertAnimator;
- ::boost::shared_ptr<view::InsertionIndicatorOverlay> mpInsertionIndicatorOverlay;
- view::InsertPosition maInsertPosition;
- Mode meMode;
- bool mbIsInsertionTrivial;
- bool mbIsActive;
- bool mbIsReadOnly;
- bool mbIsOverSourceView;
- Size maIconSize;
- bool mbIsForcedShow;
-
- void SetPosition (
- const Point& rPoint,
- const Mode eMode);
- ::boost::shared_ptr<view::InsertAnimator> GetInsertAnimator (void);
-
- /** Make the insertion indicator visible (that is the show part) and
- keep it visible, even when the mouse leaves the window (that is the
- force part). We need this when a context menu is displayed (mouse
- over the popup menu triggers a mouse leave event) while the
- insertion indicator remains visible in the background.
-
- In effect all calls to End() are ignored until ForceEnd() is called.
- */
- void ForceShow (void);
- void ForceEnd (void);
-};
-
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsPageObjectFactory.hxx b/sd/source/ui/slidesorter/inc/controller/SlsPageObjectFactory.hxx
deleted file mode 100644
index fef75520c..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsPageObjectFactory.hxx
+++ /dev/null
@@ -1,99 +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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_PAGE_OBJECT_FACTORY_HEADER
-#define SD_SLIDESORTER_PAGE_OBJECT_FACTORY_HEADER
-
-#include <boost/shared_ptr.hpp>
-#include "model/SlsSharedPageDescriptor.hxx"
-
-class SdPage;
-
-namespace sdr { namespace contact {
-class ObjectContact;
-class ViewContact;
-class ViewObjectContact;
-} }
-
-namespace sd { namespace slidesorter { namespace view {
-class PageObject;
-} } }
-
-namespace sd { namespace slidesorter { namespace cache {
-class PageCache;
-} } }
-
-
-namespace sd { namespace slidesorter { namespace controller {
-
-class Properties;
-
-/** This class is a factory for the creation of objects that represent page
- objects (shapes). This includes the contact objects of the drawing
- layer.
-
- <p>The factory methods are called by the model::PageDescriptor and the
- standard implementations of the contact objects.</p>
-
- <p>The factory forwars the preview cache and Properties object to page
- objects and contact objects.</p>
-*/
-class PageObjectFactory
-{
-public:
- /** Create a new PageObjectFactory object that has references to the
- given cache and properties.
- */
- PageObjectFactory (
- const ::boost::shared_ptr<cache::PageCache>& rpCache,
- const ::boost::shared_ptr<controller::Properties>& rpProperties);
- PageObjectFactory (const ::boost::shared_ptr<cache::PageCache>& rpCache);
- virtual ~PageObjectFactory (void);
-
- virtual view::PageObject* CreatePageObject (
- SdPage* pPage,
- const model::SharedPageDescriptor& rpDescriptor) const;
-
- virtual ::sdr::contact::ViewContact* CreateViewContact (
- view::PageObject* pPageObject,
- const model::SharedPageDescriptor& rpDescriptor) const;
-
- virtual ::sdr::contact::ViewObjectContact* CreateViewObjectContact (
- ::sdr::contact::ObjectContact& rObjectContact,
- ::sdr::contact::ViewContact& rViewContact) const;
-
-private:
- ::boost::shared_ptr<cache::PageCache> mpPageCache;
- ::boost::shared_ptr<controller::Properties> mpProperties;
-};
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsPageSelector.hxx b/sd/source/ui/slidesorter/inc/controller/SlsPageSelector.hxx
deleted file mode 100644
index 11717f2da..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsPageSelector.hxx
+++ /dev/null
@@ -1,232 +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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_PAGE_SELECTOR_HXX
-#define SD_SLIDESORTER_PAGE_SELECTOR_HXX
-
-#include "model/SlsSharedPageDescriptor.hxx"
-
-#include <com/sun/star/drawing/XDrawPage.hpp>
-#include <vector>
-#include <memory>
-
-class SdPage;
-
-namespace sd { namespace slidesorter {
-class SlideSorter;
-} }
-
-namespace sd { namespace slidesorter { namespace model {
-class SlideSorterModel;
-} } }
-
-namespace sd { namespace slidesorter { namespace view {
-class SlideSorterView;
-} } }
-
-namespace sd { namespace slidesorter { namespace controller {
-
-class SlideSorterController;
-
-
-/** A sub-controller that handles page selection of the slide browser.
- Selecting a page does not make it the current page (of the main view)
- automatically as this would not be desired in a multi selection. This
- has to be done explicitly by calling the
- CurrentSlideManager::SetCurrentSlide() method.
-
- Indices of pages relate allways to the number of all pages in the model
- (as returned by GetPageCount()) not just the selected pages.
-*/
-class PageSelector
-{
-public:
- PageSelector (SlideSorter& rSlideSorter);
-
- void SelectAllPages (void);
- void DeselectAllPages (void);
-
- /** Update the selection state of all page descriptors to be the same as
- that of the corresponding pages of the SdPage objects and issue
- redraw requests where necessary.
- */
- void GetCoreSelection (void);
-
- /** Update the selection state of the SdPage objects to be the same as
- that of the correspinding page descriptors.
- */
- void SetCoreSelection (void);
-
- /** Select the specified descriptor. The selection state of the other
- descriptors is not affected.
- */
- void SelectPage (int nPageIndex);
- /** Select the descriptor that is associated with the given page. The
- selection state of the other descriptors is not affected.
- */
- void SelectPage (const SdPage* pPage);
- /** Select the specified descriptor. The selection state of the other
- descriptors is not affected.
- */
- void SelectPage (const model::SharedPageDescriptor& rpDescriptor);
-
- /** Return whether the specified page is selected. This convenience
- method is a subsitute for
- SlideSorterModel::GetPageDescriptor(i)->IsSelected() is included
- here to make this class more self contained.
- */
- bool IsPageSelected (int nPageIndex);
-
- /** Deselect the descriptor that is associated with the given page.
- @param bUpdateCurrentPage
- When <TRUE/> then the current page is updated to the first slide
- of the remaining selection.
- */
- void DeselectPage (
- int nPageIndex,
- const bool bUpdateCurrentPage = true);
- void DeselectPage (
- const SdPage* pPage,
- const bool bUpdateCurrentPage = true);
- void DeselectPage (
- const model::SharedPageDescriptor& rpDescriptor,
- const bool bUpdateCurrentPage = true);
-
- /** This convenience method returns the same number of pages that
- SlideSorterModel.GetPageCount() returns. It is included here so
- that it is self contained for iterating over all pages to select or
- deselect them.
- */
- int GetPageCount (void) const;
- int GetSelectedPageCount (void) const;
-
- /** Return the anchor for a range selection. This usually is the first
- selected page after all pages have been deselected.
- @return
- The returned anchor may be NULL.
- */
- model::SharedPageDescriptor GetSelectionAnchor (void) const;
-
-
- typedef ::std::vector<SdPage*> PageSelection;
-
- /** Return an object that describes the current selection. The caller
- can use that object to later restore the selection.
- @return
- The object returned describes the selection via indices. So
- even if pages are exchanged a later call to SetPageSelection()
- is valid.
- */
- ::boost::shared_ptr<PageSelection> GetPageSelection (void) const;
-
- /** Restore a page selection according to the given selection object.
- @param rSelection
- Typically obtained by calling GetPageSelection() this object
- is used to restore the selection. If pages were exchanged since
- the last call to GetPageSelection() it is still valid to call
- this method with the selection. When pages have been inserted
- or removed the result may be unexpected.
- @param bUpdateCurrentPage
- When <TRUE/> (the default value) then after setting the
- selection update the current page to the first page of the
- selection.
- When called from withing UpdateCurrentPage() then this flag is
- used to prevent a recursion loop.
- */
- void SetPageSelection (
- const ::boost::shared_ptr<PageSelection>& rSelection,
- const bool bUpdateCurrentPage = true);
-
- /** Call this method after the the model has changed to set the number
- of selected pages.
- */
- void CountSelectedPages (void);
-
- /** Use the UpdateLock whenever you do a complex selection, i.e. call
- more than one method in a row. An active lock prevents intermediate
- changes of the current slide.
- */
- class UpdateLock
- {
- public:
- UpdateLock (SlideSorter& rSlideSorter);
- UpdateLock (PageSelector& rPageSelector);
- ~UpdateLock (void);
- void Release (void);
- private:
- PageSelector* mpSelector;
- };
-
- class BroadcastLock
- {
- public:
- BroadcastLock (SlideSorter& rSlideSorter);
- BroadcastLock (PageSelector& rPageSelector);
- ~BroadcastLock (void);
- private:
- PageSelector& mrSelector;
- };
-
-private:
- model::SlideSorterModel& mrModel;
- SlideSorter& mrSlideSorter;
- SlideSorterController& mrController;
- int mnSelectedPageCount;
- int mnBroadcastDisableLevel;
- bool mbSelectionChangeBroadcastPending;
- model::SharedPageDescriptor mpMostRecentlySelectedPage;
- /// Anchor for a range selection.
- model::SharedPageDescriptor mpSelectionAnchor;
- model::SharedPageDescriptor mpCurrentPage;
- sal_Int32 mnUpdateLockCount;
- bool mbIsUpdateCurrentPagePending;
-
- /** Enable the broadcasting of selection change events. This calls the
- SlideSorterController::SelectionHasChanged() method to do the actual
- work. When EnableBroadcasting has been called as many times as
- DisableBroadcasting() was called before and the selection has been
- changed in the mean time, this change will be broadcasted.
- */
- void EnableBroadcasting (void);
-
- /** Disable the broadcasting of selection change events. Subsequent
- changes of the selection will set a flag that triggers the sending
- of events when EnableBroadcasting() is called.
- */
- void DisableBroadcasting (void);
-
- void UpdateCurrentPage (const bool bUpdateOnlyWhenPending = false);
-
- void CheckConsistency (void) const;
-};
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsProperties.hxx b/sd/source/ui/slidesorter/inc/controller/SlsProperties.hxx
deleted file mode 100644
index bbf01a8ec..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsProperties.hxx
+++ /dev/null
@@ -1,146 +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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_PROPERTIES_HEADER
-#define SD_SLIDESORTER_PROPERTIES_HEADER
-
-#include <tools/color.hxx>
-
-namespace sd { namespace slidesorter { namespace controller {
-
-/** An extensible set of properties used throughout the slide sorter.
-*/
-class Properties
-{
-public:
- Properties (void);
- ~Properties (void);
-
- /** Call this method after receiving a VCLEVENT_APPLICATION_DATACHANGED
- event.
- */
- void HandleDataChangeEvent (void);
-
- /** When this method returns <TRUE/> then the current slide is
- highlighted in the view. The default value is <FALSE/>.
- */
- bool IsHighlightCurrentSlide (void) const;
- void SetHighlightCurrentSlide (const bool bIsHighlightCurrentSlide);
-
- /** When this method returns <TRUE/> then the selection is indicated in
- the view (typically by drawing rectangles around the selected
- slides.) The default value is <TRUE/>.
- */
- bool IsShowSelection (void) const;
- void SetShowSelection (const bool bIsShowSelection);
-
- /** When this method returns <TRUE/> then the focusdselection is indicated in
- the view (typically by drawing dotted rectangles around the selected
- slides.) The default value is <TRUE/>.
- */
- bool IsShowFocus (void) const;
- void SetShowFocus (const bool bIsShowFocus);
-
- /** When this method returns <TRUE/> then on a selection change the
- visible area is adapted so that the selected slides are shown
- centered in the view. This can be used to center the current slide
- by selecting only the current slide. The default value is <FALSE/>.
- */
- bool IsCenterSelection (void) const;
- void SetCenterSelection (const bool bIsCenterSelection);
-
- /** When this mehod returns <TRUE/> then the view may try to change the
- visible area by scrolling it smoothly on the screen. Experimental.
- Default value is <FALSE/>.
- */
- bool IsSmoothSelectionScrolling (void) const;
- void SetSmoothSelectionScrolling (const bool bIsSmoothSelectionScrolling);
-
- /** When this method returns <TRUE/> then during a full screen
- presentation the previews in a slide sorter are not updated.
- Default value is <TRUE/>.
- */
- bool IsSuspendPreviewUpdatesDuringFullScreenPresentation (void) const;
- void SetSuspendPreviewUpdatesDuringFullScreenPresentation (const bool bFlag);
-
- /** Return the background color.
- */
- Color GetBackgroundColor (void) const;
- void SetBackgroundColor (const Color& rColor);
-
- /** Return the text color.
- */
- Color GetTextColor (void) const;
- void SetTextColor (const Color& rColor);
-
- /** Return the color in which selections are to be painted.
- */
- Color GetSelectionColor (void) const;
- void SetSelectionColor (const Color& rColor);
-
- /** Return the color used for highlighting e.g. the current slide.
- */
- Color GetHighlightColor (void) const;
- void SetHighlightColor (const Color& rColor);
-
- /** The UI can be set to be read only indepently from the model status.
- Used for instance in the presenter view.
- */
- bool IsUIReadOnly (void) const;
- void SetUIReadOnly (const bool bIsUIReadOnly);
-
- /** The mouse over effect (and whether a mouse motion starts a multi
- selection or a drag-and-drop) can be triggered by just the preview
- area or the whole page object area.
- */
- bool IsOnlyPreviewTriggersMouseOver (void) const;
- void SetOnlyPreviewTriggersMouseOver (const bool bFlag);
-
- bool IsHighContrastModeActive (void) const;
-
-private:
- bool mbIsHighlightCurrentSlide;
- bool mbIsShowSelection;
- bool mbIsShowFocus;
- bool mbIsCenterSelection;
- bool mbIsSmoothSelectionScrolling;
- bool mbIsSuspendPreviewUpdatesDuringFullScreenPresentation;
- Color maBackgroundColor;
- Color maTextColor;
- Color maSelectionColor;
- Color maHighlightColor;
- bool mbIsUIReadOnly;
- bool mbIsOnlyPreviewTriggersMouseOver;
- bool mbIsHighContrastModeActive;
-};
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsScrollBarManager.hxx b/sd/source/ui/slidesorter/inc/controller/SlsScrollBarManager.hxx
deleted file mode 100644
index 999d824f1..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsScrollBarManager.hxx
+++ /dev/null
@@ -1,286 +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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_SLIDE_SORTER_SCROLL_BAR_MANAGER_HXX
-#define SD_SLIDESORTER_SLIDE_SORTER_SCROLL_BAR_MANAGER_HXX
-
-#include "SlideSorter.hxx"
-
-#include <tools/link.hxx>
-#include <tools/gen.hxx>
-#include <vcl/timer.hxx>
-#include <boost/shared_ptr.hpp>
-#include <boost/function.hpp>
-
-class Point;
-class Rectangle;
-class ScrollBar;
-class ScrollBarBox;
-class Window;
-
-namespace sd {
-class Window;
-}
-
-namespace sd { namespace slidesorter {
- class SlideSorter;
-} }
-
-
-namespace sd { namespace slidesorter { namespace controller {
-
-/** Manage the horizontal and vertical scroll bars. Listen for events, set
- their sizes, place them in the window, determine their visibilities.
-
- <p>Handle auto scrolling, i.e. the scrolling of the window when the
- mouse comes near the window border while dragging a selection.</p>
-
- <p>In order to make the slide sorter be used in the task pane with its
- own vertical scrollbars the vertical scrollbar of the use of the slide
- sorter is optional. When using it the available area in a window is
- used and the vertical scrollbar is displayed when that area is not large
- enough. When the vertical scrollbar is not used then the available area
- is assumed to be modifiable. In that case the PlaceScrollBars() method
- may return an area larger than the one given.<p>
-*/
-class ScrollBarManager
-{
-public:
- /** Create a new scroll bar manager that manages three controls: the
- horizontal scroll bar, the vertical scroll bar, and the little
- window that fills the gap at the bottom right corner that is left
- between the two scroll bars. Call LateInitialization() after
- constructing a new object.
- */
- ScrollBarManager (SlideSorter& rSlideSorter);
-
- ~ScrollBarManager (void);
-
- /** Call this method after constructing a new object of this class.
- */
- void LateInitialization (void);
-
- /** Register listeners at the scroll bars. This method is called after
- startup of a new slide sorter object or after a reactivation of a
- slide sorter that for example is taken from a cache.
- */
- void Connect (void);
-
- /** Remove listeners from the scroll bars. This method is called whent
- the slide sorter is destroyed or when it is suspended, e.g. put
- into a cache for later reuse.
- */
- void Disconnect (void);
-
- /** Set up the scroll bar, i.e. thumb size and position. Call this
- method when the content of the browser window changed, i.e. pages
- were inserted or deleted, the layout or the zoom factor has
- changed.
- @param bResetThumbPosition
- When <TRUE/> then set the thumb position to position 0. This is
- done when e.g. switching between master page mode and draw mode.
- @param bScrollToCurrentPosition
- When <TRUE/> then scroll the window to the new offset that is
- defined by the scroll bars. Otherwise the new offset is simply
- set and the whole window is repainted.
- */
- void UpdateScrollBars (
- bool bResetThumbPosition = false,
- bool bScrollToCurrentPosition = true);
-
- /** Place the scroll bars inside the given area. When the available
- area is not large enough for the content to display the horizontal
- and/or vertical scroll bar is enabled.
- @param rAvailableArea
- The scroll bars will be placed inside this rectangle. It is
- expected to be given in pixel relative to its parent.
- @param bIsHorizontalScrollBarAllowed
- Only when this flag is <TRUE/> the horizontal scroll may be
- displayed.
- @param bIsVerticalScrollBarAllowed
- Only when this flag is <TRUE/> the horizontal scroll may be
- displayed.
- @return
- Returns the space that remains after the scroll bars are
- placed.
- */
- Rectangle PlaceScrollBars (
- const Rectangle& rAvailableArea,
- const bool bIsHorizontalScrollBarAllowed,
- const bool bIsVerticalScrollBarAllowed);
-
- /** Update the vertical and horizontal scroll bars so that the visible
- area has the given top and left values.
- */
- void SetTopLeft (const Point aNewTopLeft);
-
- sal_Int32 GetTop (void) const;
-
- sal_Int32 GetLeft (void) const;
-
- /** Return the width of the vertical scroll bar, which--when
- shown--should be fixed in contrast to its height.
- @return
- Returns 0 when the vertical scroll bar is not shown or does not
- exist, otherwise its width in pixel is returned.
- */
- int GetVerticalScrollBarWidth (void) const;
-
- /** Return the height of the horizontal scroll bar, which--when
- shown--should be fixed in contrast to its width.
- @return
- Returns 0 when the vertical scroll bar is not shown or does not
- exist, otherwise its height in pixel is returned.
- */
- int GetHorizontalScrollBarHeight (void) const;
-
- /** Call this method to scroll a window while the mouse is in dragging a
- selection. If the mouse is near the window border or is outside the
- window then scroll the window accordingly.
- @param rMouseWindowPosition
- The mouse position for which the scroll amount is calculated.
- @param rAutoScrollFunctor
- Every time when the window is scrolled then this functor is executed.
- @return
- When the window is scrolled then this method returns <TRUE/>.
- When the window is not changed then <FALSE/> is returned.
- */
- bool AutoScroll (
- const Point& rMouseWindowPosition,
- const ::boost::function<void(void)>& rAutoScrollFunctor);
-
- void StopAutoScroll (void);
-
- enum Orientation { Orientation_Horizontal, Orientation_Vertical };
- enum Unit { Unit_Pixel, Unit_Slide };
- /** Scroll the slide sorter by setting the thumbs of the scroll bars and
- by moving the content of the content window.
- @param eOrientation
- Defines whether to scroll horizontally or vertically.
- @param eUnit
- Defines whether the distance is a pixel value or the number of
- slides to scroll.
- */
- void Scroll(
- const Orientation eOrientation,
- const Unit eUnit,
- const sal_Int32 nDistance);
-
-private:
- SlideSorter& mrSlideSorter;
-
- /** The horizontal scroll bar. Note that is used but not owned by
- objects of this class. It is given to the constructor.
- */
- ::boost::shared_ptr<ScrollBar> mpHorizontalScrollBar;
-
- /** The vertical scroll bar. Note that is used but not owned by
- objects of this class. It is given to the constructor.
- */
- ::boost::shared_ptr<ScrollBar> mpVerticalScrollBar;
-
- /// Relative horizontal position of the visible area in the view.
- double mnHorizontalPosition;
- /// Relative vertical position of the visible area in the view.
- double mnVerticalPosition;
- /** The width and height of the border at the inside of the window which
- when entered while in drag mode leads to a scrolling of the window.
- */
- Size maScrollBorder;
- double mnHorizontalScrollFactor;
- double mnVerticalScrollFactor;
- /** The only task of this little window is to paint the little square at
- the bottom right corner left by the two scroll bars (when both are
- visible).
- */
- ::boost::shared_ptr<ScrollBarBox> mpScrollBarFiller;
-
- /** The auto scroll timer is used for keep scrolling the window when the
- mouse reaches its border while dragging a selection. When the mouse
- is not moved the timer issues events to keep scrolling.
- */
- Timer maAutoScrollTimer;
- Size maAutoScrollOffset;
- bool mbIsAutoScrollActive;
-
- /** The content window is the one whose view port is controlled by the
- scroll bars.
- */
- SharedSdWindow mpContentWindow;
-
- ::boost::function<void(void)> maAutoScrollFunctor;
-
- void SetWindowOrigin (
- double nHorizontalPosition,
- double nVerticalPosition);
-
- /** Determine the visibility of the scroll bars so that the window
- content is not clipped in any dimension without showing a scroll
- bar.
- @param rAvailableArea
- The area in which the scroll bars, the scroll bar filler, and
- the SlideSorterView will be placed.
- @return
- The area that is enclosed by the scroll bars is returned. It
- will be filled with the SlideSorterView.
- */
- Rectangle DetermineScrollBarVisibilities(
- const Rectangle& rAvailableArea,
- const bool bIsHorizontalScrollBarAllowed,
- const bool bIsVerticalScrollBarAllowed);
-
- /** Typically called by DetermineScrollBarVisibilities() this method
- tests a specific configuration of the two scroll bars being visible
- or hidden.
- @return
- When the window content can be shown with only being clipped in
- an orientation where the scroll bar would be shown then <TRUE/>
- is returned.
- */
- bool TestScrollBarVisibilities (
- bool bHorizontalScrollBarVisible,
- bool bVerticalScrollBarVisible,
- const Rectangle& rAvailableArea);
-
- void CalcAutoScrollOffset (const Point& rMouseWindowPosition);
- bool RepeatAutoScroll (void);
-
- DECL_LINK(HorizontalScrollBarHandler, ScrollBar*);
- DECL_LINK(VerticalScrollBarHandler, ScrollBar*);
- DECL_LINK(AutoScrollTimeoutHandler, Timer*);
-
- void PlaceHorizontalScrollBar (const Rectangle& aArea);
- void PlaceVerticalScrollBar (const Rectangle& aArea);
- void PlaceFiller (const Rectangle& aArea);
-};
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsSelectionFunction.hxx b/sd/source/ui/slidesorter/inc/controller/SlsSelectionFunction.hxx
deleted file mode 100644
index 34efc2280..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsSelectionFunction.hxx
+++ /dev/null
@@ -1,206 +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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_SELECTION_FUNCTION_HXX
-#define SD_SLIDESORTER_SELECTION_FUNCTION_HXX
-
-#include "model/SlsSharedPageDescriptor.hxx"
-#include "controller/SlsFocusManager.hxx"
-#include "controller/SlsInsertionIndicatorHandler.hxx"
-#include "fupoor.hxx"
-#include <svtools/transfer.hxx>
-#include <boost/noncopyable.hpp>
-#include <boost/scoped_ptr.hpp>
-
-class SdWindow;
-class SdDrawDocument;
-class Sound;
-
-namespace sd { namespace slidesorter {
-class SlideSorter;
-} }
-
-namespace sd { namespace slidesorter { namespace controller {
-
-class SlideSorterController;
-class DragAndDropContext;
-
-
-class SelectionFunction
- : public FuPoor,
- private ::boost::noncopyable
-{
-public:
- TYPEINFO();
-
- static FunctionReference Create( SlideSorter& rSlideSorter, SfxRequest& rRequest );
-
- // Mouse- & Key-Events
- virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
- virtual sal_Bool MouseMove(const MouseEvent& rMEvt);
- virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt);
- virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt);
-
- virtual void Activate();
- virtual void Deactivate();
-
- virtual void ScrollStart();
- virtual void ScrollEnd();
-
- /// Forward to the clipboard manager.
- virtual void DoCut (void);
-
- /// Forward to the clipboard manager.
- virtual void DoCopy (void);
-
- /// Forward to the clipboard manager.
- virtual void DoPaste (void);
-
- /** is called when the current function should be aborted. <p>
- This is used when a function gets a KEY_ESCAPE but can also
- be called directly.
-
- @returns
- true if a active function was aborted
- */
- virtual bool cancel();
-
- void MouseDragged (
- const AcceptDropEvent& rEvent,
- const sal_Int8 nDragAction);
-
- /** Turn of substitution display and insertion indicator.
- */
- void NotifyDragFinished (void);
-
- /** Call when drag-and-drop or multi selection is started or stopped in
- order to update permission of mouse over indication.
- */
- void UpdateMouseOverIndicationPermission (void);
-
- class EventDescriptor;
- class ModeHandler;
- friend class ModeHandler;
- enum Mode
- {
- NormalMode,
- MultiSelectionMode,
- DragAndDropMode,
- ButtonMode
- };
- void SwitchToNormalMode (void);
- void SwitchToDragAndDropMode(const Point aMousePosition);
- void SwitchToMultiSelectionMode (const Point aMousePosition, const sal_uInt32 nEventCode);
- bool SwitchToButtonMode (void);
-
- void ResetShiftKeySelectionAnchor (void);
- /** Special case handling for when the context menu is hidden. This
- method will reinitialize the current mouse position to prevent the
- mouse motion during the time the context menu is displayed from
- being interpreted as drag-and-drop start.
- */
- void ResetMouseAnchor (void);
-
-protected:
- SlideSorter& mrSlideSorter;
- SlideSorterController& mrController;
-
- SelectionFunction (
- SlideSorter& rSlideSorter,
- SfxRequest& rRequest);
-
- virtual ~SelectionFunction();
-
-private:
-
- /// The rectangle of the mouse drag selection.
- Rectangle maDragSelectionRectangle;
- bool mbDragSelection;
-
- /// Box of the insert marker in model coordinates.
- Rectangle maInsertionMarkerBox;
-
- /** We use this flag to filter out the cases where MouseMotion() is called
- with a pressed mouse button but without a prior MouseButtonDown()
- call. This is an indication that the mouse button was pressed over
- another control, e.g. the view tab bar, and that a re-layout of the
- controls moved the slide sorter under the mouse.
- */
- bool mbProcessingMouseButtonDown;
-
- bool mbIsDeselectionPending;
-
- /** Remember the slide where the shift key was pressed and started a
- multiselection via keyboard.
- */
- sal_Int32 mnShiftKeySelectionAnchor;
-
- /** The selection function can be in one of several mutually
- exclusive modes.
- */
- ::boost::shared_ptr<ModeHandler> mpModeHandler;
-
- /** Make the slide nOffset slides away of the current one the new
- current slide. When the new index is outside the range of valid
- page numbers it is clipped to that range.
- @param nOffset
- When nOffset is negative then go back. When nOffset if positive go
- forward. When it is zero then ignore the call.
- */
- void GotoNextPage (int nOffset);
-
- /** Make the slide with the given index the new current slide.
- @param nIndex
- Index of the new current slide. When the new index is outside
- the range of valid page numbers it is clipped to that range.
- */
- void GotoPage (int nIndex);
-
- void ProcessMouseEvent (sal_uInt32 nEventType, const MouseEvent& rEvent);
- void ProcessKeyEvent (const KeyEvent& rEvent);
-
- // What follows are a couple of helper methods that are used by
- // ProcessMouseEvent().
-
- void ProcessEvent (EventDescriptor& rEvent);
-
- void MoveFocus (
- const FocusManager::FocusMoveDirection eDirection,
- const bool bIsShiftDown,
- const bool bIsControlDown);
-
- void StopDragAndDrop (void);
-
- void SwitchMode (const ::boost::shared_ptr<ModeHandler>& rpHandler);
-};
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsSelectionManager.hxx b/sd/source/ui/slidesorter/inc/controller/SlsSelectionManager.hxx
deleted file mode 100644
index ff120d544..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsSelectionManager.hxx
+++ /dev/null
@@ -1,170 +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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_CONTROLLER_SELECTION_MANAGER_HXX
-#define SD_SLIDESORTER_CONTROLLER_SELECTION_MANAGER_HXX
-
-#include "model/SlsSharedPageDescriptor.hxx"
-#include "controller/SlsAnimator.hxx"
-#include <sal/types.h>
-#include <tools/gen.hxx>
-#include <basegfx/range/b2irectangle.hxx>
-#include <vector>
-
-class Link;
-class SdPage;
-
-namespace sd { namespace slidesorter {
-class SlideSorter;
-} }
-
-namespace sd { namespace slidesorter { namespace controller {
-
-class SlideSorterController;
-class SelectionObserver;
-
-/** This class is a part of the controller and handles the selection of
- slides.
- <p>It has methods to modify the selected slides (delete them or
- move them to other places in the document), change the visible area so
- to make the selected slides visble, tell listeners when the selection
- changes.</p>
-*/
-class SelectionManager
-{
-public:
- /** Create a new SelectionManger for the given slide sorter.
- */
- SelectionManager (SlideSorter& rSlideSorter);
-
- ~SelectionManager (void);
-
- /** Delete the currently selected slides. When this method returns the
- selection is empty.
- @param bSelectFollowingPage
- When <TRUE/> then after deleting the selected pages make the
- slide after the last selected page the new current page.
- When <FALSE/> then make the first slide before the selected
- pages the new current slide.
- */
- void DeleteSelectedPages (const bool bSelectFollowingPage = true);
-
- /** Call this method after the selection has changed (possible several
- calls to the PageSelector) to invalidate the relevant slots and send
- appropriate events.
- */
- void SelectionHasChanged (const bool bMakeSelectionVisible = true);
-
- /** Add a listener that is called when the selection of the slide sorter
- changes.
- @param rListener
- When this method is called multiple times for the same listener
- the second and all following calls are ignored. Each listener
- is added only once.
- */
- void AddSelectionChangeListener (const Link& rListener);
-
- /** Remove a listener that was called when the selection of the slide
- sorter changes.
- @param rListener
- It is save to pass a listener that was not added are has been
- removed previously. Such calls are ignored.
- */
- void RemoveSelectionChangeListener (const Link& rListener);
-
- /** Return the position where to insert pasted slides based on the
- current selection. When there is a selection then the insert
- position is behind the last slide. When the selection is empty then
- most of the time the insert position is at the end of the document.
- There is an exception right after the display of a popup-menu. The
- position of the associated insertion marker is stored here and reset
- the next time the selection changes.
- */
- sal_Int32 GetInsertionPosition (void) const;
-
- /** Store an insertion position temporarily. It is reset when the
- selection changes the next time.
- */
- void SetInsertionPosition (const sal_Int32 nInsertionPosition);
-
- ::boost::shared_ptr<SelectionObserver> GetSelectionObserver (void) const;
-
-private:
- SlideSorter& mrSlideSorter;
- SlideSorterController& mrController;
-
- ::std::vector<Link> maSelectionChangeListeners;
-
- /** This array stores the indices of the selected page descriptors at
- the time when the edit mode is switched to EM_MASTERPAGE. With this
- we can restore the selection when switching back to EM_PAGE mode.
- */
- ::std::vector<SdPage*> maSelectionBeforeSwitch;
-
- /** When this flag is set then on the next call to Paint() the selection
- is moved into the visible area.
- */
- bool mbIsMakeSelectionVisiblePending;
-
- /** The insertion position is only temporarily valid. Negative values
- indicate that the explicit insertion position is not valid. In this
- case GetInsertionPosition() calculates it from the current selection.
- */
- sal_Int32 mnInsertionPosition;
-
- /** Animation id for a scroll animation the will eventually set the top
- and left of the visible area to maRequestedTopLeft.
- */
- Animator::AnimationId mnAnimationId;
- Point maRequestedTopLeft;
-
- class PageInsertionListener;
- ::boost::scoped_ptr<PageInsertionListener> mpPageInsertionListener;
-
- ::boost::shared_ptr<SelectionObserver> mpSelectionObserver;
-
- /** Delete the given list of normal pages. This method is a helper
- function for DeleteSelectedPages().
- @param rSelectedNormalPages
- A list of normal pages. Supplying master pages is an error.
- */
- void DeleteSelectedNormalPages (const ::std::vector<SdPage*>& rSelectedNormalPages);
-
- /** Delete the given list of master pages. This method is a helper
- function for DeleteSelectedPages().
- @param rSelectedMasterPages
- A list of master pages. Supplying normal pages is an error.
- */
- void DeleteSelectedMasterPages (const ::std::vector<SdPage*>& rSelectedMasterPages);
-};
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsSelectionObserver.hxx b/sd/source/ui/slidesorter/inc/controller/SlsSelectionObserver.hxx
deleted file mode 100644
index 07246bb4f..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsSelectionObserver.hxx
+++ /dev/null
@@ -1,85 +0,0 @@
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_CONTROLLER_SELECTION_OBSERVER_HXX
-#define SD_SLIDESORTER_CONTROLLER_SELECTION_OBSERVER_HXX
-
-#include <tools/gen.hxx>
-#include <vector>
-#include <boost/shared_ptr.hpp>
-
-namespace sd { namespace slidesorter {
-class SlideSorter;
-} }
-
-class SdDrawDocument;
-class SdrPage;
-
-namespace sd { namespace slidesorter { namespace controller {
-
-/** Observe insertions and deletions of pages between calls to
- StartObservation() and EndObservation(). When the later is called
- the selection is set to just the newly inserted pages.
-*/
-class SelectionObserver
-{
-public:
- SelectionObserver (SlideSorter& rSlideSorter);
- virtual ~SelectionObserver (void);
-
- void NotifyPageEvent (const SdrPage* pPage);
- void StartObservation (void);
- void AbortObservation (void);
- void EndObservation (void);
-
- /** Use this little class instead of calling StartObservation and
- EndObservation directly so that EndObservation is not forgotten or
- omitted due to an exception or some break or return in the middle of
- code.
- */
- class Context
- {
- public:
- Context (SlideSorter& rSlideSorter);
- ~Context(void);
- void Abort (void);
- private:
- ::boost::shared_ptr<SelectionObserver> mpSelectionObserver;
- };
-
-private:
- SlideSorter& mrSlideSorter;
- SdDrawDocument* mpDocument;
- bool mbIsOvservationActive;
-
- ::std::vector<const SdPage*> maInsertedPages;
- ::std::vector<sal_Int32> maDeletedPages;
-};
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsSlideFunction.hxx b/sd/source/ui/slidesorter/inc/controller/SlsSlideFunction.hxx
deleted file mode 100644
index 44df6672c..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsSlideFunction.hxx
+++ /dev/null
@@ -1,76 +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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_SLIDE_FUNCTION_HXX
-#define SD_SLIDESORTER_SLIDE_FUNCTION_HXX
-
-#include "fupoor.hxx"
-
-class SdDrawDocument;
-
-namespace sd { namespace slidesorter {
-class SlideSorter;
-} }
-
-
-namespace sd { namespace slidesorter { namespace controller {
-
-class SlideSorterController;
-
-
-/** Base class for functions of the slide sorter.
-*/
-class SlideFunction
- : public FuPoor
-{
-public:
- TYPEINFO();
-
- virtual sal_Bool MouseMove (const MouseEvent& rMEvt);
- virtual sal_Bool MouseButtonUp (const MouseEvent& rMEvt);
- virtual sal_Bool MouseButtonDown (const MouseEvent& rMEvt);
-
- /** Called from ForceScroll() before the actual scrolling.
- */
- virtual void ScrollStart (void);
-
- /** Called from ForceScroll() after the actual scrolling.
- */
- virtual void ScrollEnd (void);
-
-protected:
- SlideFunction (
- SlideSorter& rSlideSorter,
- SfxRequest& rRequest);
-};
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsSlotManager.hxx b/sd/source/ui/slidesorter/inc/controller/SlsSlotManager.hxx
deleted file mode 100644
index 3635355e3..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsSlotManager.hxx
+++ /dev/null
@@ -1,127 +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.
- *
- ************************************************************************/
-#ifndef SD_SLIDESORTER_SLOT_MANAGER_HXX
-#define SD_SLIDESORTER_SLOT_MANAGER_HXX
-
-#include "model/SlsSharedPageDescriptor.hxx"
-#include <tools/link.hxx>
-#include <memory>
-#include <queue>
-
-class AbstractSvxNameDialog;
-class SfxItemSet;
-class SfxRequest;
-class String;
-
-namespace sd { namespace slidesorter {
-class SlideSorter;
-} }
-
-
-namespace sd { namespace slidesorter { namespace controller {
-
-class Command;
-
-/** This manager takes over the work of handling slot calls from the
- controller of the slide sorter.
-*/
-class SlotManager
-{
-public:
- /** Create a new slot manager that handles slot calls for the controller
- of a slide sorter.
- @param rController
- The controller for which to handle the slot calls.
- */
- SlotManager (SlideSorter& rSlideSorter);
-
- ~SlotManager (void);
-
- void FuTemporary (SfxRequest& rRequest);
- void FuPermanent (SfxRequest& rRequest);
- void FuSupport (SfxRequest& rRequest);
- void GetMenuState (SfxItemSet &rSet);
- void GetClipboardState (SfxItemSet &rSet);
- void GetStatusBarState (SfxItemSet& rSet);
- void ExecCtrl (SfxRequest& rRequest);
- void GetAttrState (SfxItemSet& rSet);
-
- void ExecuteCommandAsynchronously (::std::auto_ptr<Command> pCommand);
-
- /** Exclude or include one slide or all selected slides.
- @param rpDescriptor
- When the pointer is empty then apply the new state to all
- selected pages. Otherwise apply the new state to just the
- specified state.
- */
- void ChangeSlideExclusionState (
- const model::SharedPageDescriptor& rpDescriptor,
- const bool bExcludeSlide);
-
- /** Call this after a change from normal mode to master mode or back.
- The affected slots are invalidated.
- */
- void NotifyEditModeChange (void);
-
-private:
- /// The controller for which we manage the slot calls.
- SlideSorter& mrSlideSorter;
-
- typedef ::std::queue<Command*> CommandQueue;
- CommandQueue maCommandQueue;
-
- /** Called by FuTemporary to show the slide show.
- */
- void ShowSlideShow (SfxRequest& rRequest);
-
- /** The implementation is a copy of the code for SID_RENAMEPAGE in
- drviews2.cxx.
- */
- void RenameSlide (void);
- DECL_LINK(RenameSlideHdl, AbstractSvxNameDialog*);
- bool RenameSlideFromDrawViewShell( sal_uInt16 nPageId, const String& rName);
-
- /** Handle SID_INSERTPAGE slot calls.
- */
- void InsertSlide (SfxRequest& rRequest);
-
- void DuplicateSelectedSlides (SfxRequest& rRequest);
-
- /** Use one of several ways to determine where to insert a new page.
- This can be the current selection or the insertion indicator.
- */
- sal_Int32 GetInsertionPosition (void);
-
- DECL_LINK(UserEventCallback, void*);
-};
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsTransferable.hxx b/sd/source/ui/slidesorter/inc/controller/SlsTransferable.hxx
deleted file mode 100644
index a29b53403..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsTransferable.hxx
+++ /dev/null
@@ -1,87 +0,0 @@
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_TRANSFERABLE_HXX
-#define SD_SLIDESORTER_TRANSFERABLE_HXX
-
-#include "sdxfer.hxx"
-
-class SdDrawDocument;
-namespace sd { namespace slidesorter {
-class SlideSorterViewShell;
-} }
-
-namespace sd { namespace slidesorter { namespace controller {
-
-
-/** This class exists to have DragFinished call the correct object: the
- SlideSorterViewShell instead of the old SlideView.
-*/
-class Transferable
- : public SdTransferable
-{
-public:
- class Representative
- {
- public:
- Representative (const Bitmap& rBitmap, const bool bIsExcluded)
- : maBitmap(rBitmap), mbIsExcluded(bIsExcluded) {}
- Representative (const Representative& rOther)
- : maBitmap(rOther.maBitmap), mbIsExcluded(rOther.mbIsExcluded) {}
- Representative operator= (Representative const& rOther)
- { if (&rOther != this) {maBitmap = rOther.maBitmap; mbIsExcluded = rOther.mbIsExcluded; }
- return *this;
- }
-
- Bitmap maBitmap;
- bool mbIsExcluded;
- };
-
-
- Transferable (
- SdDrawDocument* pSrcDoc,
- ::sd::View* pWorkView,
- sal_Bool bInitOnGetData,
- SlideSorterViewShell* pViewShell,
- const ::std::vector<Representative>& rRepresentatives);
-
- virtual ~Transferable (void);
-
- virtual void DragFinished (sal_Int8 nDropAction);
-
- const ::std::vector<Representative>& GetRepresentatives (void) const;
-
-private:
- SlideSorterViewShell* mpViewShell;
- const ::std::vector<Representative> maRepresentatives;
-
- virtual void Notify (SfxBroadcaster& rBroadcaster, const SfxHint& rHint);
-};
-
-} } } // end of namespace ::sd::slidesorter::controller
-
-#endif
diff --git a/sd/source/ui/slidesorter/inc/controller/SlsVisibleAreaManager.hxx b/sd/source/ui/slidesorter/inc/controller/SlsVisibleAreaManager.hxx
deleted file mode 100644
index e4eb87c25..000000000
--- a/sd/source/ui/slidesorter/inc/controller/SlsVisibleAreaManager.hxx
+++ /dev/null
@@ -1,100 +0,0 @@
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-#ifndef SD_SLIDESORTER_VISIBLE_AREA_MANAGER_HXX
-#define SD_SLIDESORTER_VISIBLE_AREA_MANAGER_HXX
-
-#include "controller/SlsAnimator.hxx"
-#include "model/SlsSharedPageDescriptor.hxx"
-#include <boost/noncopyable.hpp>
-#include <boost/optional.hpp>
-
-namespace sd { namespace slidesorter { namespace controller {
-
-
-/** Manage requests for scrolling page objects into view.
-*/
-class VisibleAreaManager
- : public ::boost::noncopyable
-{
-public:
- VisibleAreaManager (SlideSorter& rSlideSorter);
- ~VisibleAreaManager (void);
-
- void ActivateCurrentSlideTracking (void);
- void DeactivateCurrentSlideTracking (void);
-
- /** Request the current slide to be moved into the visible area.
- This request is only obeyed when the current slide tracking is
- active.
- @see ActivateCurrentSlideTracking() and DeactivateCurrentSlideTracking()
- */
- void RequestCurrentSlideVisible (void);
-
- /** Request to make the specified page object visible.
- */
- void RequestVisible (
- const model::SharedPageDescriptor& rpDescriptor,
- const bool bForce = false);
-
- /** Temporarily disable the update of the visible area.
- */
- class TemporaryDisabler
- {
- public:
- TemporaryDisabler (SlideSorter& rSlideSorter);
- ~TemporaryDisabler (void);
- private:
- VisibleAreaManager& mrVisibleAreaManager;
- };
-
-private:
- SlideSorter& mrSlideSorter;
-
- /** List of rectangle that someone wants to be moved into the visible
- area.
- Cleared on every call to ForgetVisibleRequests() and MakeVisible().
- */
- ::std::vector<Rectangle> maVisibleRequests;
-
- /** Animation id for a scroll animation that sets the top
- and left of the visible area to maRequestedVisibleTopLeft.
- */
- Animator::AnimationId mnScrollAnimationId;
- Point maRequestedVisibleTopLeft;
- Animator::AnimationMode meRequestedAnimationMode;
- bool mbIsCurrentSlideTrackingActive;
- int mnDisableCount;
-
- void MakeVisible (void);
- ::boost::optional<Point> GetRequestedTopLeft (void) const;
-};
-
-
-} } } // end of namespace ::sd::slidesorter::view
-
-#endif