[Top][All Lists]
[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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnetlib/System.Windows.Forms ScrollBar.cs, 1.1, 1.2,
Richard Baumann <address@hidden> <=
- Prev by Date:
[Dotgnu-pnet-commits] CVS: pnetlib/System.Windows.Forms HScrollBar.cs, NONE, 1.1 VScrollBar.cs, NONE, 1.1 ScrollBar.cs, NONE, 1.1 ScrollEventArgs.cs, 1.1, 1.2
- Next by Date:
[Dotgnu-pnet-commits] CVS: pnetlib ChangeLog,1.1140,1.1141
- Previous by thread:
[Dotgnu-pnet-commits] CVS: pnetlib/System.Windows.Forms HScrollBar.cs, NONE, 1.1 VScrollBar.cs, NONE, 1.1 ScrollBar.cs, NONE, 1.1 ScrollEventArgs.cs, 1.1, 1.2
- Next by thread:
[Dotgnu-pnet-commits] CVS: pnetlib ChangeLog,1.1140,1.1141
- Index(es):