Reviewed by Anders. Landed by rwlbuis.
authorrwlbuis <rwlbuis@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 16 Aug 2006 22:34:33 +0000 (22:34 +0000)
committerrwlbuis <rwlbuis@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 16 Aug 2006 22:34:33 +0000 (22:34 +0000)
        Fixes: http://bugzilla.opendarwin.org/show_bug.cgi?id=10447
        AffineTransform should be multi-platform compatible

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@15923 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/platform/AffineTransform.h
WebCore/platform/cg/AffineTransformCG.cpp

index 1de6aec..7a1bdf4 100644 (file)
@@ -1,3 +1,19 @@
+2006-08-17  Nikolas Zimmermann  <zimmermann@kde.org>
+
+        Reviewed by Anders.
+
+        Fixes: http://bugzilla.opendarwin.org/show_bug.cgi?id=10447
+        AffineTransform should be multi-platform compatible
+
+        * platform/AffineTransform.h:
+        * platform/cg/AffineTransformCG.cpp:
+        (WebCore::AffineTransform::m11):
+        (WebCore::AffineTransform::m12):
+        (WebCore::AffineTransform::m21):
+        (WebCore::AffineTransform::m22):
+        (WebCore::AffineTransform::dx):
+        (WebCore::AffineTransform::dy):
+
 2006-08-16  David Hyatt  <hyatt@apple.com>
 
         Fix an issue with CSS2 system fonts where they did not respect text
index f3d7197..ecf4e3a 100644 (file)
 #define AffineTransform_h
 
 #if __APPLE__
-
-// FIXME: Implementation is currently completely CG-specific, but soon to be fixed.
-
 #include <ApplicationServices/ApplicationServices.h>
+#elif PLATFORM(QT)
+#include <QMatrix>
+#endif
 
 namespace WebCore {
 
@@ -41,7 +41,11 @@ class AffineTransform {
 public:
     AffineTransform();
     AffineTransform(double a, double b, double c, double d, double tx, double ty);
+#if __APPLE__
     AffineTransform(CGAffineTransform transform);
+#elif PLATFORM(QT)
+    AffineTransform(const QMatrix &matrix);
+#endif
 
     void setMatrix(double a, double b, double c, double d, double tx, double ty);
     void map(double x, double y, double *x2, double *y2) const;
@@ -50,12 +54,12 @@ public:
     
     bool isIdentity() const;
     
-    double m11() const { return m_transform.a; }
-    double m12() const { return m_transform.b; }
-    double m21() const { return m_transform.c; }
-    double m22() const { return m_transform.d; }
-    double dx() const { return m_transform.tx; }
-    double dy() const { return m_transform.ty; }
+    double m11() const;
+    double m12() const;
+    double m21() const;
+    double m22() const;
+    double dx() const;
+    double dy() const;
 
     void reset();
     
@@ -68,18 +72,24 @@ public:
     bool isInvertible() const;
     AffineTransform invert() const;
 
+#if __APPLE__
     operator CGAffineTransform() const;
+#elif PLATFORM(QT)
+    operator QMatrix() const;
+#endif
 
     bool operator==(const AffineTransform&) const;
     AffineTransform& operator*=(const AffineTransform&);
     AffineTransform operator*(const AffineTransform&);
     
 private:
+#if __APPLE__
     CGAffineTransform m_transform;
+#elif PLATFORM(QT)
+    QMatrix m_transform;
+#endif
 };
 
 } // namespace WebCore
 
-#endif // __APPLE__
-
 #endif // AffineTransform_h
index 4d60f8b..f5a5a50 100644 (file)
@@ -75,6 +75,36 @@ bool AffineTransform::isIdentity() const
     return CGAffineTransformIsIdentity(m_transform);
 }
 
+double AffineTransform::m11() const
+{
+    return m_transform.a;
+}
+
+double AffineTransform::m12() const
+{
+    return m_transform.b;
+}
+
+double AffineTransform::m21() const
+{
+    return m_transform.c;
+}
+
+double AffineTransform::m22() const
+{
+    return m_transform.d;
+}
+
+double AffineTransform::dx() const
+{
+    return m_transform.tx;
+}
+
+double AffineTransform::dy() const
+{
+    return m_transform.ty;
+}
+
 void AffineTransform::reset()
 {
     m_transform = CGAffineTransformIdentity;