Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re^4: want way to drag tk window

by tybalt89 (Monsignor)
on Aug 06, 2017 at 01:31 UTC ( [id://1196834]=note: print w/replies, xml ) Need Help??


in reply to Re^3: want way to drag tk window
in thread want way to drag tk window

Here's a version without both \K and the /r option to the s///.
It should run on older perls.

It also uses B1-Motion to avoid an extra flag.

#!/usr/bin/perl # http://perlmonks.org/?node_id=1196818 use strict; use warnings; use Tk; sub xy { $_[0]->XEvent->x, $_[0]->XEvent->y } my $mw = MainWindow->new; $mw->overrideredirect(1); $mw->Label( -text => 'Press 1, Move, then Release in green Canvas to move window +', )->pack(-fill => 'x'); my $c = $mw->Canvas(-width => 500, -height => 400, -bg => 'green', )->pack; $c->Tk::bind('<1>' => \&leftdown); $c->Tk::bind('<B1-Motion>' => \&leftmotion); $mw->Button(-text => 'Exit', -command => sub { $mw->destroy }, )->pack(-fill => 'x'); MainLoop; my ($startx, $starty); sub leftmotion { my ($endx, $endy) = &xy; my $deltax = $endx - $startx; my $deltay = $endy - $starty; my ($size, $x, $y) = split /\+/, $mw->geometry; $mw->geometry( "$size+" . ($x + $deltax) . "+" . ($y + $deltay) ); } sub leftdown { ($startx, $starty) = &xy; }

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1196834]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (7)
As of 2024-03-28 22:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found