This commit was manufactured by cvs2svn to create branch 'mono-1-0'.
[mono.git] / mcs / class / System.Windows.Forms / System.Windows.Forms / CommonDialog.cs
index dc2b7eaf1743f477f886e98ca8096e2e18091a9c..5096a4e6e79beaa46c511056d46fa175098d4f11 100644 (file)
@@ -4,10 +4,31 @@
 // Author:
 //   stubbed out by Jaak Simm (jaaksimm@firm.ee)
 //   Dennis Hayes (dennish@Raytek.com)
-//
+//   Aleksey Ryabchuk (ryabchuk@yahoo.com)
 // (C) Ximian, Inc., 2002
 //
 
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
 using System.ComponentModel;
 
 namespace System.Windows.Forms {
@@ -19,15 +40,11 @@ namespace System.Windows.Forms {
        [MonoTODO]
        public abstract class CommonDialog : Component {
 
-               // private fields
-               
-               /// --- constructor ---
                [MonoTODO]
                public CommonDialog() : base () 
                {
                }
                
-               /// --- Methods ---
                [MonoTODO]
                protected virtual IntPtr HookProc(IntPtr hWnd,int msg,IntPtr wparam,IntPtr lparam) 
                {
@@ -35,13 +52,11 @@ namespace System.Windows.Forms {
                        return IntPtr.Zero;
                }
                
-               // event methods
-               [MonoTODO]
                protected virtual void OnHelpRequest(EventArgs e) 
                {
-                       //FIXME:
+                       if ( HelpRequest != null )
+                               HelpRequest ( this, e );
                }
-               // end of event methods
                
                [MonoTODO]
                protected virtual IntPtr OwnerWndProc(IntPtr hWnd,int msg,IntPtr wparam,IntPtr lparam) 
@@ -56,19 +71,24 @@ namespace System.Windows.Forms {
                [MonoTODO]
                public DialogResult ShowDialog() 
                {
-                       bool res = RunDialog ( Control.getOwnerWindow ( null ).Handle );
+                       IntPtr handle;                  
+                       Control ctrl=Control.getOwnerWindow(null);
+                                               
+                       if ((ctrl!=null) && (ctrl.Handle!=(IntPtr)0))
+                               handle=ctrl.Handle;
+                       else
+                               handle = Win32.GetDesktopWindow();                                                                                              
+                       
+                       bool res = RunDialog (handle);
                        return res ? DialogResult.OK : DialogResult.Cancel;
                }
                
-               [MonoTODO]
                public DialogResult ShowDialog(IWin32Window owner) 
                {
                        bool res = RunDialog ( owner.Handle );
                        return res ? DialogResult.OK : DialogResult.Cancel;
                }
                
-               /// events
-               [MonoTODO]
                public event EventHandler HelpRequest;
        }
 }