javauis/m2g_qt/javasrc/org/w3c/dom/svg/SVGSVGElement.java
author hgs
Fri, 15 Oct 2010 12:29:39 +0300
changeset 80 d6dafc5d983f
parent 56 abc41079b313
permissions -rw-r--r--
v2.2.19_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     1
/*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     3
* All rights reserved.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     8
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     9
* Initial Contributors:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    11
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    12
* Contributors:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    13
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    14
* Description:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    15
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    16
*/
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    17
package org.w3c.dom.svg;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    18
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    19
import org.w3c.dom.DOMException;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    20
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    21
/**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    22
 * <p>This interface represents &lt;svg&gt; element in (SVG) document tree.</p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    23
 * <h4>User Agent Transforms</h4>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    24
 * <p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    25
 * The DOM attributes currentScale, currentRotate and currentTranslate are combined to form user agent transformation
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    26
 * which is applied at the outermost level on the SVG document (i.e., outside the outermost 'svg' element) if "magnification"
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    27
 * is enabled (i.e., zoomAndPan attribute is set to "magnify"). Their values
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    28
 * can potentialy be modified through user-agent specific UI. User agent transformation can be obtained
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    29
 * by multiplying matrix
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    30
 * <p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    31
 * <pre>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    32
 * [currentScale      0       currentTranslate.x]       [cos(currentRotate) -sin(currentRotate 0]
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    33
 * [     0      currentScale  currentTranslate.y]  by   [sin(currentRotate) cos(currentRotate) 0]
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    34
 * [     0            0               1         ]       [         0                  0         1]
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    35
 * </pre>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    36
 * </p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    37
 *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    38
 * i.e. (translate, then scale, then rotate the coordinate system). The reference point for scale and rotate operations is the origin (0, 0).
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    39
 * </p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    40
 *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    41
 * <p><b>Note:</b> If the application does not have the necessary privilege rights to access this (SVG)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    42
 * content, a SecurityException may be thrown by the underlying implementation. This is applicable
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    43
 * to all the Tree navigation and Trait acessor methods. Features such as zooming, panning and
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    44
 * playing of animations will not be affected.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    45
 * </p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    46
 */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    47
public interface SVGSVGElement extends SVGLocatableElement
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    48
{
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    49
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    50
     * Sets current user agent scale (zoom) coefficient.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    51
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    52
     * @param value the value of user agent scale coefficient to be set.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    53
     * @throws DOMException with error code INVALID_ACCESS_ERR if the scale value is set to zero.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    54
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    55
    public void setCurrentScale(float value)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    56
    throws DOMException;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    57
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    58
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    59
     * Returns current user agent scale (zoom) coefficient. The initial value for currentScale is 1.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    60
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    61
     * @return the current user agent scale coefficient.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    62
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    63
    public float getCurrentScale();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    64
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    65
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    66
     * Sets current user agent rotate coefficient in degrees.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    67
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    68
     * @param value the value of user agent rotate coefficient to be set.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    69
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    70
    public void setCurrentRotate(float value);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    71
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    72
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    73
     * Returns current user agent rotation angle in degrees. The initial value for currentRotate is 0.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    74
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    75
     * @return the current user agent rotation coefficient in degrees.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    76
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    77
    public float getCurrentRotate();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    78
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    79
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    80
     * Current user agent translation used for scrolling or panning (The returned {@link org.w3c.dom.svg.SVGPoint SVGPoint} object is "live" and setting its
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    81
     * x and y components will change user agent's translation). The initial values for currentTranslate is SVGPoint(0,0).
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    82
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    83
     * @return returns the current user agent translation.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    84
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    85
    public SVGPoint getCurrentTranslate();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    86
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    87
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    88
     * Returns current animation timeline time in seconds.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    89
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    90
     * @return the current animation timeline time in seconds.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    91
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    92
    public float getCurrentTime();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    93
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    94
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    95
     * Sets current animation timeline time (in seconds). This API is required to support moving
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    96
     * forwards in timeline. The underlying implementations are normally designed to seek
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    97
     * forward in time and setting the time backwards is not meant to play the animation backwards.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    98
     * Note: Moving backwards in time is a costly feature for the implementations to support.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    99
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   100
     * @param seconds the value of time to be set in seconds.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   101
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   102
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   103
    public void setCurrentTime(float seconds);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   104
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   105
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   106
     * Creates new {@link org.w3c.dom.svg.SVGMatrix SVGMatrix} object. This object can be used to modify value of traits which are compatible with {@link org.w3c.dom.svg.SVGMatrix SVGMatrix}
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   107
     * type using {@link org.w3c.dom.svg.SVGElement#setMatrixTrait setMatrixTrait} method. The internal representation of the matrix is as follows:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   108
     * <p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   109
     * <pre>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   110
     *  [  a  c  e  ]
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   111
     *  [  b  d  f  ]
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   112
     *  [  0  0  1  ]
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   113
     * </pre>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   114
     * </p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   115
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   116
     * @param a the 'a' component of the matrix to be set.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   117
     * @param b the 'b' component of the matrix to be set.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   118
     * @param c the 'c' component of the matrix to be set.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   119
     * @param d the 'd' component of the matrix to be set.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   120
     * @param e the 'e' component of the matrix to be set.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   121
     * @param f the 'f' component of the matrix to be set.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   122
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   123
     * @return the newly created SVGMatrix object.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   124
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   125
     * @see org.w3c.dom.svg.SVGMatrix
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   126
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   127
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   128
    public SVGMatrix createSVGMatrixComponents(float a, float b, float c, float d, float e, float f);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   129
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   130
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   131
     * Creates new {@link org.w3c.dom.svg.SVGRect SVGRect} object. This object can be used to modify value of traits which are compatible with {@link org.w3c.dom.svg.SVGRect SVGRect}
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   132
     * type using {@link org.w3c.dom.svg.SVGElement#setRectTrait setRectTrait} method. The intial values for x, y, width, height of this new SVGRect are zero.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   133
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   134
     * @return the newly created SVGRect object.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   135
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   136
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   137
    public SVGRect createSVGRect();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   138
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   139
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   140
     * Creates new {@link org.w3c.dom.svg.SVGPath SVGPath} object. This object can be used to modify value of traits which are compatible with {@link org.w3c.dom.svg.SVGPath SVGPath}
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   141
     * type using {@link org.w3c.dom.svg.SVGElement#setPathTrait setPathTrait} method.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   142
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   143
     * @return the newly created SVGPath object with empty path commands.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   144
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   145
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   146
    public SVGPath createSVGPath();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   147
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   148
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   149
     * Creates new {@link org.w3c.dom.svg.SVGRGBColor SVGRGBColor} object. This object can be used to modify value of traits which are compatible with {@link org.w3c.dom.svg.SVGRGBColor SVGRGBColor}
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   150
     * type using {@link org.w3c.dom.svg.SVGElement#setRGBColorTrait setRGBColorTrait} method.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   151
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   152
     * @param red the red component of SVGRGBColor object.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   153
     * @param green the green component of SVGRGBColor object.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   154
     * @param blue the blue component of SVGRGBColor object.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   155
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   156
     * @return the newly created SVGRGBColor object with specified (r,g,b) values.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   157
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   158
     * @throws SVGException with error code SVG_INVALID_VALUE_ERR: if any of the parameters is not in the 0..255 range.</li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   159
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   160
    public SVGRGBColor createSVGRGBColor(int red, int green, int blue)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   161
    throws SVGException;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   162
}