From 072c27d7f4867eeabb9c8d84a5c30cd5ac287ba0 Mon Sep 17 00:00:00 2001 From: jules Date: Thu, 25 Jul 2013 18:13:27 +0100 Subject: [PATCH] Renamed Rectangle::transformed to Rectangle::transformedBy, in order to match the method name in Point, and allow easier use of these classes in templates. --- modules/juce_core/system/juce_PlatformDefs.h | 10 +++++++--- .../geometry/juce_AffineTransform.h | 1 - modules/juce_graphics/geometry/juce_Path.cpp | 2 +- .../juce_graphics/geometry/juce_Rectangle.h | 5 +++-- .../native/juce_RenderingHelpers.h | 4 ++-- .../components/juce_Component.cpp | 18 ++++++++++++++---- .../windows/juce_ComponentPeer.cpp | 16 ++++------------ 7 files changed, 31 insertions(+), 25 deletions(-) diff --git a/modules/juce_core/system/juce_PlatformDefs.h b/modules/juce_core/system/juce_PlatformDefs.h index 3d2c34c86e..b082f8ba7e 100644 --- a/modules/juce_core/system/juce_PlatformDefs.h +++ b/modules/juce_core/system/juce_PlatformDefs.h @@ -274,12 +274,16 @@ namespace juce #ifdef DOXYGEN /** This macro can be used to wrap a function which has been deprecated. */ #define JUCE_DEPRECATED(functionDef) + #define JUCE_DEPRECATED_WITH_BODY(functionDef, body) #elif JUCE_MSVC && ! JUCE_NO_DEPRECATION_WARNINGS - #define JUCE_DEPRECATED(functionDef) __declspec(deprecated) functionDef + #define JUCE_DEPRECATED(functionDef) __declspec(deprecated) functionDef + #define JUCE_DEPRECATED_WITH_BODY(functionDef, body) __declspec(deprecated) functionDef body #elif JUCE_GCC && ! JUCE_NO_DEPRECATION_WARNINGS - #define JUCE_DEPRECATED(functionDef) functionDef __attribute__ ((deprecated)) + #define JUCE_DEPRECATED(functionDef) functionDef __attribute__ ((deprecated)) + #define JUCE_DEPRECATED_WITH_BODY(functionDef, body) functionDef __attribute__ ((deprecated)) body #else - #define JUCE_DEPRECATED(functionDef) functionDef + #define JUCE_DEPRECATED(functionDef) functionDef + #define JUCE_DEPRECATED_WITH_BODY(functionDef, body) functionDef body #endif //============================================================================== diff --git a/modules/juce_graphics/geometry/juce_AffineTransform.h b/modules/juce_graphics/geometry/juce_AffineTransform.h index 477744cd10..400e7613f8 100644 --- a/modules/juce_graphics/geometry/juce_AffineTransform.h +++ b/modules/juce_graphics/geometry/juce_AffineTransform.h @@ -73,7 +73,6 @@ public: e.g. @code AffineTransform myTransform = AffineTransform::identity.rotated (.5f) .scaled (2.0f); - @endcode */ static const AffineTransform identity; diff --git a/modules/juce_graphics/geometry/juce_Path.cpp b/modules/juce_graphics/geometry/juce_Path.cpp index 31eb02591c..ac2ea98dff 100644 --- a/modules/juce_graphics/geometry/juce_Path.cpp +++ b/modules/juce_graphics/geometry/juce_Path.cpp @@ -250,7 +250,7 @@ Rectangle Path::getBounds() const noexcept Rectangle Path::getBoundsTransformed (const AffineTransform& transform) const noexcept { - return getBounds().transformed (transform); + return getBounds().transformedBy (transform); } //============================================================================== diff --git a/modules/juce_graphics/geometry/juce_Rectangle.h b/modules/juce_graphics/geometry/juce_Rectangle.h index facba9f45a..c7332939a6 100644 --- a/modules/juce_graphics/geometry/juce_Rectangle.h +++ b/modules/juce_graphics/geometry/juce_Rectangle.h @@ -651,7 +651,7 @@ public: This should only be used on floating point rectangles. */ - Rectangle transformed (const AffineTransform& transform) const noexcept + Rectangle transformedBy (const AffineTransform& transform) const noexcept { typedef typename TypeHelpers::SmallestFloatType::type FloatType; @@ -804,7 +804,8 @@ public: parseIntAfterSpace (toks[3])); } - typedef ValueType Type; + // This has been renamed by transformedBy, in order to match the method names used in the Point class. + JUCE_DEPRECATED_WITH_BODY (Rectangle transformed (const AffineTransform& t) const noexcept, { return transformedBy (t); }) private: friend class RectangleList; diff --git a/modules/juce_graphics/native/juce_RenderingHelpers.h b/modules/juce_graphics/native/juce_RenderingHelpers.h index 819958aed7..7aae899895 100644 --- a/modules/juce_graphics/native/juce_RenderingHelpers.h +++ b/modules/juce_graphics/native/juce_RenderingHelpers.h @@ -123,13 +123,13 @@ public: template Rectangle transformed (const Rectangle& r) const noexcept { - return r.transformed (complexTransform); + return r.transformedBy (complexTransform); } Rectangle deviceSpaceToUserSpace (const Rectangle& r) const noexcept { return isOnlyTranslated ? r.translated (-xOffset, -yOffset) - : r.transformed (complexTransform.inverted()); + : r.transformedBy (complexTransform.inverted()); } AffineTransform complexTransform; diff --git a/modules/juce_gui_basics/components/juce_Component.cpp b/modules/juce_gui_basics/components/juce_Component.cpp index 1aba189076..93fdf1249c 100644 --- a/modules/juce_gui_basics/components/juce_Component.cpp +++ b/modules/juce_gui_basics/components/juce_Component.cpp @@ -213,7 +213,7 @@ struct Component::ComponentHelpers if (comp.affineTransform == nullptr) return areaInParentSpace - comp.getPosition(); - return areaInParentSpace.toFloat().transformed (comp.affineTransform->inverted()).getSmallestIntegerContainer() - comp.getPosition(); + return areaInParentSpace.toFloat().transformedBy (comp.affineTransform->inverted()).getSmallestIntegerContainer() - comp.getPosition(); } static Point convertToParentSpace (const Component& comp, Point pointInLocalSpace) @@ -229,7 +229,7 @@ struct Component::ComponentHelpers if (comp.affineTransform == nullptr) return areaInLocalSpace + comp.getPosition(); - return (areaInLocalSpace + comp.getPosition()).transformed (*comp.affineTransform); + return (areaInLocalSpace + comp.getPosition()).transformedBy (*comp.affineTransform); } template @@ -257,6 +257,9 @@ struct Component::ComponentHelpers if (source->isOnDesktop()) { + if (source->isTransformed()) + p = p.transformedBy (source->getTransform()); + p = source->getPeer()->localToGlobal (p); source = nullptr; } @@ -274,9 +277,16 @@ struct Component::ComponentHelpers const Component* const topLevelComp = target->getTopLevelComponent(); if (topLevelComp->isOnDesktop()) + { p = topLevelComp->getPeer()->globalToLocal (p); + + if (topLevelComp->isTransformed()) + p = p.transformedBy (topLevelComp->getTransform().inverted()); + } else + { p = convertFromParentSpace (*topLevelComp, p); + } if (topLevelComp == target) return p; @@ -1792,7 +1802,7 @@ void Component::internalRepaintUnchecked (const Rectangle& area, const bool CHECK_MESSAGE_MANAGER_IS_LOCKED if (ComponentPeer* const peer = getPeer()) - peer->repaint (affineTransform != nullptr ? area.transformed (*affineTransform) + peer->repaint (affineTransform != nullptr ? area.transformedBy (*affineTransform) : area); } else @@ -2102,7 +2112,7 @@ Rectangle Component::getLocalBounds() const noexcept Rectangle Component::getBoundsInParent() const noexcept { return affineTransform == nullptr ? bounds - : bounds.transformed (*affineTransform); + : bounds.transformedBy (*affineTransform); } void Component::getVisibleArea (RectangleList& result, const bool includeSiblings) const diff --git a/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp b/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp index 23ab659470..59f02f7e58 100644 --- a/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp +++ b/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp @@ -78,33 +78,25 @@ void ComponentPeer::updateBounds() } //============================================================================== -static Point peerPositionToComp (ComponentPeer& peer, Point pos) -{ - if (peer.getComponent().isTransformed()) - return pos.transformedBy (peer.getComponent().getTransform().inverted()); - - return pos; -} - void ComponentPeer::handleMouseEvent (const int touchIndex, const Point positionWithinPeer, const ModifierKeys newMods, const int64 time) { if (MouseInputSource* mouse = Desktop::getInstance().getOrCreateMouseInputSource (touchIndex)) - mouse->handleEvent (*this, peerPositionToComp (*this, positionWithinPeer), time, newMods); + mouse->handleEvent (*this, positionWithinPeer, time, newMods); } void ComponentPeer::handleMouseWheel (const int touchIndex, const Point positionWithinPeer, const int64 time, const MouseWheelDetails& wheel) { if (MouseInputSource* mouse = Desktop::getInstance().getOrCreateMouseInputSource (touchIndex)) - mouse->handleWheel (*this, peerPositionToComp (*this, positionWithinPeer), time, wheel); + mouse->handleWheel (*this, positionWithinPeer, time, wheel); } void ComponentPeer::handleMagnifyGesture (const int touchIndex, const Point positionWithinPeer, const int64 time, const float scaleFactor) { if (MouseInputSource* mouse = Desktop::getInstance().getOrCreateMouseInputSource (touchIndex)) - mouse->handleMagnifyGesture (*this, peerPositionToComp (*this, positionWithinPeer), time, scaleFactor); + mouse->handleMagnifyGesture (*this, positionWithinPeer, time, scaleFactor); } //============================================================================== @@ -292,7 +284,7 @@ void ComponentPeer::handleMovedOrResized() { const WeakReference deletionChecker (&component); - const Rectangle newBounds (getBounds().transformed (component.getTransform().inverted())); + const Rectangle newBounds (getBounds().transformedBy (component.getTransform().inverted())); const bool wasMoved = (component.getPosition() != newBounds.getPosition()); const bool wasResized = (component.getWidth() != newBounds.getWidth() || component.getHeight() != newBounds.getHeight());