dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnetlib/System.Windows.Forms ScrollBar.cs, 1.


From: Richard Baumann <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnetlib/System.Windows.Forms ScrollBar.cs, 1.4, 1.5
Date: Tue, 26 Aug 2003 23:28:32 -0400

Update of /cvsroot/dotgnu-pnet/pnetlib/System.Windows.Forms
In directory subversions:/tmp/cvs-serv6995/System.Windows.Forms

Modified Files:
        ScrollBar.cs 
Log Message:
Apply patch #1826, "Updates to System.Windows.Forms/ScrollBar.cs", with 
some fixes.


Index: ScrollBar.cs
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnetlib/System.Windows.Forms/ScrollBar.cs,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** ScrollBar.cs        26 Aug 2003 03:45:24 -0000      1.4
--- ScrollBar.cs        27 Aug 2003 03:28:30 -0000      1.5
***************
*** 44,50 ****
--- 44,55 ----
        private bool keyDown = false;
        private Timer timer;
+       private int delay = startDelay;
+       private int mouseX; // TODO: use Control::Cursor
+       private int mouseY; // TODO: use Control::Cursor
        private Timer keyTimer;
        internal bool vertical;
  
+       private const int startDelay = 3;
+ 
  
  
***************
*** 99,106 ****
--- 104,113 ----
                        {
                                timer.Tick += new EventHandler(Decrement);
+                               delay = startDelay;
                                timer.Start();
                        }
                        else
                        {
+                               delay = 0;
                                timer.Stop();
                                timer.Tick -= new EventHandler(Decrement);
***************
*** 147,154 ****
--- 154,163 ----
                        {
                                timer.Tick += new EventHandler(Increment);
+                               delay = startDelay;
                                timer.Start();
                        }
                        else
                        {
+                               delay = 0;
                                timer.Stop();
                                timer.Tick -= new EventHandler(Increment);
***************
*** 242,245 ****
--- 251,264 ----
        private void Decrement(Object sender, EventArgs e)
        {
+               if (delay > 0)
+               {
+                       --delay;
+                       if (delay > 0)
+                       {
+                               Redraw(false);
+                               return;
+                       }
+               }
+ 
                int tmp = (value-smallChange);
                tmp = tmp > minimum ?
***************
*** 256,263 ****
--- 275,311 ----
        private void DecrementBig(Object sender, EventArgs e)
        {
+               if (delay > 0)
+               {
+                       --delay;
+                       if (delay > 0)
+                       {
+                               Redraw(false);
+                               return;
+                       }
+               }
+ 
                int tmp = (value-largeChange);
                tmp = tmp > minimum ?
                      tmp : minimum;
                if (value == tmp) { return; }
+               if (trackDown)
+               {
+                       if (vertical)
+                       {
+                               if (mouseY > bar.Y)
+                               {
+                                       TrackPressed(false,false);
+                                       return;
+                               }
+                       }
+                       else
+                       {
+                               if (mouseX > bar.X)
+                               {
+                                       TrackPressed(false,false);
+                                       return;
+                               }
+                       }
+               }
                Value = tmp;
                OnScroll(new 
ScrollEventArgs(this,ScrollEventType.LargeDecrement,value));
***************
*** 296,303 ****
                                                               
ForeColor,BackColor,
                                                               bgBrush,
!                                                              vertical,Enabled,
                                                               bar, track,
                                                               
decrement,decDown,
!                                                              
increment,incDown);
                }
        }
--- 344,351 ----
                                                               
ForeColor,BackColor,
                                                               bgBrush,
!                                                              vertical,Enabled,
                                                               bar, track,
                                                               
decrement,decDown,
!                                                              
increment,incDown);
                }
        }
***************
*** 305,308 ****
--- 353,366 ----
        private void Increment(Object sender, EventArgs e)
        {
+               if (delay > 0)
+               {
+                       --delay;
+                       if (delay > 0)
+                       {
+                               Redraw(false);
+                               return;
+                       }
+               }
+ 
                int tmp = (value+smallChange);
                int tmp2 = (maximum-largeChange+1);
***************
*** 320,323 ****
--- 378,391 ----
        private void IncrementBig(Object sender, EventArgs e)
        {
+               if (delay > 0)
+               {
+                       --delay;
+                       if (delay > 0)
+                       {
+                               Redraw(false);
+                               return;
+                       }
+               }
+ 
                int tmp = (value+largeChange);
                int tmp2 = (maximum-largeChange+1);
***************
*** 325,376 ****
                      tmp : tmp2;
                if (value == tmp) { return; }
!               Value = tmp;
!               OnScroll(new 
ScrollEventArgs(this,ScrollEventType.LargeIncrement,value));
!               SetPositionByValue();
!               Redraw(false);
!       }
! 
!       private void ScrollKeyPressed(bool pressed, int amount)
!       {
!               if (pressed == keyDown) { return; }
!               keyDown = pressed;
!               if (pressed)
                {
!                       switch (amount)
                        {
!                               case 2:
                                {
!                                       timer.Tick += new 
EventHandler(IncrementBig);
                                }
!                               break;
! 
!                               case -2:
!                               {
!                                       timer.Tick += new 
EventHandler(DecrementBig);
!                               }
!                               break;
! 
!                               case 1:
!                               {
!                                       timer.Tick += new 
EventHandler(Increment);
!                               }
!                               break;
! 
!                               case -1:
                                {
!                                       timer.Tick += new 
EventHandler(Decrement);
                                }
-                               break;
                        }
!                       timer.Start();
!               }
!               else
!               {
!                       timer.Stop();
!                       timer.Tick -= new EventHandler(IncrementBig);
!                       timer.Tick -= new EventHandler(DecrementBig);
!                       timer.Tick -= new EventHandler(Increment);
!                       timer.Tick -= new EventHandler(Decrement);
                }
        }
  
--- 393,420 ----
                      tmp : tmp2;
                if (value == tmp) { return; }
!               if (trackDown)
                {
!                       if (vertical)
                        {
!                               if (mouseY-bar.Height < bar.Y)
                                {
!                                       TrackPressed(false,false);
!                                       return;
                                }
!                       }
!                       else
!                       {
!                               if (mouseX-bar.Width < bar.X)
                                {
!                                       TrackPressed(false,false);
!                                       return;
                                }
                        }
!                       
                }
+               Value = tmp;
+               OnScroll(new 
ScrollEventArgs(this,ScrollEventType.LargeIncrement,value));
+               SetPositionByValue();
+               Redraw(false);
        }
  
***************
*** 446,451 ****
                        case Keys.PageUp:
                        {
!                               IncrementBig(null,null);
!                               ScrollKeyPressed(true,2);
                        }
                        break;
--- 490,498 ----
                        case Keys.PageUp:
                        {
!                               if (vertical)
!                               {
!                                       DecrementBig(null,null);
!                                       ScrollKeyPressed(true,-2);
!                               }
                        }
                        break;
***************
*** 453,458 ****
                        case Keys.PageDown:
                        {
!                               DecrementBig(null,null);
!                               ScrollKeyPressed(true,-2);
                        }
                        break;
--- 500,528 ----
                        case Keys.PageDown:
                        {
!                               if (vertical)
!                               {
!                                       IncrementBig(null,null);
!                                       ScrollKeyPressed(true,2);
!                               }
!                       }
!                       break;
! 
!                       case Keys.Home:
!                       {
!                               if (!vertical)
!                               {
!                                       DecrementBig(null,null);
!                                       ScrollKeyPressed(true,-2);
!                               }
!                       }
!                       break;
! 
!                       case Keys.End:
!                       {
!                               if (!vertical)
!                               {
!                                       IncrementBig(null,null);
!                                       ScrollKeyPressed(true,2);
!                               }
                        }
                        break;
***************
*** 460,465 ****
                        case Keys.Up:
                        {
!                               Increment(null,null);
!                               ScrollKeyPressed(true,1);
                        }
                        break;
--- 530,538 ----
                        case Keys.Up:
                        {
!                               if (vertical)
!                               {
!                                       Decrement(null,null);
!                                       ScrollKeyPressed(true,-1);
!                               }
                        }
                        break;
***************
*** 467,472 ****
                        case Keys.Down:
                        {
!                               Decrement(null,null);
!                               ScrollKeyPressed(true,-1);
                        }
                        break;
--- 540,568 ----
                        case Keys.Down:
                        {
!                               if (vertical)
!                               {
!                                       Increment(null,null);
!                                       ScrollKeyPressed(true,1);
!                               }
!                       }
!                       break;
! 
!                       case Keys.Left:
!                       {
!                               if (!vertical)
!                               {
!                                       Decrement(null,null);
!                                       ScrollKeyPressed(true,-1);
!                               }
!                       }
!                       break;
! 
!                       case Keys.Right:
!                       {
!                               if (!vertical)
!                               {
!                                       Increment(null,null);
!                                       ScrollKeyPressed(true,1);
!                               }
                        }
                        break;
***************
*** 478,484 ****
--- 574,583 ----
                if (!keyDown) { return; }
  
+               barDown = -1;
+ 
                switch (e.KeyCode)
                {
                        case Keys.PageUp:
+                       case Keys.Home:
                        {
                                ScrollKeyPressed(false,2);
***************
*** 487,490 ****
--- 586,590 ----
  
                        case Keys.PageDown:
+                       case Keys.End:
                        {
                                ScrollKeyPressed(false,-2);
***************
*** 493,496 ****
--- 593,597 ----
  
                        case Keys.Up:
+                       case Keys.Left:
                        {
                                ScrollKeyPressed(false,1);
***************
*** 499,502 ****
--- 600,604 ----
  
                        case Keys.Down:
+                       case Keys.Right:
                        {
                                ScrollKeyPressed(false,-1);
***************
*** 510,513 ****
--- 612,619 ----
                int x = e.X;
                int y = e.Y;
+ 
+               mouseX = x;
+               mouseY = y;
+ 
                if (increment.Contains(x,y))
                {
***************
*** 583,586 ****
--- 689,696 ----
                int x = e.X;
                int y = e.Y;
+ 
+               mouseX = x;
+               mouseY = y;
+ 
                if (incDown)
                {
***************
*** 667,670 ****
--- 777,783 ----
        protected override void OnMouseUp(MouseEventArgs e)
        {
+               mouseX = e.X;
+               mouseY = e.Y;
+ 
                bool redraw = (incDown || decDown);
                if (incDown)
***************
*** 756,759 ****
--- 869,918 ----
        }
  
+       private void ScrollKeyPressed(bool pressed, int amount)
+       {
+               if (pressed == keyDown) { return; }
+               keyDown = pressed;
+               if (pressed)
+               {
+                       switch (amount)
+                       {
+                               case 2:
+                               {
+                                       timer.Tick += new 
EventHandler(IncrementBig);
+                               }
+                               break;
+ 
+                               case -2:
+                               {
+                                       timer.Tick += new 
EventHandler(DecrementBig);
+                               }
+                               break;
+ 
+                               case 1:
+                               {
+                                       timer.Tick += new 
EventHandler(Increment);
+                               }
+                               break;
+ 
+                               case -1:
+                               {
+                                       timer.Tick += new 
EventHandler(Decrement);
+                               }
+                               break;
+                       }
+                       delay = startDelay;
+                       timer.Start();
+               }
+               else
+               {
+                       delay = 0;
+                       timer.Stop();
+                       timer.Tick -= new EventHandler(IncrementBig);
+                       timer.Tick -= new EventHandler(DecrementBig);
+                       timer.Tick -= new EventHandler(Increment);
+                       timer.Tick -= new EventHandler(Decrement);
+               }
+       }
+ 
        private void SetPositionByValue()
        {
***************
*** 837,844 ****
--- 996,1005 ----
                                timer.Tick += new EventHandler(DecrementBig);
                        }
+                       delay = startDelay;
                        timer.Start();
                }
                else
                {
+                       delay = 0;
                        timer.Stop();
                        timer.Tick -= new EventHandler(IncrementBig);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]