2004-07-13 13:28:36 +00:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
2008-04-10 21:17:21 +00:00
|
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
2004-07-13 13:28:36 +00:00
|
|
|
*
|
2008-04-10 21:17:21 +00:00
|
|
|
* Copyright 2008 by Sun Microsystems, Inc.
|
2004-07-13 13:28:36 +00:00
|
|
|
*
|
2008-04-10 21:17:21 +00:00
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
2004-07-13 13:28:36 +00:00
|
|
|
*
|
2008-04-10 21:17:21 +00:00
|
|
|
* $RCSfile: SlsViewOverlay.cxx,v $
|
|
|
|
* $Revision: 1.16 $
|
2004-07-13 13:28:36 +00:00
|
|
|
*
|
2008-04-10 21:17:21 +00:00
|
|
|
* This file is part of OpenOffice.org.
|
2004-07-13 13:28:36 +00:00
|
|
|
*
|
2008-04-10 21:17:21 +00:00
|
|
|
* 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.
|
2004-07-13 13:28:36 +00:00
|
|
|
*
|
2008-04-10 21:17:21 +00:00
|
|
|
* 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).
|
2004-07-13 13:28:36 +00:00
|
|
|
*
|
2008-04-10 21:17:21 +00:00
|
|
|
* 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.
|
2004-07-13 13:28:36 +00:00
|
|
|
*
|
|
|
|
************************************************************************/
|
|
|
|
|
2006-09-16 18:11:43 +00:00
|
|
|
#include "precompiled_sd.hxx"
|
|
|
|
|
2004-07-13 13:28:36 +00:00
|
|
|
#include "view/SlsViewOverlay.hxx"
|
|
|
|
|
2008-04-03 13:45:26 +00:00
|
|
|
#include "SlideSorter.hxx"
|
2010-01-27 11:41:30 +01:00
|
|
|
#include "SlideSorterViewShell.hxx"
|
|
|
|
#include "SlsLayeredDevice.hxx"
|
2004-07-13 13:28:36 +00:00
|
|
|
#include "model/SlideSorterModel.hxx"
|
|
|
|
#include "model/SlsPageDescriptor.hxx"
|
|
|
|
#include "model/SlsPageEnumeration.hxx"
|
|
|
|
#include "view/SlideSorterView.hxx"
|
|
|
|
#include "view/SlsLayouter.hxx"
|
2010-01-27 11:41:30 +01:00
|
|
|
#include "SlsIcons.hxx"
|
|
|
|
#include "cache/SlsPageCache.hxx"
|
2008-04-03 13:45:26 +00:00
|
|
|
#include "ViewShell.hxx"
|
2005-03-30 08:26:35 +00:00
|
|
|
#include "ViewShellBase.hxx"
|
|
|
|
#include "UpdateLockManager.hxx"
|
2004-07-13 13:28:36 +00:00
|
|
|
|
|
|
|
#include "Window.hxx"
|
|
|
|
#include "sdpage.hxx"
|
2010-01-27 11:41:30 +01:00
|
|
|
#include "sdresid.hxx"
|
2004-07-13 13:28:36 +00:00
|
|
|
|
2008-02-12 15:29:19 +00:00
|
|
|
#include <basegfx/range/b2drectangle.hxx>
|
|
|
|
#include <basegfx/range/b2drange.hxx>
|
2009-05-07 12:38:03 +00:00
|
|
|
#include <basegfx/range/b2irange.hxx>
|
2008-02-12 15:29:19 +00:00
|
|
|
#include <basegfx/matrix/b2dhommatrix.hxx>
|
|
|
|
#include <basegfx/polygon/b2dpolygontools.hxx>
|
|
|
|
#include <basegfx/polygon/b2dpolypolygontools.hxx>
|
2009-09-22 18:14:05 +02:00
|
|
|
#include <basegfx/matrix/b2dhommatrixtools.hxx>
|
2010-01-27 11:41:30 +01:00
|
|
|
#include <basegfx/tools/canvastools.hxx>
|
2009-09-22 18:14:05 +02:00
|
|
|
|
2008-02-12 15:29:19 +00:00
|
|
|
#include <svx/sdr/overlay/overlaymanager.hxx>
|
|
|
|
#include <svx/svdpagv.hxx>
|
|
|
|
#include <svx/sdrpagewindow.hxx>
|
2006-11-14 13:37:02 +00:00
|
|
|
#include <vcl/svapp.hxx>
|
|
|
|
|
CWS-TOOLING: integrate CWS aw065
2009-06-17 13:48:12 +0200 aw r273068 : #99385# corrected small error in SCs selection visualisation
2009-06-16 15:45:28 +0200 wg r273021 : i102838
2009-06-16 12:46:07 +0200 wg r273016 : i102833
2009-06-11 17:40:29 +0200 aw r272895 : #i98870# added implementation for getPageCount helper
2009-06-11 16:39:54 +0200 aw r272885 : #i102663#, #i102667#, #i98870# incluide file typo corrected
2009-06-11 16:24:07 +0200 aw r272881 : #i102663#, #i102667#, #i98870# changes to SdrText, it's usage in SdrTextPrimitive2D and to OverlayObject base implementation. Also support for PageCountField added
2009-06-11 16:23:52 +0200 aw r272880 : #i102663#, #i102667#, #i98870# changes to SdrText, it's usage in SdrTextPrimitive2D and to OverlayObject base implementation. Also support for PageCountField added
2009-06-09 13:50:29 +0200 aw r272769 : #i98917# added support for the OverlayHatchRectanglePrimitive to follow rotation with it's hatch; simplified OverlayHatchRect
2009-06-09 13:04:06 +0200 aw r272766 : #i98870# re-added PageNumber identification in SdrTextPrimitive2D::get2DDecomposition
2009-06-08 18:56:05 +0200 aw r272744 : #i99385# added some last corrections to OverlayObjects in SD (had to do some merges on resync, needed to optically check and correct)
2009-06-08 11:17:57 +0200 aw r272725 : cws aw065: corrections after resync
2009-06-08 11:02:25 +0200 aw r272723 : cws aw065: corrections after resync
2009-06-08 10:36:22 +0200 aw r272722 : cws aw065: corrections after resync
2009-06-05 18:57:06 +0200 aw r272712 : CWS-TOOLING: rebase CWS aw065 to trunk@272291 (milestone: DEV300:m49)
2009-06-05 14:56:34 +0200 aw r272690 : #i89784# stripped old stuff no longer needed due to text-to-polygon conversion using primitives
2009-06-05 14:50:07 +0200 aw r272688 : #102091# removed on-model-lock suppression for SdrObject::ActionChanged()
2009-06-05 14:47:29 +0200 aw r272687 : #102091# corrected local value buffering in ScenePrimitive2D::get2DDecomposition
2009-06-03 17:53:32 +0200 aw r272599 : #i89784# version before stripping
2009-06-03 17:52:18 +0200 aw r272598 : #i89784# version before stripping
2009-05-28 17:15:47 +0200 aw r272420 : #i101872# old stuff removed/stripped
2009-05-28 17:15:32 +0200 aw r272419 : #i101872# old stuff removed/stripped
2009-05-28 17:15:15 +0200 aw r272418 : #i101872# old stuff removed/stripped
2009-05-28 17:14:45 +0200 aw r272417 : #i101872# old stuff removed/stripped
2009-05-28 12:13:56 +0200 aw r272396 : #i101872# stable hybrid state
2009-05-28 12:13:46 +0200 aw r272395 : #i101872# stable hybrid state
2009-05-28 12:13:35 +0200 aw r272394 : #i101872# stable hybrid state
2009-05-28 12:13:20 +0200 aw r272393 : #i101872# stable hybrid state
2009-05-28 12:13:05 +0200 aw r272392 : #i101872# stable hybrid state
2009-05-28 12:12:51 +0200 aw r272391 : #i101872# stable hybrid state
2009-05-15 16:56:02 +0200 aw r271952 : #i101872# HitTest unifications
2009-05-15 16:55:22 +0200 aw r271951 : #i101872# HitTest unifications
2009-05-15 16:55:12 +0200 aw r271950 : #i101872# HitTest unifications
2009-05-15 16:55:01 +0200 aw r271949 : #i101872# HitTest unifications
2009-05-15 16:54:51 +0200 aw r271948 : #i101872# HitTest unifications
2009-05-15 16:54:35 +0200 aw r271947 : #i101872# HitTest unifications
2009-05-15 16:54:22 +0200 aw r271946 : #i101872# HitTest unifications
2009-05-12 19:08:38 +0200 aw r271834 : #i101684# corrected AutoShape's preparation of text transformation due to different definitions in TextBounds
2009-05-12 15:44:49 +0200 aw r271827 : #i89784# expanded TextLayouterDevice::getTextOutlines() to support DXArray and X-Font scaling
2009-05-11 19:40:40 +0200 aw r271790 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 19:40:25 +0200 aw r271789 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 19:40:12 +0200 aw r271788 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 13:01:53 +0200 aw r271765 : #i99385# corrections and optimizations
2009-05-08 14:48:40 +0200 aw r271718 : #i1016180# added optimizations in model operations when model is locked
2009-05-08 14:11:45 +0200 aw r271716 : #i101679# added flush() calls to OverlayManager when interaction step is prepared
2009-05-07 17:44:03 +0200 aw r271689 : #i99385# last corrections/changes
2009-05-07 17:43:47 +0200 aw r271688 : #i99385# last corrections/changes
2009-05-07 13:20:09 +0200 aw r271654 : #i99385# added changes from WFH
2009-05-07 13:19:38 +0200 aw r271653 : #i99385# added changes from WFH
2009-05-07 13:19:11 +0200 aw r271652 : #i99385# added changes from WFH
2009-05-07 11:33:17 +0200 aw r271643 : #i99385# corrections after resync
2009-05-07 11:17:31 +0200 aw r271642 : #i99385# corrections after resync
2009-05-06 18:46:53 +0200 aw r271609 : CWS-TOOLING: rebase CWS aw065 to trunk@271427 (milestone: DEV300:m47)
2009-05-05 18:24:03 +0200 aw r271548 : #i101443# force new text decomposition when TextBackgroundColor has changed
2009-05-05 17:44:42 +0200 aw r271542 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:32 +0200 aw r271541 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:20 +0200 aw r271540 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:09 +0200 aw r271539 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 15:48:38 +0200 aw r271527 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:48:15 +0200 aw r271526 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:48:03 +0200 aw r271525 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:47:51 +0200 aw r271524 : #i99385# 2nd round, usages checked and corrected
2009-04-27 18:33:10 +0200 aw r271300 : #i99385# state commit after all implementations are done
2009-04-27 15:36:53 +0200 aw r271283 : #i99385# state commit after all implementations are done
2009-04-27 15:27:49 +0200 aw r271280 : #i99385# state commit after all implementations are done
2009-04-27 15:27:33 +0200 aw r271279 : #i99385# state commit after all implementations are done
2009-04-27 15:27:00 +0200 aw r271278 : #i99385# state commit after all implementations are done
2009-04-27 15:26:15 +0200 aw r271277 : #i99385# state commit after all implementations are done
2009-04-27 15:25:40 +0200 aw r271275 : #i99385# state commit after all implementations are done
2009-04-27 15:25:19 +0200 aw r271274 : #i99385# state commit after all implementations are done
2009-04-27 15:24:00 +0200 aw r271272 : #i99385# state commit after all implementations are done
2009-03-19 17:12:00 +0100 aw r269757 : #i100360# corrected bitmap's PefSize calculation for bitmap filled objects when Bitmap is Pixel-based on it's mapping
2009-02-19 17:09:47 +0100 aw r268298 : #i98917# corrected attributes
2009-02-19 17:09:30 +0100 aw r268297 : #i98917# corrected attributes
2009-02-19 17:08:22 +0100 aw r268296 : #i98917# corrected attributes
2009-02-19 11:56:25 +0100 aw r268268 : #i98870# added extra code to react on PageNumber change
2009-02-18 16:57:24 +0100 aw r268243 : #i98917# in OverlayHatchRect::getGeometry the rotation was not applied to the TopLeft of the centered rectangle, but to the already extended one, thus the visualisation was rotating around the wrong edge
2009-07-02 14:28:15 +00:00
|
|
|
#include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
|
|
|
|
#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
|
|
|
|
|
2008-02-12 15:29:19 +00:00
|
|
|
using namespace ::sdr::overlay;
|
2010-01-27 11:41:30 +01:00
|
|
|
using namespace ::basegfx;
|
|
|
|
|
|
|
|
#define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString)))
|
2004-07-13 13:28:36 +00:00
|
|
|
|
2008-02-12 15:29:19 +00:00
|
|
|
namespace {
|
2010-01-27 11:41:30 +01:00
|
|
|
|
|
|
|
#define AirForceBlue 0x5d8aa8
|
|
|
|
#define Arsenic 0x3b444b
|
|
|
|
#define Amber 0x007fff
|
|
|
|
#define Charcoal 0x36454f
|
|
|
|
|
|
|
|
|
|
|
|
Rectangle GrowRectangle (const Rectangle& rBox, const sal_Int32 nOffset)
|
|
|
|
{
|
|
|
|
return Rectangle (
|
|
|
|
rBox.Left() - nOffset,
|
|
|
|
rBox.Top() - nOffset,
|
|
|
|
rBox.Right() + nOffset,
|
|
|
|
rBox.Bottom() + nOffset);
|
|
|
|
}
|
|
|
|
|
|
|
|
Rectangle ConvertRectangle (const B2DRectangle& rBox)
|
|
|
|
{
|
|
|
|
const B2IRange rIntegerBox (unotools::b2ISurroundingRangeFromB2DRange(rBox));
|
|
|
|
return Rectangle(
|
|
|
|
rIntegerBox.getMinX(),
|
|
|
|
rIntegerBox.getMinY(),
|
|
|
|
rIntegerBox.getMaxX(),
|
|
|
|
rIntegerBox.getMaxY());
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
|
|
|
|
} // end of anonymous namespace
|
|
|
|
|
|
|
|
|
2004-07-13 13:28:36 +00:00
|
|
|
namespace sd { namespace slidesorter { namespace view {
|
|
|
|
|
|
|
|
//===== ViewOverlay =========================================================
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
ViewOverlay::ViewOverlay (
|
|
|
|
SlideSorter& rSlideSorter,
|
|
|
|
const ::boost::shared_ptr<LayeredDevice>& rpLayeredDevice)
|
2008-04-03 13:45:26 +00:00
|
|
|
: mrSlideSorter(rSlideSorter),
|
2010-01-27 11:41:30 +01:00
|
|
|
mpLayeredDevice(rpLayeredDevice),
|
|
|
|
mpSelectionRectangleOverlay(new SelectionRectangleOverlay(*this, 2)),
|
|
|
|
mpInsertionIndicatorOverlay(new InsertionIndicatorOverlay(*this, 3)),
|
|
|
|
mpSubstitutionOverlay(new SubstitutionOverlay(*this, 2))
|
2004-07-13 13:28:36 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ViewOverlay::~ViewOverlay (void)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
::boost::shared_ptr<SelectionRectangleOverlay> ViewOverlay::GetSelectionRectangleOverlay (void)
|
2004-07-13 13:28:36 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
return mpSelectionRectangleOverlay;
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
::boost::shared_ptr<InsertionIndicatorOverlay> ViewOverlay::GetInsertionIndicatorOverlay (void)
|
2004-09-20 12:35:48 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
return mpInsertionIndicatorOverlay;
|
2004-09-20 12:35:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
::boost::shared_ptr<SubstitutionOverlay> ViewOverlay::GetSubstitutionOverlay (void)
|
2004-07-13 13:28:36 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
return mpSubstitutionOverlay;
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
SlideSorter& ViewOverlay::GetSlideSorter (void) const
|
2004-07-13 13:28:36 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
return mrSlideSorter;
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
::boost::shared_ptr<LayeredDevice> ViewOverlay::GetLayeredDevice (void) const
|
2008-04-03 13:45:26 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
return mpLayeredDevice;
|
2008-04-03 13:45:26 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
//===== OverlayBase::Invalidator ==============================================
|
|
|
|
|
|
|
|
class OverlayBase::Invalidator
|
2004-07-13 13:28:36 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
public:
|
|
|
|
Invalidator (OverlayBase& rOverlayObject)
|
|
|
|
: mrOverlayObject(rOverlayObject),
|
|
|
|
maOldBoundingBox(rOverlayObject.IsVisible()
|
|
|
|
? rOverlayObject.GetBoundingBox()
|
|
|
|
: Rectangle())
|
|
|
|
{
|
|
|
|
}
|
2004-07-13 13:28:36 +00:00
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
~Invalidator (void)
|
2004-11-26 14:13:08 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
if ( ! maOldBoundingBox.IsEmpty())
|
|
|
|
mrOverlayObject.Invalidate(maOldBoundingBox);
|
|
|
|
if (mrOverlayObject.IsVisible())
|
|
|
|
mrOverlayObject.Invalidate(mrOverlayObject.GetBoundingBox());
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
private:
|
|
|
|
OverlayBase& mrOverlayObject;
|
|
|
|
const Rectangle maOldBoundingBox;
|
|
|
|
};
|
2004-07-13 13:28:36 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//===== OverlayBase =========================================================
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
OverlayBase::OverlayBase (
|
|
|
|
ViewOverlay& rViewOverlay,
|
|
|
|
const sal_Int32 nLayerIndex)
|
|
|
|
: mrViewOverlay(rViewOverlay),
|
|
|
|
mbIsVisible(false),
|
|
|
|
mnLayerIndex(nLayerIndex)
|
2004-07-13 13:28:36 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OverlayBase::~OverlayBase (void)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
bool OverlayBase::IsVisible (void) const
|
2004-07-13 13:28:36 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
return mbIsVisible;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void OverlayBase::SetIsVisible (const bool bIsVisible)
|
|
|
|
{
|
|
|
|
if (mbIsVisible != bIsVisible)
|
2008-02-12 15:29:19 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
Invalidator aInvalidator (*this);
|
|
|
|
mbIsVisible = bIsVisible;
|
|
|
|
|
|
|
|
::boost::shared_ptr<LayeredDevice> pDevice (mrViewOverlay.GetLayeredDevice());
|
|
|
|
if (pDevice)
|
|
|
|
if (mbIsVisible)
|
|
|
|
{
|
|
|
|
pDevice->RegisterPainter(shared_from_this(), GetLayerIndex());
|
|
|
|
Invalidate(GetBoundingBox());
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Invalidate(GetBoundingBox());
|
|
|
|
pDevice->RemovePainter(shared_from_this(), GetLayerIndex());
|
|
|
|
}
|
2008-02-12 15:29:19 +00:00
|
|
|
}
|
2010-01-27 11:41:30 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void OverlayBase::SetLayerInvalidator (const SharedILayerInvalidator& rpInvalidator)
|
|
|
|
{
|
|
|
|
if ( ! rpInvalidator)
|
|
|
|
Invalidate(GetBoundingBox());
|
|
|
|
|
|
|
|
mpLayerInvalidator = rpInvalidator;
|
|
|
|
|
|
|
|
if (mbIsVisible)
|
|
|
|
Invalidate(GetBoundingBox());
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void OverlayBase::Invalidate (const Rectangle& rInvalidationBox)
|
|
|
|
{
|
|
|
|
if (mpLayerInvalidator)
|
|
|
|
mpLayerInvalidator->Invalidate(rInvalidationBox);
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
sal_Int32 OverlayBase::GetLayerIndex (void) const
|
2009-09-24 14:09:17 +02:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
return mnLayerIndex;
|
2009-09-24 14:09:17 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-02-12 15:29:19 +00:00
|
|
|
//===== SubstitutionOverlay =================================================
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
const sal_Int32 SubstitutionOverlay::mnCenterTransparency (60);
|
|
|
|
const sal_Int32 SubstitutionOverlay::mnSideTransparency (85);
|
|
|
|
const sal_Int32 SubstitutionOverlay::mnCornerTransparency (95);
|
|
|
|
|
|
|
|
SubstitutionOverlay::SubstitutionOverlay (
|
|
|
|
ViewOverlay& rViewOverlay,
|
|
|
|
const sal_Int32 nLayerIndex)
|
|
|
|
: OverlayBase(rViewOverlay, nLayerIndex),
|
2008-02-12 15:29:19 +00:00
|
|
|
maPosition(0,0),
|
2010-01-27 11:41:30 +01:00
|
|
|
maTranslation(0,0),
|
|
|
|
maItems(),
|
|
|
|
maBoundingBox()
|
2008-04-03 13:45:26 +00:00
|
|
|
{
|
2008-02-12 15:29:19 +00:00
|
|
|
}
|
2004-07-13 13:28:36 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2008-02-12 15:29:19 +00:00
|
|
|
|
|
|
|
SubstitutionOverlay::~SubstitutionOverlay (void)
|
|
|
|
{
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void SubstitutionOverlay::Create (
|
|
|
|
model::PageEnumeration& rSelection,
|
2010-01-27 11:41:30 +01:00
|
|
|
const Point& rPosition,
|
|
|
|
const model::SharedPageDescriptor& rpHitDescriptor)
|
2004-07-13 13:28:36 +00:00
|
|
|
{
|
|
|
|
maPosition = rPosition;
|
2010-01-27 11:41:30 +01:00
|
|
|
maTranslation = Point(0,0);
|
|
|
|
|
|
|
|
::boost::shared_ptr<cache::PageCache> pPreviewCache (
|
|
|
|
mrViewOverlay.GetSlideSorter().GetView().GetPreviewCache());
|
|
|
|
view::Layouter& rLayouter (mrViewOverlay.GetSlideSorter().GetView().GetLayouter());
|
|
|
|
::boost::shared_ptr<view::PageObjectLayouter> pPageObjectLayouter (
|
|
|
|
rLayouter.GetPageObjectLayouter());
|
|
|
|
|
|
|
|
const sal_Int32 nRow0 (rpHitDescriptor
|
|
|
|
? rLayouter.GetRow(rpHitDescriptor->GetPageIndex())
|
|
|
|
: -1);
|
|
|
|
const sal_Int32 nColumn0 (rpHitDescriptor
|
|
|
|
? rLayouter.GetColumn(rpHitDescriptor->GetPageIndex())
|
|
|
|
: -1);
|
|
|
|
|
|
|
|
maItems.clear();
|
2004-07-13 13:28:36 +00:00
|
|
|
while (rSelection.HasMoreElements())
|
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
model::SharedPageDescriptor pDescriptor (rSelection.GetNextElement());
|
|
|
|
|
|
|
|
sal_uInt8 nTransparency (128);
|
|
|
|
|
|
|
|
// Calculate distance between current page object and the one under
|
|
|
|
// the mouse.
|
|
|
|
if (nRow0>=0 || nColumn0>=0)
|
|
|
|
{
|
|
|
|
const sal_Int32 nRow (rLayouter.GetRow(pDescriptor->GetPageIndex()));
|
|
|
|
const sal_Int32 nColumn (rLayouter.GetColumn(pDescriptor->GetPageIndex()));
|
|
|
|
|
|
|
|
const sal_Int32 nRowDistance (abs(nRow - nRow0));
|
|
|
|
const sal_Int32 nColumnDistance (abs(nColumn - nColumn0));
|
|
|
|
if (nRowDistance>1 || nColumnDistance>1)
|
|
|
|
continue;
|
|
|
|
if (nRowDistance!=0 && nColumnDistance!=0)
|
|
|
|
nTransparency = 255 * mnCornerTransparency / 100;
|
|
|
|
else if (nRowDistance!=0 || nColumnDistance!=0)
|
|
|
|
nTransparency = 255 * mnSideTransparency / 100;
|
|
|
|
else
|
|
|
|
nTransparency = 255 * mnCenterTransparency / 100;
|
|
|
|
}
|
|
|
|
|
|
|
|
const Rectangle aBox (pDescriptor->GetBoundingBox());
|
|
|
|
maBoundingBox.Union(aBox);
|
CWS-TOOLING: integrate CWS aw065
2009-06-17 13:48:12 +0200 aw r273068 : #99385# corrected small error in SCs selection visualisation
2009-06-16 15:45:28 +0200 wg r273021 : i102838
2009-06-16 12:46:07 +0200 wg r273016 : i102833
2009-06-11 17:40:29 +0200 aw r272895 : #i98870# added implementation for getPageCount helper
2009-06-11 16:39:54 +0200 aw r272885 : #i102663#, #i102667#, #i98870# incluide file typo corrected
2009-06-11 16:24:07 +0200 aw r272881 : #i102663#, #i102667#, #i98870# changes to SdrText, it's usage in SdrTextPrimitive2D and to OverlayObject base implementation. Also support for PageCountField added
2009-06-11 16:23:52 +0200 aw r272880 : #i102663#, #i102667#, #i98870# changes to SdrText, it's usage in SdrTextPrimitive2D and to OverlayObject base implementation. Also support for PageCountField added
2009-06-09 13:50:29 +0200 aw r272769 : #i98917# added support for the OverlayHatchRectanglePrimitive to follow rotation with it's hatch; simplified OverlayHatchRect
2009-06-09 13:04:06 +0200 aw r272766 : #i98870# re-added PageNumber identification in SdrTextPrimitive2D::get2DDecomposition
2009-06-08 18:56:05 +0200 aw r272744 : #i99385# added some last corrections to OverlayObjects in SD (had to do some merges on resync, needed to optically check and correct)
2009-06-08 11:17:57 +0200 aw r272725 : cws aw065: corrections after resync
2009-06-08 11:02:25 +0200 aw r272723 : cws aw065: corrections after resync
2009-06-08 10:36:22 +0200 aw r272722 : cws aw065: corrections after resync
2009-06-05 18:57:06 +0200 aw r272712 : CWS-TOOLING: rebase CWS aw065 to trunk@272291 (milestone: DEV300:m49)
2009-06-05 14:56:34 +0200 aw r272690 : #i89784# stripped old stuff no longer needed due to text-to-polygon conversion using primitives
2009-06-05 14:50:07 +0200 aw r272688 : #102091# removed on-model-lock suppression for SdrObject::ActionChanged()
2009-06-05 14:47:29 +0200 aw r272687 : #102091# corrected local value buffering in ScenePrimitive2D::get2DDecomposition
2009-06-03 17:53:32 +0200 aw r272599 : #i89784# version before stripping
2009-06-03 17:52:18 +0200 aw r272598 : #i89784# version before stripping
2009-05-28 17:15:47 +0200 aw r272420 : #i101872# old stuff removed/stripped
2009-05-28 17:15:32 +0200 aw r272419 : #i101872# old stuff removed/stripped
2009-05-28 17:15:15 +0200 aw r272418 : #i101872# old stuff removed/stripped
2009-05-28 17:14:45 +0200 aw r272417 : #i101872# old stuff removed/stripped
2009-05-28 12:13:56 +0200 aw r272396 : #i101872# stable hybrid state
2009-05-28 12:13:46 +0200 aw r272395 : #i101872# stable hybrid state
2009-05-28 12:13:35 +0200 aw r272394 : #i101872# stable hybrid state
2009-05-28 12:13:20 +0200 aw r272393 : #i101872# stable hybrid state
2009-05-28 12:13:05 +0200 aw r272392 : #i101872# stable hybrid state
2009-05-28 12:12:51 +0200 aw r272391 : #i101872# stable hybrid state
2009-05-15 16:56:02 +0200 aw r271952 : #i101872# HitTest unifications
2009-05-15 16:55:22 +0200 aw r271951 : #i101872# HitTest unifications
2009-05-15 16:55:12 +0200 aw r271950 : #i101872# HitTest unifications
2009-05-15 16:55:01 +0200 aw r271949 : #i101872# HitTest unifications
2009-05-15 16:54:51 +0200 aw r271948 : #i101872# HitTest unifications
2009-05-15 16:54:35 +0200 aw r271947 : #i101872# HitTest unifications
2009-05-15 16:54:22 +0200 aw r271946 : #i101872# HitTest unifications
2009-05-12 19:08:38 +0200 aw r271834 : #i101684# corrected AutoShape's preparation of text transformation due to different definitions in TextBounds
2009-05-12 15:44:49 +0200 aw r271827 : #i89784# expanded TextLayouterDevice::getTextOutlines() to support DXArray and X-Font scaling
2009-05-11 19:40:40 +0200 aw r271790 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 19:40:25 +0200 aw r271789 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 19:40:12 +0200 aw r271788 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 13:01:53 +0200 aw r271765 : #i99385# corrections and optimizations
2009-05-08 14:48:40 +0200 aw r271718 : #i1016180# added optimizations in model operations when model is locked
2009-05-08 14:11:45 +0200 aw r271716 : #i101679# added flush() calls to OverlayManager when interaction step is prepared
2009-05-07 17:44:03 +0200 aw r271689 : #i99385# last corrections/changes
2009-05-07 17:43:47 +0200 aw r271688 : #i99385# last corrections/changes
2009-05-07 13:20:09 +0200 aw r271654 : #i99385# added changes from WFH
2009-05-07 13:19:38 +0200 aw r271653 : #i99385# added changes from WFH
2009-05-07 13:19:11 +0200 aw r271652 : #i99385# added changes from WFH
2009-05-07 11:33:17 +0200 aw r271643 : #i99385# corrections after resync
2009-05-07 11:17:31 +0200 aw r271642 : #i99385# corrections after resync
2009-05-06 18:46:53 +0200 aw r271609 : CWS-TOOLING: rebase CWS aw065 to trunk@271427 (milestone: DEV300:m47)
2009-05-05 18:24:03 +0200 aw r271548 : #i101443# force new text decomposition when TextBackgroundColor has changed
2009-05-05 17:44:42 +0200 aw r271542 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:32 +0200 aw r271541 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:20 +0200 aw r271540 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:09 +0200 aw r271539 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 15:48:38 +0200 aw r271527 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:48:15 +0200 aw r271526 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:48:03 +0200 aw r271525 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:47:51 +0200 aw r271524 : #i99385# 2nd round, usages checked and corrected
2009-04-27 18:33:10 +0200 aw r271300 : #i99385# state commit after all implementations are done
2009-04-27 15:36:53 +0200 aw r271283 : #i99385# state commit after all implementations are done
2009-04-27 15:27:49 +0200 aw r271280 : #i99385# state commit after all implementations are done
2009-04-27 15:27:33 +0200 aw r271279 : #i99385# state commit after all implementations are done
2009-04-27 15:27:00 +0200 aw r271278 : #i99385# state commit after all implementations are done
2009-04-27 15:26:15 +0200 aw r271277 : #i99385# state commit after all implementations are done
2009-04-27 15:25:40 +0200 aw r271275 : #i99385# state commit after all implementations are done
2009-04-27 15:25:19 +0200 aw r271274 : #i99385# state commit after all implementations are done
2009-04-27 15:24:00 +0200 aw r271272 : #i99385# state commit after all implementations are done
2009-03-19 17:12:00 +0100 aw r269757 : #i100360# corrected bitmap's PefSize calculation for bitmap filled objects when Bitmap is Pixel-based on it's mapping
2009-02-19 17:09:47 +0100 aw r268298 : #i98917# corrected attributes
2009-02-19 17:09:30 +0100 aw r268297 : #i98917# corrected attributes
2009-02-19 17:08:22 +0100 aw r268296 : #i98917# corrected attributes
2009-02-19 11:56:25 +0100 aw r268268 : #i98870# added extra code to react on PageNumber change
2009-02-18 16:57:24 +0100 aw r268243 : #i98917# in OverlayHatchRect::getGeometry the rotation was not applied to the TopLeft of the centered rectangle, but to the already extended one, thus the visualisation was rotating around the wrong edge
2009-07-02 14:28:15 +00:00
|
|
|
basegfx::B2DRectangle aB2DBox(
|
|
|
|
aBox.Left(),
|
|
|
|
aBox.Top(),
|
|
|
|
aBox.Right(),
|
|
|
|
aBox.Bottom());
|
2010-01-27 11:41:30 +01:00
|
|
|
|
|
|
|
const Bitmap aBitmap (pPreviewCache->GetPreviewBitmap(pDescriptor->GetPage()).GetBitmap());
|
|
|
|
AlphaMask aMask (aBitmap.GetSizePixel());
|
|
|
|
aMask.Erase(nTransparency);
|
|
|
|
maItems.push_back(ItemDescriptor());
|
|
|
|
maItems.back().maImage = BitmapEx(
|
|
|
|
aBitmap,
|
|
|
|
aMask);
|
|
|
|
maItems.back().maLocation = pPageObjectLayouter->GetBoundingBox(
|
|
|
|
pDescriptor,
|
|
|
|
PageObjectLayouter::Preview,
|
|
|
|
PageObjectLayouter::WindowCoordinateSystem).TopLeft();
|
|
|
|
maItems.back().mnTransparency = nTransparency/255.0;
|
|
|
|
maItems.back().maShape = basegfx::tools::createPolygonFromRect(aB2DBox);
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
2008-02-12 15:29:19 +00:00
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
SetIsVisible(maItems.size() > 0);
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void SubstitutionOverlay::Clear (void)
|
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
SetIsVisible(false);
|
|
|
|
maItems.clear();
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void SubstitutionOverlay::Move (const Point& rOffset)
|
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
Invalidator aInvalidator (*this);
|
2008-02-12 15:29:19 +00:00
|
|
|
|
|
|
|
maPosition += rOffset;
|
2010-01-27 11:41:30 +01:00
|
|
|
maTranslation += rOffset;
|
|
|
|
maBoundingBox.Move(rOffset.X(), rOffset.Y());
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void SubstitutionOverlay::SetPosition (const Point& rPosition)
|
|
|
|
{
|
CWS-TOOLING: integrate CWS aw065
2009-06-17 13:48:12 +0200 aw r273068 : #99385# corrected small error in SCs selection visualisation
2009-06-16 15:45:28 +0200 wg r273021 : i102838
2009-06-16 12:46:07 +0200 wg r273016 : i102833
2009-06-11 17:40:29 +0200 aw r272895 : #i98870# added implementation for getPageCount helper
2009-06-11 16:39:54 +0200 aw r272885 : #i102663#, #i102667#, #i98870# incluide file typo corrected
2009-06-11 16:24:07 +0200 aw r272881 : #i102663#, #i102667#, #i98870# changes to SdrText, it's usage in SdrTextPrimitive2D and to OverlayObject base implementation. Also support for PageCountField added
2009-06-11 16:23:52 +0200 aw r272880 : #i102663#, #i102667#, #i98870# changes to SdrText, it's usage in SdrTextPrimitive2D and to OverlayObject base implementation. Also support for PageCountField added
2009-06-09 13:50:29 +0200 aw r272769 : #i98917# added support for the OverlayHatchRectanglePrimitive to follow rotation with it's hatch; simplified OverlayHatchRect
2009-06-09 13:04:06 +0200 aw r272766 : #i98870# re-added PageNumber identification in SdrTextPrimitive2D::get2DDecomposition
2009-06-08 18:56:05 +0200 aw r272744 : #i99385# added some last corrections to OverlayObjects in SD (had to do some merges on resync, needed to optically check and correct)
2009-06-08 11:17:57 +0200 aw r272725 : cws aw065: corrections after resync
2009-06-08 11:02:25 +0200 aw r272723 : cws aw065: corrections after resync
2009-06-08 10:36:22 +0200 aw r272722 : cws aw065: corrections after resync
2009-06-05 18:57:06 +0200 aw r272712 : CWS-TOOLING: rebase CWS aw065 to trunk@272291 (milestone: DEV300:m49)
2009-06-05 14:56:34 +0200 aw r272690 : #i89784# stripped old stuff no longer needed due to text-to-polygon conversion using primitives
2009-06-05 14:50:07 +0200 aw r272688 : #102091# removed on-model-lock suppression for SdrObject::ActionChanged()
2009-06-05 14:47:29 +0200 aw r272687 : #102091# corrected local value buffering in ScenePrimitive2D::get2DDecomposition
2009-06-03 17:53:32 +0200 aw r272599 : #i89784# version before stripping
2009-06-03 17:52:18 +0200 aw r272598 : #i89784# version before stripping
2009-05-28 17:15:47 +0200 aw r272420 : #i101872# old stuff removed/stripped
2009-05-28 17:15:32 +0200 aw r272419 : #i101872# old stuff removed/stripped
2009-05-28 17:15:15 +0200 aw r272418 : #i101872# old stuff removed/stripped
2009-05-28 17:14:45 +0200 aw r272417 : #i101872# old stuff removed/stripped
2009-05-28 12:13:56 +0200 aw r272396 : #i101872# stable hybrid state
2009-05-28 12:13:46 +0200 aw r272395 : #i101872# stable hybrid state
2009-05-28 12:13:35 +0200 aw r272394 : #i101872# stable hybrid state
2009-05-28 12:13:20 +0200 aw r272393 : #i101872# stable hybrid state
2009-05-28 12:13:05 +0200 aw r272392 : #i101872# stable hybrid state
2009-05-28 12:12:51 +0200 aw r272391 : #i101872# stable hybrid state
2009-05-15 16:56:02 +0200 aw r271952 : #i101872# HitTest unifications
2009-05-15 16:55:22 +0200 aw r271951 : #i101872# HitTest unifications
2009-05-15 16:55:12 +0200 aw r271950 : #i101872# HitTest unifications
2009-05-15 16:55:01 +0200 aw r271949 : #i101872# HitTest unifications
2009-05-15 16:54:51 +0200 aw r271948 : #i101872# HitTest unifications
2009-05-15 16:54:35 +0200 aw r271947 : #i101872# HitTest unifications
2009-05-15 16:54:22 +0200 aw r271946 : #i101872# HitTest unifications
2009-05-12 19:08:38 +0200 aw r271834 : #i101684# corrected AutoShape's preparation of text transformation due to different definitions in TextBounds
2009-05-12 15:44:49 +0200 aw r271827 : #i89784# expanded TextLayouterDevice::getTextOutlines() to support DXArray and X-Font scaling
2009-05-11 19:40:40 +0200 aw r271790 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 19:40:25 +0200 aw r271789 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 19:40:12 +0200 aw r271788 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 13:01:53 +0200 aw r271765 : #i99385# corrections and optimizations
2009-05-08 14:48:40 +0200 aw r271718 : #i1016180# added optimizations in model operations when model is locked
2009-05-08 14:11:45 +0200 aw r271716 : #i101679# added flush() calls to OverlayManager when interaction step is prepared
2009-05-07 17:44:03 +0200 aw r271689 : #i99385# last corrections/changes
2009-05-07 17:43:47 +0200 aw r271688 : #i99385# last corrections/changes
2009-05-07 13:20:09 +0200 aw r271654 : #i99385# added changes from WFH
2009-05-07 13:19:38 +0200 aw r271653 : #i99385# added changes from WFH
2009-05-07 13:19:11 +0200 aw r271652 : #i99385# added changes from WFH
2009-05-07 11:33:17 +0200 aw r271643 : #i99385# corrections after resync
2009-05-07 11:17:31 +0200 aw r271642 : #i99385# corrections after resync
2009-05-06 18:46:53 +0200 aw r271609 : CWS-TOOLING: rebase CWS aw065 to trunk@271427 (milestone: DEV300:m47)
2009-05-05 18:24:03 +0200 aw r271548 : #i101443# force new text decomposition when TextBackgroundColor has changed
2009-05-05 17:44:42 +0200 aw r271542 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:32 +0200 aw r271541 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:20 +0200 aw r271540 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:09 +0200 aw r271539 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 15:48:38 +0200 aw r271527 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:48:15 +0200 aw r271526 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:48:03 +0200 aw r271525 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:47:51 +0200 aw r271524 : #i99385# 2nd round, usages checked and corrected
2009-04-27 18:33:10 +0200 aw r271300 : #i99385# state commit after all implementations are done
2009-04-27 15:36:53 +0200 aw r271283 : #i99385# state commit after all implementations are done
2009-04-27 15:27:49 +0200 aw r271280 : #i99385# state commit after all implementations are done
2009-04-27 15:27:33 +0200 aw r271279 : #i99385# state commit after all implementations are done
2009-04-27 15:27:00 +0200 aw r271278 : #i99385# state commit after all implementations are done
2009-04-27 15:26:15 +0200 aw r271277 : #i99385# state commit after all implementations are done
2009-04-27 15:25:40 +0200 aw r271275 : #i99385# state commit after all implementations are done
2009-04-27 15:25:19 +0200 aw r271274 : #i99385# state commit after all implementations are done
2009-04-27 15:24:00 +0200 aw r271272 : #i99385# state commit after all implementations are done
2009-03-19 17:12:00 +0100 aw r269757 : #i100360# corrected bitmap's PefSize calculation for bitmap filled objects when Bitmap is Pixel-based on it's mapping
2009-02-19 17:09:47 +0100 aw r268298 : #i98917# corrected attributes
2009-02-19 17:09:30 +0100 aw r268297 : #i98917# corrected attributes
2009-02-19 17:08:22 +0100 aw r268296 : #i98917# corrected attributes
2009-02-19 11:56:25 +0100 aw r268268 : #i98870# added extra code to react on PageNumber change
2009-02-18 16:57:24 +0100 aw r268243 : #i98917# in OverlayHatchRect::getGeometry the rotation was not applied to the TopLeft of the centered rectangle, but to the already extended one, thus the visualisation was rotating around the wrong edge
2009-07-02 14:28:15 +00:00
|
|
|
Move(rPosition - GetPosition());
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CWS-TOOLING: integrate CWS aw065
2009-06-17 13:48:12 +0200 aw r273068 : #99385# corrected small error in SCs selection visualisation
2009-06-16 15:45:28 +0200 wg r273021 : i102838
2009-06-16 12:46:07 +0200 wg r273016 : i102833
2009-06-11 17:40:29 +0200 aw r272895 : #i98870# added implementation for getPageCount helper
2009-06-11 16:39:54 +0200 aw r272885 : #i102663#, #i102667#, #i98870# incluide file typo corrected
2009-06-11 16:24:07 +0200 aw r272881 : #i102663#, #i102667#, #i98870# changes to SdrText, it's usage in SdrTextPrimitive2D and to OverlayObject base implementation. Also support for PageCountField added
2009-06-11 16:23:52 +0200 aw r272880 : #i102663#, #i102667#, #i98870# changes to SdrText, it's usage in SdrTextPrimitive2D and to OverlayObject base implementation. Also support for PageCountField added
2009-06-09 13:50:29 +0200 aw r272769 : #i98917# added support for the OverlayHatchRectanglePrimitive to follow rotation with it's hatch; simplified OverlayHatchRect
2009-06-09 13:04:06 +0200 aw r272766 : #i98870# re-added PageNumber identification in SdrTextPrimitive2D::get2DDecomposition
2009-06-08 18:56:05 +0200 aw r272744 : #i99385# added some last corrections to OverlayObjects in SD (had to do some merges on resync, needed to optically check and correct)
2009-06-08 11:17:57 +0200 aw r272725 : cws aw065: corrections after resync
2009-06-08 11:02:25 +0200 aw r272723 : cws aw065: corrections after resync
2009-06-08 10:36:22 +0200 aw r272722 : cws aw065: corrections after resync
2009-06-05 18:57:06 +0200 aw r272712 : CWS-TOOLING: rebase CWS aw065 to trunk@272291 (milestone: DEV300:m49)
2009-06-05 14:56:34 +0200 aw r272690 : #i89784# stripped old stuff no longer needed due to text-to-polygon conversion using primitives
2009-06-05 14:50:07 +0200 aw r272688 : #102091# removed on-model-lock suppression for SdrObject::ActionChanged()
2009-06-05 14:47:29 +0200 aw r272687 : #102091# corrected local value buffering in ScenePrimitive2D::get2DDecomposition
2009-06-03 17:53:32 +0200 aw r272599 : #i89784# version before stripping
2009-06-03 17:52:18 +0200 aw r272598 : #i89784# version before stripping
2009-05-28 17:15:47 +0200 aw r272420 : #i101872# old stuff removed/stripped
2009-05-28 17:15:32 +0200 aw r272419 : #i101872# old stuff removed/stripped
2009-05-28 17:15:15 +0200 aw r272418 : #i101872# old stuff removed/stripped
2009-05-28 17:14:45 +0200 aw r272417 : #i101872# old stuff removed/stripped
2009-05-28 12:13:56 +0200 aw r272396 : #i101872# stable hybrid state
2009-05-28 12:13:46 +0200 aw r272395 : #i101872# stable hybrid state
2009-05-28 12:13:35 +0200 aw r272394 : #i101872# stable hybrid state
2009-05-28 12:13:20 +0200 aw r272393 : #i101872# stable hybrid state
2009-05-28 12:13:05 +0200 aw r272392 : #i101872# stable hybrid state
2009-05-28 12:12:51 +0200 aw r272391 : #i101872# stable hybrid state
2009-05-15 16:56:02 +0200 aw r271952 : #i101872# HitTest unifications
2009-05-15 16:55:22 +0200 aw r271951 : #i101872# HitTest unifications
2009-05-15 16:55:12 +0200 aw r271950 : #i101872# HitTest unifications
2009-05-15 16:55:01 +0200 aw r271949 : #i101872# HitTest unifications
2009-05-15 16:54:51 +0200 aw r271948 : #i101872# HitTest unifications
2009-05-15 16:54:35 +0200 aw r271947 : #i101872# HitTest unifications
2009-05-15 16:54:22 +0200 aw r271946 : #i101872# HitTest unifications
2009-05-12 19:08:38 +0200 aw r271834 : #i101684# corrected AutoShape's preparation of text transformation due to different definitions in TextBounds
2009-05-12 15:44:49 +0200 aw r271827 : #i89784# expanded TextLayouterDevice::getTextOutlines() to support DXArray and X-Font scaling
2009-05-11 19:40:40 +0200 aw r271790 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 19:40:25 +0200 aw r271789 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 19:40:12 +0200 aw r271788 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 13:01:53 +0200 aw r271765 : #i99385# corrections and optimizations
2009-05-08 14:48:40 +0200 aw r271718 : #i1016180# added optimizations in model operations when model is locked
2009-05-08 14:11:45 +0200 aw r271716 : #i101679# added flush() calls to OverlayManager when interaction step is prepared
2009-05-07 17:44:03 +0200 aw r271689 : #i99385# last corrections/changes
2009-05-07 17:43:47 +0200 aw r271688 : #i99385# last corrections/changes
2009-05-07 13:20:09 +0200 aw r271654 : #i99385# added changes from WFH
2009-05-07 13:19:38 +0200 aw r271653 : #i99385# added changes from WFH
2009-05-07 13:19:11 +0200 aw r271652 : #i99385# added changes from WFH
2009-05-07 11:33:17 +0200 aw r271643 : #i99385# corrections after resync
2009-05-07 11:17:31 +0200 aw r271642 : #i99385# corrections after resync
2009-05-06 18:46:53 +0200 aw r271609 : CWS-TOOLING: rebase CWS aw065 to trunk@271427 (milestone: DEV300:m47)
2009-05-05 18:24:03 +0200 aw r271548 : #i101443# force new text decomposition when TextBackgroundColor has changed
2009-05-05 17:44:42 +0200 aw r271542 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:32 +0200 aw r271541 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:20 +0200 aw r271540 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:09 +0200 aw r271539 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 15:48:38 +0200 aw r271527 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:48:15 +0200 aw r271526 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:48:03 +0200 aw r271525 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:47:51 +0200 aw r271524 : #i99385# 2nd round, usages checked and corrected
2009-04-27 18:33:10 +0200 aw r271300 : #i99385# state commit after all implementations are done
2009-04-27 15:36:53 +0200 aw r271283 : #i99385# state commit after all implementations are done
2009-04-27 15:27:49 +0200 aw r271280 : #i99385# state commit after all implementations are done
2009-04-27 15:27:33 +0200 aw r271279 : #i99385# state commit after all implementations are done
2009-04-27 15:27:00 +0200 aw r271278 : #i99385# state commit after all implementations are done
2009-04-27 15:26:15 +0200 aw r271277 : #i99385# state commit after all implementations are done
2009-04-27 15:25:40 +0200 aw r271275 : #i99385# state commit after all implementations are done
2009-04-27 15:25:19 +0200 aw r271274 : #i99385# state commit after all implementations are done
2009-04-27 15:24:00 +0200 aw r271272 : #i99385# state commit after all implementations are done
2009-03-19 17:12:00 +0100 aw r269757 : #i100360# corrected bitmap's PefSize calculation for bitmap filled objects when Bitmap is Pixel-based on it's mapping
2009-02-19 17:09:47 +0100 aw r268298 : #i98917# corrected attributes
2009-02-19 17:09:30 +0100 aw r268297 : #i98917# corrected attributes
2009-02-19 17:08:22 +0100 aw r268296 : #i98917# corrected attributes
2009-02-19 11:56:25 +0100 aw r268268 : #i98870# added extra code to react on PageNumber change
2009-02-18 16:57:24 +0100 aw r268243 : #i98917# in OverlayHatchRect::getGeometry the rotation was not applied to the TopLeft of the centered rectangle, but to the already extended one, thus the visualisation was rotating around the wrong edge
2009-07-02 14:28:15 +00:00
|
|
|
Point SubstitutionOverlay::GetPosition (void) const
|
2004-07-13 13:28:36 +00:00
|
|
|
{
|
CWS-TOOLING: integrate CWS aw065
2009-06-17 13:48:12 +0200 aw r273068 : #99385# corrected small error in SCs selection visualisation
2009-06-16 15:45:28 +0200 wg r273021 : i102838
2009-06-16 12:46:07 +0200 wg r273016 : i102833
2009-06-11 17:40:29 +0200 aw r272895 : #i98870# added implementation for getPageCount helper
2009-06-11 16:39:54 +0200 aw r272885 : #i102663#, #i102667#, #i98870# incluide file typo corrected
2009-06-11 16:24:07 +0200 aw r272881 : #i102663#, #i102667#, #i98870# changes to SdrText, it's usage in SdrTextPrimitive2D and to OverlayObject base implementation. Also support for PageCountField added
2009-06-11 16:23:52 +0200 aw r272880 : #i102663#, #i102667#, #i98870# changes to SdrText, it's usage in SdrTextPrimitive2D and to OverlayObject base implementation. Also support for PageCountField added
2009-06-09 13:50:29 +0200 aw r272769 : #i98917# added support for the OverlayHatchRectanglePrimitive to follow rotation with it's hatch; simplified OverlayHatchRect
2009-06-09 13:04:06 +0200 aw r272766 : #i98870# re-added PageNumber identification in SdrTextPrimitive2D::get2DDecomposition
2009-06-08 18:56:05 +0200 aw r272744 : #i99385# added some last corrections to OverlayObjects in SD (had to do some merges on resync, needed to optically check and correct)
2009-06-08 11:17:57 +0200 aw r272725 : cws aw065: corrections after resync
2009-06-08 11:02:25 +0200 aw r272723 : cws aw065: corrections after resync
2009-06-08 10:36:22 +0200 aw r272722 : cws aw065: corrections after resync
2009-06-05 18:57:06 +0200 aw r272712 : CWS-TOOLING: rebase CWS aw065 to trunk@272291 (milestone: DEV300:m49)
2009-06-05 14:56:34 +0200 aw r272690 : #i89784# stripped old stuff no longer needed due to text-to-polygon conversion using primitives
2009-06-05 14:50:07 +0200 aw r272688 : #102091# removed on-model-lock suppression for SdrObject::ActionChanged()
2009-06-05 14:47:29 +0200 aw r272687 : #102091# corrected local value buffering in ScenePrimitive2D::get2DDecomposition
2009-06-03 17:53:32 +0200 aw r272599 : #i89784# version before stripping
2009-06-03 17:52:18 +0200 aw r272598 : #i89784# version before stripping
2009-05-28 17:15:47 +0200 aw r272420 : #i101872# old stuff removed/stripped
2009-05-28 17:15:32 +0200 aw r272419 : #i101872# old stuff removed/stripped
2009-05-28 17:15:15 +0200 aw r272418 : #i101872# old stuff removed/stripped
2009-05-28 17:14:45 +0200 aw r272417 : #i101872# old stuff removed/stripped
2009-05-28 12:13:56 +0200 aw r272396 : #i101872# stable hybrid state
2009-05-28 12:13:46 +0200 aw r272395 : #i101872# stable hybrid state
2009-05-28 12:13:35 +0200 aw r272394 : #i101872# stable hybrid state
2009-05-28 12:13:20 +0200 aw r272393 : #i101872# stable hybrid state
2009-05-28 12:13:05 +0200 aw r272392 : #i101872# stable hybrid state
2009-05-28 12:12:51 +0200 aw r272391 : #i101872# stable hybrid state
2009-05-15 16:56:02 +0200 aw r271952 : #i101872# HitTest unifications
2009-05-15 16:55:22 +0200 aw r271951 : #i101872# HitTest unifications
2009-05-15 16:55:12 +0200 aw r271950 : #i101872# HitTest unifications
2009-05-15 16:55:01 +0200 aw r271949 : #i101872# HitTest unifications
2009-05-15 16:54:51 +0200 aw r271948 : #i101872# HitTest unifications
2009-05-15 16:54:35 +0200 aw r271947 : #i101872# HitTest unifications
2009-05-15 16:54:22 +0200 aw r271946 : #i101872# HitTest unifications
2009-05-12 19:08:38 +0200 aw r271834 : #i101684# corrected AutoShape's preparation of text transformation due to different definitions in TextBounds
2009-05-12 15:44:49 +0200 aw r271827 : #i89784# expanded TextLayouterDevice::getTextOutlines() to support DXArray and X-Font scaling
2009-05-11 19:40:40 +0200 aw r271790 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 19:40:25 +0200 aw r271789 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 19:40:12 +0200 aw r271788 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 13:01:53 +0200 aw r271765 : #i99385# corrections and optimizations
2009-05-08 14:48:40 +0200 aw r271718 : #i1016180# added optimizations in model operations when model is locked
2009-05-08 14:11:45 +0200 aw r271716 : #i101679# added flush() calls to OverlayManager when interaction step is prepared
2009-05-07 17:44:03 +0200 aw r271689 : #i99385# last corrections/changes
2009-05-07 17:43:47 +0200 aw r271688 : #i99385# last corrections/changes
2009-05-07 13:20:09 +0200 aw r271654 : #i99385# added changes from WFH
2009-05-07 13:19:38 +0200 aw r271653 : #i99385# added changes from WFH
2009-05-07 13:19:11 +0200 aw r271652 : #i99385# added changes from WFH
2009-05-07 11:33:17 +0200 aw r271643 : #i99385# corrections after resync
2009-05-07 11:17:31 +0200 aw r271642 : #i99385# corrections after resync
2009-05-06 18:46:53 +0200 aw r271609 : CWS-TOOLING: rebase CWS aw065 to trunk@271427 (milestone: DEV300:m47)
2009-05-05 18:24:03 +0200 aw r271548 : #i101443# force new text decomposition when TextBackgroundColor has changed
2009-05-05 17:44:42 +0200 aw r271542 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:32 +0200 aw r271541 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:20 +0200 aw r271540 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:09 +0200 aw r271539 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 15:48:38 +0200 aw r271527 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:48:15 +0200 aw r271526 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:48:03 +0200 aw r271525 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:47:51 +0200 aw r271524 : #i99385# 2nd round, usages checked and corrected
2009-04-27 18:33:10 +0200 aw r271300 : #i99385# state commit after all implementations are done
2009-04-27 15:36:53 +0200 aw r271283 : #i99385# state commit after all implementations are done
2009-04-27 15:27:49 +0200 aw r271280 : #i99385# state commit after all implementations are done
2009-04-27 15:27:33 +0200 aw r271279 : #i99385# state commit after all implementations are done
2009-04-27 15:27:00 +0200 aw r271278 : #i99385# state commit after all implementations are done
2009-04-27 15:26:15 +0200 aw r271277 : #i99385# state commit after all implementations are done
2009-04-27 15:25:40 +0200 aw r271275 : #i99385# state commit after all implementations are done
2009-04-27 15:25:19 +0200 aw r271274 : #i99385# state commit after all implementations are done
2009-04-27 15:24:00 +0200 aw r271272 : #i99385# state commit after all implementations are done
2009-03-19 17:12:00 +0100 aw r269757 : #i100360# corrected bitmap's PefSize calculation for bitmap filled objects when Bitmap is Pixel-based on it's mapping
2009-02-19 17:09:47 +0100 aw r268298 : #i98917# corrected attributes
2009-02-19 17:09:30 +0100 aw r268297 : #i98917# corrected attributes
2009-02-19 17:08:22 +0100 aw r268296 : #i98917# corrected attributes
2009-02-19 11:56:25 +0100 aw r268268 : #i98870# added extra code to react on PageNumber change
2009-02-18 16:57:24 +0100 aw r268243 : #i98917# in OverlayHatchRect::getGeometry the rotation was not applied to the TopLeft of the centered rectangle, but to the already extended one, thus the visualisation was rotating around the wrong edge
2009-07-02 14:28:15 +00:00
|
|
|
return maPosition;
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
void SubstitutionOverlay::Paint (
|
|
|
|
OutputDevice& rDevice,
|
|
|
|
const Rectangle& rRepaintArea)
|
2004-07-13 13:28:36 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
(void)rRepaintArea;
|
2004-11-26 14:13:08 +00:00
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
if ( ! IsVisible())
|
|
|
|
return;
|
2004-11-26 14:13:08 +00:00
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
basegfx::B2DHomMatrix aTranslation;
|
|
|
|
aTranslation.translate(maTranslation.X(), maTranslation.Y());
|
2004-11-26 14:13:08 +00:00
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
rDevice.SetFillColor(Color(AirForceBlue));
|
|
|
|
rDevice.SetLineColor();
|
2004-11-26 14:13:08 +00:00
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
for (::std::vector<ItemDescriptor>::const_iterator
|
|
|
|
iItem(maItems.begin()),
|
|
|
|
iEnd(maItems.end());
|
|
|
|
iItem!=iEnd;
|
|
|
|
++iItem)
|
|
|
|
{
|
|
|
|
::basegfx::B2DPolyPolygon aPolygon (iItem->maShape);
|
|
|
|
aPolygon.transform(aTranslation);
|
|
|
|
rDevice.DrawTransparent(aPolygon, iItem->mnTransparency);
|
|
|
|
rDevice.DrawBitmapEx(iItem->maLocation+maTranslation, iItem->maImage);
|
|
|
|
}
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2008-02-12 15:29:19 +00:00
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
|
|
|
|
Rectangle SubstitutionOverlay::GetBoundingBox (void) const
|
2004-07-13 13:28:36 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
return maBoundingBox;
|
2004-11-26 14:13:08 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
|
|
|
|
//===== SelectionRectangleOverlay ===========================================
|
|
|
|
|
|
|
|
SelectionRectangleOverlay::SelectionRectangleOverlay (
|
|
|
|
ViewOverlay& rViewOverlay,
|
|
|
|
const sal_Int32 nLayerIndex)
|
|
|
|
: OverlayBase (rViewOverlay, nLayerIndex),
|
|
|
|
maAnchor(0,0),
|
|
|
|
maSecondCorner(0,0)
|
2009-09-24 14:09:17 +02:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2004-11-26 14:13:08 +00:00
|
|
|
Rectangle SelectionRectangleOverlay::GetSelectionRectangle (void)
|
|
|
|
{
|
|
|
|
return Rectangle(maAnchor, maSecondCorner);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void SelectionRectangleOverlay::Start (const Point& rAnchor)
|
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
SetIsVisible(false);
|
2004-11-26 14:13:08 +00:00
|
|
|
maAnchor = rAnchor;
|
2010-01-27 11:41:30 +01:00
|
|
|
maSecondCorner = rAnchor;
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2004-11-26 14:13:08 +00:00
|
|
|
void SelectionRectangleOverlay::Update (const Point& rSecondCorner)
|
2004-07-13 13:28:36 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
Invalidator aInvalidator (*this);
|
2004-07-13 13:28:36 +00:00
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
maSecondCorner = rSecondCorner;
|
|
|
|
SetIsVisible(true);
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
void SelectionRectangleOverlay::Paint (
|
|
|
|
OutputDevice& rDevice,
|
|
|
|
const Rectangle& rRepaintArea)
|
2004-07-13 13:28:36 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
if ( ! IsVisible())
|
|
|
|
return;
|
2004-07-13 13:28:36 +00:00
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
rDevice.SetFillColor(Color(Amber));
|
|
|
|
rDevice.SetLineColor(Color(Amber));
|
2004-07-13 13:28:36 +00:00
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
const Rectangle aBox (
|
|
|
|
::std::min(maAnchor.X(), maSecondCorner.X()),
|
|
|
|
::std::min(maAnchor.Y(), maSecondCorner.Y()),
|
|
|
|
::std::max(maAnchor.X(), maSecondCorner.X()),
|
|
|
|
::std::max(maAnchor.Y(), maSecondCorner.Y()));
|
2010-01-28 13:00:30 +01:00
|
|
|
if (rRepaintArea.IsOver(aBox))
|
|
|
|
rDevice.DrawTransparent(
|
2010-01-27 11:41:30 +01:00
|
|
|
::basegfx::B2DPolyPolygon(
|
2010-01-28 13:00:30 +01:00
|
|
|
::basegfx::tools::createPolygonFromRect(
|
|
|
|
::basegfx::B2DRectangle(aBox.Left(), aBox.Top(), aBox.Right(), aBox.Bottom()),
|
|
|
|
5.0/aBox.GetWidth(),
|
|
|
|
5.0/aBox.GetHeight())),
|
2010-01-27 11:41:30 +01:00
|
|
|
0.5);
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
Rectangle SelectionRectangleOverlay::GetBoundingBox (void) const
|
2004-07-13 13:28:36 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
return GrowRectangle(Rectangle(
|
|
|
|
::std::min(maAnchor.X(), maSecondCorner.X()),
|
|
|
|
::std::min(maAnchor.Y(), maSecondCorner.Y()),
|
|
|
|
::std::max(maAnchor.X(), maSecondCorner.X()),
|
|
|
|
::std::max(maAnchor.Y(), maSecondCorner.Y())),
|
|
|
|
+1);
|
2004-07-13 13:28:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2004-09-20 12:35:48 +00:00
|
|
|
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
//===== InsertionIndicatorOverlay ===========================================
|
2004-09-20 12:35:48 +00:00
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
InsertionIndicatorOverlay::InsertionIndicatorOverlay (
|
|
|
|
ViewOverlay& rViewOverlay,
|
|
|
|
const sal_Int32 nLayerIndex)
|
|
|
|
: OverlayBase (rViewOverlay, nLayerIndex),
|
|
|
|
maLocation(),
|
|
|
|
maIconWithBorder(),
|
|
|
|
maIcon(),
|
|
|
|
maMask()
|
2008-02-12 15:29:19 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
LocalResource aResource (IMG_ICONS);
|
|
|
|
maIconWithBorder = Image(SdResId(IMAGE_INSERTION_INDICATOR_SELECT));
|
|
|
|
maIcon = Image(SdResId(IMAGE_INSERTION_INDICATOR_NORMAL));
|
|
|
|
maMask = Image(SdResId(IMAGE_INSERTION_INDICATOR_MASK));
|
2008-02-12 15:29:19 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
void InsertionIndicatorOverlay::SetLocation (const Point& rLocation)
|
2004-09-20 12:35:48 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
const Point aTopLeft (
|
|
|
|
rLocation - Point(
|
|
|
|
maIconWithBorder.GetSizePixel().Width()/2,
|
|
|
|
maIconWithBorder.GetSizePixel().Height()/2));
|
|
|
|
if (maLocation != aTopLeft)
|
2006-04-06 15:28:14 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
Invalidator aInvalidator (*this);
|
|
|
|
maLocation = aTopLeft;
|
2006-04-06 15:28:14 +00:00
|
|
|
}
|
2004-09-20 12:35:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
void InsertionIndicatorOverlay::Paint (
|
|
|
|
OutputDevice& rDevice,
|
|
|
|
const Rectangle& rRepaintArea)
|
2004-09-20 12:35:48 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
(void)rRepaintArea;
|
2008-02-12 15:29:19 +00:00
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
if ( ! IsVisible())
|
|
|
|
return;
|
CWS-TOOLING: integrate CWS aw065
2009-06-17 13:48:12 +0200 aw r273068 : #99385# corrected small error in SCs selection visualisation
2009-06-16 15:45:28 +0200 wg r273021 : i102838
2009-06-16 12:46:07 +0200 wg r273016 : i102833
2009-06-11 17:40:29 +0200 aw r272895 : #i98870# added implementation for getPageCount helper
2009-06-11 16:39:54 +0200 aw r272885 : #i102663#, #i102667#, #i98870# incluide file typo corrected
2009-06-11 16:24:07 +0200 aw r272881 : #i102663#, #i102667#, #i98870# changes to SdrText, it's usage in SdrTextPrimitive2D and to OverlayObject base implementation. Also support for PageCountField added
2009-06-11 16:23:52 +0200 aw r272880 : #i102663#, #i102667#, #i98870# changes to SdrText, it's usage in SdrTextPrimitive2D and to OverlayObject base implementation. Also support for PageCountField added
2009-06-09 13:50:29 +0200 aw r272769 : #i98917# added support for the OverlayHatchRectanglePrimitive to follow rotation with it's hatch; simplified OverlayHatchRect
2009-06-09 13:04:06 +0200 aw r272766 : #i98870# re-added PageNumber identification in SdrTextPrimitive2D::get2DDecomposition
2009-06-08 18:56:05 +0200 aw r272744 : #i99385# added some last corrections to OverlayObjects in SD (had to do some merges on resync, needed to optically check and correct)
2009-06-08 11:17:57 +0200 aw r272725 : cws aw065: corrections after resync
2009-06-08 11:02:25 +0200 aw r272723 : cws aw065: corrections after resync
2009-06-08 10:36:22 +0200 aw r272722 : cws aw065: corrections after resync
2009-06-05 18:57:06 +0200 aw r272712 : CWS-TOOLING: rebase CWS aw065 to trunk@272291 (milestone: DEV300:m49)
2009-06-05 14:56:34 +0200 aw r272690 : #i89784# stripped old stuff no longer needed due to text-to-polygon conversion using primitives
2009-06-05 14:50:07 +0200 aw r272688 : #102091# removed on-model-lock suppression for SdrObject::ActionChanged()
2009-06-05 14:47:29 +0200 aw r272687 : #102091# corrected local value buffering in ScenePrimitive2D::get2DDecomposition
2009-06-03 17:53:32 +0200 aw r272599 : #i89784# version before stripping
2009-06-03 17:52:18 +0200 aw r272598 : #i89784# version before stripping
2009-05-28 17:15:47 +0200 aw r272420 : #i101872# old stuff removed/stripped
2009-05-28 17:15:32 +0200 aw r272419 : #i101872# old stuff removed/stripped
2009-05-28 17:15:15 +0200 aw r272418 : #i101872# old stuff removed/stripped
2009-05-28 17:14:45 +0200 aw r272417 : #i101872# old stuff removed/stripped
2009-05-28 12:13:56 +0200 aw r272396 : #i101872# stable hybrid state
2009-05-28 12:13:46 +0200 aw r272395 : #i101872# stable hybrid state
2009-05-28 12:13:35 +0200 aw r272394 : #i101872# stable hybrid state
2009-05-28 12:13:20 +0200 aw r272393 : #i101872# stable hybrid state
2009-05-28 12:13:05 +0200 aw r272392 : #i101872# stable hybrid state
2009-05-28 12:12:51 +0200 aw r272391 : #i101872# stable hybrid state
2009-05-15 16:56:02 +0200 aw r271952 : #i101872# HitTest unifications
2009-05-15 16:55:22 +0200 aw r271951 : #i101872# HitTest unifications
2009-05-15 16:55:12 +0200 aw r271950 : #i101872# HitTest unifications
2009-05-15 16:55:01 +0200 aw r271949 : #i101872# HitTest unifications
2009-05-15 16:54:51 +0200 aw r271948 : #i101872# HitTest unifications
2009-05-15 16:54:35 +0200 aw r271947 : #i101872# HitTest unifications
2009-05-15 16:54:22 +0200 aw r271946 : #i101872# HitTest unifications
2009-05-12 19:08:38 +0200 aw r271834 : #i101684# corrected AutoShape's preparation of text transformation due to different definitions in TextBounds
2009-05-12 15:44:49 +0200 aw r271827 : #i89784# expanded TextLayouterDevice::getTextOutlines() to support DXArray and X-Font scaling
2009-05-11 19:40:40 +0200 aw r271790 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 19:40:25 +0200 aw r271789 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 19:40:12 +0200 aw r271788 : #i99385# extended HitTest primitive usage, removed IsHdlHit implementations; prepared further HitTest simplifications
2009-05-11 13:01:53 +0200 aw r271765 : #i99385# corrections and optimizations
2009-05-08 14:48:40 +0200 aw r271718 : #i1016180# added optimizations in model operations when model is locked
2009-05-08 14:11:45 +0200 aw r271716 : #i101679# added flush() calls to OverlayManager when interaction step is prepared
2009-05-07 17:44:03 +0200 aw r271689 : #i99385# last corrections/changes
2009-05-07 17:43:47 +0200 aw r271688 : #i99385# last corrections/changes
2009-05-07 13:20:09 +0200 aw r271654 : #i99385# added changes from WFH
2009-05-07 13:19:38 +0200 aw r271653 : #i99385# added changes from WFH
2009-05-07 13:19:11 +0200 aw r271652 : #i99385# added changes from WFH
2009-05-07 11:33:17 +0200 aw r271643 : #i99385# corrections after resync
2009-05-07 11:17:31 +0200 aw r271642 : #i99385# corrections after resync
2009-05-06 18:46:53 +0200 aw r271609 : CWS-TOOLING: rebase CWS aw065 to trunk@271427 (milestone: DEV300:m47)
2009-05-05 18:24:03 +0200 aw r271548 : #i101443# force new text decomposition when TextBackgroundColor has changed
2009-05-05 17:44:42 +0200 aw r271542 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:32 +0200 aw r271541 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:20 +0200 aw r271540 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 17:44:09 +0200 aw r271539 : #i99385# 3rd round, simplifications and corrections done
2009-05-05 15:48:38 +0200 aw r271527 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:48:15 +0200 aw r271526 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:48:03 +0200 aw r271525 : #i99385# 2nd round, usages checked and corrected
2009-05-05 15:47:51 +0200 aw r271524 : #i99385# 2nd round, usages checked and corrected
2009-04-27 18:33:10 +0200 aw r271300 : #i99385# state commit after all implementations are done
2009-04-27 15:36:53 +0200 aw r271283 : #i99385# state commit after all implementations are done
2009-04-27 15:27:49 +0200 aw r271280 : #i99385# state commit after all implementations are done
2009-04-27 15:27:33 +0200 aw r271279 : #i99385# state commit after all implementations are done
2009-04-27 15:27:00 +0200 aw r271278 : #i99385# state commit after all implementations are done
2009-04-27 15:26:15 +0200 aw r271277 : #i99385# state commit after all implementations are done
2009-04-27 15:25:40 +0200 aw r271275 : #i99385# state commit after all implementations are done
2009-04-27 15:25:19 +0200 aw r271274 : #i99385# state commit after all implementations are done
2009-04-27 15:24:00 +0200 aw r271272 : #i99385# state commit after all implementations are done
2009-03-19 17:12:00 +0100 aw r269757 : #i100360# corrected bitmap's PefSize calculation for bitmap filled objects when Bitmap is Pixel-based on it's mapping
2009-02-19 17:09:47 +0100 aw r268298 : #i98917# corrected attributes
2009-02-19 17:09:30 +0100 aw r268297 : #i98917# corrected attributes
2009-02-19 17:08:22 +0100 aw r268296 : #i98917# corrected attributes
2009-02-19 11:56:25 +0100 aw r268268 : #i98870# added extra code to react on PageNumber change
2009-02-18 16:57:24 +0100 aw r268243 : #i98917# in OverlayHatchRect::getGeometry the rotation was not applied to the TopLeft of the centered rectangle, but to the already extended one, thus the visualisation was rotating around the wrong edge
2009-07-02 14:28:15 +00:00
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
rDevice.DrawImage(
|
|
|
|
maLocation,
|
|
|
|
maIconWithBorder);
|
2004-09-20 12:35:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-01-27 11:41:30 +01:00
|
|
|
Rectangle InsertionIndicatorOverlay::GetBoundingBox (void) const
|
2008-02-12 15:29:19 +00:00
|
|
|
{
|
2010-01-27 11:41:30 +01:00
|
|
|
return Rectangle(maLocation, maIconWithBorder.GetSizePixel());
|
2008-02-12 15:29:19 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2004-09-20 12:35:48 +00:00
|
|
|
|
2004-07-13 13:28:36 +00:00
|
|
|
} } } // end of namespace ::sd::slidesorter::view
|
2008-02-12 15:29:19 +00:00
|
|
|
|