internal static GeckoNode OldCreateWrapper(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.CreateAttributeWrapper(attr)); } nsIDOMComment comment = domObject as nsIDOMComment; if (comment != null) { return(GeckoComment.CreateCommentWrapper(comment)); } return(new GeckoNode(domObject)); }
internal GeckoElement(nsIDOMHTMLElement element) : base(element) { this.DomElement = element; this.DomNSElement = (nsIDOMNSHTMLElement)element; // since a reference is stored in the base class, we only need a weak reference here Marshal.ChangeWrapperHandleStrength(DomNSElement, true); }
internal GeckoElement(nsIDOMHTMLElement element) : base(element) { this.DomElement = element; this.DomNSElement = (nsIDOMNSElement)element; this.DomNSHTMLElement = (nsIDOMNSHTMLElement)element; Marshal.ChangeWrapperHandleStrength(DomNSElement, true); Marshal.ChangeWrapperHandleStrength(DomNSHTMLElement, true); }
protected override void Dispose (bool disposing) { if (!disposed) { if (disposing) { this.node = null; } } base.Dispose(disposing); }
internal static GeckoHtmlElement GetClassFor(nsIDOMHTMLElement element) { GeckoHtmlElement ret = GetClassFor <GeckoHtmlElement>(element); if (ret == null) { ret = new GeckoHtmlElement(element); } return(ret); }
internal GeckoElement(nsIDOMHTMLElement element) : base(element) { DomElement = element; DomNSElement = multiversion <nsIDOMNSElement> .Cast(element); DomNSHTMLElement = multiversion <nsIDOMNSHTMLElement> .Cast(element); // since a reference is stored in the base class, we only need weak references here Marshal.ChangeWrapperHandleStrength(DomNSElement, true); Marshal.ChangeWrapperHandleStrength(DomNSHTMLElement, true); }
protected override void Dispose(bool disposing) { if (!disposed) { if (disposing) { this.node = null; } } base.Dispose(disposing); }
internal GeckoHtmlElement(object element) : base(element) { if (element is nsIDOMHTMLElement) { _domHtmlElement = (nsIDOMHTMLElement)element; } else { throw new ArgumentException("element is not a nsIDOMHTMLElement"); } }
/// <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 GeckoElement(nsIDOMHTMLElement element) : base(element) { this.DomElement = element; this.DomNSElement = (nsIDOMNSElement)element; this.DomNSHTMLElement = (nsIDOMNSHTMLElement)element; if (Xpcom.IsDotNet) // TODO FIXME: ChangeWrapperHandleStrength not implemented in mono { // since a reference is stored in the base class, we only need weak references here Marshal.ChangeWrapperHandleStrength(DomNSElement, true); Marshal.ChangeWrapperHandleStrength(DomNSHTMLElement, true); } }
internal static GeckoElement GetClassFor(nsIDOMHTMLElement element) { foreach (GeckoClassDesc GeckoClass in Classes) { if (nsString.Get(element.GetTagNameAttribute).ToLower() == GeckoClass.TagName) { object HTMLElement = Xpcom.QueryInterface(element,GeckoClass.InterfaceType.GUID); if(HTMLElement != null) return Activator.CreateInstance(GeckoClass.GeckoElement, new object[] {HTMLElement}) as GeckoElement; } } return null; }
internal static GeckoElement GetClassFor(nsIDOMHTMLElement element) { foreach (GeckoClassDesc GeckoClass in Classes) { if (nsString.Get(element.GetTagName).ToLower() == GeckoClass.TagName) { object HTMLElement = Xpcom.QueryInterface(element, GeckoClass.InterfaceType.GUID); if (HTMLElement != null) { return(Activator.CreateInstance(GeckoClass.GeckoElement, new object[] { HTMLElement }) as GeckoElement); } } } return(null); }
internal static GeckoHtmlElement CreateDomHtmlElementWrapper(nsIDOMHTMLElement instance) { var lowerTagName = nsString.Get(instance.GetTagNameAttribute).ToLowerInvariant(); GeckoClassDesc desc; if (_dictionary.TryGetValue(lowerTagName, out desc)) { object HTMLElement = Xpcom.QueryInterface(instance, desc.InterfaceType.GUID); if (HTMLElement != null) { GeckoHtmlElement e = desc.CreationMethod(HTMLElement); return(e); } } return(null); }
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)); }
private DomHtmlElement(nsIDOMHTMLElement domHtmlElement) : base (domHtmlElement) { Debug.Assert(domHtmlElement != null); m_DomHtmlElement = domHtmlElement; }
internal static T GetClassFor <T>(nsIDOMHTMLElement element) where T : GeckoHtmlElement { return((T)m_cache.Get(element)); }
public HTMLElement(WebBrowser control, nsIDOMHTMLElement domHtmlElement) : base(control, domHtmlElement as nsIDOMElement) { this.node = domHtmlElement; }
internal static T Create <T>(nsIDOMHTMLElement element) where T : GeckoHtmlElement { return((element == null) ? null : DOM.DOMSelector.GetClassFor <T>(element)); }
internal static GeckoHtmlElement Create(nsIDOMHTMLElement element) { return((element == null) ? null : DOM.DOMSelector.GetClassFor(element)); }
public static nsIDOMHTMLElement GetProxy(Mono.WebBrowser.IWebBrowser control, nsIDOMHTMLElement obj) { object o = Base.GetProxyForObject(control, typeof(nsIDOMHTMLElement).GUID, obj); return(o as nsIDOMHTMLElement); }
//nsIDOMElement DomNSElement; #region ctor internal GeckoHtmlElement(nsIDOMHTMLElement element) : base(element) { _domHtmlElement = element; //this.DomNSElement = (nsIDOMElement)element; }
internal static GeckoElement Create(nsIDOMHTMLElement element) { return((element == null) ? null : new GeckoElement(element)); }
internal static DomHtmlElement Create(nsIDOMHTMLElement domHtmlElement) { return domHtmlElement != null ? new DomHtmlElement(domHtmlElement) : null; }
public HTMLElement (WebBrowser control, nsIDOMHTMLElement domHtmlElement) : base (control, domHtmlElement as nsIDOMElement) { this.node = domHtmlElement; }
internal GeckoHtmlElement(nsIDOMHTMLElement element) : base(element) { this.DomElement = element; this.DomNSElement = (nsIDOMNSElement)element; }
public static nsIDOMHTMLElement GetProxy (Mono.WebBrowser.IWebBrowser control, nsIDOMHTMLElement obj) { object o = Base.GetProxyForObject (control, typeof(nsIDOMHTMLElement).GUID, obj); return o as nsIDOMHTMLElement; }