/usr/share/perl5/HTML/Widget/Element/Button.pm is in libhtml-widget-perl 1.11-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | package HTML::Widget::Element::Button;
use warnings;
use strict;
use base 'HTML::Widget::Element';
use NEXT;
__PACKAGE__->mk_accessors(
qw/value content type _src height width
retain_default/
);
# alias
*label = \&value;
=head1 NAME
HTML::Widget::Element::Button - Button Element
=head1 SYNOPSIS
$e = $widget->element( 'Button', 'foo' );
$e->value('bar');
=head1 DESCRIPTION
Button Element.
=head1 METHODS
=head2 new
=cut
sub new {
return shift->NEXT::new(@_)->type('button');
}
=head2 value
=head2 label
The value of this Button element. Is also used by the browser as the
button label.
L</label> is an alias for L</value>.
=head2 content
If set, the element will use a C<button> tag rather than an C<input>
tag.
The value of C<content> will be used between the C<button> tags, unescaped.
This means that any html markup may be used to display the button.
=head2 type
Valid values are C<button>, C<submit>, C<reset> and C<image>.
=head2 src
If set, the element will be rendered as an image button, using this url as
the image.
Automatically sets L</type> to C<image>.
=cut
sub src {
my $self = shift;
$self->type('image') if @_;
return $self->_src(@_);
}
=head2 retain_default
If true, overrides the default behaviour, so that after a field is missing
from the form submission, the xml output will contain the default value,
rather than be empty.
=head2 render
=head2 containerize
=cut
sub containerize {
my ( $self, $w, $value, $errors, $args ) = @_;
$value = ref $value eq 'ARRAY' ? shift @$value : $value;
$value = $self->value
if ( not defined $value )
and $self->retain_default || not $args->{submitted};
my $i;
my %args = (
type => $self->type,
value => $value,
);
$args{src} = $self->src if defined $self->src;
$args{height} = $self->height if defined $self->height;
$args{width} = $self->width if defined $self->width;
if ( defined $self->content && length $self->content ) {
$i = $self->mk_tag( $w, 'button', \%args );
$i->push_content(
HTML::Element->new( '~literal', text => $self->content ) );
}
else {
$i = $self->mk_input( $w, \%args );
}
return $self->container( { element => $i } );
}
=head1 SEE ALSO
L<HTML::Widget::Element>
=head1 AUTHOR
Marcus Ramberg, C<mramberg@cpan.org>
=head1 LICENSE
This library is free software, you can redistribute it and/or modify it under
the same terms as Perl itself.
=cut
1;
|