From e87f833183fa9a149fe327d2f4084ceae62c468b Mon Sep 17 00:00:00 2001 From: jules Date: Sun, 18 Mar 2012 17:22:05 +0000 Subject: [PATCH] Tidied up a few rectangle methods. --- .../native/juce_android_GraphicsContext.cpp | 2 +- .../native/juce_mac_CoreGraphicsHelpers.h | 6 ++--- .../components/juce_Component.cpp | 2 +- .../native/juce_win32_Windowing.cpp | 26 +++++++++---------- 4 files changed, 17 insertions(+), 19 deletions(-) diff --git a/modules/juce_graphics/native/juce_android_GraphicsContext.cpp b/modules/juce_graphics/native/juce_android_GraphicsContext.cpp index d96c4a61bc..95f7233350 100644 --- a/modules/juce_graphics/native/juce_android_GraphicsContext.cpp +++ b/modules/juce_graphics/native/juce_android_GraphicsContext.cpp @@ -411,7 +411,7 @@ public: const int bottom = env->GetIntField (rect, RectClass.bottom); env->DeleteLocalRef (rect); - return Rectangle (left, top, right - left, bottom - top); + return Rectangle::leftTopRightBottom (left, top, right, bottom); } bool isClipEmpty() const diff --git a/modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h b/modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h index 59a53ce90f..290d62f77a 100644 --- a/modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h +++ b/modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h @@ -31,19 +31,19 @@ namespace { template - Rectangle convertToRectInt (const RectType& r) + Rectangle convertToRectInt (const RectType& r) noexcept { return Rectangle ((int) r.origin.x, (int) r.origin.y, (int) r.size.width, (int) r.size.height); } template - Rectangle convertToRectFloat (const RectType& r) + Rectangle convertToRectFloat (const RectType& r) noexcept { return Rectangle (r.origin.x, r.origin.y, r.size.width, r.size.height); } template - CGRect convertToCGRect (const RectType& r) + CGRect convertToCGRect (const RectType& r) noexcept { return CGRectMake ((CGFloat) r.getX(), (CGFloat) r.getY(), (CGFloat) r.getWidth(), (CGFloat) r.getHeight()); } diff --git a/modules/juce_gui_basics/components/juce_Component.cpp b/modules/juce_gui_basics/components/juce_Component.cpp index e860bb1bf8..e1a73763aa 100644 --- a/modules/juce_gui_basics/components/juce_Component.cpp +++ b/modules/juce_gui_basics/components/juce_Component.cpp @@ -2124,7 +2124,7 @@ void Component::setPositioner (Positioner* newPositioner) //============================================================================== Rectangle Component::getLocalBounds() const noexcept { - return Rectangle (getWidth(), getHeight()); + return bounds.withZeroOrigin(); } Rectangle Component::getBoundsInParent() const noexcept diff --git a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp index f76c36da77..b3d4371fbd 100644 --- a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp +++ b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp @@ -117,6 +117,11 @@ static bool canUseMultiTouch() return registerTouchWindow != nullptr; } +static inline Rectangle rectangleFromRECT (const RECT& r) noexcept +{ + return Rectangle::leftTopRightBottom ((int) r.left, (int) r.top, (int) r.right, (int) r.bottom); +} + //============================================================================== Desktop::DisplayOrientation Desktop::getCurrentOrientation() const { @@ -602,8 +607,7 @@ public: { RECT r; GetWindowRect (hwnd, &r); - - Rectangle bounds (r.left, r.top, r.right - r.left, r.bottom - r.top); + Rectangle bounds (rectangleFromRECT (r)); HWND parentH = GetParent (hwnd); if (parentH != 0) @@ -1357,7 +1361,7 @@ private: if (GetUpdateRect (hwnd, &r, false)) { direct2DContext->start(); - direct2DContext->clipToRectangle (Rectangle (r.left, r.top, r.right - r.left, r.bottom - r.top)); + direct2DContext->clipToRectangle (rectangleFromRECT (r)); handlePaint (*direct2DContext); direct2DContext->end(); } @@ -1412,7 +1416,7 @@ private: Image& offscreenImage = offscreenImageGenerator.getImage (transparent, w, h); RectangleList contextClip; - const Rectangle clipBounds (0, 0, w, h); + const Rectangle clipBounds (w, h); bool needToPaintAll = true; @@ -1954,7 +1958,7 @@ private: { if (isConstrainedNativeWindow()) { - Rectangle pos (r->left, r->top, r->right - r->left, r->bottom - r->top); + Rectangle pos (rectangleFromRECT (*r)); constrainer->checkBounds (pos, windowBorder.addedTo (component->getBounds()), Desktop::getInstance().getAllMonitorDisplayAreas().getBounds(), @@ -3027,7 +3031,7 @@ void Desktop::setKioskComponent (Component* kioskModeComponent, bool enableOrDis static BOOL CALLBACK enumMonitorsProc (HMONITOR, HDC, LPRECT r, LPARAM userInfo) { Array >* const monitorCoords = (Array >*) userInfo; - monitorCoords->add (Rectangle (r->left, r->top, r->right - r->left, r->bottom - r->top)); + monitorCoords->add (rectangleFromRECT (*r)); return TRUE; } @@ -3044,8 +3048,7 @@ void Desktop::getCurrentMonitorPositions (Array >& monitorCoords { RECT r; GetWindowRect (GetDesktopWindow(), &r); - - monitorCoords.add (Rectangle (r.left, r.top, r.right - r.left, r.bottom - r.top)); + monitorCoords.add (rectangleFromRECT (r)); } if (clipToWorkArea) @@ -3055,12 +3058,7 @@ void Desktop::getCurrentMonitorPositions (Array >& monitorCoords SystemParametersInfo (SPI_GETWORKAREA, 0, &r, 0); Rectangle& screen = monitorCoords.getReference (0); - - screen.setPosition (jmax (screen.getX(), (int) r.left), - jmax (screen.getY(), (int) r.top)); - - screen.setSize (jmin (screen.getRight(), (int) r.right) - screen.getX(), - jmin (screen.getBottom(), (int) r.bottom) - screen.getY()); + screen = screen.getIntersection (rectangleFromRECT (r)); } }