ISvgSVGElement.cs :  » GUI » SharpVectorGraphics » SharpVectors » Dom » Svg » C# / CSharp Open Source

Home
C# / CSharp Open Source
1.2.6.4 mono .net core
2.2.6.4 mono core
3.Aspect Oriented Frameworks
4.Bloggers
5.Build Systems
6.Business Application
7.Charting Reporting Tools
8.Chat Servers
9.Code Coverage Tools
10.Content Management Systems CMS
11.CRM ERP
12.Database
13.Development
14.Email
15.Forum
16.Game
17.GIS
18.GUI
19.IDEs
20.Installers Generators
21.Inversion of Control Dependency Injection
22.Issue Tracking
23.Logging Tools
24.Message
25.Mobile
26.Network Clients
27.Network Servers
28.Office
29.PDF
30.Persistence Frameworks
31.Portals
32.Profilers
33.Project Management
34.RSS RDF
35.Rule Engines
36.Script
37.Search Engines
38.Sound Audio
39.Source Control
40.SQL Clients
41.Template Engines
42.Testing
43.UML
44.Web Frameworks
45.Web Service
46.Web Testing
47.Wiki Engines
48.Windows Presentation Foundation
49.Workflows
50.XML Parsers
C# / C Sharp
C# / C Sharp by API
C# / CSharp Tutorial
C# / CSharp Open Source » GUI » SharpVectorGraphics 
SharpVectorGraphics » SharpVectors » Dom » Svg » ISvgSVGElement.cs
using System.Xml;
using SharpVectors.Dom.Events;

namespace SharpVectors.Dom.Svg{
  /// <summary>
  /// A key interface definition is the
  /// <see cref="ISvgSvgElement">ISvgSvgElement</see> interface, which is
  /// the interface that corresponds to the 'svg' element.
  /// </summary>
  /// <remarks>
  /// This interface
  /// contains various miscellaneous commonly-used utility methods, such
  /// as matrix operations and the ability to control the time of redraw
  /// on visual rendering devices.
  /// <see cref="ISvgSvgElement">ISvgSvgElement</see> extends ViewCSS and
  /// DocumentCSS to provide access to
  /// the computed values of properties and the override style sheet as
  /// described in DOM2.
  /// </remarks>
  /// <developer>niklas@protocol7.com</developer>
  /// <completed>20</completed>
  public interface ISvgSvgElement
    : ISvgElement
    , ISvgTests
    , ISvgLangSpace
    , ISvgExternalResourcesRequired
    , ISvgStylable
    , ISvgLocatable
    , ISvgFitToViewBox
    , ISvgZoomAndPan
    , IEventTarget
#if FALSE
    , org.w3c.dom.events.IEventTarget
    , org.w3c.dom.events.IDocumentEvent
    , org.w3c.dom.css.IViewCSS
    , org.w3c.dom.css.IDocumentCSS
#endif
  {
    /// <summary>
    /// Corresponds to attribute x on the given 'svg' element.
    /// </summary>
    ISvgAnimatedLength X
    {
      get;
    }
    
    /// <summary>
    /// Corresponds to attribute y on the given 'svg' element.
    /// </summary>
    ISvgAnimatedLength Y
    {
      get;
    }
    
    /// <summary>
    /// Corresponds to attribute width on the given 'svg' element.
    /// </summary>
    ISvgAnimatedLength Width
    {
      get;
    }
    
    /// <summary>
    /// Corresponds to attribute height on the given 'svg' element.
    /// </summary>
    ISvgAnimatedLength Height
    {
      get;
    }
    
    /// <summary>
    /// Corresponds to attribute contentScriptType on the given 'svg'
    /// element.
    /// </summary>
    string ContentScriptType
    {
      get;set;
    }
    
    /// <summary>
    /// Corresponds to attribute contentStyleType on the given 'svg' element.
    /// </summary>
    string ContentStyleType
    {
      get;set;
    }
    
    /// <summary>
    /// The position and size of the viewport (implicit or explicit) that
    /// corresponds to this 'svg' element.
    /// </summary>
    /// <remarks>
    /// <p>
    /// When the user agent is
    /// actually rendering the content, then the position and size values
    /// represent the actual values when rendering. The position and size
    /// values are unitless values in the coordinate system of the parent
    /// element. If no parent element exists (i.e., 'svg' element
    /// represents the root of the document tree), if this SVG document
    /// is embedded as part of another document (e.g., via the HTML
    /// 'object' element), then the position and size are unitless values
    /// in the coordinate system of the parent document. (If the parent
    /// uses CSS or XSL layout, then unitless values represent pixel units
    /// for the current CSS or XSL viewport, as described in the CSS2
    /// specification.) If the parent element does not have a coordinate
    /// system, then the user agent should provide reasonable default
    /// values for this attribute.
    /// </p>
    /// <p>
    /// The object itself and its contents are both readonly.
    /// </p>
    /// </remarks>
    ISvgRect Viewport
    {
      get;
    }
    
    /// <summary>
    /// Size of a pixel unit (as defined by CSS2) along the x-axis of the
    /// viewport, which represents a unit somewhere in the range of 70dpi
    /// to 120dpi, and, on systems that support this, might actually match
    /// the characteristics of the target medium.
    /// </summary>
    /// <remarks>
    /// On systems where it is impossible to know the size of a pixel, a
    /// suitable default pixel size is provided.
    /// </remarks>
    float PixelUnitToMillimeterX
    {
      get;
    }
    
    /// <summary>
    /// Corresponding size of a pixel unit along the y-axis of the viewport.
    /// </summary>
    float PixelUnitToMillimeterY
    {
      get;
    }
    
    /// <summary>
    /// User interface (UI) events in DOM Level 2 indicate the screen
    /// positions at which the given UI event occurred. When the user
    /// agent actually knows the physical size of a "screen unit", this
    /// attribute will express that information; otherwise, user agents
    /// will provide a suitable default value such as .28mm.
    /// </summary>
    float ScreenPixelToMillimeterX
    {
      get;
    }
    
    /// <summary>
    /// Corresponding size of a screen pixel along the y-axis of the
    /// viewport.
    /// </summary>
    float ScreenPixelToMillimeterY
    {
      get;
    }
    
    /// <summary>
    /// The initial view (i.e., before magnification and panning) of the
    /// current innermost SVG document fragment can be either the
    /// "standard" view (i.e., based on attributes on the 'svg' element
    /// such as fitBoxToViewport) or to a "custom" view (i.e., a
    /// hyperlink into a particular 'view' or other element - see
    /// <a href="http://www.w3.org/TR/SVG/linking.html#LinksIntoSVG"
    /// >Linking into SVG content: URI fragments and SVG views</a>). If
    /// the initial view is the "standard" view, then this attribute is
    /// false. If the initial view is a "custom" view, then this
    /// attribute is true.
    /// </summary>
    bool UseCurrentView
    {
      get;
      set;
    }
    
    /// <summary>
    /// The definition of the initial view (i.e., before magnification
    /// and panning) of the current innermost SVG document fragment.
    /// </summary>
    /// <remarks>
    /// The meaning depends on the situation:
    /// <list type="bullet">
    ///  <item><description>
    ///  If the initial view was a "standard" view, then:
    ///   <list type="bullet">
    ///    <item><description>
    ///    the values for viewBox, preserveAspectRatio and zoomAndPan
    ///    within currentView will match the values for the corresponding
    ///    DOM attributes that are on SVGSVGElement directly
    ///    </description></item>
    ///    <item><description>
    ///    the values for transform and viewTarget within currentView will
    ///    be null
    ///    </description></item>
    ///   </list>
    ///  </description></item>
    ///  <item><description>
    ///  If the initial view was a link into a 'view' element, then:
    ///    <list type="bullet">
    ///     <item><description>
    ///     the values for viewBox, preserveAspectRatio and zoomAndPan within
    ///     currentView will correspond to the corresponding attributes for
    ///     the given 'view' element
    ///     </description></item>
    ///     <item><description>
    ///     the values for transform and viewTarget within currentView will
    ///     be null
    ///     </description></item>
    ///    </list>
    ///  </description></item>
    ///  <item><description>
    ///  If the initial view was a link into another element (i.e., other
    ///  than a 'view'), then:
    ///   <list type="bullet">
    ///    <item><description>
    ///    the values for viewBox, preserveAspectRatio and zoomAndPan
    ///    within currentView will match the values for the corresponding
    ///    DOM attributes that are on SVGSVGElement directly for the
    ///    closest ancestor 'svg' element
    ///    </description></item>
    ///    <item><description>
    ///    the values for transform within currentView will be null
    ///    </description></item>
    ///    <item><description>
    ///    the viewTarget within currentView will represent the target of
    ///    the link
    ///    </description></item>
    ///   </list>
    ///  </description></item>
    ///  <item><description>
    ///  If the initial view was a link into the SVG document fragment
    ///  using an SVG view specification fragment identifier (i.e.,
    ///  #svgView(...)), then:
    ///   <list type="bullet">
    ///     <item><description>
    ///     the values for viewBox, preserveAspectRatio, zoomAndPan,
    ///     transform and viewTarget within currentView will correspond
    ///     to the values from the SVG view specification fragment
    ///     identifier
    ///     </description></item>
    ///   </list>
    ///  </description></item>
    /// </list>
    /// The object itself and its contents are both readonly.
    /// </remarks>
    ISvgViewSpec CurrentView
    {
      get;
    }
    
    /// <summary>
    /// This attribute indicates the current scale factor relative to
    /// the initial view to take into account user magnification and
    /// panning operations, as described under <a
    /// href="http://www.w3.org/TR/SVG/interact.html#ZoomAndPanAttribute"
    /// >Magnification and panning</a>.
    /// </summary>
    /// <remarks>
    /// DOM attributes currentScale and currentTranslate are
    /// equivalent to the 2x3 matrix [a b c d e f] = [currentScale 0
    /// 0 currentScale currentTranslate.x currentTranslate.y]. If
    /// "magnification" is enabled (i.e., zoomAndPan="magnify"), then
    /// the effect is as if an extra transformation were placed at the
    /// outermost level on the SVG document fragment (i.e., outside the
    /// outermost 'svg' element).
    /// </remarks>
    float CurrentScale
    {
      get;
      set;
    }
    
    /// <summary>
    /// The corresponding translation factor that takes into account
    /// user "magnification".
    /// </summary>
    ISvgPoint CurrentTranslate
    {
      get;
    }
    
    /// <summary>
    /// Takes a time-out value which indicates that redraw shall not
    /// occur until certain conditions are met.
    /// </summary>
    /// <remarks>
    /// Takes a time-out value which indicates that redraw shall not
    /// occur until: (a) the corresponding unsuspendRedraw(
    /// suspend_handle_id) call has been made, (b) an
    /// unsuspendRedrawAll() call has been made, or (c) its timer
    /// has timed out. In environments that do not support
    /// interactivity (e.g., print media), then redraw shall not be
    /// suspended. suspend_handle_id = suspendRedraw(
    /// max_wait_milliseconds) and unsuspendRedraw(suspend_handle_id)
    /// must be packaged as balanced pairs. When you want to suspend
    /// redraw actions as a collection of SVG DOM changes occur,
    /// then precede the changes to the SVG DOM with a method call
    /// similar to suspend_handle_id = suspendRedraw(
    /// max_wait_milliseconds) and follow the changes with a method
    /// call similar to unsuspendRedraw(suspend_handle_id). Note
    /// that multiple suspendRedraw calls can be used at once and
    /// that each such method call is treated independently of the
    /// other suspendRedraw method calls.
    /// </remarks>
    /// <param name="max_wait_milliseconds">
    /// The amount of time in milliseconds to hold off before redrawing
    /// the device. Values greater than 60 seconds will be truncated down
    /// to 60 seconds.
    /// </param>
    /// <returns>
    /// A number which acts as a unique identifier for the given
    /// suspendRedraw() call. This value must be passed as the parameter
    /// to the corresponding unsuspendRedraw() method call.
    /// </returns>
    int SuspendRedraw(
      int max_wait_milliseconds);
    
    /// <summary>
    /// Cancels a specified suspendRedraw() by providing a unique
    /// suspend_handle_id.
    /// </summary>
    /// <param name="suspend_handle_id">
    /// A number which acts as a unique identifier for the desired
    /// suspendRedraw() call. The number supplied must be a value
    /// returned from a previous call to suspendRedraw()
    /// </param>
    void UnsuspendRedraw(
      int suspend_handle_id);
    
    /// <summary>
    /// Cancels all currently active suspendRedraw() method calls.
    /// been cancelled.
    /// </summary>
    /// <remarks>
    /// This method is most useful at the very end of a set of SVG
    /// DOM calls to ensure that all pending suspendRedraw() method
    /// calls have been cancelled.
    /// </remarks>
    void UnsuspendRedrawAll();
    
    /// <summary>
    /// In rendering environments supporting interactivity, forces the
    /// user agent to immediately redraw all regions of the viewport
    /// that require updating.
    /// </summary>
    void ForceRedraw();
    
    /// <summary>
    /// Suspends (i.e., pauses) all currently running animations that are
    /// defined within the SVG document fragment corresponding to this
    /// 'svg' element, causing the animation clock corresponding to this
    /// document fragment to stand still until it is unpaused.
    /// </summary>
    void PauseAnimations();
    
    /// <summary>
    /// Unsuspends (i.e., unpauses) currently running animations that are
    /// defined within the SVG document fragment, causing the animation
    /// clock to continue from the time at which it was suspended.
    /// </summary>
    void UnpauseAnimations();
    
    /// <summary>
    /// Returns true if this SVG document fragment is in a paused state.
    /// </summary>
    /// <returns>
    /// Boolean indicating whether this SVG document fragment is in a
    /// paused state.
    /// </returns>
    bool AnimationsPaused();
    
    /// <summary>
    /// The current time in seconds relative to the start time
    /// for the current SVG document fragment.
    /// </summary>
    float CurrentTime
    {
      get;
      set;
    }
    
    /// <summary>
    /// Returns the list of graphics elements whose rendered content
    /// intersects the supplied rectangle, honoring the 'pointer-events'
    /// property value on each candidate graphics element.
    /// </summary>
    /// <param name="rect">
    /// The test rectangle. The values are in the initial coordinate
    /// system for the current 'svg' element.
    /// </param>
    /// <param name="referenceElement">
    /// If not null, then only return elements whose drawing order has
    /// them below the given reference element.
    /// </param>
    /// <returns>
    /// A list of Elements whose content intersects the supplied
    /// rectangle.
    /// </returns>
    XmlNodeList GetIntersectionList(
      ISvgRect rect,
      ISvgElement referenceElement);
    
    /// <summary>
    /// Returns the list of graphics elements whose rendered content is
    /// entirely contained within the supplied rectangle, honoring the
    /// 'pointer-events' property value on each candidate graphics
    /// element.
    /// </summary>
    /// <param name="rect">
    /// The test rectangle. The values are in the initial coordinate
    /// system for the current 'svg' element.
    /// </param>
    /// <param name="referenceElement">
    /// If not null, then only return elements whose drawing order has
    /// them below the given reference element.
    /// </param>
    /// <returns>
    /// A list of Elements whose content is enclosed by the supplied
    /// rectangle.
    /// </returns>
    XmlNodeList GetEnclosureList(
      ISvgRect rect,
      ISvgElement referenceElement);
    
    /// <summary>
    /// Returns true if the rendered content of the given element
    /// intersects the supplied rectangle, honoring the 'pointer-events'
    /// property value on each candidate graphics element.
    /// </summary>
    /// <param name="element">
    /// The element on which to perform the given test.
    /// </param>
    /// <param name="rect">
    /// The test rectangle. The values are in the initial coordinate
    /// system for the current 'svg' element.
    /// </param>
    /// <returns>
    /// True or false, depending on whether the given element intersects
    /// the supplied rectangle.
    /// </returns>
    bool CheckIntersection(
      ISvgElement element,
      ISvgRect rect);
    
    /// <summary>
    /// Returns true if the rendered content of the given element is
    /// entirely contained within the supplied rectangle, honoring the
    /// 'pointer-events' property value on each candidate graphics
    /// element.
    /// </summary>
    /// <param name="element">
    /// The element on which to perform the given test.
    /// </param>
    /// <param name="rect">
    /// The test rectangle. The values are in the initial coordinate
    /// system for the current 'svg' element.
    /// </param>
    /// <returns>
    /// True or false, depending on whether the given element is
    /// enclosed by the supplied rectangle.
    /// </returns>
    bool CheckEnclosure(
      ISvgElement element,
      ISvgRect rect);
    
    /// <summary>
    /// Unselects any selected objects, including any selections of text
    /// strings and type-in bars.
    /// </summary>
    void DeselectAll();
    
    /// <summary>
    /// Creates an SVGNumber object outside of any document trees. The
    /// object is initialized to a value of zero.
    /// </summary>
    /// <returns>
    /// An SVGNumber object.
    /// </returns>
    ISvgNumber CreateSvgNumber();
    
    /// <summary>
    /// Creates an SVGLength object outside of any document trees. The
    /// object is initialized to the value of 0 user units.
    /// </summary>
    /// <returns>
    /// An SVGLength object.
    /// </returns>
    ISvgLength CreateSvgLength();
    
    /// <summary>
    /// Creates an SVGAngle object outside of any document trees. The
    /// object is initialized to the value 0 degrees (unitless).
    /// </summary>
    /// <returns>
    /// An SVGAngle object.
    /// </returns>
    ISvgAngle CreateSvgAngle();
    
    /// <summary>
    /// Creates an SVGPoint object outside of any document trees. The
    /// object is initialized to the point (0,0) in the user coordinate
    /// system.
    /// </summary>
    /// <returns>
    /// An SVGPoint object.
    /// </returns>
    ISvgPoint CreateSvgPoint();
    
    /// <summary>
    /// Creates an SVGMatrix object outside of any document trees. The
    /// object is initialized to the identity matrix.
    /// </summary>
    /// <returns>
    /// An SVGMatrix object.
    /// </returns>
    ISvgMatrix CreateSvgMatrix();
    
    /// <summary>
    /// Creates an SVGRect object outside of any document trees. The
    /// object is initialized such that all values are set to 0 user
    /// units.
    /// </summary>
    /// <returns>
    /// An SVGRect object.
    /// </returns>
    ISvgRect CreateSvgRect();
    
    /// <summary>
    /// Creates an SVGTransform object outside of any document trees. The
    /// object is initialized to an identity matrix transform
    /// (SVG_TRANSFORM_MATRIX).
    /// </summary>
    /// <returns>
    /// An SVGTransform object.
    /// </returns>
    ISvgTransform CreateSvgTransform();
    
    /// <summary>
    /// Creates an SVGTransform object outside of any document trees.
    /// The object is initialized to the given matrix transform (i.e.,
    /// SVG_TRANSFORM_MATRIX).
    /// </summary>
    /// <param name="matrix">
    /// The transform matrix.
    /// </param>
    /// <returns>
    /// An SVGTransform object.
    /// </returns>
    ISvgTransform CreateSvgTransformFromMatrix(
      ISvgMatrix matrix);
    
    /// <summary>
    /// Searches this SVG document fragment (i.e., the search is
    /// restricted to a subset of the document tree) for an Element whose
    /// id is given by elementId.
    /// </summary>
    /// <remarks>
    /// If an Element is found, that Element is
    /// returned. If no such element exists, returns null. Behavior is
    /// not defined if more than one element has this id.
    /// </remarks>
    /// <param name="elementId">
    /// The unique id value for an element.
    /// </param>
    /// <returns>
    /// The matching element.
    /// </returns>
    XmlElement GetElementById(
      string elementId);
  }
}
www.java2v.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.