Move locale information into FontDescription
[WebKit-https.git] / Source / WebCore / platform / graphics / IntRect.h
index eb2e31b..54392ac 100644 (file)
@@ -49,10 +49,6 @@ typedef struct _NSRect NSRect;
 
 #if PLATFORM(WIN)
 typedef struct tagRECT RECT;
 
 #if PLATFORM(WIN)
 typedef struct tagRECT RECT;
-#elif PLATFORM(GTK)
-#ifdef GTK_API_VERSION_2
-typedef struct _GdkRectangle GdkRectangle;
-#endif
 #endif
 
 #if USE(CAIRO)
 #endif
 
 #if USE(CAIRO)
@@ -63,6 +59,7 @@ namespace WebCore {
 
 class FloatRect;
 class LayoutRect;
 
 class FloatRect;
 class LayoutRect;
+class TextStream;
 
 class IntRect {
     WTF_MAKE_FAST_ALLOCATED;
 
 class IntRect {
     WTF_MAKE_FAST_ALLOCATED;
@@ -73,8 +70,8 @@ public:
     IntRect(int x, int y, int width, int height)
         : m_location(IntPoint(x, y)), m_size(IntSize(width, height)) { }
 
     IntRect(int x, int y, int width, int height)
         : m_location(IntPoint(x, y)), m_size(IntSize(width, height)) { }
 
-    explicit IntRect(const FloatRect&); // don't do this implicitly since it's lossy
-    explicit IntRect(const LayoutRect&); // don't do this implicitly since it's lossy
+    WEBCORE_EXPORT explicit IntRect(const FloatRect&); // don't do this implicitly since it's lossy
+    WEBCORE_EXPORT explicit IntRect(const LayoutRect&); // don't do this implicitly since it's lossy
         
     IntPoint location() const { return m_location; }
     IntSize size() const { return m_size; }
         
     IntPoint location() const { return m_location; }
     IntSize size() const { return m_size; }
@@ -137,8 +134,8 @@ public:
     IntPoint minXMaxYCorner() const { return IntPoint(m_location.x(), m_location.y() + m_size.height()); } // typically bottomLeft
     IntPoint maxXMaxYCorner() const { return IntPoint(m_location.x() + m_size.width(), m_location.y() + m_size.height()); } // typically bottomRight
     
     IntPoint minXMaxYCorner() const { return IntPoint(m_location.x(), m_location.y() + m_size.height()); } // typically bottomLeft
     IntPoint maxXMaxYCorner() const { return IntPoint(m_location.x() + m_size.width(), m_location.y() + m_size.height()); } // typically bottomRight
     
-    bool intersects(const IntRect&) const;
-    bool contains(const IntRect&) const;
+    WEBCORE_EXPORT bool intersects(const IntRect&) const;
+    WEBCORE_EXPORT bool contains(const IntRect&) const;
 
     // This checks to see if the rect contains x,y in the traditional sense.
     // Equivalent to checking if the rect contains a 1x1 rect below and to the right of (px,py).
 
     // This checks to see if the rect contains x,y in the traditional sense.
     // Equivalent to checking if the rect contains a 1x1 rect below and to the right of (px,py).
@@ -146,8 +143,8 @@ public:
         { return px >= x() && px < maxX() && py >= y() && py < maxY(); }
     bool contains(const IntPoint& point) const { return contains(point.x(), point.y()); }
 
         { return px >= x() && px < maxX() && py >= y() && py < maxY(); }
     bool contains(const IntPoint& point) const { return contains(point.x(), point.y()); }
 
-    void intersect(const IntRect&);
-    void unite(const IntRect&);
+    WEBCORE_EXPORT void intersect(const IntRect&);
+    WEBCORE_EXPORT void unite(const IntRect&);
     void uniteIfNonZero(const IntRect&);
 
     void inflateX(int dx)
     void uniteIfNonZero(const IntRect&);
 
     void inflateX(int dx)
@@ -161,7 +158,7 @@ public:
         m_size.setHeight(m_size.height() + dy + dy);
     }
     void inflate(int d) { inflateX(d); inflateY(d); }
         m_size.setHeight(m_size.height() + dy + dy);
     }
     void inflate(int d) { inflateX(d); inflateY(d); }
-    void scale(float s);
+    WEBCORE_EXPORT void scale(float s);
 
     IntSize differenceToPoint(const IntPoint&) const;
     int distanceSquaredToPoint(const IntPoint& p) const { return differenceToPoint(p).diagonalLengthSquared(); }
 
     IntSize differenceToPoint(const IntPoint&) const;
     int distanceSquaredToPoint(const IntPoint& p) const { return differenceToPoint(p).diagonalLengthSquared(); }
@@ -171,11 +168,6 @@ public:
 #if PLATFORM(WIN)
     IntRect(const RECT&);
     operator RECT() const;
 #if PLATFORM(WIN)
     IntRect(const RECT&);
     operator RECT() const;
-#elif PLATFORM(GTK)
-#ifdef GTK_API_VERSION_2
-    IntRect(const GdkRectangle&);
-    operator GdkRectangle() const;
-#endif
 #elif PLATFORM(EFL)
     explicit IntRect(const Eina_Rectangle&);
     operator Eina_Rectangle() const;
 #elif PLATFORM(EFL)
     explicit IntRect(const Eina_Rectangle&);
     operator Eina_Rectangle() const;
@@ -187,18 +179,13 @@ public:
 #endif
 
 #if USE(CG)
 #endif
 
 #if USE(CG)
-    operator CGRect() const;
+    WEBCORE_EXPORT operator CGRect() const;
 #endif
 
 #if PLATFORM(MAC) && !defined(NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES)
 #endif
 
 #if PLATFORM(MAC) && !defined(NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES)
-    operator NSRect() const;
+    WEBCORE_EXPORT operator NSRect() const;
 #endif
 
 #endif
 
-    void dump(WTF::PrintStream& out) const;
-
-    static IntRect infiniteRect();
-    bool isInfinite() const;
-
 private:
     IntPoint m_location;
     IntSize m_size;
 private:
     IntPoint m_location;
     IntSize m_size;
@@ -228,25 +215,28 @@ inline bool operator!=(const IntRect& a, const IntRect& b)
     return a.location() != b.location() || a.size() != b.size();
 }
 
     return a.location() != b.location() || a.size() != b.size();
 }
 
-inline IntRect IntRect::infiniteRect()
+inline IntRect& operator-=(IntRect& r, const IntPoint& offset)
 {
 {
-    static IntRect infiniteRect(-LayoutUnit::max() / 2, -LayoutUnit::max() / 2, LayoutUnit::max(), LayoutUnit::max());
-    return infiniteRect;
+    r.move(-offset.x(), -offset.y());
+    return r;
 }
 
 }
 
-inline bool IntRect::isInfinite() const
+inline IntRect operator-(const IntRect& r, const IntPoint& offset)
 {
 {
-    return *this == infiniteRect();
+    IntRect t = r;
+    return t -= offset;
 }
 
 #if USE(CG)
 }
 
 #if USE(CG)
-IntRect enclosingIntRect(const CGRect&);
+WEBCORE_EXPORT IntRect enclosingIntRect(const CGRect&);
 #endif
 
 #if PLATFORM(MAC) && !defined(NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES)
 #endif
 
 #if PLATFORM(MAC) && !defined(NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES)
-IntRect enclosingIntRect(const NSRect&);
+WEBCORE_EXPORT IntRect enclosingIntRect(const NSRect&);
 #endif
 
 #endif
 
+WEBCORE_EXPORT TextStream& operator<<(TextStream&, const IntRect&);
+
 } // namespace WebCore
 
 #endif // IntRect_h
 } // namespace WebCore
 
 #endif // IntRect_h