summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonDown.al
diff options
context:
space:
mode:
authorSiep Kroonenberg <siepo@cybercomm.nl>2011-02-17 15:53:26 +0000
committerSiep Kroonenberg <siepo@cybercomm.nl>2011-02-17 15:53:26 +0000
commit2acf4c9396e980e00adbdc02f5a70eefc7122b55 (patch)
treef0dd76ad4357b54e9b97cf618554cefadea99d48 /Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonDown.al
parent2de20e5e6fe9f53f36acef44253e9e0b19a4bdb8 (diff)
New tlperl part VI
git-svn-id: svn://tug.org/texlive/trunk@21428 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonDown.al')
-rw-r--r--Master/tlpkg/tlperl/lib/auto/Tk/Scrollbar/ButtonDown.al55
1 files changed, 55 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;