Gtk2-Ex-VolumeButton
view release on metacpan or search on metacpan
lib/Gtk2/Ex/VolumeButton.pm view on Meta::CPAN
$self->{position} = 'buttom';
$self->signal_connect( 'toggled', \&toggle_cb );
$self->signal_connect( 'scroll_event', \&scroll_event_cb );
$self->{image} = Gtk2::Image->new();
$self->{image}->show();
$self->add( $self->{image} );
}
sub update_pixbufs {
my $self = shift;
for(qw( mute zero min medium max )) {
if( ref $self->{$_.'_image'} && $self->{$_.'_image'}->isa('Gtk2::Gdk::Pixbuf') ) {
$self->{pixbufs}->{$_} = $self->{$_.'_image'};
} elsif( -r $self->{$_.'_image'} ) {
$self->{pixbufs}->{$_} = Gtk2::Gdk::Pixbuf->new_from_file_at_size( $self->{$_.'_image'}, $self->{icon_size}, $self->{icon_size} );
} elsif($_) {
$self->{pixbufs}->{$_} = $self->render_icon( $self->{$_.'_image'}, $self->{icon_size} );
}
lib/Gtk2/Ex/VolumeButton.pm view on Meta::CPAN
sub set_volume {
my($self, $vol) = @_;
return if $self->{volume} == $vol;
$self->{volume} = $vol;
$self->update_image( $vol );
$self->signal_emit( 'volume_changed', $vol );
}
sub update_image {
my($self, $vol) = @_;
my $id;
$vol = $self->{volume} unless defined $vol;
if( $vol <= 0 ) {
$id = 'zero';
} elsif( $vol <= 100 / 3 ) {
$id = 'min';
} elsif( $vol <= 2 * 100 / 3 ) {
( run in 0.486 second using v1.01-cache-2.11-cpan-4d4bc49f3ae )