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.1, 1.2
Date: Thu, 10 Jul 2003 07:47:18 -0400

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

Modified Files:
        ScrollBar.cs 
Log Message:
Add support for key events and fix some mouse event bugs in ScrollBar.


Index: ScrollBar.cs
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnetlib/System.Windows.Forms/ScrollBar.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** ScrollBar.cs        10 Jul 2003 10:10:09 -0000      1.1
--- ScrollBar.cs        10 Jul 2003 11:47:15 -0000      1.2
***************
*** 42,46 ****
--- 42,48 ----
        private bool trackDown = false;
        private int barDown = -1;
+       private bool keyDown = false;
        private Timer timer;
+       private Timer keyTimer;
        internal bool vertical;
  
***************
*** 51,56 ****
        {
                base.TabStop = false;
!               Timer timer = new Timer();
!               timer.Interval = 500; // half a second sounds about right ;)
        }
  
--- 53,60 ----
        {
                base.TabStop = false;
!               timer = new Timer();
!               timer.Interval = 100;
!               keyTimer = new Timer(); // keep key and mouse events from...
!               timer.Interval = 100; // ...stepping on each other's toes
        }
  
***************
*** 65,69 ****
                        if (value == base.BackColor) { return; }
                        base.BackColor = value;
!                       Redraw();
                }
        }
--- 69,73 ----
                        if (value == base.BackColor) { return; }
                        base.BackColor = value;
!                       Redraw(false);
                }
        }
***************
*** 76,80 ****
                        if (value == base.BackgroundImage) { return; }
                        base.BackgroundImage = value;
!                       Redraw();
                }
        }
--- 80,84 ----
                        if (value == base.BackgroundImage) { return; }
                        base.BackgroundImage = value;
!                       Redraw(false);
                }
        }
***************
*** 123,127 ****
                        if (value == base.ForeColor) { return; }
                        base.ForeColor = value;
!                       Redraw();
                }
        }
--- 127,131 ----
                        if (value == base.ForeColor) { return; }
                        base.ForeColor = value;
!                       Redraw(false);
                }
        }
***************
*** 247,251 ****
                OnScroll(new 
ScrollEventArgs(this,ScrollEventType.SmallDecrement,value));
                SetPositionByValue();
!               Redraw();
        }
  
--- 251,267 ----
                OnScroll(new 
ScrollEventArgs(this,ScrollEventType.SmallDecrement,value));
                SetPositionByValue();
!               Redraw(false);
!       }
! 
!       private void DecrementBig(Object sender, EventArgs e)
!       {
!               int tmp = (value-largeChange);
!               tmp = tmp > minimum ?
!                     tmp : minimum;
!               if (value == tmp) { return; }
!               Value = tmp;
!               OnScroll(new 
ScrollEventArgs(this,ScrollEventType.LargeDecrement,value));
!               SetPositionByValue();
!               Redraw(false);
        }
  
***************
*** 301,305 ****
                OnScroll(new 
ScrollEventArgs(this,ScrollEventType.SmallIncrement,value));
                SetPositionByValue();
!               Redraw();
        }
  
--- 317,378 ----
                OnScroll(new 
ScrollEventArgs(this,ScrollEventType.SmallIncrement,value));
                SetPositionByValue();
!               Redraw(false);
!       }
! 
!       private void IncrementBig(Object sender, EventArgs e)
!       {
!               int tmp = (value+largeChange);
!               int tmp2 = (maximum-largeChange+1);
!               tmp = tmp < tmp2 ?
!                     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);
!               }
        }
  
***************
*** 366,369 ****
--- 439,511 ----
        }
  
+       protected override void OnKeyDown(KeyEventArgs e)
+       {
+               Console.WriteLine("OnKeyDown("+e.KeyCode+")");
+               if (keyDown) { return; }
+ 
+               switch (e.KeyCode)
+               {
+                       case Keys.PageUp:
+                       {
+                               IncrementBig(null,null);
+                               ScrollKeyPressed(true,2);
+                       }
+                       break;
+ 
+                       case Keys.PageDown:
+                       {
+                               DecrementBig(null,null);
+                               ScrollKeyPressed(true,-2);
+                       }
+                       break;
+ 
+                       case Keys.Up:
+                       {
+                               Increment(null,null);
+                               ScrollKeyPressed(true,1);
+                       }
+                       break;
+ 
+                       case Keys.Down:
+                       {
+                               Decrement(null,null);
+                               ScrollKeyPressed(true,-1);
+                       }
+                       break;
+               }
+       }
+ 
+       protected override void OnKeyUp(KeyEventArgs e)
+       {
+               if (!keyDown) { return; }
+ 
+               switch (e.KeyCode)
+               {
+                       case Keys.PageUp:
+                       {
+                               ScrollKeyPressed(false,2);
+                       }
+                       break;
+ 
+                       case Keys.PageDown:
+                       {
+                               ScrollKeyPressed(false,-2);
+                       }
+                       break;
+ 
+                       case Keys.Up:
+                       {
+                               ScrollKeyPressed(false,1);
+                       }
+                       break;
+ 
+                       case Keys.Down:
+                       {
+                               ScrollKeyPressed(false,-1);
+                       }
+                       break;
+               }
+       }
+ 
        protected override void OnMouseDown(MouseEventArgs e)
        {
***************
*** 390,399 ****
                                if (y >= bar.Bottom)
                                {
!                                       TrackAdd(null,null);
                                        TrackPressed(true,true);
                                }
                                else // y <= bar.Top
                                {
!                                       TrackSub(null,null);
                                        TrackPressed(true,false);
                                }
--- 532,541 ----
                                if (y >= bar.Bottom)
                                {
!                                       IncrementBig(null,null);
                                        TrackPressed(true,true);
                                }
                                else // y <= bar.Top
                                {
!                                       DecrementBig(null,null);
                                        TrackPressed(true,false);
                                }
***************
*** 405,414 ****
                                if (plus)
                                {
!                                       TrackAdd(null,null);
                                        TrackPressed(true,true);
                                }
                                else
                                {
!                                       TrackSub(null,null);
                                        TrackPressed(true,false);
                                }
--- 547,556 ----
                                if (plus)
                                {
!                                       IncrementBig(null,null);
                                        TrackPressed(true,true);
                                }
                                else
                                {
!                                       DecrementBig(null,null);
                                        TrackPressed(true,false);
                                }
***************
*** 656,672 ****
        }
  
-       private void TrackAdd(Object sender, EventArgs e)
-       {
-               int tmp = (value+largeChange);
-               int tmp2 = (maximum-largeChange+1);
-               tmp = tmp < tmp2 ?
-                     tmp : tmp2;
-               if (value == tmp) { return; }
-               Value = tmp;
-               OnScroll(new 
ScrollEventArgs(this,ScrollEventType.LargeIncrement,value));
-               SetPositionByValue();
-               Redraw();
-       }
- 
        private void TrackPressed(bool pressed, bool plus)
        {
--- 798,801 ----
***************
*** 677,685 ****
                        if (plus)
                        {
!                               timer.Tick += new EventHandler(TrackAdd);
                        }
                        else
                        {
!                               timer.Tick += new EventHandler(TrackSub);
                        }
                        timer.Start();
--- 806,814 ----
                        if (plus)
                        {
!                               timer.Tick += new EventHandler(IncrementBig);
                        }
                        else
                        {
!                               timer.Tick += new EventHandler(DecrementBig);
                        }
                        timer.Start();
***************
*** 688,707 ****
                {
                        timer.Stop();
!                       timer.Tick -= new EventHandler(TrackAdd);
!                       timer.Tick -= new EventHandler(TrackSub);
                }
        }
  
-       private void TrackSub(Object sender, EventArgs e)
-       {
-               int tmp = (value-largeChange);
-               tmp = tmp > minimum ?
-                     tmp : minimum;
-               if (value == tmp) { return; }
-               Value = tmp;
-               OnScroll(new 
ScrollEventArgs(this,ScrollEventType.LargeDecrement,value));
-               SetPositionByValue();
-               Redraw();
-       }
  #if !CONFIG_COMPACT_FORMS
        protected override void WndProc(ref Message m)
--- 817,825 ----
                {
                        timer.Stop();
!                       timer.Tick -= new EventHandler(IncrementBig);
!                       timer.Tick -= new EventHandler(DecrementBig);
                }
        }
  
  #if !CONFIG_COMPACT_FORMS
        protected override void WndProc(ref Message m)





reply via email to

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