コード例 #1
0
ファイル: nsRect.cpp プロジェクト: MozillaOnline/gecko-dev
// Find difference between rects as an nsMargin
nsMargin nsRect::operator-(const nsRect& aRect) const
{
  nsMargin margin;
  margin.left = aRect.x - x;
  margin.right = XMost() - aRect.XMost();
  margin.top = aRect.y - y;
  margin.bottom = YMost() - aRect.YMost();
  return margin;
}
コード例 #2
0
ファイル: nsRect.cpp プロジェクト: MozillaOnline/gecko-dev
// scale the rect but round to smallest containing rect
nsRect& nsRect::ScaleRoundOut(float aScale) 
{
  nscoord right = NSToCoordCeil(float(XMost()) * aScale);
  nscoord bottom = NSToCoordCeil(float(YMost()) * aScale);
  x = NSToCoordFloor(float(x) * aScale);
  y = NSToCoordFloor(float(y) * aScale);
  width = (right - x);
  height = (bottom - y);
  return *this;
}
コード例 #3
0
ファイル: gfxRect.cpp プロジェクト: lofter2011/Icefox
gfxRect
gfxRect::Union(const gfxRect& aRect) const
{
    if (IsEmpty())
        return aRect;
    if (aRect.IsEmpty())
        return *this;

    gfxFloat x = PR_MIN(aRect.X(), X());
    gfxFloat xmost = PR_MAX(aRect.XMost(), XMost());
    gfxFloat y = PR_MIN(aRect.Y(), Y());
    gfxFloat ymost = PR_MAX(aRect.YMost(), YMost());
    return gfxRect(x, y, xmost - x, ymost - y);
}
コード例 #4
0
ファイル: gfxRect.cpp プロジェクト: Egyptghost1/DOMinator
void
gfxRect::RoundOut()
{
    gfxFloat x0 = floor(X());
    gfxFloat y0 = floor(Y());
    gfxFloat x1 = ceil(XMost());
    gfxFloat y1 = ceil(YMost());

    x = x0;
    y = y0;

    width = x1 - x0;
    height = y1 - y0;
}
コード例 #5
0
ファイル: gfxRect.cpp プロジェクト: lofter2011/Icefox
void
gfxRect::RoundOut()
{
    gfxFloat x0 = NS_floor(X());
    gfxFloat y0 = NS_floor(Y());
    gfxFloat x1 = NS_ceil(XMost());
    gfxFloat y1 = NS_ceil(YMost());

    pos.x = x0;
    pos.y = y0;

    size.width = x1 - x0;
    size.height = y1 - y0;
}
コード例 #6
0
ファイル: gfxRect.cpp プロジェクト: Egyptghost1/DOMinator
void
gfxRect::Round()
{
    // Note that don't use NS_round here. See the comment for this method in gfxRect.h
    gfxFloat x0 = floor(X() + 0.5);
    gfxFloat y0 = floor(Y() + 0.5);
    gfxFloat x1 = floor(XMost() + 0.5);
    gfxFloat y1 = floor(YMost() + 0.5);

    x = x0;
    y = y0;

    width = x1 - x0;
    height = y1 - y0;
}
コード例 #7
0
ファイル: gfxRect.cpp プロジェクト: lofter2011/Icefox
gfxRect
gfxRect::Intersect(const gfxRect& aRect) const
{
    gfxRect result(0,0,0,0);

    gfxFloat x = PR_MAX(aRect.X(), X());
    gfxFloat xmost = PR_MIN(aRect.XMost(), XMost());
    if (x >= xmost)
        return result;

    gfxFloat y = PR_MAX(aRect.Y(), Y());
    gfxFloat ymost = PR_MIN(aRect.YMost(), YMost());
    if (y >= ymost)
        return result;

    result = gfxRect(x, y, xmost - x, ymost - y);
    return result;
}
コード例 #8
0
ファイル: nsRect.cpp プロジェクト: MozillaOnline/gecko-dev
// Intersection. Returns TRUE if the receiver overlaps aRect and
// FALSE otherwise
PRBool nsRect::Intersects(const nsRect &aRect) const
{
  return (PRBool) ((x < aRect.XMost()) && (y < aRect.YMost()) &&
                   (aRect.x < XMost()) && (aRect.y < YMost()));
}
コード例 #9
0
ファイル: nsRect.cpp プロジェクト: MozillaOnline/gecko-dev
//Also Returns true if aRect is Empty
PRBool nsRect::Contains(const nsRect &aRect) const
{
  return aRect.IsEmpty() || 
          ((PRBool) ((aRect.x >= x) && (aRect.y >= y) &&
                    (aRect.XMost() <= XMost()) && (aRect.YMost() <= YMost())));
}
コード例 #10
0
ファイル: nsRect.cpp プロジェクト: MozillaOnline/gecko-dev
// Containment
PRBool nsRect::Contains(nscoord aX, nscoord aY) const
{
  return (PRBool) ((aX >= x) && (aY >= y) &&
                   (aX < XMost()) && (aY < YMost()));
}
コード例 #11
0
ファイル: gfxRect.cpp プロジェクト: lofter2011/Icefox
PRBool
gfxRect::Contains(const gfxPoint& aPoint) const
{
    return aPoint.x >= X() && aPoint.x <= XMost() &&
           aPoint.y >= Y() && aPoint.y <= YMost();
}
コード例 #12
0
ファイル: gfxRect.cpp プロジェクト: lofter2011/Icefox
PRBool
gfxRect::Contains(const gfxRect& aRect) const
{
    return aRect.X() >= X() && aRect.XMost() <= XMost() &&
           aRect.Y() >= Y() && aRect.YMost() <= YMost();
}