cvs commit: p5ee/App-Widget/lib/App/Widget TextArea.pm

[email protected] (Stephen Adkins)
Newsgroups perl.cvs.p5ee
Message-ID <[email protected]>
cvsuser     05/11/18 11:23:07

  Added:       App-Widget/lib/App/Widget TextArea.pm
  Log:
  new
  
  Revision  Changes    Path
  1.1                  p5ee/App-Widget/lib/App/Widget/TextArea.pm
  
  Index: TextArea.pm
  ===================================================================
  
  ######################################################################
  ## $Id: TextArea.pm,v 1.1 2005/11/18 19:23:07 spadkins Exp $
  ######################################################################
  
  package App::Widget::TextArea;
  $VERSION = do { my @r=(q$Revision: 1.1 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
  
  use App;
  use App::Widget::Stylizable;
  @ISA = ( "App::Widget::Stylizable" );
  
  use strict;
  
  =head1 NAME
  
  App::Widget::TextArea - An HTML textarea field
  
  =head1 SYNOPSIS
  
     $name = "first_name";
     # official way
     use App;
     $context = App->context();
     $w = $context->widget($name);
     # OR ...
     $w = $context->widget($name,
        class => "App::Widget::TextArea",
        size  => 8,                 # from HTML spec
        maxlength => 18,            # from HTML spec
        tabindex => 1,              # from HTML spec
        style => "mystyle",         # from HTML to support CSS
        color => "#6666CC",         # from CSS spec
        font_size => "10px",        # from CSS spec
        border_style => "solid",    # from CSS spec
        border_width => "1px",      # from CSS spec
        border_color => "#6666CC",  # from CSS spec
        padding => "2px",           # from CSS spec
        background_color => "#ccffcc",           # from CSS spec
        font_family => "Verdana, Geneva, Arial", # from CSS spec
        override => 1,              # increase precedence of following options to "override" from "default"
        #validate => "date",         # not impl. yet ("date", "time", "datetime", "enum", "number", "integer", ":regexp")
        #autocomplete => \@previous_choices,  # not impl. yet
     );
  
     # internal way
     use App::Widget::TextArea;
     $w = App::Widget::TextArea->new($name);
  
  =cut
  
  ######################################################################
  # CONSTANTS
  ######################################################################
  
  ######################################################################
  # ATTRIBUTES
  ######################################################################
  
  # INPUTS FROM THE ENVIRONMENT
  
  =head1 DESCRIPTION
  
  This class is a <textarea> HTML element.
  
  =cut
  
  ######################################################################
  # INITIALIZATION
  ######################################################################
  
  # no special initialization
  
  ######################################################################
  # EVENTS
  ######################################################################
  
  # no events
  
  ######################################################################
  # OUTPUT METHODS
  ######################################################################
  
  sub unstyled_html {
      my $self = shift;
      my ($html);
      my $name = $self->{name};
      my $value = $self->get_value();
      my $html_value = $self->html_escape($value);
      my $rows = $self->{rows} || 40;
      my $cols = $self->{cols} || 10;
      my $wrap_html = "";
      my $wrap = $self->{wrap};
      if (defined $wrap) {
          if ($wrap =~ /^(hard|off|physical|soft|virtual)$/) {
              $wrap_html = " wrap=\"$wrap\"";
          }
          else {
              $wrap_html = " wrap";
          }
      }
      my $tabindex = $self->{tabindex};
      $html = "<textarea name=\"${name}\" rows=\"$rows\" cols=\"$cols\"$wrap_html>\n";
      $html .= $html_value;
      $html .= "</textarea>";
      $html;
  }
  
  1;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.