1 // Permission is hereby granted, free of charge, to any person obtaining
\r
2 // a copy of this software and associated documentation files (the
\r
3 // "Software"), to deal in the Software without restriction, including
\r
4 // without limitation the rights to use, copy, modify, merge, publish,
\r
5 // distribute, sublicense, and/or sell copies of the Software, and to
\r
6 // permit persons to whom the Software is furnished to do so, subject to
\r
7 // the following conditions:
\r
9 // The above copyright notice and this permission notice shall be
\r
10 // included in all copies or substantial portions of the Software.
\r
12 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
\r
13 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
\r
14 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
\r
15 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
\r
16 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
\r
17 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
\r
18 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\r
20 // Copyright (c) 2007 Novell, Inc.
\r
23 // Andreia Gaita <avidigal@novell.com>
\r
28 using System.ComponentModel;
\r
29 using System.Runtime.InteropServices;
\r
30 using System.Windows.Forms;
\r
33 namespace System.Windows.Forms
\r
35 [MonoTODO ("Needs Implementation")]
\r
36 [ClassInterface (ClassInterfaceType.AutoDispatch)]
\r
38 [Designer("System.Windows.Forms.Design.WebBrowserBaseDesigner, " + Consts.AssemblySystem_Design,
\r
39 "System.ComponentModel.Design.IDesigner")]
\r
40 public class WebBrowser : WebBrowserBase
\r
42 private bool allowNavigation;
\r
43 private bool allowWebBrowserDrop;
\r
44 private bool canGoBack;
\r
45 private bool canGoForward;
\r
46 private bool isWebBrowserContextMenuEnabled;
\r
47 private object objectForScripting;
\r
48 private bool scriptErrorsSuppressed;
\r
49 private bool scrollBarsEnabled;
\r
50 private string statusText;
\r
51 private bool webBrowserShortcutsEnabled;
\r
53 #region Public Properties
\r
55 [MonoTODO ("Stub, not implemented")]
\r
56 [DefaultValue(true)]
\r
57 public bool AllowNavigation {
\r
58 get { return allowNavigation; }
\r
59 set { allowNavigation = value; }
\r
62 [MonoTODO ("Stub, not implemented")]
\r
63 [DefaultValue (true)]
\r
64 public bool AllowWebBrowserDrop {
\r
65 get { return allowWebBrowserDrop; }
\r
66 set { allowWebBrowserDrop = value; }
\r
69 [MonoTODO ("Stub, not implemented")]
\r
70 [DefaultValue (true)]
\r
71 public bool CanGoBack {
\r
72 get { return canGoBack; }
\r
75 [MonoTODO ("Stub, not implemented")]
\r
76 [DefaultValue (true)]
\r
77 public bool CanGoForward {
\r
78 get { return canGoForward; }
\r
81 [MonoTODO ("Stub, not implemented")]
\r
82 public HtmlDocument Document {
\r
83 get { throw new NotImplementedException (); }
\r
86 [MonoTODO ("Stub, not implemented")]
\r
87 public Stream DocumentStream {
\r
88 get { return null; }
\r
92 [MonoTODO ("Stub, not implemented")]
\r
93 public string DocumentText {
\r
94 get { return String.Empty; }
\r
95 set { throw new NotSupportedException (); }
\r
98 [MonoTODO ("Stub, not implemented")]
\r
99 public string DocumentTitle {
\r
100 get { return String.Empty; }
\r
101 set { throw new NotSupportedException (); }
\r
104 [MonoTODO ("Stub, not implemented")]
\r
105 public string DocumentType {
\r
106 get { return String.Empty; }
\r
107 set { throw new NotSupportedException (); }
\r
110 [MonoTODO ("Stub, not implemented")]
\r
111 public WebBrowserEncryptionLevel EncryptionLevel {
\r
112 get { return WebBrowserEncryptionLevel.Unknown; }
\r
115 [MonoTODO ("Stub, not implemented")]
\r
116 public override bool Focused {
\r
117 get { return base.Focused; }
\r
120 [MonoTODO ("Stub, not implemented")]
\r
121 public bool IsBusy {
\r
122 get { return false; }
\r
125 [MonoTODO ("Stub, not implemented")]
\r
126 public bool IsOffline {
\r
127 get { return true; }
\r
130 [MonoTODO ("Stub, not implemented")]
\r
131 public bool IsWebBrowserContextMenuEnabled {
\r
132 get { return isWebBrowserContextMenuEnabled; }
\r
133 set { isWebBrowserContextMenuEnabled = value; }
\r
136 [MonoTODO ("Stub, not implemented")]
\r
137 public object ObjectForScripting {
\r
138 get { return objectForScripting; }
\r
139 set { objectForScripting = value; }
\r
142 [MonoTODO ("Stub, not implemented")]
\r
143 public WebBrowserReadyState ReadyState {
\r
144 get { return WebBrowserReadyState.Uninitialized; }
\r
147 [MonoTODO ("Stub, not implemented")]
\r
148 public bool ScriptErrorsSuppressed {
\r
149 get { return scriptErrorsSuppressed; }
\r
150 set { scriptErrorsSuppressed = value; }
\r
153 [MonoTODO ("Stub, not implemented")]
\r
154 public bool ScrollBarsEnabled {
\r
155 get { return scrollBarsEnabled; }
\r
156 set { scrollBarsEnabled = value; }
\r
159 [MonoTODO ("Stub, not implemented")]
\r
160 public virtual string StatusText {
\r
161 get { return statusText; }
\r
162 set { statusText = value; }
\r
165 [MonoTODO ("Stub, not implemented")]
\r
166 [BindableAttribute(true)]
\r
168 get { return null; }
\r
169 set { this.Navigate (value); }
\r
172 [MonoTODO ("Stub, not implemented")]
\r
173 public Version Version {
\r
174 get { return null; }
\r
177 [MonoTODO ("Stub, not implemented")]
\r
178 public bool WebBrowserShortcutsEnabled {
\r
179 get { return webBrowserShortcutsEnabled; }
\r
180 set { webBrowserShortcutsEnabled = value; }
\r
185 [MonoTODO ("Stub, not implemented")]
\r
186 public WebBrowser ()
\r
190 #region Public Methods
\r
192 public bool GoBack ()
\r
194 return WebHost.Back ();
\r
197 public bool GoForward ()
\r
199 return WebHost.Forward ();
\r
202 public void GoHome ()
\r
207 public void GoSearch ()
\r
209 throw new NotImplementedException ();
\r
212 public void Navigate (string urlString)
\r
214 WebHost.Navigate (urlString);
\r
217 public void Navigate (Uri url)
\r
219 WebHost.Navigate (url.ToString ());
\r
222 public void Navigate (string urlString, bool newWindow)
\r
224 throw new NotImplementedException ();
\r
227 public void Navigate (string urlString, string targetFrameName)
\r
229 throw new NotImplementedException ();
\r
232 public void Navigate (Uri url, bool newWindow)
\r
234 throw new NotImplementedException ();
\r
237 public void Navigate (Uri url, string targetFrameName)
\r
239 throw new NotImplementedException ();
\r
242 public void Navigate (string urlString, string targetFrameName, byte[] postData, string additionalHeaders)
\r
244 throw new NotImplementedException ();
\r
247 public void Navigate (Uri url, string targetFrameName, byte[] postData, string additionalHeaders)
\r
249 throw new NotImplementedException ();
\r
252 public void Print ()
\r
254 throw new NotImplementedException ();
\r
257 public override void Refresh ()
\r
259 WebHost.Reload (Mono.WebBrowser.ReloadOption.Full);
\r
262 public void Refresh (WebBrowserRefreshOption opt)
\r
265 case WebBrowserRefreshOption.Normal:
\r
266 WebHost.Reload (Mono.WebBrowser.ReloadOption.Proxy);
\r
268 case WebBrowserRefreshOption.IfExpired:
\r
269 WebHost.Reload (Mono.WebBrowser.ReloadOption.None);
\r
271 case WebBrowserRefreshOption.Completely:
\r
272 WebHost.Reload (Mono.WebBrowser.ReloadOption.Full);
\r
277 public void ShowPageSetupDialog()
\r
279 throw new NotImplementedException ();
\r
282 public void ShowPrintDialog()
\r
284 throw new NotImplementedException ();
\r
287 public void ShowPrintPreviewDialog()
\r
289 throw new NotImplementedException ();
\r
292 public void ShowPropertiesDialog()
\r
294 throw new NotImplementedException ();
\r
297 public void ShowSaveAsDialog()
\r
299 throw new NotImplementedException ();
\r
310 #region Protected Overridden Methods
\r
311 [MonoTODO ("Stub, not implemented")]
\r
312 protected override void AttachInterfaces (object nativeActiveXObject)
\r
314 base.AttachInterfaces (nativeActiveXObject);
\r
317 [MonoTODO ("Stub, not implemented")]
\r
318 protected override void CreateSink ()
\r
320 base.CreateSink ();
\r
323 [MonoTODO ("Stub, not implemented")]
\r
324 protected override WebBrowserSiteBase CreateWebBrowserSiteBase ()
\r
326 return base.CreateWebBrowserSiteBase ();
\r
329 [MonoTODO ("Stub, not implemented")]
\r
330 protected override void DetachInterfaces ()
\r
332 base.DetachInterfaces ();
\r
335 [MonoTODO ("Stub, not implemented")]
\r
336 protected override void DetachSink ()
\r
338 base.DetachSink ();
\r
341 [MonoTODO ("Stub, not implemented")]
\r
342 protected override void Dispose (bool disposing)
\r
344 base.Dispose (disposing);
\r
347 [MonoTODO ("Stub, not implemented")]
\r
348 protected override void WndProc (ref Message m)
\r
350 base.WndProc (ref m);
\r
354 #region OnXXX methods
\r
355 protected virtual void OnCanGoBackChanged(EventArgs e)
\r
357 EventHandler eh = (EventHandler)(Events [CanGoBackChangedEvent]);
\r
362 protected virtual void OnCanGoForwardChanged(EventArgs e)
\r
364 EventHandler eh = (EventHandler)(Events [CanGoForwardChangedEvent]);
\r
369 protected virtual void OnDocumentCompleted(WebBrowserDocumentCompletedEventArgs e)
\r
371 WebBrowserDocumentCompletedEventHandler eh = (WebBrowserDocumentCompletedEventHandler)(Events [DocumentCompletedEvent]);
\r
376 protected virtual void OnDocumentTitleChanged(EventArgs e)
\r
378 EventHandler eh = (EventHandler)(Events [DocumentTitleChangedEvent]);
\r
383 protected virtual void OnEncryptionLevelChanged(EventArgs e)
\r
385 EventHandler eh = (EventHandler)(Events [EncryptionLevelChangedEvent]);
\r
390 protected virtual void OnFileDownload(EventArgs e)
\r
392 EventHandler eh = (EventHandler)(Events [FileDownloadEvent]);
\r
397 protected virtual void OnNavigated(WebBrowserNavigatedEventArgs e)
\r
399 WebBrowserNavigatedEventHandler eh = (WebBrowserNavigatedEventHandler)(Events [NavigatedEvent]);
\r
404 protected virtual void OnNavigating(WebBrowserNavigatingEventArgs e)
\r
406 WebBrowserNavigatingEventHandler eh = (WebBrowserNavigatingEventHandler)(Events [NavigatingEvent]);
\r
411 protected virtual void OnNewWindow(CancelEventArgs e)
\r
413 CancelEventHandler eh = (CancelEventHandler)(Events [NewWindowEvent]);
\r
418 protected virtual void OnProgressChanged(WebBrowserProgressChangedEventArgs e)
\r
420 WebBrowserProgressChangedEventHandler eh = (WebBrowserProgressChangedEventHandler)(Events [ProgressChangedEvent]);
\r
425 protected virtual void OnStatusTextChanged(EventArgs e)
\r
427 EventHandler eh = (EventHandler)(Events [StatusTextChangedEvent]);
\r
434 static object CanGoBackChangedEvent = new object ();
\r
435 static object CanGoForwardChangedEvent = new object ();
\r
436 static object DocumentCompletedEvent = new object ();
\r
437 static object DocumentTitleChangedEvent = new object ();
\r
438 static object EncryptionLevelChangedEvent = new object ();
\r
439 static object FileDownloadEvent = new object ();
\r
440 static object NavigatedEvent = new object ();
\r
441 static object NavigatingEvent = new object ();
\r
442 static object NewWindowEvent = new object ();
\r
443 static object ProgressChangedEvent = new object ();
\r
444 static object StatusTextChangedEvent = new object ();
\r
446 public event EventHandler CanGoBackChanged {
\r
447 add { Events.AddHandler (CanGoBackChangedEvent, value); }
\r
448 remove { Events.RemoveHandler (CanGoBackChangedEvent, value); }
\r
451 public event EventHandler CanGoForwardChanged {
\r
452 add { Events.AddHandler (CanGoForwardChangedEvent, value); }
\r
453 remove { Events.RemoveHandler (CanGoForwardChangedEvent, value); }
\r
456 public event WebBrowserDocumentCompletedEventHandler DocumentCompleted {
\r
457 add { Events.AddHandler (DocumentCompletedEvent, value); }
\r
458 remove { Events.RemoveHandler (DocumentCompletedEvent, value); }
\r
461 public event EventHandler DocumentTitleChanged {
\r
462 add { Events.AddHandler (DocumentTitleChangedEvent, value); }
\r
463 remove { Events.RemoveHandler (DocumentTitleChangedEvent, value); }
\r
466 public event EventHandler EncryptionLevelChanged {
\r
467 add { Events.AddHandler (EncryptionLevelChangedEvent, value); }
\r
468 remove { Events.RemoveHandler (EncryptionLevelChangedEvent, value); }
\r
471 public event EventHandler FileDownload {
\r
472 add { Events.AddHandler (FileDownloadEvent, value); }
\r
473 remove { Events.RemoveHandler (FileDownloadEvent, value); }
\r
476 public event WebBrowserNavigatedEventHandler Navigated {
\r
477 add { Events.AddHandler (NavigatedEvent, value); }
\r
478 remove { Events.RemoveHandler (NavigatedEvent, value); }
\r
481 public event WebBrowserNavigatingEventHandler Navigating {
\r
482 add { Events.AddHandler (NavigatingEvent, value); }
\r
483 remove { Events.RemoveHandler (NavigatingEvent, value); }
\r
486 public event CancelEventHandler NewWindow {
\r
487 add { Events.AddHandler (NewWindowEvent, value); }
\r
488 remove { Events.RemoveHandler (NewWindowEvent, value); }
\r
491 public event WebBrowserProgressChangedEventHandler ProgressChanged {
\r
492 add { Events.AddHandler (ProgressChangedEvent, value); }
\r
493 remove { Events.RemoveHandler (ProgressChangedEvent, value); }
\r
496 public event EventHandler StatusTextChanged {
\r
497 add { Events.AddHandler (StatusTextChangedEvent, value); }
\r
498 remove { Events.RemoveHandler (StatusTextChangedEvent, value); }
\r
504 internal override bool OnNewWindowInternal ()
\r
506 CancelEventArgs c = new CancelEventArgs ();
\r
513 [MonoTODO ("Stub, not implemented")]
\r
514 protected class WebBrowserSite : WebBrowserSiteBase
\r
516 [MonoTODO ("Stub, not implemented")]
\r
517 public WebBrowserSite (WebBrowser host)
\r