summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar')
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonDown.al55
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonUp.al26
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Drag.al43
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/EndDrag.al28
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Enter.al21
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Leave.al18
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Motion.al15
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlByPages.al38
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlByUnits.al37
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlToPos.al35
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlTopBottom.al32
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Scrollbar.bs0
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Scrollbar.dllbin0 -> 24064 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Select.al59
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/StartDrag.al38
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/autosplit.ix30
16 files changed, 475 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonDown.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonDown.al
new file mode 100644
index 00000000000..d80e2217abc
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonDown.al
@@ -0,0 +1,55 @@
+# 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 116 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ButtonDown.al)"
+# tkScrollButtonDown --
+# This procedure is invoked when a button is pressed in a scrollbar.
+# It changes the way the scrollbar is displayed and takes actions
+# depending on where the mouse is.
+#
+# Arguments:
+# w - The scrollbar widget.
+# x, y - Mouse coordinates.
+
+sub ButtonDown
+{my $w = shift;
+ my $e = $w->XEvent;
+ my $element = $w->identify($e->x,$e->y);
+ $w->configure('-activerelief' => 'sunken');
+ if ($e->b == 1 and
+ (defined($element) && $element eq 'slider'))
+ {
+ $w->StartDrag($e->x,$e->y);
+ }
+ elsif ($e->b == 2 and
+ (defined($element) && $element =~ /^(trough[12]|slider)$/o))
+ {
+ my $pos = $w->fraction($e->x, $e->y);
+ my($head, $tail) = $w->get;
+ my $len = $tail - $head;
+
+ $head = $pos - $len/2;
+ $tail = $pos + $len/2;
+ if ($head < 0) {
+ $head = 0;
+ $tail = $len;
+ }
+ elsif ($tail > 1) {
+ $head = 1 - $len;
+ $tail = 1;
+ }
+ $w->ScrlToPos($head);
+ $w->set($head, $tail);
+
+ $w->StartDrag($e->x,$e->y);
+ }
+ else
+ {
+ $w->Select($element,'initial');
+ }
+}
+
+# end of Tk::Scrollbar::ButtonDown
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonUp.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonUp.al
new file mode 100644
index 00000000000..68857548755
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonUp.al
@@ -0,0 +1,26 @@
+# 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 163 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ButtonUp.al)"
+# tkScrollButtonUp --
+# This procedure is invoked when a button is released in a scrollbar.
+# It cancels scans and auto-repeats that were in progress, and restores
+# the way the active element is displayed.
+#
+# Arguments:
+# w - The scrollbar widget.
+# x, y - Mouse coordinates.
+
+sub ButtonUp
+{my $w = shift;
+ my $e = $w->XEvent;
+ $w->CancelRepeat;
+ $w->configure('-activerelief' => 'raised');
+ $w->EndDrag($e->x,$e->y);
+ $w->activate($w->identify($e->x,$e->y));
+}
+
+# end of Tk::Scrollbar::ButtonUp
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Drag.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Drag.al
new file mode 100644
index 00000000000..988f9d4a3ef
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Drag.al
@@ -0,0 +1,43 @@
+# 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 262 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\Drag.al)"
+# tkScrollDrag --
+# This procedure is called for each mouse motion even when the slider
+# is being dragged. It notifies the associated widget if we're not
+# jump scrolling, and it just updates the scrollbar if we are jump
+# scrolling.
+#
+# Arguments:
+# w - The scrollbar widget.
+# x, y - The current mouse position.
+
+sub Drag
+{
+ my($w,$x,$y) = @_;
+ return if !defined $initPos;
+ my $delta = $w->delta($x-$pressX, $y-$pressY);
+ if ($w->cget('-jump'))
+ {
+ if (@initValues == 2)
+ {
+ $w->set($initValues[0]+$delta, $initValues[1]+$delta);
+ }
+ else
+ {
+ $delta = sprintf "%d", $delta * $initValues[0]; # round()
+ $initValues[2] += $delta;
+ $initValues[3] += $delta;
+ $w->set(@initValues[2,3]);
+ }
+ }
+ else
+ {
+ $w->ScrlToPos($initPos+$delta);
+ }
+}
+
+# end of Tk::Scrollbar::Drag
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/EndDrag.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/EndDrag.al
new file mode 100644
index 00000000000..8c401b6fc31
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/EndDrag.al
@@ -0,0 +1,28 @@
+# 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 297 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\EndDrag.al)"
+# tkScrollEndDrag --
+# This procedure is called to end an interactive drag of the slider.
+# It scrolls the window if we're in jump mode, otherwise it does nothing.
+#
+# Arguments:
+# w - The scrollbar widget.
+# x, y - The mouse position at the end of the drag operation.
+
+sub EndDrag
+{
+ my($w,$x,$y) = @_;
+ return if (!defined $initPos);
+ if ($w->cget('-jump'))
+ {
+ my $delta = $w->delta($x-$pressX, $y-$pressY);
+ $w->ScrlToPos($initPos+$delta);
+ }
+ undef $initPos;
+}
+
+# end of Tk::Scrollbar::EndDrag
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Enter.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Enter.al
new file mode 100644
index 00000000000..9584a7fa34c
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Enter.al
@@ -0,0 +1,21 @@
+# 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 86 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\Enter.al)"
+sub Enter
+{
+ my $w = shift;
+ my $e = $w->XEvent;
+ if ($Tk::strictMotif)
+ {
+ my $bg = $w->cget('-background');
+ $activeBg = $w->cget('-activebackground');
+ $w->configure('-activebackground' => $bg);
+ }
+ $w->activate($w->identify($e->x,$e->y));
+}
+
+# end of Tk::Scrollbar::Enter
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Leave.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Leave.al
new file mode 100644
index 00000000000..a6c5e89d91e
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Leave.al
@@ -0,0 +1,18 @@
+# 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 99 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\Leave.al)"
+sub Leave
+{
+ my $w = shift;
+ if ($Tk::strictMotif)
+ {
+ $w->configure('-activebackground' => $activeBg) if (defined $activeBg) ;
+ }
+ $w->activate('');
+}
+
+# end of Tk::Scrollbar::Leave
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Motion.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Motion.al
new file mode 100644
index 00000000000..46aac656c70
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Motion.al
@@ -0,0 +1,15 @@
+# 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 109 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\Motion.al)"
+sub Motion
+{
+ my $w = shift;
+ my $e = $w->XEvent;
+ $w->activate($w->identify($e->x,$e->y));
+}
+
+# end of Tk::Scrollbar::Motion
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlByPages.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlByPages.al
new file mode 100644
index 00000000000..9d4018e9128
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlByPages.al
@@ -0,0 +1,38 @@
+# 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 346 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ScrlByPages.al)"
+# tkScrlByPages --
+# This procedure tells the scrollbar's associated widget to scroll up
+# or down by a given number of screenfuls. It notifies the associated
+# widget in different ways for old and new command syntaxes.
+#
+# Arguments:
+# w - The scrollbar widget.
+# orient - Which kinds of scrollbars this applies to: "h" for
+# horizontal, "v" for vertical, "hv" for both.
+# amount - How many screens to scroll: typically 1 or -1.
+
+sub ScrlByPages
+{
+ my $w = shift;
+ my $orient = shift;
+ my $amount = shift;
+ my $cmd = $w->cget('-command');
+ return unless (defined $cmd);
+ return if (index($orient,substr($w->cget('-orient'),0,1)) < 0);
+ my @info = $w->get;
+ if (@info == 2)
+ {
+ $cmd->Call('scroll',$amount,'pages');
+ }
+ else
+ {
+ $cmd->Call($info[2]+$amount*($info[1]-1));
+ }
+}
+
+# end of Tk::Scrollbar::ScrlByPages
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlByUnits.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlByUnits.al
new file mode 100644
index 00000000000..a364b3e52ce
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlByUnits.al
@@ -0,0 +1,37 @@
+# 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 317 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ScrlByUnits.al)"
+# tkScrlByUnits --
+# This procedure tells the scrollbar's associated widget to scroll up
+# or down by a given number of units. It notifies the associated widget
+# in different ways for old and new command syntaxes.
+#
+# Arguments:
+# w - The scrollbar widget.
+# orient - Which kinds of scrollbars this applies to: "h" for
+# horizontal, "v" for vertical, "hv" for both.
+# amount - How many units to scroll: typically 1 or -1.
+
+sub ScrlByUnits
+{my $w = shift;
+ my $orient = shift;
+ my $amount = shift;
+ my $cmd = $w->cget('-command');
+ return unless (defined $cmd);
+ return if (index($orient,substr($w->cget('-orient'),0,1)) < 0);
+ my @info = $w->get;
+ if (@info == 2)
+ {
+ $cmd->Call('scroll',$amount,'units');
+ }
+ else
+ {
+ $cmd->Call($info[2]+$amount);
+ }
+}
+
+# end of Tk::Scrollbar::ScrlByUnits
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlToPos.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlToPos.al
new file mode 100644
index 00000000000..e277237953e
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlToPos.al
@@ -0,0 +1,35 @@
+# 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 376 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ScrlToPos.al)"
+# tkScrlToPos --
+# This procedure tells the scrollbar's associated widget to scroll to
+# a particular location, given by a fraction between 0 and 1. It notifies
+# the associated widget in different ways for old and new command syntaxes.
+#
+# Arguments:
+# w - The scrollbar widget.
+# pos - A fraction between 0 and 1 indicating a desired position
+# in the document.
+
+sub ScrlToPos
+{
+ my $w = shift;
+ my $pos = shift;
+ my $cmd = $w->cget('-command');
+ return unless (defined $cmd);
+ my @info = $w->get;
+ if (@info == 2)
+ {
+ $cmd->Call('moveto',$pos);
+ }
+ else
+ {
+ $cmd->Call(int($info[0]*$pos));
+ }
+}
+
+# end of Tk::Scrollbar::ScrlToPos
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlTopBottom.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlTopBottom.al
new file mode 100644
index 00000000000..7a00efe616f
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ScrlTopBottom.al
@@ -0,0 +1,32 @@
+# 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 403 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\ScrlTopBottom.al)"
+# tkScrlTopBottom
+# Scroll to the top or bottom of the document, depending on the mouse
+# position.
+#
+# Arguments:
+# w - The scrollbar widget.
+# x, y - Mouse coordinates within the widget.
+
+sub ScrlTopBottom
+{
+ my $w = shift;
+ my $e = $w->XEvent;
+ my $element = $w->identify($e->x,$e->y);
+ return unless ($element);
+ if ($element =~ /1$/)
+ {
+ $w->ScrlToPos(0);
+ }
+ elsif ($element =~ /2$/)
+ {
+ $w->ScrlToPos(1);
+ }
+}
+
+1;
+# end of Tk::Scrollbar::ScrlTopBottom
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Scrollbar.bs b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Scrollbar.bs
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Scrollbar.bs
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Scrollbar.dll b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Scrollbar.dll
new file mode 100755
index 00000000000..d773eb14ef0
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Scrollbar.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Select.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Select.al
new file mode 100644
index 00000000000..0da50da443b
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/Select.al
@@ -0,0 +1,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;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/StartDrag.al b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/StartDrag.al
new file mode 100644
index 00000000000..32edbfdef24
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/StartDrag.al
@@ -0,0 +1,38 @@
+# 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 232 "..\blib\lib\Tk\Scrollbar.pm (autosplit into ..\blib\lib\auto\Tk\Scrollbar\StartDrag.al)"
+# tkScrollStartDrag --
+# This procedure is called to initiate a drag of the slider. It just
+# remembers the starting position of the slider.
+#
+# Arguments:
+# w - The scrollbar widget.
+# x, y - The mouse position at the start of the drag operation.
+
+sub StartDrag
+{
+ my($w,$x,$y) = @_;
+ return unless (defined ($w->cget('-command')));
+ $pressX = $x;
+ $pressY = $y;
+ @initValues = $w->get;
+ my $iv0 = $initValues[0];
+ if (@initValues == 2)
+ {
+ $initPos = $iv0;
+ }
+ elsif ($iv0 == 0)
+ {
+ $initPos = 0;
+ }
+ else
+ {
+ $initPos = $initValues[2]/$initValues[0];
+ }
+}
+
+# end of Tk::Scrollbar::StartDrag
+1;
diff --git a/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/autosplit.ix b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/autosplit.ix
new file mode 100644
index 00000000000..293d1322dd4
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/autosplit.ix
@@ -0,0 +1,30 @@
+# Index created by AutoSplit for ..\blib\lib\Tk\Scrollbar.pm
+# (file acts as timestamp)
+package Tk::Scrollbar;
+sub Enter
+;
+sub Leave
+;
+sub Motion
+;
+sub ButtonDown
+;
+sub ButtonUp
+;
+sub Select
+;
+sub StartDrag
+;
+sub Drag
+;
+sub EndDrag
+;
+sub ScrlByUnits
+;
+sub ScrlByPages
+;
+sub ScrlToPos
+;
+sub ScrlTopBottom
+;
+1;