5
// Moonlight List (moonlight-list@lists.ximian.com)
7
// Copyright (C) 2007 Novell, Inc (http://www.novell.com)
9
// Permission is hereby granted, free of charge, to any person obtaining
10
// a copy of this software and associated documentation files (the
11
// "Software"), to deal in the Software without restriction, including
12
// without limitation the rights to use, copy, modify, merge, publish,
13
// distribute, sublicense, and/or sell copies of the Software, and to
14
// permit persons to whom the Software is furnished to do so, subject to
15
// the following conditions:
17
// The above copyright notice and this permission notice shall be
18
// included in all copies or substantial portions of the Software.
20
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29
using System.Security;
31
namespace System.Windows.Browser
33
public class HtmlElement : HtmlObject
35
// When does this .ctor make sense?
36
internal HtmlElement ()
40
internal HtmlElement (IntPtr handle)
45
[SecuritySafeCritical ()]
46
public void AppendChild (HtmlElement element)
48
InvokeInternal<object> (Handle, "appendChild", element);
51
[SecuritySafeCritical ()]
52
public void AppendChild (HtmlElement element, HtmlElement referenceElement)
54
InvokeInternal<object> (Handle, "insertBefore", element, referenceElement);
57
[SecuritySafeCritical ()]
60
InvokeInternal<object> (Handle, "focus");
63
public string GetAttribute (string name)
65
return InvokeInternal<string> (Handle, "getAttribute", name);
69
public string GetStyleAttribute (string name)
71
throw new NotImplementedException ();
74
public void RemoveAttribute (string name)
76
InvokeInternal<object> (Handle, "removeAttribute", name);
79
[SecuritySafeCritical ()]
80
public void RemoveChild (HtmlElement element)
82
InvokeInternal<object> (Handle, "removeChild", element);
87
public void RemoveStyleAttribute (string name)
89
throw new NotImplementedException ();
92
public void SetAttribute (string name, string value)
94
InvokeInternal<object> (Handle, "setAttribute", name, value);
97
public override void SetProperty (string name, object value)
99
SetPropertyInternal (Handle, name, value);
102
[MonoTODO ("This doesn't seem to work.")]
103
public void SetStyleAttribute (string name, string value)
105
IntPtr style = GetPropertyInternal<IntPtr> (Handle, "style");
106
SetPropertyInternal (style, name, value);
109
public HtmlElementCollection Children {
110
[SecuritySafeCritical]
111
get { return new HtmlElementCollection ((IntPtr) GetProperty ("childNodes")); }
114
public string CssClass {
115
get { return GetPropertyInternal<string> (Handle, "class"); }
116
set { SetPropertyInternal (Handle, "class", value); }
120
get { return GetPropertyInternal<string> (Handle, "id"); }
121
set { SetPropertyInternal (Handle, "id", value); }
124
public HtmlElement Parent {
125
[SecuritySafeCritical]
126
get { return new HtmlElement (GetPropertyInternal<IntPtr> (Handle, "parentNode")); }
129
public string TagName {
130
get { return GetPropertyInternal<string> (Handle, "tagName"); }