Fix bug #395
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / WebBrowserBase.cs
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
8 // \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
11 // \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
19 //\r
20 // Copyright (c) 2007, 2008 Novell, Inc.\r
21 //\r
22 // Authors:\r
23 //      Andreia Gaita   <avidigal@novell.com>\r
24 \r
25 #undef debug\r
26 \r
27 using System;\r
28 using System.Collections;\r
29 using System.ComponentModel;\r
30 using System.Drawing;\r
31 using System.Runtime.InteropServices;\r
32 using System.Windows.Forms;\r
33 using System.Collections.Generic;\r
34 using Mono.WebBrowser;\r
35 \r
36 namespace System.Windows.Forms\r
37 {\r
38         [ClassInterface(ClassInterfaceType.AutoDispatch)]\r
39         [ComVisible(true)]\r
40         [DefaultProperty ("Name")]\r
41         [DefaultEvent ("Enter")]\r
42         [Designer("System.Windows.Forms.Design.AxDesigner, " + Consts.AssemblySystem_Design, "System.ComponentModel.Design.IDesigner")]\r
43         public class WebBrowserBase : Control\r
44         {\r
45                 internal bool documentReady;\r
46                 private bool suppressDialogs;\r
47                 internal bool SuppressDialogs {\r
48                         get { return suppressDialogs; }\r
49                         set { \r
50                                 suppressDialogs = value;\r
51                                 webHost.Alert -= new Mono.WebBrowser.AlertEventHandler (OnWebHostAlert);\r
52                                 if (!suppressDialogs)\r
53                                         webHost.Alert += new Mono.WebBrowser.AlertEventHandler (OnWebHostAlert);                                \r
54                         }\r
55                 }\r
56                 \r
57                 protected string status;\r
58 \r
59                 #region Public Properties\r
60 \r
61                 [Browsable (false)] \r
62                 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]\r
63                 public Object ActiveXInstance {\r
64                         get { throw new NotSupportedException ("Retrieving a reference to an activex interface is not supported. Sorry."); }\r
65                 }\r
66 \r
67                 [Browsable (false)]\r
68                 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]\r
69                 [EditorBrowsable (EditorBrowsableState.Never)]\r
70                 public override bool AllowDrop {\r
71                         get { return base.AllowDrop; }\r
72                         set { base.AllowDrop = value; }\r
73                 }\r
74 \r
75                 [Browsable (false)]\r
76                 [EditorBrowsable (EditorBrowsableState.Never)]\r
77                 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]\r
78                 public override Color BackColor {\r
79                         get { return base.BackColor; }\r
80                         set { base.BackColor = value; }\r
81                 }\r
82 \r
83                 [Browsable (false)]\r
84                 [EditorBrowsable (EditorBrowsableState.Never)]\r
85                 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]\r
86                 public override Image BackgroundImage {\r
87                         get { return base.BackgroundImage; }\r
88                         set { base.BackgroundImage = value; }\r
89                 }\r
90 \r
91                 [Browsable (false)]\r
92                 [EditorBrowsable (EditorBrowsableState.Never)]\r
93                 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]\r
94                 public override ImageLayout BackgroundImageLayout {\r
95                         get { return base.BackgroundImageLayout; }\r
96                         set { base.BackgroundImageLayout = value; }\r
97                 }\r
98 \r
99                 [Browsable (false)]\r
100                 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]\r
101                 [EditorBrowsable (EditorBrowsableState.Never)]\r
102                 public override Cursor Cursor {\r
103                         get { return base.Cursor; }\r
104                         set { throw new NotSupportedException (); }\r
105                 }\r
106 \r
107                 [Browsable (false)]\r
108                 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]\r
109                 [EditorBrowsable (EditorBrowsableState.Never)]\r
110                 public new bool Enabled {\r
111                         get { return base.Enabled; }\r
112                         set { throw new NotSupportedException (); }\r
113                 }\r
114 \r
115                 [Browsable (false)]\r
116                 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]\r
117                 [EditorBrowsable (EditorBrowsableState.Never)]\r
118                 public override Font Font {\r
119                         get { return base.Font; }\r
120                         set { base.Font = value; }\r
121                 }\r
122 \r
123                 [Browsable (false)]\r
124                 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]\r
125                 [EditorBrowsable (EditorBrowsableState.Never)]\r
126                 public override Color ForeColor {\r
127                         get { return base.ForeColor; }\r
128                         set { base.ForeColor = value; }\r
129                 }\r
130 \r
131                 [Browsable (false)]\r
132                 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]\r
133                 [EditorBrowsable (EditorBrowsableState.Never)]\r
134                 public new ImeMode ImeMode {\r
135                         get { return base.ImeMode; }\r
136                         set { base.ImeMode = value; }\r
137                 }\r
138 \r
139                 [Browsable (false)]\r
140                 [EditorBrowsable (EditorBrowsableState.Never)]\r
141                 [Localizable (false)]\r
142                 public new virtual RightToLeft RightToLeft {\r
143                         get { return base.RightToLeft; }\r
144                         set { base.RightToLeft = value; }\r
145                 }\r
146 \r
147                 public override ISite Site {\r
148                         set { base.Site = value; }\r
149                 }\r
150 \r
151                 [Bindable (false)]\r
152                 [Browsable (false)]\r
153                 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]\r
154                 [EditorBrowsable (EditorBrowsableState.Never)]\r
155                 public override string Text {\r
156                         get { return String.Empty; }\r
157                         set { throw new NotSupportedException (); }\r
158                 }\r
159 \r
160                 [Browsable (false)]\r
161                 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]\r
162                 [EditorBrowsable (EditorBrowsableState.Never)]\r
163                 public new bool UseWaitCursor {\r
164                         get { return base.UseWaitCursor; }\r
165                         set { throw new NotSupportedException (); }\r
166                 }\r
167 \r
168                 #endregion\r
169 \r
170                 #region Protected Properties\r
171 \r
172                 protected override Size DefaultSize {\r
173                         get { return new Size (100, 100); }\r
174                 }\r
175 \r
176                 #endregion\r
177 \r
178                 #region Public Methods\r
179 \r
180                 [EditorBrowsable (EditorBrowsableState.Never)]\r
181                 public new void DrawToBitmap (Bitmap bitmap, Rectangle targetBounds)\r
182                 {\r
183                         base.DrawToBitmap (bitmap, targetBounds);\r
184                 }\r
185 \r
186                 public override bool  PreProcessMessage(ref Message msg)\r
187                 {\r
188                          return base.PreProcessMessage(ref msg);\r
189                 }\r
190 \r
191                 #endregion\r
192 \r
193                 #region Protected Virtual Methods\r
194 \r
195                 protected virtual void AttachInterfaces (object nativeActiveXObject)\r
196                 {\r
197                         throw new NotSupportedException ("Retrieving a reference to an activex interface is not supported. Sorry.");\r
198                 }\r
199 \r
200                 protected virtual void CreateSink ()\r
201                 {\r
202                         throw new NotSupportedException ("Retrieving a reference to an activex interface is not supported. Sorry.");\r
203                 }\r
204 \r
205                 protected virtual WebBrowserSiteBase CreateWebBrowserSiteBase ()\r
206                 {\r
207                         throw new NotSupportedException ("Retrieving a reference to an activex interface is not supported. Sorry.");\r
208                 }\r
209 \r
210                 protected virtual void DetachInterfaces ()\r
211                 {\r
212                         throw new NotSupportedException ("Retrieving a reference to an activex interface is not supported. Sorry.");\r
213                 }\r
214 \r
215                 protected virtual void DetachSink ()\r
216                 {\r
217                         throw new NotSupportedException ("Retrieving a reference to an activex interface is not supported. Sorry.");\r
218                 }\r
219 \r
220                 #endregion\r
221 \r
222                 #region Protected Overriden Methods\r
223 \r
224                 protected override void Dispose (bool disposing)\r
225                 {\r
226                         WebHost.Shutdown ();\r
227                         base.Dispose (disposing);\r
228                 }\r
229 \r
230                 protected override bool IsInputChar (char charCode)\r
231                 {\r
232                         return base.IsInputChar (charCode);\r
233                 }\r
234 \r
235                 protected override void OnBackColorChanged (EventArgs e)\r
236                 {\r
237                         base.OnBackColorChanged (e);\r
238                 }\r
239 \r
240                 protected override void OnFontChanged (EventArgs e)\r
241                 {\r
242                         base.OnFontChanged (e);\r
243                 }\r
244 \r
245                 protected override void OnForeColorChanged (EventArgs e)\r
246                 {\r
247                         base.OnForeColorChanged (e);\r
248                 }\r
249 \r
250                 protected override void OnGotFocus (EventArgs e)\r
251                 {\r
252 #if debug\r
253                         Console.Error.WriteLine ("WebBrowserBase: OnGotFocus");\r
254 #endif\r
255                         base.OnGotFocus (e);\r
256 //                      WebHost.FocusIn (Mono.WebBrowser.FocusOption.FocusFirstElement);\r
257                 }\r
258 \r
259                 [EditorBrowsable (EditorBrowsableState.Advanced)]\r
260                 protected override void OnHandleCreated (EventArgs e)\r
261                 {\r
262                         base.OnHandleCreated (e);\r
263                 }\r
264 \r
265                 protected override void OnLostFocus (EventArgs e)\r
266                 {\r
267 #if debug\r
268                         Console.Error.WriteLine ("WebBrowserBase: OnLostFocus");\r
269 #endif\r
270                         base.OnLostFocus (e);\r
271                         WebHost.FocusOut ();\r
272                 }\r
273 \r
274                 protected override void OnParentChanged (EventArgs e)\r
275                 {\r
276                         base.OnParentChanged (e);\r
277                 }\r
278                 \r
279                 protected override void OnRightToLeftChanged (EventArgs e)\r
280                 {\r
281                         base.OnRightToLeftChanged (e);\r
282                 }\r
283 \r
284                 protected override void OnVisibleChanged (EventArgs e)\r
285                 {\r
286                         base.OnVisibleChanged (e);\r
287                         if (Visible && !Disposing && !IsDisposed && state == State.Loaded) {\r
288                                 state = State.Active;\r
289                                 webHost.Activate ();\r
290                         } else if (!Visible && state == State.Active) {\r
291                                 state = State.Loaded;\r
292                                 webHost.Deactivate ();\r
293                         }\r
294                 }\r
295 \r
296                 protected override bool ProcessMnemonic (char charCode)\r
297                 {\r
298                         return base.ProcessMnemonic (charCode);\r
299                 }\r
300 \r
301                 protected override void WndProc (ref Message m)\r
302                 {\r
303                         base.WndProc (ref m);\r
304                 }\r
305                 \r
306                 #endregion\r
307 \r
308                 #region Internal Properties\r
309 \r
310                 enum State\r
311                 {\r
312                         Unloaded,\r
313                         Loaded,\r
314                         Active\r
315                 }\r
316                 private State state;\r
317 \r
318                 private Mono.WebBrowser.IWebBrowser webHost;\r
319                 internal Mono.WebBrowser.IWebBrowser WebHost {\r
320                         get { return webHost; }\r
321                 }\r
322 \r
323                 internal override void SetBoundsCoreInternal (int x, int y, int width, int height, BoundsSpecified specified)\r
324                 {\r
325                         base.SetBoundsCoreInternal (x, y, width, height, specified);\r
326                         this.webHost.Resize (width, height);\r
327                 }\r
328 \r
329                 #endregion\r
330 \r
331                 #region Internal Methods\r
332 \r
333                 internal WebBrowserBase ()\r
334                 {\r
335                         webHost = Mono.WebBrowser.Manager.GetNewInstance ();\r
336                         bool loaded = webHost.Load (this.Handle, this.Width, this.Height);\r
337                         if (!loaded)\r
338                                 return;\r
339                                 \r
340                         state = State.Loaded;\r
341 \r
342                         webHost.MouseClick += new Mono.WebBrowser.DOM.NodeEventHandler (OnWebHostMouseClick);\r
343                         webHost.Focus += new EventHandler (OnWebHostFocus);\r
344                         webHost.CreateNewWindow += new Mono.WebBrowser.CreateNewWindowEventHandler (OnWebHostCreateNewWindow);\r
345                         webHost.LoadStarted += new LoadStartedEventHandler (OnWebHostLoadStarted);\r
346                         webHost.LoadCommited += new LoadCommitedEventHandler (OnWebHostLoadCommited);\r
347                         webHost.ProgressChanged += new Mono.WebBrowser.ProgressChangedEventHandler (OnWebHostProgressChanged);\r
348                         webHost.LoadFinished += new LoadFinishedEventHandler (OnWebHostLoadFinished);\r
349                         \r
350                         if (!suppressDialogs)\r
351                                 webHost.Alert += new Mono.WebBrowser.AlertEventHandler (OnWebHostAlert);\r
352 \r
353                         webHost.StatusChanged += new StatusChangedEventHandler (OnWebHostStatusChanged);\r
354                         \r
355                         webHost.SecurityChanged += new SecurityChangedEventHandler (OnWebHostSecurityChanged);\r
356                         webHost.ContextMenuShown += new ContextMenuEventHandler (OnWebHostContextMenuShown);\r
357                 }\r
358 \r
359                 void OnWebHostAlert (object sender, Mono.WebBrowser.AlertEventArgs e)\r
360                 {\r
361                         switch (e.Type) {\r
362                                 case Mono.WebBrowser.DialogType.Alert:\r
363                                         MessageBox.Show (e.Text, e.Title);\r
364                                         break;\r
365                                 case Mono.WebBrowser.DialogType.AlertCheck:\r
366                                         WebBrowserDialogs.AlertCheck form1 = new WebBrowserDialogs.AlertCheck (e.Title, e.Text, e.CheckMessage, e.CheckState);\r
367                                         form1.Show ();\r
368                                         e.CheckState = form1.Checked;\r
369                                         e.BoolReturn = true;\r
370                                         break;\r
371                                 case Mono.WebBrowser.DialogType.Confirm:\r
372                                         DialogResult r1 = MessageBox.Show (e.Text, e.Title, MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation);\r
373                                         e.BoolReturn = (r1 == DialogResult.OK);\r
374                                         break;\r
375                                 case Mono.WebBrowser.DialogType.ConfirmCheck:\r
376                                         WebBrowserDialogs.ConfirmCheck form2 = new WebBrowserDialogs.ConfirmCheck (e.Title, e.Text, e.CheckMessage, e.CheckState);\r
377                                         DialogResult r2 = form2.Show ();\r
378                                         e.CheckState = form2.Checked;\r
379                                         e.BoolReturn = (r2 == DialogResult.OK);\r
380                                         break;\r
381                                 case Mono.WebBrowser.DialogType.ConfirmEx:\r
382                                         MessageBox.Show (e.Text, e.Title);\r
383                                         break;\r
384                                 case Mono.WebBrowser.DialogType.Prompt:\r
385                                         WebBrowserDialogs.Prompt form4 = new WebBrowserDialogs.Prompt (e.Title, e.Text, e.Text2);\r
386                                         DialogResult r4 = form4.Show ();\r
387                                         e.StringReturn = form4.Text;\r
388                                         e.BoolReturn = (r4 == DialogResult.OK);\r
389                                         break;\r
390                                 case Mono.WebBrowser.DialogType.PromptPassword:\r
391                                         MessageBox.Show (e.Text, e.Title);\r
392                                         break;\r
393                                 case Mono.WebBrowser.DialogType.PromptUsernamePassword:\r
394                                         MessageBox.Show (e.Text, e.Title);\r
395                                         break;\r
396                                 case Mono.WebBrowser.DialogType.Select:\r
397                                         MessageBox.Show (e.Text, e.Title);\r
398                                         break;\r
399                         }\r
400                         \r
401                 }\r
402 \r
403                 #region Events raised by the embedded web browser\r
404 \r
405                 bool OnWebHostCreateNewWindow (object sender, Mono.WebBrowser.CreateNewWindowEventArgs e)\r
406                 {\r
407                         return OnNewWindowInternal ();\r
408                 }\r
409 \r
410                 internal override void OnResizeInternal (EventArgs e)\r
411                 {\r
412                         base.OnResizeInternal (e);\r
413 \r
414                         if (state == State.Active)\r
415                                 this.webHost.Resize (this.Width, this.Height);\r
416                 }\r
417 \r
418                 private void OnWebHostMouseClick (object sender, EventArgs e)\r
419                 {\r
420                         //MessageBox.Show ("clicked");\r
421                 }\r
422 \r
423                 /// <summary>\r
424                 /// Event raised from the embedded webbrowser control, saying that it has received focus\r
425                 /// (via a mouse click, for instance).\r
426                 /// </summary>\r
427                 /// <param name="sender"></param>\r
428                 /// <param name="e"></param>\r
429                 private void OnWebHostFocus (object sender, EventArgs e)\r
430                 {\r
431 #if debug\r
432                         Console.Error.WriteLine ("WebBrowserBase: OnWebHostFocus");\r
433 #endif\r
434                         this.Focus ();\r
435                 }\r
436                 \r
437                 #endregion\r
438 \r
439                 internal virtual bool OnNewWindowInternal ()\r
440                 {\r
441                         return false;\r
442                 }\r
443 \r
444                 internal virtual void OnWebHostLoadStarted (object sender, LoadStartedEventArgs e)\r
445                 {\r
446                 }\r
447 \r
448                 internal virtual void OnWebHostLoadCommited (object sender, LoadCommitedEventArgs e)\r
449                 {\r
450                 }\r
451                 internal virtual void OnWebHostProgressChanged (object sender, Mono.WebBrowser.ProgressChangedEventArgs e)\r
452                 {\r
453                 }\r
454                 internal virtual void OnWebHostLoadFinished (object sender, LoadFinishedEventArgs e)\r
455                 {\r
456                 }\r
457                 \r
458                 internal virtual void OnWebHostSecurityChanged (object sender, SecurityChangedEventArgs e)\r
459                 {\r
460                 }\r
461                 \r
462                 internal virtual void OnWebHostContextMenuShown (object sender, ContextMenuEventArgs e) {\r
463                 }\r
464 \r
465                 internal virtual void OnWebHostStatusChanged (object sender, StatusChangedEventArgs e) {\r
466                 }\r
467 \r
468                 #endregion\r
469 \r
470                 #region Events\r
471                 \r
472                 [Browsable (false)]\r
473                 [EditorBrowsable (EditorBrowsableState.Never)]\r
474                 public new event EventHandler BackColorChanged {\r
475                         add { throw new NotSupportedException ("Invalid event handler for BackColorChanged"); }\r
476                         remove { }\r
477                 }\r
478 \r
479                 [Browsable (false)]\r
480                 [EditorBrowsable (EditorBrowsableState.Never)]\r
481                 public new event EventHandler BackgroundImageChanged {\r
482                         add { throw new NotSupportedException ("Invalid event handler for BackgroundImageChanged"); }\r
483                         remove { }\r
484                 }\r
485                 \r
486                 [Browsable (false)]\r
487                 [EditorBrowsable (EditorBrowsableState.Never)]\r
488                 public new event EventHandler BackgroundImageLayoutChanged {\r
489                         add { throw new NotSupportedException ("Invalid event handler for BackgroundImageLayoutChanged"); }\r
490                         remove { }\r
491                 }\r
492                 \r
493                 [Browsable (false)]\r
494                 [EditorBrowsable (EditorBrowsableState.Never)]\r
495                 public new event EventHandler BindingContextChanged {\r
496                         add { throw new NotSupportedException ("Invalid event handler for BindingContextChanged"); }\r
497                         remove { }\r
498                 }\r
499                 \r
500                 [Browsable (false)]\r
501                 [EditorBrowsable (EditorBrowsableState.Never)]\r
502                 public new event UICuesEventHandler ChangeUICues {\r
503                         add { throw new NotSupportedException ("Invalid event handler for ChangeUICues"); }\r
504                         remove { }\r
505                 }\r
506                 \r
507                 [Browsable (false)]\r
508                 [EditorBrowsable (EditorBrowsableState.Never)]\r
509                 public new event EventHandler Click {\r
510                         add { throw new NotSupportedException ("Invalid event handler for Click"); }\r
511                         remove { }\r
512                 }\r
513                 \r
514                 [Browsable (false)]\r
515                 [EditorBrowsable (EditorBrowsableState.Never)]\r
516                 public new event EventHandler CursorChanged {\r
517                         add { throw new NotSupportedException ("Invalid event handler for CursorChanged"); }\r
518                         remove { }\r
519                 }\r
520                 \r
521                 [Browsable (false)]\r
522                 [EditorBrowsable (EditorBrowsableState.Never)]\r
523                 public new event EventHandler DoubleClick {\r
524                         add { throw new NotSupportedException ("Invalid event handler for DoubleClick"); }\r
525                         remove { }\r
526                 }\r
527                 \r
528                 [Browsable (false)]\r
529                 [EditorBrowsable (EditorBrowsableState.Never)]\r
530                 public new event DragEventHandler DragDrop {\r
531                         add { throw new NotSupportedException ("Invalid event handler for DragDrop"); }\r
532                         remove { }\r
533                 }\r
534                 \r
535                 [Browsable (false)]\r
536                 [EditorBrowsable (EditorBrowsableState.Never)]\r
537                 public new event DragEventHandler DragEnter {\r
538                         add { throw new NotSupportedException ("Invalid event handler for DragEnter"); }\r
539                         remove { }\r
540                 }\r
541                 \r
542                 [Browsable (false)]\r
543                 [EditorBrowsable (EditorBrowsableState.Never)]\r
544                 public new event EventHandler DragLeave {\r
545                         add { throw new NotSupportedException ("Invalid event handler for DragLeave"); }\r
546                         remove { }\r
547                 }\r
548                 \r
549                 [Browsable (false)]\r
550                 [EditorBrowsable (EditorBrowsableState.Never)]\r
551                 public new event DragEventHandler DragOver {\r
552                         add { throw new NotSupportedException ("Invalid event handler for DragOver"); }\r
553                         remove { }\r
554                 }\r
555                 \r
556                 [Browsable (false)]\r
557                 [EditorBrowsable (EditorBrowsableState.Never)]\r
558                 public new event EventHandler EnabledChanged {\r
559                         add { throw new NotSupportedException ("Invalid event handler for EnabledChanged"); }\r
560                         remove { }\r
561                 }\r
562                 \r
563                 [Browsable (false)]\r
564                 [EditorBrowsable (EditorBrowsableState.Never)]\r
565                 public new event EventHandler Enter {\r
566                         add { throw new NotSupportedException ("Invalid event handler for Enter"); }\r
567                         remove { }\r
568                 }\r
569                 \r
570                 [Browsable (false)]\r
571                 [EditorBrowsable (EditorBrowsableState.Never)]\r
572                 public new event EventHandler FontChanged {\r
573                         add { throw new NotSupportedException ("Invalid event handler for FontChanged"); }\r
574                         remove { }\r
575                 }\r
576                 \r
577                 [Browsable (false)]\r
578                 [EditorBrowsable (EditorBrowsableState.Never)]\r
579                 public new event EventHandler ForeColorChanged {\r
580                         add { throw new NotSupportedException ("Invalid event handler for ForeColorChanged"); }\r
581                         remove { }\r
582                 }\r
583                 \r
584                 [Browsable (false)]\r
585                 [EditorBrowsable (EditorBrowsableState.Never)]\r
586                 public new event GiveFeedbackEventHandler GiveFeedback {\r
587                         add { throw new NotSupportedException ("Invalid event handler for GiveFeedback"); }\r
588                         remove { }\r
589                 }\r
590                 \r
591                 [Browsable (false)]\r
592                 [EditorBrowsable (EditorBrowsableState.Never)]\r
593                 public new event HelpEventHandler HelpRequested {\r
594                         add { throw new NotSupportedException ("Invalid event handler for HelpRequested"); }\r
595                         remove { }\r
596                 }\r
597                 \r
598                 [Browsable (false)]\r
599                 [EditorBrowsable (EditorBrowsableState.Never)]\r
600                 public new event EventHandler ImeModeChanged {\r
601                         add { throw new NotSupportedException ("Invalid event handler for ImeModeChanged"); }\r
602                         remove { }\r
603                 }\r
604                 \r
605                 [Browsable (false)]\r
606                 [EditorBrowsable (EditorBrowsableState.Never)]\r
607                 public new event KeyEventHandler KeyDown {\r
608                         add { throw new NotSupportedException ("Invalid event handler for KeyDown"); }\r
609                         remove { }\r
610                 }\r
611                 \r
612                 [Browsable (false)]\r
613                 [EditorBrowsable (EditorBrowsableState.Never)]\r
614                 public new event KeyPressEventHandler KeyPress {\r
615                         add { throw new NotSupportedException ("Invalid event handler for KeyPress"); }\r
616                         remove { }\r
617                 }\r
618                 \r
619                 [Browsable (false)]\r
620                 [EditorBrowsable (EditorBrowsableState.Never)]\r
621                 public new event KeyEventHandler KeyUp {\r
622                         add { throw new NotSupportedException ("Invalid event handler for KeyUp"); }\r
623                         remove { }\r
624                 }\r
625                 \r
626                 [Browsable (false)]\r
627                 [EditorBrowsable (EditorBrowsableState.Never)]\r
628                 public new event LayoutEventHandler Layout {\r
629                         add { throw new NotSupportedException ("Invalid event handler for Layout"); }\r
630                         remove { }\r
631                 }\r
632                 \r
633                 [Browsable (false)]\r
634                 [EditorBrowsable (EditorBrowsableState.Never)]\r
635                 public new event EventHandler Leave {\r
636                         add { throw new NotSupportedException ("Invalid event handler for Leave"); }\r
637                         remove { }\r
638                 }\r
639                 \r
640                 [Browsable (false)]\r
641                 [EditorBrowsable (EditorBrowsableState.Never)]\r
642                 public new event EventHandler MouseCaptureChanged {\r
643                         add { throw new NotSupportedException ("Invalid event handler for MouseCaptureChanged"); }\r
644                         remove { }\r
645                 }\r
646                 \r
647                 [Browsable (false)]\r
648                 [EditorBrowsable (EditorBrowsableState.Never)]\r
649                 public new event MouseEventHandler MouseClick {\r
650                         add { throw new NotSupportedException ("Invalid event handler for MouseClick"); }\r
651                         remove { }\r
652                 }\r
653                 \r
654                 [Browsable (false)]\r
655                 [EditorBrowsable (EditorBrowsableState.Never)]\r
656                 public new event MouseEventHandler MouseDoubleClick {\r
657                         add { throw new NotSupportedException ("Invalid event handler for MouseDoubleClick"); }\r
658                         remove { }\r
659                 }\r
660                 \r
661                 [Browsable (false)]\r
662                 [EditorBrowsable (EditorBrowsableState.Never)]\r
663                 public new event MouseEventHandler MouseDown {\r
664                         add { throw new NotSupportedException ("Invalid event handler for MouseDown"); }\r
665                         remove { }\r
666                 }\r
667                 \r
668                 [Browsable (false)]\r
669                 [EditorBrowsable (EditorBrowsableState.Never)]\r
670                 public new event EventHandler MouseEnter {\r
671                         add { throw new NotSupportedException ("Invalid event handler for MouseEnter"); }\r
672                         remove { }\r
673                 }\r
674                 \r
675                 [Browsable (false)]\r
676                 [EditorBrowsable (EditorBrowsableState.Never)]\r
677                 public new event EventHandler MouseHover {\r
678                         add { throw new NotSupportedException ("Invalid event handler for MouseHover"); }\r
679                         remove { }\r
680                 }\r
681                 \r
682                 [Browsable (false)]\r
683                 [EditorBrowsable (EditorBrowsableState.Never)]\r
684                 public new event EventHandler MouseLeave {\r
685                         add { throw new NotSupportedException ("Invalid event handler for MouseLeave"); }\r
686                         remove { }\r
687                 }\r
688                 \r
689                 [Browsable (false)]\r
690                 [EditorBrowsable (EditorBrowsableState.Never)]\r
691                 public new event MouseEventHandler MouseMove {\r
692                         add { throw new NotSupportedException ("Invalid event handler for MouseMove"); }\r
693                         remove { }\r
694                 }\r
695                 \r
696                 [Browsable (false)]\r
697                 [EditorBrowsable (EditorBrowsableState.Never)]\r
698                 public new event MouseEventHandler MouseUp {\r
699                         add { throw new NotSupportedException ("Invalid event handler for MouseUp"); }\r
700                         remove { }\r
701                 }\r
702                 \r
703                 [Browsable (false)]\r
704                 [EditorBrowsable (EditorBrowsableState.Never)]\r
705                 public new event MouseEventHandler MouseWheel {\r
706                         add { throw new NotSupportedException ("Invalid event handler for MouseWheel"); }\r
707                         remove { }\r
708                 }\r
709                 \r
710                 \r
711                 [Browsable (false)]\r
712                 [EditorBrowsable (EditorBrowsableState.Never)]\r
713                 public new event PaintEventHandler Paint {\r
714                         add { throw new NotSupportedException ("Invalid event handler for Paint"); }\r
715                         remove { }\r
716                 }\r
717                 \r
718                 [Browsable (false)]\r
719                 [EditorBrowsable (EditorBrowsableState.Never)]\r
720                 public new event QueryAccessibilityHelpEventHandler QueryAccessibilityHelp {\r
721                         add { throw new NotSupportedException ("Invalid event handler for QueryAccessibilityHelp"); }\r
722                         remove { }\r
723                 }\r
724                 \r
725                 [Browsable (false)]\r
726                 [EditorBrowsable (EditorBrowsableState.Never)]\r
727                 public new event QueryContinueDragEventHandler QueryContinueDrag {\r
728                         add { throw new NotSupportedException ("Invalid event handler for QueryContinueDrag"); }\r
729                         remove { }\r
730                 }\r
731                 \r
732                 [Browsable (false)]\r
733                 [EditorBrowsable (EditorBrowsableState.Never)]\r
734                 public new event EventHandler RightToLeftChanged {\r
735                         add { throw new NotSupportedException ("Invalid event handler for RightToLeftChanged"); }\r
736                         remove { }\r
737                 }\r
738                 \r
739                 [Browsable (false)]\r
740                 [EditorBrowsable (EditorBrowsableState.Never)]\r
741                 public new event EventHandler StyleChanged {\r
742                         add { throw new NotSupportedException ("Invalid event handler for StyleChanged"); }\r
743                         remove { }\r
744                 }\r
745                 \r
746                 [Browsable (false)]\r
747                 [EditorBrowsable (EditorBrowsableState.Never)]\r
748                 public new event EventHandler TextChanged {\r
749                         add { throw new NotSupportedException ("Invalid event handler for TextChanged"); }\r
750                         remove { }\r
751                 }\r
752 \r
753                 #endregion\r
754         }\r
755 }\r