Tk-HexEntry

 view release on metacpan or  search on metacpan

HexEntry.pm  view on Meta::CPAN

package Tk::HexEntry;

use Tk ();
use Tk::Frame;
use Tk::Derived;
use strict;

use vars qw(@ISA $VERSION);
@ISA = qw(Tk::Derived Tk::Frame);
$VERSION = sprintf("%d.%02d", q$Revision: 0.01 $ =~ /(\d+)\.(\d+)/);

Construct Tk::Widget 'HexEntry';

{ my $foo = $Tk::FireButton::INCBITMAP;
     $foo = $Tk::FireButton::DECBITMAP; # peacify -w
}

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

    require Tk::FireButton;
    require Tk::HexEntryPlain;

    my $orient = delete $args->{-orient} || "vertical";

    my $readonly = delete $args->{-readonly};

    my $e = $f->Component( $f->HexEntryPlainWidget => 'entry',
        -borderwidth        => 0,
        -highlightthickness => 0,
    );
    if ($readonly) {
	$e->bindtags([]);
    }

    my $binc = $f->Component( $f->IncFireButtonWidget() => 'inc',
	-command	    => sub { $e->incdec($e->cget(-increment)) },
	-takefocus	    => 0,
	-highlightthickness => 0,
	-anchor             => 'center',
    );
    $binc->configure(-bitmap => ($orient =~ /^vert/
				 ? $binc->INCBITMAP
				 : $binc->HORIZINCBITMAP
				)
		    );

    my $bdec = $f->Component( $f->DecFireButtonWidget() => 'dec',
	-command	    => sub { $e->incdec(- $e->cget(-increment)) },
	-takefocus	    => 0,
	-highlightthickness => 0,
	-anchor             => 'center',
    );
    $bdec->configure(-bitmap => ($orient =~ /^vert/
				 ? $bdec->DECBITMAP
				 : $bdec->HORIZDECBITMAP
				)
		    );

    $f->gridColumnconfigure(0, -weight => 1);
    $f->gridColumnconfigure(1, -weight => 0);

    $f->gridRowconfigure(0, -weight => 1);
    $f->gridRowconfigure(1, -weight => 1);

    if ($orient eq 'vertical') {
	$binc->grid(-row => 0, -column => 1, -sticky => 'news');
	$bdec->grid(-row => 1, -column => 1, -sticky => 'news');
    } else {



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