25 lines
669 B
Perl
25 lines
669 B
Perl
#!/usr/bin/perl
|
|
use Cairo::GObject;
|
|
use Glib::Object::Introspection;
|
|
|
|
Glib::Object::Introspection->setup (
|
|
basename => 'Gtk',
|
|
version => '3.0',
|
|
package => 'Gtk3');
|
|
Gtk3::init ([]);
|
|
|
|
my $window = Gtk3::Window->new ('toplevel');
|
|
my $button = Gtk3::Button->new_with_label ('Kazam!');
|
|
$window->add ($button);
|
|
$window->show_all;
|
|
|
|
my ($width, undef) = $button->get_preferred_width;
|
|
my ($height, undef) = $button->get_preferred_height;
|
|
my $surf = Cairo::ImageSurface->create ('argb32', $width,$height);
|
|
my $cr = Cairo::Context->create ($surf);
|
|
|
|
Glib::Idle->add (sub { $button->draw ($cr); Gtk3::main_quit (); });
|
|
Gtk3::main ();
|
|
|
|
$surf->write_to_png ('draw-widget.png');
|