Gtk2-Ex-WidgetCursor
view release on metacpan or search on metacpan
devel/run.pl view on Meta::CPAN
$vbox->pack_start ($button, 0, 0, 0);
}
{
my $button = Gtk2::Button->new_with_label ("Pointer Grab");
$button->signal_connect
(clicked => sub {
my $event = Gtk2->get_current_event;
my $window = $area->window;
my $event_mask = [];
my $confine_to = undef;
my $cursor = undef;
my $time = $event->time;
print "$window, 1, $event_mask, ",
defined $confine_to ? $confine_to : 'undef',",",
" ", defined $cursor ? $cursor : 'undef',",",
" $time\n";
my $status = Gtk2::Gdk->pointer_grab
($window, 1, $event_mask, $confine_to, $cursor, $time);
print "$progname: grab $status\n";
});
$vbox->pack_start ($button, 0, 0, 0);
}
{
my $screen = $toplevel->get_screen;
my $confine_win = Gtk2::Gdk::Window->new
($screen->get_root_window,
{ window_type => 'temp',
wclass => 'GDK_INPUT_ONLY',
x => $screen->get_width / 2,
y => $screen->get_height / 2,
width => $screen->get_width / 2,
height => $screen->get_height / 2,
override_redirect => 1 });
my $button = Gtk2::Button->new_with_label ("Confined Grab");
$button->signal_connect
(clicked => sub {
my $event = Gtk2->get_current_event;
my $window = $area->window;
my $event_mask = [];
my $cursor = undef;
my $time = $event->time;
$confine_win->show;
my $status = Gtk2::Gdk->pointer_grab
($window, 1, $event_mask, $confine_win, $cursor, $time);
print "$progname: grab $status\n";
});
$vbox->pack_start ($button, 0, 0, 0);
}
Gtk2->key_snooper_install
(sub {
print "$progname: pointer_ungrab\n";
Gtk2::Gdk->pointer_ungrab (0);
});
{
my $combobox = Gtk2::ComboBox->new_text;
$vbox->pack_start ($combobox, 1,1,0);
foreach ('one', 'two', 'three', 'four') {
$combobox->append_text ($_);
}
$combobox->set_active (0);
}
$toplevel->show_all;
}
{
my $display_name = Gtk2::Gdk::Display->get_default->get_name;
my $display = Gtk2::Gdk::Display->open ($display_name);
my $screen = $display->get_default_screen;
my $toplevel = Gtk2::Window->new ('toplevel');
$toplevel->set_name ("my_toplevel_2");
$toplevel->set_screen ($screen);
$toplevel->set_size_request (100, 100);
$toplevel->signal_connect (destroy => sub {
print "$progname: second toplevel quit\n";
Gtk2->main_quit;
});
$toplevel->{'mycursor'} = Gtk2::Ex::WidgetCursor->new (widget => $toplevel,
cursor => 'fleur',
active => 1);
print "$progname: second toplevel $toplevel\n";
$toplevel->show_all;
}
print "$progname: toplevel widgets are\n";
foreach my $widget (Gtk2::Window->list_toplevels) {
print " $widget ", $widget->get_name, "\n";
if ($widget->get_name =~ /Gtk/) {
foreach my $widget (Gtk2::Ex::WidgetCursor::_container_recursively ($widget)) {
print " $widget ", $widget->get_name, "\n";
}
}
}
Gtk2->main;
exit 0;
__END__
( run in 1.464 second using v1.01-cache-2.11-cpan-8dfa8b56332 )