/platform/external/webkit/WebCore/bindings/objc/DOMSVGPathSegInternal.mm

https://github.com/aharish/totoro-gb-opensource-update2 · Objective C++ · 103 lines · 72 code · 6 blank · 25 comment · 1 complexity · edb5622242c80519a83abd1cea45d549 MD5 · raw file

  1. /*
  2. * Copyright (C) 2006, 2009 Apple Inc. All rights reserved.
  3. * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
  4. *
  5. * Redistribution and use in source and binary forms, with or without
  6. * modification, are permitted provided that the following conditions
  7. * are met:
  8. * 1. Redistributions of source code must retain the above copyright
  9. * notice, this list of conditions and the following disclaimer.
  10. * 2. Redistributions in binary form must reproduce the above copyright
  11. * notice, this list of conditions and the following disclaimer in the
  12. * documentation and/or other materials provided with the distribution.
  13. *
  14. * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
  15. * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  16. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  17. * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
  18. * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  19. * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  20. * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  21. * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  22. * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  23. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  24. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  25. */
  26. #import "config.h"
  27. #if ENABLE(SVG)
  28. #import "DOMSVGPathSegInternal.h"
  29. #import "DOMSVGPathSegArcAbs.h"
  30. #import "DOMSVGPathSegArcRel.h"
  31. #import "DOMSVGPathSegClosePath.h"
  32. #import "DOMSVGPathSegCurvetoCubicAbs.h"
  33. #import "DOMSVGPathSegCurvetoCubicRel.h"
  34. #import "DOMSVGPathSegCurvetoCubicSmoothAbs.h"
  35. #import "DOMSVGPathSegCurvetoCubicSmoothRel.h"
  36. #import "DOMSVGPathSegCurvetoQuadraticAbs.h"
  37. #import "DOMSVGPathSegCurvetoQuadraticRel.h"
  38. #import "DOMSVGPathSegCurvetoQuadraticSmoothAbs.h"
  39. #import "DOMSVGPathSegCurvetoQuadraticSmoothRel.h"
  40. #import "DOMSVGPathSegLinetoAbs.h"
  41. #import "DOMSVGPathSegLinetoHorizontalAbs.h"
  42. #import "DOMSVGPathSegLinetoHorizontalRel.h"
  43. #import "DOMSVGPathSegLinetoRel.h"
  44. #import "DOMSVGPathSegLinetoVerticalAbs.h"
  45. #import "DOMSVGPathSegLinetoVerticalRel.h"
  46. #import "DOMSVGPathSegList.h"
  47. #import "DOMSVGPathSegMovetoAbs.h"
  48. #import "DOMSVGPathSegMovetoRel.h"
  49. #import "SVGPathSeg.h"
  50. Class kitClass(WebCore::SVGPathSeg* impl)
  51. {
  52. switch (impl->pathSegType()) {
  53. case WebCore::SVGPathSeg::PATHSEG_UNKNOWN:
  54. return [DOMSVGPathSeg class];
  55. case WebCore::SVGPathSeg::PATHSEG_CLOSEPATH:
  56. return [DOMSVGPathSegClosePath class];
  57. case WebCore::SVGPathSeg::PATHSEG_MOVETO_ABS:
  58. return [DOMSVGPathSegMovetoAbs class];
  59. case WebCore::SVGPathSeg::PATHSEG_MOVETO_REL:
  60. return [DOMSVGPathSegMovetoRel class];
  61. case WebCore::SVGPathSeg::PATHSEG_LINETO_ABS:
  62. return [DOMSVGPathSegLinetoAbs class];
  63. case WebCore::SVGPathSeg::PATHSEG_LINETO_REL:
  64. return [DOMSVGPathSegLinetoRel class];
  65. case WebCore::SVGPathSeg::PATHSEG_CURVETO_CUBIC_ABS:
  66. return [DOMSVGPathSegCurvetoCubicAbs class];
  67. case WebCore::SVGPathSeg::PATHSEG_CURVETO_CUBIC_REL:
  68. return [DOMSVGPathSegCurvetoCubicRel class];
  69. case WebCore::SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_ABS:
  70. return [DOMSVGPathSegCurvetoQuadraticAbs class];
  71. case WebCore::SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_REL:
  72. return [DOMSVGPathSegCurvetoQuadraticRel class];
  73. case WebCore::SVGPathSeg::PATHSEG_ARC_ABS:
  74. return [DOMSVGPathSegArcAbs class];
  75. case WebCore::SVGPathSeg::PATHSEG_ARC_REL:
  76. return [DOMSVGPathSegArcRel class];
  77. case WebCore::SVGPathSeg::PATHSEG_LINETO_HORIZONTAL_ABS:
  78. return [DOMSVGPathSegLinetoHorizontalAbs class];
  79. case WebCore::SVGPathSeg::PATHSEG_LINETO_HORIZONTAL_REL:
  80. return [DOMSVGPathSegLinetoHorizontalRel class];
  81. case WebCore::SVGPathSeg::PATHSEG_LINETO_VERTICAL_ABS:
  82. return [DOMSVGPathSegLinetoVerticalAbs class];
  83. case WebCore::SVGPathSeg::PATHSEG_LINETO_VERTICAL_REL:
  84. return [DOMSVGPathSegLinetoVerticalRel class];
  85. case WebCore::SVGPathSeg::PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:
  86. return [DOMSVGPathSegCurvetoCubicSmoothAbs class];
  87. case WebCore::SVGPathSeg::PATHSEG_CURVETO_CUBIC_SMOOTH_REL:
  88. return [DOMSVGPathSegCurvetoCubicSmoothRel class];
  89. case WebCore::SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:
  90. return [DOMSVGPathSegCurvetoQuadraticSmoothAbs class];
  91. case WebCore::SVGPathSeg::PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:
  92. return [DOMSVGPathSegCurvetoQuadraticSmoothRel class];
  93. }
  94. ASSERT_NOT_REACHED();
  95. return nil;
  96. }
  97. #endif // ENABLE(SVG)