File: rects.pl

package info (click to toggle)
clutter-perl 0.8.0.1-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 652 kB
  • ctags: 42
  • sloc: perl: 645; ansic: 30; makefile: 3
file content (71 lines) | stat: -rw-r--r-- 1,644 bytes parent folder | download | duplicates (2)
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/perl

# rects.pl: Example of actors API in Clutter
# Copyright (C) 2007  OpenedHand, Ltd.
# Author: Emmanuele Bassi
#
# This is free software. Permission to redistribute and/or modify it under
# the same terms of Perl itself.

use Glib;
use Clutter '-init';

use Data::Dumper;

use strict;
use warnings;

sub button_press_event_cb
{
    my ($stage, $event) = @_;

    print Dumper($stage);
    print Dumper($event);

    print "*** Button press\n",
          "***   coordinates: (", $event->x, ", ", $event->y, ")\n",
          "***   button: ", $event->button,
          "\n";
    
#    Clutter->main_quit() if $event->button eq 1;
}

sub key_press_event_cb
{
   Clutter->main_quit();
}

sub main {
    my $stage = Clutter::Stage->get_default();

    $stage->set_size(800, 600);
    $stage->set_color(Clutter::Color->new(0x6d, 0x6d, 0x70, 0xff));
    $stage->signal_connect(button_press_event => \&button_press_event_cb);
    $stage->signal_connect(key_press_event    => \&key_press_event_cb);
    $stage->signal_connect(actor_added => sub {
    	    my ($container, $actor) = @_;
	
    	    print "Added actor: $actor\n";
        });

    for my $i (1 .. 10) {
        my $rect = Clutter::Rectangle->new();
        $rect->set_color(Clutter::Color->new(0x35, 0x99, 0x2a, 0x66));
        $rect->set_border_width(6);
        $rect->set_border_color(Clutter::Color->new(0x00, 0x00, 0x00, 0x33));
        $rect->set_position((800 - (80 * $i)) / 2, (600 - (60 * $i)) / 2);
        $rect->set_size(80 * $i, 60 * $i);
    
        $stage->add($rect);

        $rect->show();
    }

    $stage->show();

    Clutter->main();
}

main();

0;