Exemplo n.º 1
0
		public Attribute (WebBrowser control, nsIDOMAttr domAttribute)
			: base (control, domAttribute as nsIDOMNode)
		{
			if (control.platform != control.enginePlatform)
				this.attribute = nsDOMAttr.GetProxy (control, domAttribute);
			else
				this.attribute = domAttribute;
		}
Exemplo n.º 2
0
		protected override void Dispose (bool disposing)
		{
			if (!disposed) {
				if (disposing) {
					this.attribute = null;
				}
			}
			base.Dispose (disposing);
		}
Exemplo n.º 3
0
 protected override void Dispose(bool disposing)
 {
     if (!disposed)
     {
         if (disposing)
         {
             this.attribute = null;
         }
     }
     base.Dispose(disposing);
 }
Exemplo n.º 4
0
        /// <summary>
        /// Creates wrapper for nsIDOMNode object
        /// </summary>
        /// <param name="domObject"></param>
        /// <returns></returns>
        internal static GeckoNode CreateDomNodeWrapper(mozIDOMWindowProxy window, nsIDOMNode domObject)
        {
            // if null -> return null
            if (domObject == null)
            {
                return(null);
            }
            var nodeType = (NodeType) new WebIDL.Node((mozIDOMWindowProxy)window, (nsISupports)domObject).NodeType;

            // by nodeType we can find proper wrapper faster, than perform QueryInterface
            switch (nodeType)
            {
            case NodeType.Element:
                /* /* nsIDOMHTMLElement*/ nsIDOMElement htmlElement = Xpcom.QueryInterface </* /* nsIDOMHTMLElement*/ nsIDOMElement>(domObject);
                if (htmlElement != null)
                {
                    return(GeckoHtmlElement.Create(window, htmlElement));
                }
                nsIDOMElement element = Xpcom.QueryInterface <nsIDOMElement>(domObject);
                if (element != null)
                {
                    return(GeckoElement.CreateDomElementWrapper(window, element));
                }
                break;

            case NodeType.Attribute:
#if PORTFF60
                nsIDOMAttr attr = Xpcom.QueryInterface <nsIDOMAttr>(domObject);
                if (attr != null)
                {
                    return(GeckoAttribute.CreateAttributeWrapper(attr));
                }
#endif
                break;

            case NodeType.Comment:
                nsIDOMComment comment = Xpcom.QueryInterface <nsIDOMComment>(domObject);
                if (comment != null)
                {
                    return(GeckoComment.CreateCommentWrapper(window, comment));
                }
                break;

            case NodeType.DocumentFragment:
                nsIDOMDocumentFragment fragment = Xpcom.QueryInterface <nsIDOMDocumentFragment>(domObject);
                if (fragment != null)
                {
                    return(DOM.DocumentFragment.CreateDocumentFragmentWrapper(window, fragment));
                }
                break;
            }
            // if we don't handle this type - just create GeckoNode
            return(new GeckoNode(window, domObject));
        }
Exemplo n.º 5
0
 public Attribute(WebBrowser control, nsIDOMAttr domAttribute)
     : base(control, domAttribute as nsIDOMNode)
 {
     if (control.platform != control.enginePlatform)
     {
         this.attribute = nsDOMAttr.GetProxy(control, domAttribute);
     }
     else
     {
         this.attribute = domAttribute;
     }
 }
Exemplo n.º 6
0
        /// <summary>
        /// Creates wrapper for nsIDOMNode object
        /// </summary>
        /// <param name="domObject"></param>
        /// <returns></returns>
        internal static GeckoNode CreateDomNodeWrapper(nsIDOMNode domObject)
        {
            // if null -> return null
            if (domObject == null)
            {
                return(null);
            }
            var nodeType = (NodeType)domObject.GetNodeTypeAttribute();

            // by nodeType we can find proper wrapper faster, than perform QueryInterface
            switch (nodeType)
            {
            case NodeType.Element:
                nsIDOMHTMLElement htmlElement = Xpcom.QueryInterface <nsIDOMHTMLElement>(domObject);
                if (htmlElement != null)
                {
                    return(GeckoHtmlElement.Create(htmlElement));
                }
                nsIDOMElement element = Xpcom.QueryInterface <nsIDOMElement>(domObject);
                if (element != null)
                {
                    return(GeckoElement.CreateDomElementWrapper(element));
                }
                break;

            case NodeType.Attribute:
                nsIDOMAttr attr = Xpcom.QueryInterface <nsIDOMAttr>(domObject);
                if (attr != null)
                {
                    return(GeckoAttribute.CreateAttributeWrapper(attr));
                }
                break;

            case NodeType.Comment:
                nsIDOMComment comment = Xpcom.QueryInterface <nsIDOMComment>(domObject);
                if (comment != null)
                {
                    return(GeckoComment.CreateCommentWrapper(comment));
                }
                break;

            case NodeType.DocumentFragment:
                nsIDOMDocumentFragment fragment = Xpcom.QueryInterface <nsIDOMDocumentFragment>(domObject);
                if (fragment != null)
                {
                    return(DOM.DocumentFragment.CreateDocumentFragmentWrapper(fragment));
                }
                break;
            }
            // if we don't handle this type - just create GeckoNode
            return(new GeckoNode(domObject));
        }
        internal static GeckoNode CreateNodeWrapper(nsIDOMNode domObject)
        {
            // if null -> return null
            if (domObject == null)
            {
                return(null);
            }
            var nodeType = ( NodeType )domObject.GetNodeTypeAttribute();

            // by nodeType we can find proper wrapper faster, than perform QueryInterface
            switch (nodeType)
            {
            case NodeType.Element:
                nsIDOMHTMLElement element = Xpcom.QueryInterface <nsIDOMHTMLElement>(domObject);
                if (element != null)
                {
                    return(GeckoElement.Create(element));
                }
                break;

            case NodeType.Attribute:
                nsIDOMAttr attr = Xpcom.QueryInterface <nsIDOMAttr>(domObject);
                if (attr != null)
                {
                    return(GeckoAttribute.CreateAttributeWrapper(attr));
                }
                break;

            case NodeType.Comment:
                nsIDOMComment comment = Xpcom.QueryInterface <nsIDOMComment>(domObject);
                if (comment != null)
                {
                    return(GeckoComment.CreateCommentWrapper(comment));
                }
                break;

            case NodeType.DocumentFragment:
                nsIDOMDocumentFragment fragment = Xpcom.QueryInterface <nsIDOMDocumentFragment>(domObject);
                if (fragment != null)
                {
                    return(DOM.DocumentFragment.CreateDocumentFragmentWrapper(fragment));
                }
                break;
            }
            // if fast method is unsuccessful try old method :)
            return(OldCreateWrapper(domObject));
        }
        internal static GeckoNode Create(nsIDOMNode domObject)
        {
            if (domObject == null)
            {
                return(null);
            }

            nsIDOMHTMLElement element = Xpcom.QueryInterface <nsIDOMHTMLElement>(domObject);

            if (element != null)
            {
                return(GeckoElement.Create(element));
            }

            nsIDOMAttr attr = Xpcom.QueryInterface <nsIDOMAttr>(domObject);

            if (attr != null)
            {
                return(GeckoAttribute.Create(attr));
            }

            return(new GeckoNode(domObject));
        }
 internal static GeckoAttribute Create(nsIDOMAttr attr)
 {
     return((attr == null) ? null : new GeckoAttribute(attr));
 }
Exemplo n.º 10
0
 internal GeckoAttribute(nsIDOMAttr attr) : base(attr)
 {
     this.DomAttr = attr;
 }
Exemplo n.º 11
0
		public static nsIDOMAttr GetProxy (Mono.WebBrowser.IWebBrowser control, nsIDOMAttr obj)
		{
			object o = Base.GetProxyForObject (control, typeof(nsIDOMAttr).GUID, obj);
			return o as nsIDOMAttr;
		}
 internal static GeckoAttribute CreateAttributeWrapper(nsIDOMAttr attr)
 {
     return (attr == null) ? null : new GeckoAttribute(attr);
 }
 internal GeckoAttribute(nsIDOMAttr attr)
     : base(attr)
 {
     this.DomAttr = attr;
 }
Exemplo n.º 14
0
		private DomAttribute(nsIDOMAttr domAttribute)
			: base(domAttribute)
		{
			Debug.Assert(domAttribute != null);
			m_DomAttribute = domAttribute;
		}
Exemplo n.º 15
0
		internal static DomAttribute Create(nsIDOMAttr domAttribute)
		{
			return domAttribute != null ? new DomAttribute(domAttribute) : null;
		}
Exemplo n.º 16
0
        public static nsIDOMAttr GetProxy(Mono.WebBrowser.IWebBrowser control, nsIDOMAttr obj)
        {
            object o = Base.GetProxyForObject(control, typeof(nsIDOMAttr).GUID, obj);

            return(o as nsIDOMAttr);
        }