Skip to content

Commit

Permalink
Made the BRect::*Copy() methods const as they should have been.
Browse files Browse the repository at this point in the history
  • Loading branch information
axeld committed Nov 5, 2012
1 parent 2267b7e commit 6643ead
Show file tree
Hide file tree
Showing 2 changed files with 88 additions and 27 deletions.
20 changes: 10 additions & 10 deletions headers/os/interface/Rect.h
@@ -1,16 +1,16 @@
/*
* Copyright 2001-2009, Haiku, Inc. All rights reserved.
* Copyright 2001-2012, Haiku, Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _RECT_H
#define _RECT_H


#include <math.h>

#include <Point.h>
#include <Size.h>

#include <math.h>


class BRect {
public:
Expand Down Expand Up @@ -54,16 +54,16 @@ class BRect {
// Expression transformations
BRect& InsetBySelf(BPoint inset);
BRect& InsetBySelf(float dx, float dy);
BRect InsetByCopy(BPoint inset);
BRect InsetByCopy(float dx, float dy);
BRect InsetByCopy(BPoint inset) const;
BRect InsetByCopy(float dx, float dy) const;
BRect& OffsetBySelf(BPoint offset);
BRect& OffsetBySelf(float dx, float dy);
BRect OffsetByCopy(BPoint offset);
BRect OffsetByCopy(float dx, float dy);
BRect OffsetByCopy(BPoint offset) const;
BRect OffsetByCopy(float dx, float dy) const;
BRect& OffsetToSelf(BPoint offset);
BRect& OffsetToSelf(float dx, float dy);
BRect OffsetToCopy(BPoint offset);
BRect OffsetToCopy(float dx, float dy);
BRect OffsetToCopy(BPoint offset) const;
BRect OffsetToCopy(float dx, float dy) const;

// Comparison
bool operator==(BRect r) const;
Expand Down Expand Up @@ -120,7 +120,7 @@ inline
BRect::BRect()
:
left(0),
top(0),
top(0),
right(-1),
bottom(-1)
{
Expand Down
95 changes: 78 additions & 17 deletions src/kits/interface/Rect.cpp
@@ -1,5 +1,5 @@
/*
* Copyright 2001-2007, Haiku, Inc. All Rights Reserved.
* Copyright 2001-2012, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
Expand Down Expand Up @@ -80,7 +80,7 @@ BRect::InsetBySelf(float dx, float dy)


BRect
BRect::InsetByCopy(BPoint point)
BRect::InsetByCopy(BPoint point) const
{
BRect copy(*this);
copy.InsetBy(point);
Expand All @@ -89,7 +89,7 @@ BRect::InsetByCopy(BPoint point)


BRect
BRect::InsetByCopy(float dx, float dy)
BRect::InsetByCopy(float dx, float dy) const
{
BRect copy(*this);
copy.InsetBy(dx, dy);
Expand Down Expand Up @@ -134,7 +134,7 @@ BRect::OffsetBySelf(float dx, float dy)


BRect
BRect::OffsetByCopy(BPoint point)
BRect::OffsetByCopy(BPoint point) const
{
BRect copy(*this);
copy.OffsetBy(point);
Expand All @@ -143,7 +143,7 @@ BRect::OffsetByCopy(BPoint point)


BRect
BRect::OffsetByCopy(float dx, float dy)
BRect::OffsetByCopy(float dx, float dy) const
{
BRect copy(*this);
copy.OffsetBy(dx, dy);
Expand Down Expand Up @@ -188,7 +188,7 @@ BRect::OffsetToSelf(float dx, float dy)


BRect
BRect::OffsetToCopy(BPoint point)
BRect::OffsetToCopy(BPoint point) const
{
BRect copy(*this);
copy.OffsetTo(point);
Expand All @@ -197,7 +197,7 @@ BRect::OffsetToCopy(BPoint point)


BRect
BRect::OffsetToCopy(float dx, float dy)
BRect::OffsetToCopy(float dx, float dy) const
{
BRect copy(*this);
copy.OffsetTo(dx, dy);
Expand All @@ -215,31 +215,31 @@ BRect::PrintToStream() const
bool
BRect::operator==(BRect rect) const
{
return left == rect.left && right == rect.right &&
top == rect.top && bottom == rect.bottom;
return left == rect.left && right == rect.right &&
top == rect.top && bottom == rect.bottom;
}


bool
BRect::operator!=(BRect rect) const
{
return !(*this == rect);
return !(*this == rect);
}


BRect
BRect::operator&(BRect rect) const
{
return BRect(max_c(left, rect.left), max_c(top, rect.top),
min_c(right, rect.right), min_c(bottom, rect.bottom));
return BRect(max_c(left, rect.left), max_c(top, rect.top),
min_c(right, rect.right), min_c(bottom, rect.bottom));
}


BRect
BRect::operator|(BRect rect) const
{
return BRect(min_c(left, rect.left), min_c(top, rect.top),
max_c(right, rect.right), max_c(bottom, rect.bottom));
return BRect(min_c(left, rect.left), min_c(top, rect.top),
max_c(right, rect.right), max_c(bottom, rect.bottom));
}


Expand All @@ -250,21 +250,82 @@ BRect::Intersects(BRect rect) const
return false;

return !(rect.left > right || rect.right < left
|| rect.top > bottom || rect.bottom < top);
|| rect.top > bottom || rect.bottom < top);
}


bool
BRect::Contains(BPoint point) const
{
return point.x >= left && point.x <= right
&& point.y >= top && point.y <= bottom;
&& point.y >= top && point.y <= bottom;
}


bool
BRect::Contains(BRect rect) const
{
return rect.left >= left && rect.right <= right
&& rect.top >= top && rect.bottom <= bottom;
&& rect.top >= top && rect.bottom <= bottom;
}


// #pragma mark - BeOS compatibility only
#if __GNUC__ == 2


extern "C" BRect
InsetByCopy__5BRectG6BPoint(BRect* self, BPoint point)
{
BRect copy(*self);
copy.InsetBy(point);
return copy;
}


extern "C" BRect
InsetByCopy__5BRectff(BRect* self, float dx, float dy)
{
BRect copy(*self);
copy.InsetBy(dx, dy);
return copy;
}


extern "C" BRect
OffsetByCopy__5BRectG6BPoint(BRect* self, BPoint point)
{
BRect copy(*self);
copy.OffsetBy(point);
return copy;
}


extern "C" BRect
OffsetByCopy__5BRectff(BRect* self, float dx, float dy)
{
BRect copy(*self);
copy.OffsetBy(dx, dy);
return copy;
}


extern "C" BRect
OffsetToCopy__5BRectG6BPoint(BRect* self, BPoint point)
{
BRect copy(*self);
copy.OffsetTo(point);
return copy;
}


extern "C" BRect
OffsetToCopy__5BRectff(BRect* self, float dx, float dy)
{
BRect copy(*self);
copy.OffsetTo(dx, dy);
return copy;
}


#endif // __GNUC__ == 2

0 comments on commit 6643ead

Please sign in to comment.