15e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block/*
25e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * Copyright (C) 2010 Google Inc. All rights reserved.
35e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block *
45e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * Redistribution and use in source and binary forms, with or without
55e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * modification, are permitted provided that the following conditions are
65e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * met:
75e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block *
85e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block *     * Redistributions of source code must retain the above copyright
95e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * notice, this list of conditions and the following disclaimer.
105e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block *     * Redistributions in binary form must reproduce the above
115e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * copyright notice, this list of conditions and the following disclaimer
125e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * in the documentation and/or other materials provided with the
135e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * distribution.
145e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block *     * Neither the name of Google Inc. nor the names of its
155e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * contributors may be used to endorse or promote products derived from
165e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * this software without specific prior written permission.
175e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block *
185e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
195e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
205e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
215e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
225e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
235e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
245e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
255e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
265e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
275e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
285e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
295e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block */
305e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
315e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "config.h"
32dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
33dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#if ENABLE(SVG)
345e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSeg.h"
355e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
365e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8DOMWindow.h"
375e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8DOMWrapper.h"
385e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegArcAbs.h"
395e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegArcRel.h"
405e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegClosePath.h"
415e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegCurvetoCubicAbs.h"
425e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegCurvetoCubicRel.h"
435e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegCurvetoCubicSmoothAbs.h"
445e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegCurvetoCubicSmoothRel.h"
455e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegCurvetoQuadraticAbs.h"
465e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegCurvetoQuadraticRel.h"
475e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegCurvetoQuadraticSmoothAbs.h"
485e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegCurvetoQuadraticSmoothRel.h"
495e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegLinetoAbs.h"
505e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegLinetoHorizontalAbs.h"
515e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegLinetoHorizontalRel.h"
525e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegLinetoRel.h"
535e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegLinetoVerticalAbs.h"
545e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegLinetoVerticalRel.h"
555e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegMovetoAbs.h"
565e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block#include "V8SVGPathSegMovetoRel.h"
575e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
585e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Blocknamespace WebCore {
595e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
605e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Blockv8::Handle<v8::Value> toV8(SVGPathSeg* impl)
615e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block{
625e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    if (!impl)
635e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return v8::Null();
645e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    switch (impl->pathSegType()) {
655e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_CLOSEPATH:
665e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegClosePath*>(impl));
675e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_MOVETO_ABS:
685e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegMovetoAbs*>(impl));
695e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_MOVETO_REL:
705e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegMovetoRel*>(impl));
715e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_LINETO_ABS:
725e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegLinetoAbs*>(impl));
735e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_LINETO_REL:
745e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegLinetoRel*>(impl));
755e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_CURVETO_CUBIC_ABS:
765e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegCurvetoCubicAbs*>(impl));
775e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_CURVETO_CUBIC_REL:
785e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegCurvetoCubicRel*>(impl));
795e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_ABS:
805e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegCurvetoQuadraticAbs*>(impl));
815e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_REL:
825e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegCurvetoQuadraticRel*>(impl));
835e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_ARC_ABS:
845e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegArcAbs*>(impl));
855e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_ARC_REL:
865e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegArcRel*>(impl));
875e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_LINETO_HORIZONTAL_ABS:
885e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegLinetoHorizontalAbs*>(impl));
895e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_LINETO_HORIZONTAL_REL:
905e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegLinetoHorizontalRel*>(impl));
915e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_LINETO_VERTICAL_ABS:
925e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegLinetoVerticalAbs*>(impl));
935e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_LINETO_VERTICAL_REL:
945e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegLinetoVerticalRel*>(impl));
955e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:
965e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegCurvetoCubicSmoothAbs*>(impl));
975e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_CURVETO_CUBIC_SMOOTH_REL:
985e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegCurvetoCubicSmoothRel*>(impl));
995e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:
1005e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegCurvetoQuadraticSmoothAbs*>(impl));
1015e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    case SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:
1025e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block        return toV8(static_cast<SVGPathSegCurvetoQuadraticSmoothRel*>(impl));
1035e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    }
1045e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    ASSERT_NOT_REACHED();
1055e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block    return V8SVGPathSeg::wrap(impl);
1065e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block}
1075e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block
1085e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block} // namespace WebCore
109dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
110dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif
111