fix another ERIC
[mono.git] / mcs / class / System.Windows.Forms / System.Windows.Forms / SaveFileDialog.cs
index 83f8129971b5e50ef4d8f4d7560069aae6936d1d..ed852f88916a46e77036232f9c5e1fa53d4f8c31 100644 (file)
-//\r
-// System.Windows.Forms.SaveFileDialog.cs\r
-//\r
-// Author:\r
-//   stubbed out by Daniel Carrera (dcarrera@math.toronto.edu)\r
-//     Dennis Hayes (dennish@raytek.com)\r
-//\r
-// (C) 2002 Ximian, Inc\r
-//\r
-using System.IO;\r
-\r
-namespace System.Windows.Forms {\r
-\r
-       // <summary>\r
-       //      This is only a template.  Nothing is implemented yet.\r
-       //\r
-       // </summary>\r
-\r
-    public sealed class SaveFileDialog : FileDialog {\r
-\r
-               //\r
-               //  --- Constructor\r
-               //\r
-               [MonoTODO]\r
-               public SaveFileDialog()\r
-               {\r
-                       throw new NotImplementedException ();\r
-               }\r
-\r
-               //\r
-               //  --- Public Properties\r
-               //\r
-               [MonoTODO]\r
-               public bool CreatePrompt {\r
-                       get {\r
-                               throw new NotImplementedException ();\r
-                       }\r
-                       set {\r
-                               throw new NotImplementedException ();\r
-                       }\r
-               }\r
-               [MonoTODO]\r
-               public bool OverwritePrompt {\r
-                       get {\r
-                               throw new NotImplementedException ();\r
-                       }\r
-                       set {\r
-                               throw new NotImplementedException ();\r
-                       }\r
-               }\r
-\r
-               //\r
-               //  --- Public Methods\r
-               //\r
-               //public void Dispose()\r
-               //{\r
-               //      throw new NotImplementedException ();\r
-               //}\r
-               [MonoTODO]\r
-               public Stream OpenFile()\r
-               {\r
-                       throw new NotImplementedException ();\r
-               }\r
-               [MonoTODO]\r
-               public override void Reset()\r
-               {\r
-                       throw new NotImplementedException ();\r
-               }\r
-               \r
-               //public DialogResult ShowDialog()\r
-               //{\r
-               //      throw new NotImplementedException ();\r
-               //}\r
-\r
-               //\r
-               //  --- Protected Methods\r
-               //\r
-               //[MonoTODO]\r
-               //protected virtual void Dispose(bool val)\r
-               //{\r
-               //      throw new NotImplementedException ();\r
-               //}\r
-        }\r
-}\r
+// 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.
+//
+// Copyright (c) 2006 Alexander Olk
+//
+// Authors:
+//
+//  Alexander Olk      alex.olk@googlemail.com
+//
+
+// NOT COMPLETE - work in progress
+
+using System;
+using System.ComponentModel;
+using System.Drawing;
+using System.IO;
+
+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";
+
+                       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;
+               }
+
+               internal override string DialogTitle {
+                       get {
+                               string title = base.DialogTitle;
+                               if (title.Length == 0)
+                                       title = "Save As";
+                               return title;
+                       }
+               }
+       }
+}