Tk-ActivityBar

 view release on metacpan or  search on metacpan

lib/ActivityBar.pm  view on Meta::CPAN

package Tk::ActivityBar;

use vars qw($VERSION);
$VERSION = '0.01';

use strict;

use base qw(Tk::Derived Tk::ProgressBar);
Construct Tk::Widget 'ActivityBar';


### OVERRIDING FUNCTIONS

sub Populate {
    my ($c, $args) = @_;

    $c->SUPER::Populate($args);

    $c->configure( -borderwidth      => 1,
		   -xscrollincrement => 1,
		   -yscrollincrement => 1);

    $c->ConfigSpecs
      ('-interval'       => ['PASSIVE', 'interval', 'Interval', 100],
       '-increment'      => ['PASSIVE', 'increment', 'Increment', 2],
       '-image'          => ['PASSIVE', 'image', 'Image', undef],
       '-imageoffset'    => ['PASSIVE', 'imageOffset', 'ImageOffset', [0, 0]],
       '-bandlength'     => ['PASSIVE', 'bandLength', 'BandLength', 15],
       '-bandangle'      => ['PASSIVE', 'bandAngle', 'BandAngle', 45],
       '-bandforeground' => ['PASSIVE', 'bandForeground',
			     'BandForeground', 'SlateGray3'],
       '-bandbackground' => ['PASSIVE', 'bandBackground',
			     'BandBackground', 'SlateGray1']);
}


sub _layoutRequest {
    my $c = shift;

    return if $c->{'activityBar'};
    $c->SUPER::_layoutRequest(@_);
}


sub value {
    my $c = shift;

    $c->_resetProgressBar() if ($c->{'activityBar'} && @_);
    $c->SUPER::value(@_);
}


### PUBLIC FUNCTIONS

sub startActivity {
    my $c = shift;
    my $interval = $c->{Configure}{'-interval'};
    my $image = $c->{Configure}{'-image'};
    my $repeat_ID = $c->{'repeatID'};

    $c->afterCancel($repeat_ID) if ($repeat_ID);
    $c->delete('all');
    $c->_resetScroll;
    if (defined $image) {
	$c->_drawImageBar();
    } else {
	$c->_drawBandsBar();
    }



( run in 0.441 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )