[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.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);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnetlib/System.Windows.Forms ScrollBar.cs, 1.4, 1.5,
Richard Baumann <address@hidden> <=
- Prev by Date:
[Dotgnu-pnet-commits] CVS: pnetlib ChangeLog,1.1298,1.1299
- Next by Date:
[Dotgnu-pnet-commits] CVS: pnetC/libc/stdlib getenv.c, NONE, 1.1 getenv-glue.cs, NONE, 1.1 Makefile.am, 1.1, 1.2
- Previous by thread:
[Dotgnu-pnet-commits] CVS: pnetlib ChangeLog,1.1298,1.1299
- Next by thread:
[Dotgnu-pnet-commits] CVS: pnetC/libc/stdlib getenv.c, NONE, 1.1 getenv-glue.cs, NONE, 1.1 Makefile.am, 1.1, 1.2
- Index(es):