Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / lib / site_perl / 5.8.0 / sun4-solaris / Tk / DragDrop / KDEDrop.pm
package Tk::DragDrop::KDEDrop;
use strict;
use vars qw($VERSION);
$VERSION = '3.007'; # $Id: //depot/Tk8/DragDrop/DragDrop/KDEDrop.pm#7 $
use base qw(Tk::DragDrop::Rect);
Tk::DragDrop->Type('KDE');
sub NewDrag
{
my ($class,$token) = @_;
$token->{$class} = {};
}
sub new
{
my ($class,$token,$id) = @_;
return bless {id => $id, token =>$token},$class;
}
sub Drop
{
my ($site,$token,$seln,$e) = @_;
my $w = $token->parent;
my $string;
Tk::catch { $string = $w->SelectionGet(-selection => $seln, -type => 'FILE_NAME') };
if (!$@ && defined $string)
{
$w->property('set','DndSelection','STRING',8,"file:$string",'root');
my $data = pack('LLLLL',128,0,0,$e->X,$e->Y);
$w->SendClientMessage('DndProtocol',$site->{id},32,$data);
}
else
{
warn $@ if $@;
}
}
sub FindSite
{
my ($class,$token,$X,$Y) = @_;
my $id = $token->PointToWindow($X,$Y);
my $seen = 1;
my $best;
while ($id)
{
my @prop;
Tk::catch { @prop = $token->property('get','KDE_DESKTOP_WINDOW', $id) };
$seen = 1 if (!$@ && shift(@prop) eq 'KDE_DESKTOP_WINDOW');
$best = $id if $seen;
$id = $token->PointToWindow($X,$Y,$id)
}
if (defined $best)
{
my $hash = $token->{$class};
my $site = $hash->{$best};
if (!defined $site)
{
$site = $class->new($token,$best);
$hash->{$best} = $site;
}
return $site;
}
return undef;
}
sub Enter
{
my ($site,$token,$e) = @_;
}
sub Leave
{
my ($site,$token,$e) = @_;
}
sub Motion
{
my ($site,$token,$e) = @_;
}
1;
__END__