summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl.straw/lib/auto/Tk/Scrollbar/Select.al
blob: 0da50da443b1e3f091fa26f1c1c9c698c0c680be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# NOTE: Derived from ..\blib\lib\Tk\Scrollbar.pm.
# Changes made here will be lost when autosplit is run again.
# See AutoSplit.pm.
package Tk::Scrollbar;

#line 181 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\Select.al)"
# tkScrollSelect --
# This procedure is invoked when button 1 is pressed over the scrollbar.
# It invokes one of several scrolling actions depending on where in
# the scrollbar the button was pressed.
#
# Arguments:
# w -		The scrollbar widget.
# element -	The element of the scrollbar that was selected, such
#		as "arrow1" or "trough2".  Shouldn't be "slider".
# repeat -	Whether and how to auto-repeat the action:  "noRepeat"
#		means don't auto-repeat, "initial" means this is the
#		first action in an auto-repeat sequence, and "again"
#		means this is the second repetition or later.

sub Select
{
 my $w = shift;
 my $element = shift;
 my $repeat  = shift;
 return unless defined ($element);
 if ($element eq 'arrow1')
  {
   $w->ScrlByUnits('hv',-1);
  }
 elsif ($element eq 'trough1')
  {
   $w->ScrlByPages('hv',-1);
  }
 elsif ($element eq 'trough2')
  {
   $w->ScrlByPages('hv', 1);
  }
 elsif ($element eq 'arrow2')
  {
   $w->ScrlByUnits('hv', 1);
  }
 else
  {
   return;
  }

 if ($repeat eq 'again')
  {
   $w->RepeatId($w->after($w->cget('-repeatinterval'),['Select',$w,$element,'again']));
  }
 elsif ($repeat eq 'initial')
  {
   $w->RepeatId($w->after($w->cget('-repeatdelay'),['Select',$w,$element,'again']));
  }
}

# end of Tk::Scrollbar::Select
1;