#!/usr/bin/perl use warnings; use strict; use Glib qw/TRUE FALSE/; use Gtk2 '-init'; my $window = Gtk2::Window->new('toplevel'); $window->set_title("Pixmap'd Buttons!"); $window ->signal_connect( "destroy" => sub { Gtk2->main_quit; } ); $window->set_border_width(10); my $image = create_image(); #my @imagesize = $image->size; #$window->add($image); my $eventbox = Gtk2::EventBox->new; $eventbox->add ($image); $eventbox->add_events (['button-press-mask']); $eventbox->signal_connect ('button-press-event' => sub { my ($widget, $event) = @_; my ($x, $y) = ($event->x, $event->y); print "$x $y\n"; } ); $window->add($eventbox); $window->show_all(); # rest in the GTK main loop and wait for the fun to begin! Gtk2->main; # http://gtk2-perl.sourceforge.net/doc/pod/Gtk2/Gdk/Event.html sub create_image { my @zxpm = ( " 16 16 3 1 ", " s None c None", ". c black", "X c red", " ", " .. ", " .... ", " ...... ", " ........ ", " .......... ", " ............ ", " ............ ", " ............ ", " ............ ", " .......... ", " ........ ", " ...... ", " .... ", " .. ", " ", ); my $pixbuf = Gtk2::Gdk::Pixbuf->new_from_xpm_data ( @zxpm ); return Gtk2::Image->new_from_pixbuf($pixbuf); }