2010-04-06 Jb Evain <jbevain@novell.com>
[mcs.git] / class / System.Design / System.Windows.Forms.Design / FormDocumentDesigner.cs
blob0fcf5ea9aa71067f22e82f7ceab107be13b9366c
1 //
2 // System.Windows.Forms.Design.FormDocumentDesigner
3 //
4 // Authors:
5 // Ivan N. Zlatev (contact i-nZ.net)
6 //
7 // (C) 2008 Ivan N. Zlatev
9 //
10 // Permission is hereby granted, free of charge, to any person obtaining
11 // a copy of this software and associated documentation files (the
12 // "Software"), to deal in the Software without restriction, including
13 // without limitation the rights to use, copy, modify, merge, publish,
14 // distribute, sublicense, and/or sell copies of the Software, and to
15 // permit persons to whom the Software is furnished to do so, subject to
16 // the following conditions:
18 // The above copyright notice and this permission notice shall be
19 // included in all copies or substantial portions of the Software.
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 using System;
31 using System.ComponentModel;
32 using System.ComponentModel.Design;
33 using System.Windows.Forms;
34 using System.Drawing;
35 using System.Drawing.Design;
36 using System.Collections;
38 namespace System.Windows.Forms.Design
40 internal class FormDocumentDesigner : DocumentDesigner
43 public FormDocumentDesigner ()
47 public override void Initialize (IComponent component)
49 Form form = component as Form;
50 if (form == null)
51 throw new NotSupportedException ("FormDocumentDesigner can be initialized only with Forms");
53 form.TopLevel = false;
54 form.Visible = true;
55 base.Initialize (component);
58 public override bool CanParent (Control control)
60 if (control is Form)
61 return false;
62 return base.CanParent (control);
65 protected override void WndProc (ref Message m)
67 // Filter out titlebar clicks
69 switch ((Native.Msg) m.Msg) {
70 case Native.Msg.WM_NCLBUTTONDBLCLK:
71 case Native.Msg.WM_NCLBUTTONDOWN:
72 case Native.Msg.WM_NCMBUTTONDBLCLK:
73 case Native.Msg.WM_NCMBUTTONDOWN:
74 case Native.Msg.WM_NCRBUTTONDBLCLK:
75 case Native.Msg.WM_NCRBUTTONDOWN:
76 ISelectionService selectionServ = this.GetService (typeof (ISelectionService)) as ISelectionService;
77 if (selectionServ != null)
78 selectionServ.SetSelectedComponents (new object[] { this.Component });
79 break;
80 default:
81 base.WndProc (ref m);
82 break;