Author: jackson
Date: 2005-04-17 14:49:56 -0400 (Sun, 17 Apr 2005)
New Revision: 43157
Added:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/CursorConverter.cs
Modified:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
Log:
* CursorConverter.cs: Initial implementation.
Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
2005-04-17 18:42:24 UTC (rev 43156)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
2005-04-17 18:49:56 UTC (rev 43157)
@@ -1,3 +1,7 @@
+2005-04-17 Jackson Harper <[EMAIL PROTECTED]>
+
+ * CursorConverter.cs: Initial implementation.
+
2005-04-15 Jordi Mas i Hernandez <[EMAIL PROTECTED]>
* ListControl.cs: work towards complex data binding support on
ListControl
Added:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/CursorConverter.cs
===================================================================
---
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/CursorConverter.cs
2005-04-17 18:42:24 UTC (rev 43156)
+++
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/CursorConverter.cs
2005-04-17 18:49:56 UTC (rev 43157)
@@ -0,0 +1,117 @@
+// 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) 2005 Novell, Inc.
+//
+// Authors:
+// Jackson Harper ([EMAIL PROTECTED])
+
+
+using System;
+using System.IO;
+using System.Drawing;
+using System.Drawing.Imaging;
+using System.Collections;
+using System.ComponentModel;
+using System.Globalization;
+
+
+namespace System.Windows.Forms {
+
+ public class CursorConverter : TypeConverter {
+
+ public CursorConverter ()
+ {
+ }
+
+ public override bool CanConvertFrom (ITypeDescriptorContext
context, Type source_type)
+ {
+ if (source_type == typeof (byte []))
+ return true;
+ return base.CanConvertFrom (context, source_type);
+ }
+
+ public override bool CanConvertTo (ITypeDescriptorContext
context, Type dest_type)
+ {
+ if (dest_type == typeof (byte []))
+ return true;
+ return base.CanConvertTo (context, dest_type);
+ }
+
+ [MonoTODO ("Waiting on Cursor::.ctor (Stream)")]
+ public override object ConvertFrom (ITypeDescriptorContext
context,
+ CultureInfo culture, object value)
+ {
+ byte [] val = value as byte [];
+ if (val == null)
+ return base.ConvertFrom (context, culture,
value);
+
+ using (MemoryStream s = new MemoryStream (val)) {
+ return new Cursor (s);
+ }
+ }
+
+ [MonoTODO ("Waiting on Cursor::Draw")]
+ public override object ConvertTo (ITypeDescriptorContext
context, CultureInfo culture,
+ object value, Type dest_type)
+ {
+ if (dest_type == null)
+ throw new ArgumentNullException
("destinationType");
+
+ if (dest_type == typeof (byte [])) {
+
+ if (value == null)
+ return new byte [0];
+
+ using (MemoryStream s = new MemoryStream ()) {
+ Cursor val = value as Cursor;
+
+ Bitmap b = new Bitmap (val.Size.Width,
val.Size.Height);
+ using (Graphics g = Graphics.FromImage
(b)) {
+ // This isn't implemented in
Cursor yet
+
+ // Rectangle r = new Rectangle
(0, 0,
+ // val.Size.Width,
val.Size.Height);
+ // val.Draw (g, r);
+ }
+ b.Save (s, ImageFormat.Bmp);
+ return s.ToArray ();
+ }
+ }
+ return base.ConvertTo (context, culture, value,
dest_type);
+ }
+
+ public override StandardValuesCollection GetStandardValues
(ITypeDescriptorContext context)
+ {
+ PropertyDescriptorCollection props =
TypeDescriptor.GetProperties (typeof (Cursors));
+ ArrayList vals = new ArrayList ();
+
+ for (int i = 0; i < props.Count; i++)
+ vals.Add (props [i].GetValue (null));
+ return new StandardValuesCollection (vals);
+ }
+
+ public override bool GetStandardValuesSupported
(ITypeDescriptorContext context)
+ {
+ return true;
+ }
+ }
+
+}
+
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches