Author: mkestner
Date: 2006-06-28 13:28:54 -0400 (Wed, 28 Jun 2006)
New Revision: 62122

Modified:
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ComboBox.cs
Log:

2006-06-28  Mike Kestner  <[EMAIL PROTECTED]>

        * ComboBox.cs: implement scroll wheel support. Fixes #78360.


Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog        
2006-06-28 17:23:07 UTC (rev 62121)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog        
2006-06-28 17:28:54 UTC (rev 62122)
@@ -1,3 +1,7 @@
+2006-06-28  Mike Kestner  <[EMAIL PROTECTED]>
+
+       * ComboBox.cs: implement scroll wheel support. Fixes #78360.
+
 2006-06-28  Atsushi Enomoto  <[EMAIL PROTECTED]>
 
        * PropertyGrid.cs,

Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ComboBox.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ComboBox.cs      
2006-06-28 17:23:07 UTC (rev 62121)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ComboBox.cs      
2006-06-28 17:28:54 UTC (rev 62122)
@@ -1427,6 +1427,7 @@
                                MouseDown += new MouseEventHandler 
(OnMouseDownPUW);
                                MouseUp += new MouseEventHandler (OnMouseUpPUW);
                                MouseMove += new MouseEventHandler 
(OnMouseMovePUW);                            
+                               MouseWheel += new MouseEventHandler 
(OnMouseWheelCLB);                          
                                KeyDown += new KeyEventHandler (OnKeyDownPUW);
                                SetStyle (ControlStyles.UserPaint | 
ControlStyles.AllPaintingInWmPaint, true);
                                SetStyle (ControlStyles.ResizeRedraw | 
ControlStyles.Opaque, true);
@@ -1839,6 +1840,30 @@
                                last_item = LastVisibleItem ();
                        }
 
+                       private void Scroll (int delta)
+                       {
+                               if (delta == 0 || !vscrollbar_ctrl.Visible)
+                                       return;
+
+                               int max = vscrollbar_ctrl.Maximum;//- 
(page_size) + 1;
+
+                               int val = vscrollbar_ctrl.Value + delta;
+                               if (val > max)
+                                       val = max;
+                               else if (val < vscrollbar_ctrl.Minimum)
+                                       val = vscrollbar_ctrl.Minimum;
+                               vscrollbar_ctrl.Value = val;
+                       }
+
+                       private void OnMouseWheelCLB (object sender, 
MouseEventArgs me)
+                       {
+                               if (owner.Items.Count == 0)
+                                       return;
+
+                               int lines = me.Delta / 120 * 
SystemInformation.MouseWheelScrollLines;
+                               Scroll (-lines);
+                       }
+
                        // Value Changed
                        private void VerticalScrollEvent (object sender, 
EventArgs e)
                        {                               

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to