[Mono-winforms-list] SWF patch

Aleksey Ryabchuk ryabchuk@yahoo.com
Mon, 24 Mar 2003 09:49:01 -0800 (PST)


--0-1080355389-1048528141=:54462
Content-Type: text/plain; charset=us-ascii
Content-Id: 
Content-Disposition: inline

Control.cs, DateTimePicker.cs, win32Enums.cs :
notification handling for DateTimePicker control.

StatusBar.cs, TrackBar.cs: small modifications.

Thanks for the previous check-in !

Regards
ary






__________________________________________________
Do you Yahoo!?
Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop!
http://platinum.yahoo.com
--0-1080355389-1048528141=:54462
Content-Type: text/plain; name=patch
Content-Description: patch
Content-Disposition: inline; filename=patch

Index: Control.cs
===================================================================
RCS file: /mono/mcs/class/System.Windows.Forms/System.Windows.Forms/Control.cs,v
retrieving revision 1.31
diff -u -r1.31 Control.cs
--- Control.cs	23 Mar 2003 20:46:53 -0000	1.31
+++ Control.cs	24 Mar 2003 16:25:10 -0000
@@ -14,6 +14,7 @@
     using System.Collections;
 	using System.Threading;
 	using System.Text;
+    using System.Runtime.InteropServices;
     
     namespace System.Windows.Forms {
     
@@ -2489,10 +2490,14 @@
 					CallControlWndProc(ref m);
 					break;
 				case Msg.WM_NOTIFY:
+					NMHDR nmhdr = (NMHDR)Marshal.PtrToStructure ( m.LParam,
+									typeof ( NMHDR ) );
+					if( !Control.ReflectMessage( nmhdr.hwndFrom, ref m )) 
+						CallControlWndProc(ref m);
+					
 					// FIXME: get NM_CLICKED msg from pnmh
 					// OnClick (eventArgs);
 					//OnNotifyMessage (eventArgs);
-					CallControlWndProc(ref m);
 					break;
 				case Msg.WM_PAINT: 
 					if( ControlRealWndProc != IntPtr.Zero) {
Index: DateTimePicker.cs
===================================================================
RCS file: /mono/mcs/class/System.Windows.Forms/System.Windows.Forms/DateTimePicker.cs,v
retrieving revision 1.10
diff -u -r1.10 DateTimePicker.cs
--- DateTimePicker.cs	23 Mar 2003 20:46:53 -0000	1.10
+++ DateTimePicker.cs	24 Mar 2003 16:25:10 -0000
@@ -96,11 +96,8 @@
 		//
 		//  --- Public Methods
 		//
-		[MonoTODO]
-		public override string ToString()
-		{
-			//FIXME:
-			return base.ToString();
+		public override string ToString(){
+			return GetType().FullName.ToString() + ", Value: " + Value.ToString( );
 		}
 
 		//
@@ -161,10 +158,6 @@
 		[MonoTODO]
 		protected override void OnSystemColorsChanged(EventArgs e)
 		{
-			//FIXME: update default colors
-			//if (SystemColorsChanged != null) {
-			//	SystemColorsChanged(this, e);
-			//}
 			base.OnSystemColorsChanged( e );
 		}
 
@@ -192,8 +185,17 @@
 		[MonoTODO]
 		protected override void WndProc(ref Message m)
 		{
-			//FIXME:
-			base.WndProc(ref m);
+			switch ( m.Msg ) {
+			case Msg.WM_NOTIFY:
+				if ( m.LParam != IntPtr.Zero )
+					handleNotification ( ref m );
+				else 
+					CallControlWndProc(ref m);
+				break;
+			default:
+				CallControlWndProc(ref m);
+				break;
+			}
 		}
 
 		
@@ -501,7 +503,7 @@
 
 		private void setControlValue ( ) {
 			if ( IsHandleCreated ) 	{
-				SYSTIME systime = toSysTime ( Value ) ;
+				SYSTIME systime = toSysTime ( val ) ;
 
 				IntPtr ptr = Marshal.AllocCoTaskMem ( Marshal.SizeOf ( systime ) );
 				Marshal.StructureToPtr( systime, ptr, false );
@@ -604,6 +606,28 @@
 				Win32.SendMessage ( Handle, (int)DateTimePickerMessages.DTM_SETMCFONT,
 							CalendarFont.ToHfont().ToInt32(), 0 );
 			*/
+		}
+
+		private void handleNotification ( ref Message m ) {
+			NMHDR nmhdr = (NMHDR)Marshal.PtrToStructure ( m.LParam,	typeof ( NMHDR ) );
+			
+			m.Result = IntPtr.Zero;
+
+			switch ( nmhdr.code ) {
+			case (int)DateTimePickerNotifications.DTN_CLOSEUP:
+				OnCloseUp ( EventArgs.Empty );
+			break;
+			case (int)DateTimePickerNotifications.DTN_DROPDOWN:
+				OnDropDown ( EventArgs.Empty );
+			break;
+			case (int)DateTimePickerNotifications.DTN_DATETIMECHANGE:
+				getControlValue ( true );
+				OnValueChanged ( EventArgs.Empty );
+			break;
+			default:
+				CallControlWndProc ( ref m );		
+			break;
+			}
 		}
 	}
 }
Index: StatusBar.cs
===================================================================
RCS file: /mono/mcs/class/System.Windows.Forms/System.Windows.Forms/StatusBar.cs,v
retrieving revision 1.12
diff -u -r1.12 StatusBar.cs
--- StatusBar.cs	15 Mar 2003 19:31:43 -0000	1.12
+++ StatusBar.cs	24 Mar 2003 16:25:11 -0000
@@ -51,9 +51,9 @@
 			return str;
 		}
 
-		[MonoTODO]
 		protected override void CreateHandle()
 		{
+			initCommonControlsLibrary ( );
 			base.CreateHandle();
 		}
 
@@ -404,6 +404,14 @@
 					UpdatePanels ( true, true, null );
 					UpdateToolTips ( null );
 				}
+			}
+		}
+
+		private void initCommonControlsLibrary ( ) {
+			if ( !RecreatingHandle ) {
+				INITCOMMONCONTROLSEX	initEx = new INITCOMMONCONTROLSEX();
+				initEx.dwICC = CommonControlInitFlags.ICC_BAR_CLASSES;
+				Win32.InitCommonControlsEx(initEx);
 			}
 		}
 
Index: TrackBar.cs
===================================================================
RCS file: /mono/mcs/class/System.Windows.Forms/System.Windows.Forms/TrackBar.cs,v
retrieving revision 1.14
diff -u -r1.14 TrackBar.cs
--- TrackBar.cs	20 Mar 2003 23:05:15 -0000	1.14
+++ TrackBar.cs	24 Mar 2003 16:25:11 -0000
@@ -49,28 +49,22 @@
 			}
 		}
 
+		[EditorBrowsable (EditorBrowsableState.Never)]	 
 		public override Image BackgroundImage {
-			get {
-				return base.BackgroundImage;
-			}
-			set {
-			}
+			get { return base.BackgroundImage; }
+			set { base.BackgroundImage = value; }
 		}
 
+		[EditorBrowsable (EditorBrowsableState.Never)]	 
 		public override Font Font {
-			get {
-				return base.Font;
-			}
-			set {
-			}
+			get { return base.Font;	}
+			set { base.Font = value; }
 		}
 
+		[EditorBrowsable (EditorBrowsableState.Never)]	 
 		public override Color ForeColor {
-			get {
-				return base.ForeColor;
-			}
-			set {
-			}
+			get { return base.ForeColor; }
+			set { base.ForeColor = value; }
 		}
 
 		[MonoTODO]
@@ -149,13 +143,10 @@
 			}
 		}
 
+		[EditorBrowsable (EditorBrowsableState.Never)]	 
 		public override string Text {
-			get {
-				return base.Text;
-			}
-			set {
-				base.Text = value;
-			}
+			get {	return base.Text; }
+			set {	base.Text = value; }
 		}
 
 		[MonoTODO]
@@ -275,12 +266,12 @@
 		//
 		// --- Protected Methods
 		//
-		[MonoTODO]
 		protected override void CreateHandle() 
 		{
-			//FIXME: just to get it to run
+			initCommonControlsLibrary ( );
 			base.CreateHandle();
 		}
+
 		[MonoTODO]
 		protected override bool IsInputKey(Keys keyData) 
 		{
@@ -290,7 +281,7 @@
 				keyData == Keys.PageUp || keyData == Keys.PageDown )
 			return true;
 
-			return IsInputKey(keyData);
+			return base.IsInputKey(keyData);
 		}
 		[MonoTODO]
 		protected override void OnBackColorChanged(EventArgs e) 
@@ -333,7 +324,7 @@
 					ValueChanged (this, new EventArgs() );
 			break;
 			default:
-				base.WndProc(ref m);
+				CallControlWndProc( ref m );
 			break;
 			}
 		}
@@ -396,5 +387,13 @@
 			}
 			return false;
 		}
+
+	    private void initCommonControlsLibrary ( ) {
+		    if ( !RecreatingHandle ) {
+			    INITCOMMONCONTROLSEX	initEx = new INITCOMMONCONTROLSEX();
+			    initEx.dwICC = CommonControlInitFlags.ICC_BAR_CLASSES;
+			    Win32.InitCommonControlsEx(initEx);
+		    }
+	    }
 	}
 }
Index: win32Enums.cs
===================================================================
RCS file: /mono/mcs/class/System.Windows.Forms/System.Windows.Forms/win32Enums.cs,v
retrieving revision 1.10
diff -u -r1.10 win32Enums.cs
--- win32Enums.cs	23 Mar 2003 20:46:53 -0000	1.10
+++ win32Enums.cs	24 Mar 2003 16:25:12 -0000
@@ -2467,6 +2467,24 @@
 	}
 	#endregion
 
+	#region DateTimePicker Notifications
+	internal enum DateTimePickerNotifications
+	{
+		DTN_FIRST		= (0 - 760),
+		DTN_DATETIMECHANGE	= (DTN_FIRST + 1),
+		DTN_USERSTRINGA		= (DTN_FIRST + 2),
+		DTN_WMKEYDOWNA		= (DTN_FIRST + 3),
+		DTN_FORMATA		= (DTN_FIRST + 4),
+		DTN_FORMATQUERYA	= (DTN_FIRST + 5),
+		DTN_DROPDOWN		= (DTN_FIRST + 6),
+		DTN_CLOSEUP		= (DTN_FIRST + 7),
+		DTN_USERSTRINGW		= (DTN_FIRST + 15),
+		DTN_WMKEYDOWNW		= (DTN_FIRST + 16),
+		DTN_FORMATW		= (DTN_FIRST + 17),
+		DTN_FORMATQUERYW	= (DTN_FIRST + 18)
+	}
+	#endregion
+
 	#region MonthCal Colors
 	internal enum MonthCalColors
 	{

--0-1080355389-1048528141=:54462--