OpenCores
URL https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk

Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc

[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [perl_gui/] [lib/] [perl/] [ColorButton.pm] - Blame information for rev 43

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 43 alirezamon
#!/usr/bin/perl -w
2
 
3
use strict;
4
 
5
package ColorButton;
6
 
7
use Gtk2;
8
use Glib::Object::Subclass
9
    Gtk2::Button::,
10
    signals => {
11
        color_changed => {},
12
        show => \&on_show,
13
    },
14
    properties => [
15
        Glib::ParamSpec->int (
16
                'red',
17
                'Red',
18
                'The Red component of the RGB color',
19
                0,
20
                0xffff,
21
                0xffff,
22
                [qw/readable writable/]
23
        ),
24
        Glib::ParamSpec->int (
25
                'green',
26
                'Green',
27
                'The Green component of the RGB color',
28
                0,
29
                0xffff,
30
                0xffff,
31
                [qw/readable writable/]
32
        ),
33
        Glib::ParamSpec->int (
34
                'blue',
35
                'Blue',
36
                'The Blue component of the RGB color',
37
                0,
38
                0xffff,
39
                0xffff,
40
                [qw/readable writable/]
41
        ),
42
         Glib::ParamSpec->string (
43
                'label',
44
                'Label',
45
                'The lable of button',
46
                "BBB",
47
                [qw/readable writable/]
48
        ),
49
 
50
    ]
51
    ;
52
 
53
sub INIT_INSTANCE {
54
        my $self = shift;
55
        $self->{red} = 0xffff;
56
        $self->{green} = 0xffff;
57
        $self->{blue} = 0xffff;
58
        $self->{label} = "Colored_button";
59
 
60
 
61
        my $frame = Gtk2::Frame->new;
62
        $frame->set_border_width (3);
63
        $frame->set_shadow_type ('etched-in');
64
        $self->add ($frame);
65
        $frame->show;
66
        my $event_box = Gtk2::EventBox->new;
67
        $event_box->set_size_request (14, 14);
68
        my $lable   = Gtk2::Label->new($self->{label});
69
        $event_box->add($lable);
70
 
71
        $frame->add ($event_box);
72
        $event_box->show;
73
        $self->{colorbox} = $event_box;
74
        $self->{labelbox} = $lable;
75
}
76
 
77
sub on_show {
78
        my $self = shift;
79
        $self->set_color (red => $self->{red},
80
                          green => $self->{green},
81
                          blue => $self->{blue});
82
        $self->{labelbox}->set_label ($self->{label});
83
 
84
        $self->signal_chain_from_overridden;
85
}
86
 
87
sub set_color {
88
        my $self = shift;
89
        my %params = @_;
90
        my $color = Gtk2::Gdk::Color->new ($params{red},
91
                                           $params{green},
92
                                           $params{blue});
93
        $self->{colorbox}->get_colormap->alloc_color ($color, 0, 1);
94
        $self->{colorbox}->modify_bg ('normal', $color);
95
       # $self->{colorbox}->modify_bg ('active', $color);
96
       # $self->{colorbox}->modify_bg ('prelight', $color);
97
        $self->{red} = $params{red};
98
        $self->{green} = $params{green};
99
        $self->{blue} = $params{blue};
100
        $self->signal_emit ('color-changed');
101
}
102
 
103
1

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.