Beispiel #1
0
		protected override  void Dispose (bool disposing)
		{
			if (!disposed) {
				if (disposing) {
					this.resources.Clear ();
					this.node = null;
				}
			}
			base.Dispose(disposing);
		}		
			Boolean nsITooltipTextProvider.GetNodeText(nsIDOMNode aNode, out String aText)
			{
				WebBrowser browser = GetBrowserFromDomDocument(aNode.OwnerDocument);
				if (browser == null)
				{
					aText = null;
					return false;
				}

				var e = new ProvideTooltipTextEventArgs(aNode);
				browser.Events.Raise(EventKey.ProvideTooltipText, e);
				aText = e.TooltipText;
				return String.IsNullOrWhiteSpace(e.TooltipText);
			}
Beispiel #3
0
		internal static DomNode Create(nsIDOMNode domNode)
		{
			if (domNode == null)
			{
				return null;
			}

			switch (domNode.NodeType)
			{
				case nsIDOMNodeConstants.ELEMENT_NODE:
					return DomElement.Create((nsIDOMElement)domNode);

				case nsIDOMNodeConstants.ATTRIBUTE_NODE:
					return DomAttribute.Create((nsIDOMAttr)domNode);

				case nsIDOMNodeConstants.TEXT_NODE:
					return DomText.Create((nsIDOMText)domNode);

				case nsIDOMNodeConstants.CDATA_SECTION_NODE:
					return DomCDataSection.Create((nsIDOMCDATASection)domNode);

				case nsIDOMNodeConstants.ENTITY_REFERENCE_NODE:
					return DomEntityReference.Create((nsIDOMEntityReference)domNode);

				case nsIDOMNodeConstants.ENTITY_NODE:
					return DomEntity.Create((nsIDOMEntity)domNode);

				case nsIDOMNodeConstants.PROCESSING_INSTRUCTION_NODE:
					return DomProcessingInstruction.Create((nsIDOMProcessingInstruction)domNode);

				case nsIDOMNodeConstants.COMMENT_NODE:
					return DomComment.Create((nsIDOMComment)domNode);

				case nsIDOMNodeConstants.DOCUMENT_NODE:
					return DomDocument.Create((nsIDOMDocument)domNode);

				case nsIDOMNodeConstants.DOCUMENT_TYPE_NODE:
					return DomDocumentType.Create((nsIDOMDocumentType)domNode);

				case nsIDOMNodeConstants.DOCUMENT_FRAGMENT_NODE:
					return DomDocumentFragment.Create((nsIDOMDocumentFragment)domNode);

				case nsIDOMNodeConstants.NOTATION_NODE:
					return DomNotation.Create((nsIDOMNotation)domNode);
			}

			return new DomNode(domNode);
		}
		internal static GeckoNode CreateWrapper(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);

			nsIDOMComment comment = domObject as nsIDOMComment;
			if (comment != null)
				return GeckoComment.Create(comment);

			return new GeckoNode(domObject);
		}
 public void SerializeToStream(nsIDOMNode root, nsISupports stream, string charset)
 {
     this.CallVoidMethod("serializeToStream", root, stream, charset);
 }
Beispiel #6
0
		internal GeckoNode(nsIDOMNode domObject)
		{
			//ComDebug.WriteDebugInfo( domObject );
			_domNode = new ComPtr<nsIDOMNode>( domObject );
		}
Beispiel #7
0
 public void Observe(nsIDOMNode target, object options)
 {
     this.CallVoidMethod("observe", target, options);
 }
		public bool OnClientMouseOver (MouseInfo mouseInfo, ModifierKeys modifiers, nsIDOMNode target)
		{
#if debug
			OnGeneric ("OnClientMouseOver");
			Console.Error.WriteLine ("OnClientMouseOver");
#endif
			DOM.DOMObject helper = new DOM.DOMObject(this.owner);
			INode node = helper.GetTypedNode  (target);
			string key = String.Intern (node.GetHashCode () + ":mouseover");
			EventHandler eh1 = (EventHandler) owner.DomEvents[key];
			if (eh1 != null) {
				EventArgs e1 = new EventArgs ();
				eh1 (node, e1);
			}
			
			NodeEventHandler eh = (NodeEventHandler) (owner.Events[WebBrowser.MouseEnterEvent]);
			if (eh != null) {
				NodeEventArgs e = new NodeEventArgs (node);
				eh (node, e);
				return true;
			}
			return false;
		}
Beispiel #9
0
 public void InitMutationEvent(string type, bool canBubble, bool cancelable, nsIDOMNode relatedNode, string prevValue, string newValue, string attrName, ushort attrChange)
 {
     this.CallVoidMethod("initMutationEvent", type, canBubble, cancelable, relatedNode, prevValue, newValue, attrName, attrChange);
 }
Beispiel #10
0
 internal static GeckoNode Create(nsIDOMNode domObject)
 {
     return(m_nodeCache.Get(domObject));
 }
Beispiel #11
0
 public void SetEndAfter(nsIDOMNode refNode)
 {
     this.CallVoidMethod("setEndAfter", refNode);
 }
		internal ContextMenuEventArgs(ContextMenuContext context, nsIDOMEvent domEvent, nsIDOMNode domNode)
		{
			m_Context = context;
			m_DomEvent = DomEvent.Create(domEvent);
			m_DomNode = DomNode.Create(domNode);
		}
Beispiel #13
0
 public void Extend(nsIDOMNode node, uint offset)
 {
     this.CallVoidMethod("extend", node, offset);
 }
Beispiel #14
0
		internal DomNode(nsIDOMNode domNode)
		{
			m_DomNode = domNode;
		}
Beispiel #15
0
 public void Collapse(nsIDOMNode node, uint offset)
 {
     this.CallVoidMethod("collapse", node, offset);
 }
Beispiel #16
0
 public nsISupports[] GetRangesForInterval(nsIDOMNode beginNode, int beginOffset, nsIDOMNode endNode, int endOffset, bool allowAdjacent)
 {
     return(this.CallMethod <nsISupports[]>("GetRangesForInterval", beginNode, beginOffset, endNode, endOffset, allowAdjacent));
 }
Beispiel #17
0
 public bool ContainsNode(nsIDOMNode node, bool allowPartialContainment)
 {
     return(this.CallMethod <bool>("containsNode", node, allowPartialContainment));
 }
		internal GeckoNode(nsIDOMNode domObject)
		{
			_DomObject = domObject;
		}
 public ushort AcceptNode(nsIDOMNode node)
 {
     return(this.CallMethod <ushort>("acceptNode", node));
 }
Beispiel #20
0
 public void SelectAllChildren(nsIDOMNode node)
 {
     this.CallVoidMethod("selectAllChildren", node);
 }
Beispiel #21
0
		public Node (WebBrowser control, nsIDOMNode domNode) : base (control)
		{
			this.control = control;
			this.node = domNode;
		}
 public string SerializeToString(nsIDOMNode root)
 {
     return(this.CallMethod <string>("serializeToString", root));
 }
Beispiel #23
0
 public void ImportStylesheet(nsIDOMNode style)
 {
     this.CallVoidMethod("importStylesheet", style);
 }
 internal GeckoNode(nsIDOMNode domObject)
 {
     _DomObject = domObject;
 }
Beispiel #25
0
 public nsISupports TransformToFragment(nsIDOMNode source, nsIDOMDocument output)
 {
     return(this.CallMethod <nsISupports>("transformToFragment", source, output));
 }
Beispiel #26
0
 public void InitMutationEvent(string type, bool canBubble, bool cancelable, nsIDOMNode relatedNode, string prevValue)
 {
     this.CallVoidMethod("initMutationEvent", type, canBubble, cancelable, relatedNode, prevValue);
 }
Beispiel #27
0
 public nsIDOMDocument TransformToDocument(nsIDOMNode source)
 {
     return(this.CallMethod <nsIDOMDocument>("transformToDocument", source));
 }
Beispiel #28
0
 internal GeckoNode(nsIDOMNode domObject)
 {
     //ComDebug.WriteDebugInfo( domObject );
     _domNode = new ComPtr <nsIDOMNode>(domObject);
 }
Beispiel #29
0
 public void SelectNode(nsIDOMNode refNode)
 {
     this.CallVoidMethod("selectNode", refNode);
 }
Beispiel #30
0
 public void Observe(nsIDOMNode target)
 {
     this.CallVoidMethod("observe", target);
 }
Beispiel #31
0
 public void SelectNodeContents(nsIDOMNode refNode)
 {
     this.CallVoidMethod("selectNodeContents", refNode);
 }
Beispiel #32
0
		internal Mono.WebBrowser.DOM.INode GetTypedNode (nsIDOMNode obj) 
		{
			if (obj == null)
				return null;
			obj.getLocalName (storage);
			ushort type;
			obj.getNodeType (out type);
			switch (type) {
				case (ushort)NodeType.Element:
#if DEBUG					
					Console.Write (Base.StringGet (storage) + ":Getting typed object from NodeType.Element:");
#endif
					if (obj is Mono.Mozilla.nsIDOMHTMLBodyElement) {
#if DEBUG					
						Console.WriteLine ("HTMLElement-nsIDOMHTMLBodyElement");
#endif
						return new HTMLElement (control, obj as nsIDOMHTMLBodyElement);
					}
					else if (obj is Mono.Mozilla.nsIDOMHTMLStyleElement) {
#if DEBUG					
						Console.WriteLine ("HTMLElement-nsIDOMHTMLStyleElement");
#endif
						return new HTMLElement (control, obj as nsIDOMHTMLStyleElement);
					}
					else if (obj is nsIDOMHTMLElement) {
#if DEBUG					
						Console.WriteLine ("HTMLElement-nsIDOMHTMLElement");
#endif
						return new HTMLElement (control, obj as nsIDOMHTMLElement);
					}
#if DEBUG					
					Console.WriteLine ("HTMLElement-nsIDOMHTMLElement");
#endif
					return new Element (control, obj as nsIDOMElement);
					break;
				case (ushort)NodeType.Attribute:
					return new Attribute (control, obj as nsIDOMAttr);
					break;
				case (ushort)NodeType.Document:
					if (obj is nsIDOMHTMLDocument)
						return new Document (control, obj as nsIDOMHTMLDocument);
					return new Document (control, obj as nsIDOMDocument);
					break;
				case (ushort)NodeType.Text:
				case (ushort)NodeType.CDataSection:
				case (ushort)NodeType.EntityReference:
				case (ushort)NodeType.Entity:
				case (ushort)NodeType.ProcessingInstruction:
				case (ushort)NodeType.Comment:
				case (ushort)NodeType.DocumentType:
				case (ushort)NodeType.DocumentFragment:
				case (ushort)NodeType.Notation:				
				default:
					return new Node (control, obj);
					break;
			}
		}
Beispiel #33
0
 public void InsertNode(nsIDOMNode node)
 {
     this.CallVoidMethod("insertNode", node);
 }
		public bool OnClientMouseOut (MouseInfo mouseInfo, ModifierKeys modifiers, nsIDOMNode target)
		{
#if debug
			OnGeneric ("OnClientMouseOut");
			Console.Error.WriteLine ("OnClientMouseOut");
#endif
			INode node = new Mono.Mozilla.DOM.Node (owner, target);			
			string key = String.Intern (node.GetHashCode () + ":mouseout");
			EventHandler eh1 = (EventHandler) owner.DomEvents[key];
			if (eh1 != null) {
				EventArgs e1 = new EventArgs ();
				eh1 (node, e1);
			}
			
			NodeEventHandler eh = (NodeEventHandler) (owner.Events[WebBrowser.MouseLeaveEvent]);
			if (eh != null) {
				NodeEventArgs e = new NodeEventArgs (node);
				eh (this, e);
				return true;
			}
			return false;
		}
Beispiel #35
0
 public void SurroundContents(nsIDOMNode newParent)
 {
     this.CallVoidMethod("surroundContents", newParent);
 }
Beispiel #36
0
		private void Recurse (HTMLElementCollection col, nsIDOMNode parent) {			
			nsIDOMNodeList children;
			parent.getChildNodes (out children);
			uint count;
			children.getLength (out count);

			for (int i = 0; i < count;i++) {
				nsIDOMNode node;
				children.item ((uint)i, out node);
				ushort type;
				node.getNodeType (out type);
				if (type == (ushort)NodeType.Element) {
					col.Add (new HTMLElement (control, (nsIDOMHTMLElement)node));
					Recurse (col, node);
				}
			}
		}
Beispiel #37
0
 public bool IsPointInRange(nsIDOMNode node, uint offset)
 {
     return(this.CallMethod <bool>("isPointInRange", node, offset));
 }
Beispiel #38
0
		public static nsIDOMNode GetProxy (Mono.WebBrowser.IWebBrowser control, nsIDOMNode obj)
		{
			object o = Base.GetProxyForObject (control, typeof(nsIDOMNode).GUID, obj);
			return o as nsIDOMNode;
		}
Beispiel #39
0
 public short ComparePoint(nsIDOMNode node, uint offset)
 {
     return(this.CallMethod <short>("comparePoint", node, offset));
 }
		internal static GeckoNode Create(nsIDOMNode domObject)
		{
			return m_nodeCache.Get(domObject);
		}
Beispiel #41
0
 public bool IntersectsNode(nsIDOMNode node)
 {
     return(this.CallMethod <bool>("intersectsNode", node));
 }
		void nsIContextMenuListener.OnShowContextMenu(UInt32 aContextFlags, nsIDOMEvent aEvent, nsIDOMNode aNode)
		{
			var e = new ContextMenuEventArgs((ContextMenuContext)aContextFlags, aEvent, aNode);
			Events.Raise(EventKey.ShowContextMenu, e);
		}
Beispiel #43
0
 public void SetEnd(nsIDOMNode refNode, uint offset)
 {
     this.CallVoidMethod("setEnd", refNode, offset);
 }
Beispiel #44
0
 public void SetEndBefore(nsIDOMNode refNode)
 {
     this.CallVoidMethod("setEndBefore", refNode);
 }
		internal ProvideTooltipTextEventArgs(nsIDOMNode domNode)
		{
			m_DomNode = DomNode.Create(domNode);
		}