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
|
# NOTE: Derived from blib\lib\Tk/Wm.pm.
# Changes made here will be lost when autosplit is run again.
# See AutoSplit.pm.
package Tk::Wm;
#line 93 "blib\lib\Tk/Wm.pm (autosplit into blib\lib\auto\Tk\Wm\Popup.al)"
sub Popup
{
my $w = shift;
$w->configure(@_) if @_;
$w->idletasks;
my ($mw,$mh) = ($w->reqwidth,$w->reqheight);
my ($rx,$ry,$rw,$rh) = (0,0,0,0);
my $base = $w->cget('-popover');
my $outside = 0;
if (defined $base)
{
if ($base eq 'cursor')
{
($rx,$ry) = $w->pointerxy;
}
else
{
$rx = $base->rootx;
$ry = $base->rooty;
$rw = $base->Width;
$rh = $base->Height;
}
}
else
{
my $sc = ($w->parent) ? $w->parent->toplevel : $w;
$rx = -$sc->vrootx;
$ry = -$sc->vrooty;
$rw = $w->screenwidth;
$rh = $w->screenheight;
}
my ($X,$Y) = AnchorAdjust($w->cget('-overanchor'),$rx,$ry,$rw,$rh);
($X,$Y) = AnchorAdjust($w->cget('-popanchor'),$X,$Y,-$mw,-$mh);
$w->Post($X,$Y);
$w->waitVisibility;
}
# end of Tk::Wm::Popup
1;
|