2006-11-10 Zalan Bujtas <zalan.bujtas@nokia.com>
authorbdash <bdash@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 11 Nov 2006 02:55:57 +0000 (02:55 +0000)
committerbdash <bdash@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 11 Nov 2006 02:55:57 +0000 (02:55 +0000)
        Reviewed by Maciej.

        Added s60/symbian platform defines.
        http://bugs.webkit.org/show_bug.cgi?id=11540

        * wtf/Platform.h:
2006-11-10  Zalan Bujtas <zalan.bujtas@nokia.com>

        Reviewed by Maciej.

        Added basic types for symbian platform.
        http://bugs.webkit.org/show_bug.cgi?id=11540

        * config.h:
        * platform/AtomicString.h:
        (WebCore::AtomicString::AtomicString):
        (WebCore::AtomicString::operator TPtrC):
        * platform/DeprecatedString.cpp:
        (WebCore::initializeHandleNodeBlock):
        * platform/DeprecatedString.h: char _internalBuffer has to be in front of
          the bitfields as Codewarrior (3.2.5 build 461) compiler cannot cope with
          bitfields and breaks byte aligment
        * platform/FloatPoint.h:
        * platform/FloatRect.h:
        * platform/IntPoint.h:
        * platform/IntRect.h:
        * platform/IntSize.h:
        * platform/PlatformString.h:
        (WebCore::String::operator TPtrC):
        (WebCore::String::des):
        * platform/StringImpl.h:
        * platform/symbian/DeprecatedStringSymbian.cpp: Added.
        (WebCore::DeprecatedString::setBufferFromDes):
        (WebCore::DeprecatedString::fromDes):
        (WebCore::DeprecatedString::des):
        (WebCore::DeprecatedString::des8):
        * platform/symbian/FloatPointSymbian.cpp: Added.
        (WebCore::FloatPoint::FloatPoint):
        (WebCore::FloatPoint::operator TPoint):
        * platform/symbian/FloatRectSymbian.cpp: Added.
        (WebCore::FloatRect::FloatRect):
        (WebCore::FloatRect::operator TRect):
        (WebCore::FloatRect::rect):
        * platform/symbian/IntPointSymbian.cpp: Added.
        (WebCore::IntPoint::IntPoint):
        (WebCore::IntPoint::operator TPoint):
        * platform/symbian/IntRectSymbian.cpp: Added.
        (WebCore::IntRect::IntRect):
        (WebCore::IntRect::operator TRect):
        (WebCore::IntRect::Rect):
        * platform/symbian/IntSizeSymbian.cpp: Added.
        (WebCore::IntSize::IntSize):
        (WebCore::IntSize::operator TSize):
        * platform/symbian/StringImplSymbian.cpp: Added.
        (WebCore::StringImpl::StringImpl):
        (WebCore::StringImpl::des):
        * platform/symbian/StringSymbian.cpp: Added.
        (WebCore::String::String):

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

22 files changed:
JavaScriptCore/ChangeLog
JavaScriptCore/wtf/Platform.h
WebCore/ChangeLog
WebCore/config.h
WebCore/platform/AtomicString.h
WebCore/platform/DeprecatedString.cpp
WebCore/platform/DeprecatedString.h
WebCore/platform/FloatPoint.h
WebCore/platform/FloatRect.h
WebCore/platform/IntPoint.h
WebCore/platform/IntRect.h
WebCore/platform/IntSize.h
WebCore/platform/PlatformString.h
WebCore/platform/StringImpl.h
WebCore/platform/symbian/DeprecatedStringSymbian.cpp [new file with mode: 0644]
WebCore/platform/symbian/FloatPointSymbian.cpp [new file with mode: 0644]
WebCore/platform/symbian/FloatRectSymbian.cpp [new file with mode: 0644]
WebCore/platform/symbian/IntPointSymbian.cpp [new file with mode: 0644]
WebCore/platform/symbian/IntRectSymbian.cpp [new file with mode: 0644]
WebCore/platform/symbian/IntSizeSymbian.cpp [new file with mode: 0644]
WebCore/platform/symbian/StringImplSymbian.cpp [new file with mode: 0644]
WebCore/platform/symbian/StringSymbian.cpp [new file with mode: 0644]

index 7e9839100e07cfe56fa49a5973b7919593c03dbe..053f5fd17c57d0d3a1aadd84a8d84f42493776ab 100644 (file)
@@ -1,3 +1,12 @@
+2006-11-10  Zalan Bujtas  <zalan.bujtas@nokia.com>
+
+        Reviewed by Maciej.
+
+        Added s60/symbian platform defines.
+        http://bugs.webkit.org/show_bug.cgi?id=11540
+
+        * wtf/Platform.h:
+
 === Safari-521.30 ===
 
 2006-11-08  Ada Chan  <adachan@apple.com>
index d605d6e94edd3ba1dd16d1a4f3539ef47c9ef70e..aa85aa1651e7bc8f9979be2d1006a019ab2e503f 100644 (file)
 #define WTF_PLATFORM_CAIRO 1
 #endif
 
+
+#ifdef __S60__
+// we are cross-compiling, it is not really windows
+#undef WTF_PLATFORM_WIN_OS
+#undef WTF_PLATFORM_WIN
+#undef WTF_PLATFORM_CAIRO
+#define WTF_PLATFORM_S60 1
+#define WTF_PLATFORM_SYMBIAN 1
+#endif
+
 /* CPU */
 
 /* PLATFORM(PPC) */
 #if PLATFORM(KDE)
 /* FIXME: Not using Qt4 unicode for now! */
 #define WTF_USE_ICU_UNICODE 1
+#elif PLATFORM(SYMBIAN)
+#define WTF_USE_SYMBIAN_UNICODE 1
 #else
 #define WTF_USE_ICU_UNICODE 1
 #endif
index 54ea173a9d3aa822791a209e71533d95892647cc..0330eb1bbbfa87e0980aa6c16bfe919206994a11 100644 (file)
@@ -1,3 +1,56 @@
+2006-11-10  Zalan Bujtas <zalan.bujtas@nokia.com>
+
+        Reviewed by Maciej.
+
+        Added basic types for symbian platform.
+        http://bugs.webkit.org/show_bug.cgi?id=11540
+
+        * config.h:
+        * platform/AtomicString.h:
+        (WebCore::AtomicString::AtomicString):
+        (WebCore::AtomicString::operator TPtrC):
+        * platform/DeprecatedString.cpp:
+        (WebCore::initializeHandleNodeBlock):
+        * platform/DeprecatedString.h: char _internalBuffer has to be in front of
+          the bitfields as Codewarrior (3.2.5 build 461) compiler cannot cope with
+          bitfields and breaks byte aligment
+        * platform/FloatPoint.h:
+        * platform/FloatRect.h:
+        * platform/IntPoint.h:
+        * platform/IntRect.h:
+        * platform/IntSize.h:
+        * platform/PlatformString.h:
+        (WebCore::String::operator TPtrC):
+        (WebCore::String::des):
+        * platform/StringImpl.h:
+        * platform/symbian/DeprecatedStringSymbian.cpp: Added.
+        (WebCore::DeprecatedString::setBufferFromDes):
+        (WebCore::DeprecatedString::fromDes):
+        (WebCore::DeprecatedString::des):
+        (WebCore::DeprecatedString::des8):
+        * platform/symbian/FloatPointSymbian.cpp: Added.
+        (WebCore::FloatPoint::FloatPoint):
+        (WebCore::FloatPoint::operator TPoint):
+        * platform/symbian/FloatRectSymbian.cpp: Added.
+        (WebCore::FloatRect::FloatRect):
+        (WebCore::FloatRect::operator TRect):
+        (WebCore::FloatRect::rect):
+        * platform/symbian/IntPointSymbian.cpp: Added.
+        (WebCore::IntPoint::IntPoint):
+        (WebCore::IntPoint::operator TPoint):
+        * platform/symbian/IntRectSymbian.cpp: Added.
+        (WebCore::IntRect::IntRect):
+        (WebCore::IntRect::operator TRect):
+        (WebCore::IntRect::Rect):
+        * platform/symbian/IntSizeSymbian.cpp: Added.
+        (WebCore::IntSize::IntSize):
+        (WebCore::IntSize::operator TSize):
+        * platform/symbian/StringImplSymbian.cpp: Added.
+        (WebCore::StringImpl::StringImpl):
+        (WebCore::StringImpl::des):
+        * platform/symbian/StringSymbian.cpp: Added.
+        (WebCore::String::String):
+
 2006-11-10  Zack Rusin  <zack@kde.org>
 
         Reviewed by Anders.
index 04a67d2339c6a59900ac7ff81371dc8ec59c3416..b02b54613087a0da0d7c177f1936605377e9e5e4 100644 (file)
@@ -59,6 +59,10 @@ typedef float CGFloat;
 
 #endif /* PLATFORM(WIN_OS) */
 
+#if !PLATFORM(SYMBIAN)
+#define IMPORT_C
+#define EXPORT_C
+#endif
 
 #ifdef __cplusplus
 
@@ -78,3 +82,23 @@ typedef float CGFloat;
 #define WTF_USE_JAVASCRIPTCORE_BINDINGS 1
 #define WTF_USE_NPOBJECT 1
 #endif
+
+#if PLATFORM(SYMBIAN)
+#define WTF_USE_JAVASCRIPTCORE_BINDINGS 1
+#define WTF_USE_NPOBJECT 1
+#undef XSLT_SUPPORT
+#undef WIN32
+#undef _WIN32
+#undef AVOID_STATIC_CONSTRUCTORS
+#define USE_SYSTEM_MALLOC 1
+#define U_HAVE_INT8_T 0
+#define U_HAVE_INT16_T 0
+#define U_HAVE_INT32_T 0
+#define U_HAVE_INT64_T 0
+#define U_HAVE_INTTYPES_H 0
+
+#include <stdio.h>
+#include <snprintf.h>
+#include <limits.h>
+#include <wtf/MathExtras.h>
+#endif
index eeb2cea4318a7bdba89ef680968c510ff647b382..72d467b1ac6a936a57634d78b8c0476e0af5e6e1 100644 (file)
@@ -82,6 +82,10 @@ public:
     AtomicString(NSString* s) : m_string(add(String(s).impl())) { }
     operator NSString*() const { return m_string; }
 #endif
+#if PLATFORM(SYMBIAN)
+    AtomicString(const TDesC& s) : m_string(add(String(s).impl())) { }
+    operator TPtrC() const { return m_string; }
+#endif
 
     AtomicString(const DeprecatedString&);
     DeprecatedString deprecatedString() const;
index 5738180c61200c608af1499d87fbd9beed1955ed..a35bc021370fa67ae002c80cdee58c10a44db9ff 100644 (file)
@@ -52,6 +52,12 @@ namespace WebCore {
 
 #define CHECK_FOR_HANDLE_LEAKS 0
 
+#if PLATFORM(SYMBIAN)
+#undef CHECK_FOR_HANDLE_LEAKS
+// symbian:fixme need page aligned allocations as Symbian platform does not have support for valloc
+#define CHECK_FOR_HANDLE_LEAKS 1
+#endif
+
 #define ALLOC_QCHAR_GOOD_SIZE(X) (X)
 #define ALLOC_CHAR_GOOD_SIZE(X) (X)
 
@@ -2449,6 +2455,9 @@ static HandleNode *initializeHandleNodeBlock(HandlePageNode *pageNode)
 
 #if PLATFORM(WIN_OS)
     block = (HandleNode*)VirtualAlloc(0, pageSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
+#elif PLATFORM(SYMBIAN)
+    // symbian::fixme needs to do page aligned allocation as valloc is not supported.
+    block = NULL;
 #else
     block = (HandleNode*)valloc(pageSize);
 #endif
index c9335a6bad8235c86c3397bbfe0d4b618e7e649d..9e3d684c2ab1bba32ab0d8c12136b2c24b48400a 100644 (file)
@@ -215,14 +215,14 @@ struct DeprecatedStringData
     unsigned _length;
     mutable DeprecatedChar *_unicode;
     mutable char *_ascii;
+    char _internalBuffer[WEBCORE_DS_INTERNAL_BUFFER_SIZE]; // Pad out to a (((size + 1) & ~15) + 14) size
+
     unsigned _maxUnicode : 30;
     bool _isUnicodeValid : 1;
     bool _isHeapAllocated : 1; // Fragile, but the only way we can be sure the instance was created with 'new'.
     unsigned _maxAscii : 31;
     bool _isAsciiValid : 1;
     
-    char _internalBuffer[WEBCORE_DS_INTERNAL_BUFFER_SIZE]; // Pad out to a (((size + 1) & ~15) + 14) size
-
 private:
     DeprecatedStringData(const DeprecatedStringData &);
     DeprecatedStringData &operator=(const DeprecatedStringData &);
@@ -267,6 +267,10 @@ public:
 #endif
 #if PLATFORM(MAC)
     static DeprecatedString fromNSString(NSString*);
+#endif
+#if PLATFORM(SYMBIAN)
+    static DeprecatedString fromDes(const TDesC&);
+    static DeprecatedString fromDes(const TDesC8&);
 #endif
     DeprecatedString &operator=(char);
     DeprecatedString &operator=(DeprecatedChar);
@@ -404,6 +408,13 @@ public:
 
 #endif
 
+#if PLATFORM(SYMBIAN)
+    TPtrC des() const;
+    TPtrC8 des8() const;
+    void setBufferFromDes(const TDesC&);
+    void setBufferFromDes(const TDesC8&);
+#endif
+
 private:
     // Used by DeprecatedConstString.
     DeprecatedString(DeprecatedStringData *constData, bool /*dummy*/);
index 35d91847dd5ab2ad54f197c4152c83ed1719a5f3..84cf196fce23ba75e7473bc8c077af65fd844fba 100644 (file)
@@ -46,6 +46,10 @@ typedef struct _NSPoint NSPoint;
 class QPointF;
 #endif
 
+#if PLATFORM(SYMBIAN)
+class TPoint;
+#endif
+
 namespace WebCore {
 
 class IntPoint;
@@ -78,6 +82,11 @@ public:
     operator QPointF() const;
 #endif
 
+#if PLATFORM(SYMBIAN)
+    operator TPoint() const;
+    FloatPoint(const TPoint& );
+#endif
+
 private:
     float m_x, m_y;
 };
index 47d375f6da91ae8ab3c7f74e6818b67e5afc96db..85cec4f426c5d9469bfff4eae5de229cdd00acbb 100644 (file)
@@ -120,6 +120,11 @@ public:
     FloatRect(const QRectF&);
     operator QRectF() const;
 #endif
+#if PLATFORM(SYMBIAN)
+    FloatRect(const TRect&);
+    operator TRect() const;
+    TRect rect() const;
+#endif
 
 private:
     FloatPoint m_location;
index f44314290446be7fccebb6e03f7972ea2c010eab..81844e128e02719a905e9dacd7a166cbefe4cd82 100644 (file)
@@ -47,6 +47,9 @@ typedef struct tagPOINTS POINTS;
 #elif PLATFORM(QT)
 class QPoint;
 #endif
+#if PLATFORM(SYMBIAN)
+class TPoint;
+#endif
 
 namespace WebCore {
 
@@ -82,6 +85,10 @@ public:
     IntPoint(const QPoint&);
     operator QPoint() const;
 #endif
+#if PLATFORM(SYMBIAN)
+    IntPoint(const TPoint&);
+    operator TPoint() const;
+#endif
 
 private:
     int m_x, m_y;
index e7a83416d38d20ea29998c8fae23b6bd1c3cca2d..4336ea2df622b0371bfb54ee425b50e576451a4d 100644 (file)
@@ -46,6 +46,9 @@ typedef struct tagRECT RECT;
 #elif PLATFORM(QT)
 class QRect;
 #endif
+#if PLATFORM(SYMBIAN)
+class TRect;
+#endif
 
 namespace WebCore {
 
@@ -113,6 +116,11 @@ public:
     IntRect(const QRect&);
     operator QRect() const;
 #endif
+#if PLATFORM(SYMBIAN)
+    IntRect(const TRect&);
+    operator TRect() const;
+    TRect Rect() const;
+#endif
 
 #if PLATFORM(CG)
     operator CGRect() const;
index f0122ade644d8f6009de1621251c9818dba79c52..45f01a44a79ebf6ed5fb6c77fbd54d7333045eae 100644 (file)
@@ -45,6 +45,9 @@ typedef struct tagSIZE SIZE;
 #elif PLATFORM(QT)
 class QSize;
 #endif
+#if PLATFORM(SYMBIAN)
+class TSize;
+#endif
 
 namespace WebCore {
 
@@ -97,6 +100,10 @@ public:
     IntSize(const QSize&);
     operator QSize() const;
 #endif
+#if PLATFORM(SYMBIAN)
+    IntSize(const TSize&);
+    operator TSize() const;
+#endif
 
 
 private:
index 850defe3d65a45fbea0a80462c97ac702ab2cbee..8dc96dba41ad35c0765b922336c2be1ace9798a4 100644 (file)
@@ -167,6 +167,12 @@ public:
     operator QString() const;
 #endif
 
+#if PLATFORM(SYMBIAN)
+    String(const TDesC&);
+    operator TPtrC() const { return des(); }
+    TPtrC des() const { if (!m_impl) return KNullDesC(); return m_impl->des(); }
+#endif
+
 #ifndef NDEBUG
     // For debugging only, leaks memory.
     Vector<char> ascii() const;
index b18180a497c4e4ab2ac500bc19eeab77f7497979..a33fe077c0e60f5b649a983949f3bae459f0872a 100644 (file)
@@ -142,6 +142,10 @@ public:
     StringImpl(NSString*);
     operator NSString*() const;
 #endif
+#if PLATFORM(SYMBIAN)
+    StringImpl(const TDesC&);
+    TPtrC des() const;
+#endif
 
     StringImpl(const DeprecatedString&);
 
diff --git a/WebCore/platform/symbian/DeprecatedStringSymbian.cpp b/WebCore/platform/symbian/DeprecatedStringSymbian.cpp
new file mode 100644 (file)
index 0000000..a1a0a45
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+* ==============================================================================
+*    Copyright (c) 2006, Nokia Corporation
+*    All rights reserved.
+*
+*   Redistribution and use in source and binary forms, with or without
+*   modification, are permitted provided that the following conditions
+*   are met:
+*
+*      * Redistributions of source code must retain the above copyright
+*        notice, this list of conditions and the following disclaimer.
+*      * Redistributions in binary form must reproduce the above copyright
+*        notice, this list of conditions and the following disclaimer in
+*        the documentation and/or other materials provided with the
+*        distribution.
+*      * Neither the name of the Nokia Corporation nor the names of its
+*        contributors may be used to endorse or promote products derived
+*        from this software without specific prior written permission.
+*
+*   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+*   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+*   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+*   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+*   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+*   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+*   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+*   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+*   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+*   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+*   USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+*   DAMAGE.
+*
+* ==============================================================================
+*/
+
+#include "config.h"
+#include "DeprecatedString.h"
+
+namespace WebCore {
+
+void DeprecatedString::setBufferFromDes(const TDesC& des)
+{
+    setUnicode((const DeprecatedChar *)des.Ptr(), (uint)des.Length());
+}
+
+void DeprecatedString::setBufferFromDes(const TDesC8& des)
+{
+    setLatin1((const char*)des.Ptr(), (uint)des.Length());
+}
+
+DeprecatedString DeprecatedString::fromDes(const TDesC& des)
+{
+    DeprecatedString s;
+    s.setBufferFromDes(des);
+    return s;
+}
+
+DeprecatedString DeprecatedString::fromDes(const TDesC8& des)
+{
+    DeprecatedString s;
+    s.setBufferFromDes(des);
+    return s;
+}
+
+TPtrC DeprecatedString::des() const
+{
+    if (!dataHandle[0]->_isUnicodeValid)
+        dataHandle[0]->makeUnicode();
+
+    TPtrC tstr((const TUint16*)unicode(), length() );
+
+    return tstr;
+}
+
+TPtrC8 DeprecatedString::des8() const
+{
+    TPtrC8 tstr((const TUint8*)latin1(), length());
+
+    return tstr;
+}
+
+}
\ No newline at end of file
diff --git a/WebCore/platform/symbian/FloatPointSymbian.cpp b/WebCore/platform/symbian/FloatPointSymbian.cpp
new file mode 100644 (file)
index 0000000..2cdf838
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+* ==============================================================================
+*    Copyright (c) 2006, Nokia Corporation
+*    All rights reserved.
+*
+*   Redistribution and use in source and binary forms, with or without
+*   modification, are permitted provided that the following conditions
+*   are met:
+*
+*      * Redistributions of source code must retain the above copyright
+*        notice, this list of conditions and the following disclaimer.
+*      * Redistributions in binary form must reproduce the above copyright
+*        notice, this list of conditions and the following disclaimer in
+*        the documentation and/or other materials provided with the
+*        distribution.
+*      * Neither the name of the Nokia Corporation nor the names of its
+*        contributors may be used to endorse or promote products derived
+*        from this software without specific prior written permission.
+*
+*   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+*   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+*   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+*   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+*   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+*   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+*   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+*   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+*   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+*   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+*   USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+*   DAMAGE.
+*
+* ==============================================================================
+*/
+
+#include "config.h"
+#include "FloatPoint.h"
+#include <e32cmn.h>
+
+namespace WebCore {
+
+FloatPoint::FloatPoint(const TPoint& p)
+    : m_x(p.iX)
+    , m_y(p.iY)
+{
+}
+
+FloatPoint::operator TPoint() const
+{
+    return TPoint(m_x, m_y);
+}
+
+}
diff --git a/WebCore/platform/symbian/FloatRectSymbian.cpp b/WebCore/platform/symbian/FloatRectSymbian.cpp
new file mode 100644 (file)
index 0000000..b565b0c
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+* ==============================================================================
+*    Copyright (c) 2006, Nokia Corporation
+*    All rights reserved.
+*
+*   Redistribution and use in source and binary forms, with or without
+*   modification, are permitted provided that the following conditions
+*   are met:
+*
+*      * Redistributions of source code must retain the above copyright
+*        notice, this list of conditions and the following disclaimer.
+*      * Redistributions in binary form must reproduce the above copyright
+*        notice, this list of conditions and the following disclaimer in
+*        the documentation and/or other materials provided with the
+*        distribution.
+*      * Neither the name of the Nokia Corporation nor the names of its
+*        contributors may be used to endorse or promote products derived
+*        from this software without specific prior written permission.
+*
+*   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+*   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+*   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+*   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+*   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+*   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+*   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+*   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+*   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+*   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+*   USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+*   DAMAGE.
+*
+* ==============================================================================
+*/
+
+#include "config.h"
+#include "FloatRect.h"
+#include "IntSize.h"
+#include "IntPoint.h"
+#include <e32std.h>
+
+namespace WebCore {
+
+FloatRect::FloatRect(const TRect& r)
+    : m_location(IntPoint(r.iTl.iX, r.iTl.iY))
+    , m_size(IntSize(r.Size().iWidth, r.Size().iHeight))
+{
+}
+
+FloatRect::operator TRect() const
+{
+    return TRect(x(), y(), right(), bottom());
+}
+
+TRect FloatRect::rect() const
+{
+    return TRect(x(), y(), right(), bottom());
+}
+
+}
diff --git a/WebCore/platform/symbian/IntPointSymbian.cpp b/WebCore/platform/symbian/IntPointSymbian.cpp
new file mode 100644 (file)
index 0000000..8ccfb00
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+* ==============================================================================
+*    Copyright (c) 2006, Nokia Corporation
+*    All rights reserved.
+*
+*   Redistribution and use in source and binary forms, with or without
+*   modification, are permitted provided that the following conditions
+*   are met:
+*
+*      * Redistributions of source code must retain the above copyright
+*        notice, this list of conditions and the following disclaimer.
+*      * Redistributions in binary form must reproduce the above copyright
+*        notice, this list of conditions and the following disclaimer in
+*        the documentation and/or other materials provided with the
+*        distribution.
+*      * Neither the name of the Nokia Corporation nor the names of its
+*        contributors may be used to endorse or promote products derived
+*        from this software without specific prior written permission.
+*
+*   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+*   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+*   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+*   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+*   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+*   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+*   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+*   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+*   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+*   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+*   USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+*   DAMAGE.
+*
+* ==============================================================================
+*/
+
+#include "config.h"
+#include "IntPoint.h"
+#include <e32std.h>
+
+namespace WebCore {
+
+IntPoint::IntPoint(const TPoint& p)
+    : m_x(p.iX)
+    , m_y(p.iY)
+{
+}
+
+IntPoint::operator TPoint() const
+{
+    return TPoint(m_x, m_y);
+}
+
+}
diff --git a/WebCore/platform/symbian/IntRectSymbian.cpp b/WebCore/platform/symbian/IntRectSymbian.cpp
new file mode 100644 (file)
index 0000000..f480005
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+* ==============================================================================
+*    Copyright (c) 2006, Nokia Corporation
+*    All rights reserved.
+*
+*   Redistribution and use in source and binary forms, with or without
+*   modification, are permitted provided that the following conditions
+*   are met:
+*
+*      * Redistributions of source code must retain the above copyright
+*        notice, this list of conditions and the following disclaimer.
+*      * Redistributions in binary form must reproduce the above copyright
+*        notice, this list of conditions and the following disclaimer in
+*        the documentation and/or other materials provided with the
+*        distribution.
+*      * Neither the name of the Nokia Corporation nor the names of its
+*        contributors may be used to endorse or promote products derived
+*        from this software without specific prior written permission.
+*
+*   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+*   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+*   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+*   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+*   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+*   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+*   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+*   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+*   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+*   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+*   USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+*   DAMAGE.
+*
+* ==============================================================================
+*/
+
+#include "config.h"
+#include "IntRect.h"
+#include <e32std.h>
+
+namespace WebCore {
+
+IntRect::IntRect(const TRect& r)
+    : m_location(IntPoint(r.iTl.iX, r.iTl.iY))
+    , m_size(IntSize(r.Size().iWidth, r.Size().iHeight))
+{
+}
+
+IntRect::operator TRect() const
+{
+    return TRect(x(), y(), right(), bottom());
+}
+
+TRect IntRect::Rect() const
+{
+    return TRect(x(), y(), right(), bottom());
+}
+
+}
diff --git a/WebCore/platform/symbian/IntSizeSymbian.cpp b/WebCore/platform/symbian/IntSizeSymbian.cpp
new file mode 100644 (file)
index 0000000..5c0e117
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+* ==============================================================================
+*    Copyright (c) 2006, Nokia Corporation
+*    All rights reserved.
+*
+*   Redistribution and use in source and binary forms, with or without
+*   modification, are permitted provided that the following conditions
+*   are met:
+*
+*      * Redistributions of source code must retain the above copyright
+*        notice, this list of conditions and the following disclaimer.
+*      * Redistributions in binary form must reproduce the above copyright
+*        notice, this list of conditions and the following disclaimer in
+*        the documentation and/or other materials provided with the
+*        distribution.
+*      * Neither the name of the Nokia Corporation nor the names of its
+*        contributors may be used to endorse or promote products derived
+*        from this software without specific prior written permission.
+*
+*   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+*   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+*   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+*   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+*   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+*   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+*   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+*   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+*   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+*   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+*   USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+*   DAMAGE.
+*
+* ==============================================================================
+*/
+
+#include "config.h"
+#include "IntSize.h"
+#include <e32std.h>
+
+namespace WebCore {
+
+IntSize::IntSize(const TSize& s)
+    : m_width(s.iWidth)
+    , m_height(s.iHeight)
+{
+}
+
+IntSize::operator TSize() const
+{
+    return TSize(m_width, m_height);
+}
+
+}
diff --git a/WebCore/platform/symbian/StringImplSymbian.cpp b/WebCore/platform/symbian/StringImplSymbian.cpp
new file mode 100644 (file)
index 0000000..3a1245f
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+* ==============================================================================
+*    Copyright (c) 2006, Nokia Corporation
+*    All rights reserved.
+*
+*   Redistribution and use in source and binary forms, with or without
+*   modification, are permitted provided that the following conditions
+*   are met:
+*
+*      * Redistributions of source code must retain the above copyright
+*        notice, this list of conditions and the following disclaimer.
+*      * Redistributions in binary form must reproduce the above copyright
+*        notice, this list of conditions and the following disclaimer in
+*        the documentation and/or other materials provided with the
+*        distribution.
+*      * Neither the name of the Nokia Corporation nor the names of its
+*        contributors may be used to endorse or promote products derived
+*        from this software without specific prior written permission.
+*
+*   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+*   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+*   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+*   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+*   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+*   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+*   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+*   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+*   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+*   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+*   USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+*   DAMAGE.
+*
+* ==============================================================================
+*/
+
+#include "config.h"
+#include "StringImpl.h"
+#include <e32std.h>
+
+namespace WebCore {
+
+StringImpl::StringImpl(const TDesC& des)
+{
+    init(des.Ptr(), des.Length());
+}
+
+TPtrC StringImpl::des() const
+{
+    TPtrC tstr((const TUint16 *)m_data, m_length);
+    return tstr;
+}
+
+}
diff --git a/WebCore/platform/symbian/StringSymbian.cpp b/WebCore/platform/symbian/StringSymbian.cpp
new file mode 100644 (file)
index 0000000..27b6a13
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+* ==============================================================================
+*    Copyright (c) 2006, Nokia Corporation
+*    All rights reserved.
+*
+*   Redistribution and use in source and binary forms, with or without
+*   modification, are permitted provided that the following conditions
+*   are met:
+*
+*      * Redistributions of source code must retain the above copyright
+*        notice, this list of conditions and the following disclaimer.
+*      * Redistributions in binary form must reproduce the above copyright
+*        notice, this list of conditions and the following disclaimer in
+*        the documentation and/or other materials provided with the
+*        distribution.
+*      * Neither the name of the Nokia Corporation nor the names of its
+*        contributors may be used to endorse or promote products derived
+*        from this software without specific prior written permission.
+*
+*   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+*   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+*   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+*   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+*   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+*   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+*   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+*   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+*   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+*   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+*   USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+*   DAMAGE.
+*
+* ==============================================================================
+*/
+
+#include "config.h"
+#include "PlatformString.h"
+#include <e32std.h>
+
+namespace WebCore {
+
+String::String(const TDesC& des)
+{
+    if (!des.Length())
+        m_impl = StringImpl::empty();
+    else
+        m_impl = new StringImpl(des);
+}
+
+}
\ No newline at end of file