fix another ERIC
[mono.git] / mcs / class / System.Windows.Forms / System.Windows.Forms / SaveFileDialog.cs
index 7a911fd06f92d660d963bceefc77c3b041c4c1bf..ed852f88916a46e77036232f9c5e1fa53d4f8c31 100644 (file)
+// 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:
 //
-// System.Windows.Forms.SaveFileDialog.cs
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
 //
-// Author:
-//   stubbed out by Daniel Carrera (dcarrera@math.toronto.edu)
+// 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.
 //
-// (C) 2002 Ximian, Inc
+// Copyright (c) 2006 Alexander Olk
+//
+// Authors:
+//
+//  Alexander Olk      alex.olk@googlemail.com
 //
 
-namespace System.Windows.Forms {
-
-       // <summary>
-       //      This is only a template.  Nothing is implemented yet.
-       //
-       // </summary>
-
-        //public sealed class SaveFileDialog : FileDialog {
+// NOT COMPLETE - work in progress
 
-               //
-               //  --- Constructor
-               //
-               //[MonoTODO]
-               //public SaveFileDialog()
-               //{
-               //      throw new NotImplementedException ();
-               //}
+using System;
+using System.ComponentModel;
+using System.Drawing;
+using System.IO;
 
-               //
-               //  --- Public Properties
-               //
-               //[MonoTODO]
-               //public bool CreatePrompt {
-               //      get {
-               //              throw new NotImplementedException ();
-               //      }
-               //      set {
-               //              throw new NotImplementedException ();
-               //      }
-               //}
-               //[MonoTODO]
-               //public bool OverwritePrompt {
-               //      get {
-               //              throw new NotImplementedException ();
-               //      }
-               //      set {
-               //              throw new NotImplementedException ();
-               //      }
-               //}
+namespace System.Windows.Forms {
+       [Designer ("System.Windows.Forms.Design.SaveFileDialogDesigner, " + Consts.AssemblySystem_Design, "System.ComponentModel.Design.IDesigner")]
+       public sealed class SaveFileDialog : FileDialog {
+               #region Public Constructors
+               public SaveFileDialog ()
+               {
+                       form.SuspendLayout ();
+                       
+                       form.Text = "Save As";
 
-               //
-               //  --- Public Methods
-               //
-               //[MonoTODO]
-               //public void Dispose()
-               //{
-               //      throw new NotImplementedException ();
-               //}
-               //[MonoTODO]
-               //public Stream OpenFile()
-               //{
-               //      throw new NotImplementedException ();
-               //}
-               //[MonoTODO]
-               //public override void Reset()
-               //{
-               //      throw new NotImplementedException ();
-               //}
-               //[MonoTODO]
-               //public DialogResult ShowDialog()
-               //{
-               //      throw new NotImplementedException ();
-               //}
+                       FileTypeLabel = "Save as type:";
+                       OpenSaveButtonText = "Save";
+                       SearchSaveLabel = "Save in:";
+                       fileDialogType = FileDialogType.SaveFileDialog;
+                       
+                       form.ResumeLayout (false);
+               }
+               #endregion      // Public Constructors
+               
+               #region Public Instance Properties
+               [DefaultValue(false)]
+               public bool CreatePrompt {
+                       set {
+                               createPrompt = value;
+                       }
+                       
+                       get {
+                               return createPrompt;
+                       }
+               }
+               
+               [DefaultValue(true)]
+               public bool OverwritePrompt {
+                       set {
+                               overwritePrompt = value;
+                       }
+                       
+                       get {
+                               return overwritePrompt;
+                       }
+               }
+               #endregion      // Public Instance Properties
+               
+               #region Public Instance Methods
+               public Stream OpenFile ()
+               {
+                       if (FileName == null)
+                               throw new ArgumentNullException ("OpenFile", "FileName is null");
+                       
+                       Stream retValue;
+                       
+                       try {
+                               retValue = new FileStream (FileName, FileMode.Create, FileAccess.ReadWrite);
+                       } catch (Exception) {
+                               retValue = null;
+                       }
+                       
+                       return retValue;
+               }
+               #endregion      // Public Instance Methods
+               
+               public override void Reset ()
+               {
+                       base.Reset ();
+                       overwritePrompt = true;
+                       createPrompt = false;
+               }
 
-               //
-               //  --- Protected Methods
-               //
-               //[MonoTODO]
-               //protected virtual void Dispose(bool val)
-               //{
-               //      throw new NotImplementedException ();
-               //}
-       // }
+               internal override string DialogTitle {
+                       get {
+                               string title = base.DialogTitle;
+                               if (title.Length == 0)
+                                       title = "Save As";
+                               return title;
+                       }
+               }
+       }
 }