QWizard

 view release on metacpan or  search on metacpan

Generator/HTML.pm  view on Meta::CPAN

    $self->add_handler('radio',
		       \&QWizard::Generator::HTML::do_radio,
		       [['values,labels'],
			['default'],
			['single','submit'],
			['single','refresh_on_change'],
			['single','name'],
			['single','icons'],
			['single','noiconpadding'],
		       ]);
    $self->add_handler('label',
		       \&QWizard::Generator::HTML::do_label,
		       [['multi','values']]);
    $self->add_handler('link',
		       \&QWizard::Generator::HTML::do_link,
		       [['single','linktext'],
			['single','url']]);
    $self->add_handler('paragraph',
		       \&QWizard::Generator::HTML::do_paragraph,
		       [['multi','values'],
			['single','preformatted']]);
    $self->add_handler('button',
		       \&QWizard::Generator::HTML::do_button,
		       [['single','values']]);
    $self->add_handler('table',
		       \&QWizard::Generator::HTML::do_table,
		       [['norecurse','values'],
			['norecurse','headers']]);
    $self->add_handler('bar',
		       \&QWizard::Generator::HTML::do_bar,
		       [['norecurse','values']]);
    $self->add_handler('graph',
		       \&QWizard::Generator::HTML::do_graph,
		       [['norecurse','values'],
			['norecursemulti','graph_options']]);
    $self->add_handler('image',
		       \&QWizard::Generator::HTML::do_image,
		       [['norecurse','imgdata'],
			['norecurse','image'],
			['single','imagealt'],
			['single', 'height'],
			['single', 'width']]);
    $self->add_handler('fileupload',
		       \&QWizard::Generator::HTML::do_fileupload,
		       [['default','values']]);
    $self->add_handler('filedownload',
		       \&QWizard::Generator::HTML::do_filedownload,
		       [['single','name'],
			['default'],
			['single','data'],
			['noexpand','datafn'],
			['single','extension'],
			['single','linktext']
		       ]);

    $self->add_handler('unknown',
		       \&QWizard::Generator::HTML::do_unknown,
		       []);

    $self->{'datastore'} = new QWizard::Storage::CGIParam;
    $self->{'prefstore'} = new QWizard::Storage::CGICookie;

    return $self;
}

sub init_cgi {
    my $self = shift;
    if (!exists($self->{'cgi'})) {
	# we do this here late binding as possible for various reasons
	$self->{'cgi'} = new CGI;
    }
}

sub init_screen {
    my ($self, $wiz, $title) = @_;
    $self->init_cgi();

    return if ($self->{'started'} || $wiz->{'started'});
    $self->{'started'} = $wiz->{'started'} = $self->{'prefstore'}{'started'} =1;
    $self->{'first_tree'} = 1;
    my @otherargs;
    if ($self->{'cssurl'}) {
	push @otherargs, 'style', { src => $self->{'cssurl'}};
    } elsif (!$self->{'nocss'}) {
	push @otherargs, 'style', { code => $defaultcss };
    }
    print "Content-type: text/html\n\n" if (!$self->{'noheaders'} &&
					    !$wiz->{'noheaders'});
    print $self->{'cgi'}->start_html(-title => escapeHTML($title),
				     -bgcolor => $self->{'bgcolor'}
				     || $wiz->{'bgcolor'} || "#ffffff",
				     @otherargs);

    if ($self->{'prefstore'}->{'immediate_out'} &&
	$#{$self->{'prefstore'}->{'immediate_out'}} > -1) {
	print @{$self->{'prefstore'}->{'immediate_out'}};
	delete $self->{'prefstore'}->{'immediate_out'};
    }
    print $self->{'cgi'}->start_multipart_form(-name => $self->{'form_name'}),
      "\n";
    $self->{'wizard'} = $wiz;
}

# html always waits
sub wait_for {
  my ($self, $wiz, $next, $p) = @_;
  print $self->{'cgi'}->end_form();
  print "</tr>\n" if (exists($self->{'nocss'}));
  $self->close_div_or_table(); # end for <div class="qwizard"> in start_primaries
  return 1;
}

sub do_css {
    my ($self, $class, $name, $noidstr) = @_;
    if (!exists($self->{'nocss'})) {
	my $idstr = '';
	$idstr = $class if (!$noidstr);
	return " class=\"$class\" id=\"$idstr$name\" ";
    }
    return "";
}

sub open_div_or_table {
    my $self = shift;
    if (!exists($self->{'nocss'})) {
	print "<div class=\"" . $_[0] . "\">\n";
    } else {
	print "<table $_[1]>\n";
    }
}

sub close_div_or_table {
    my $self = shift;
    if (!exists($self->{'nocss'})) {
	print "</div>\n";
    } else {
	print "</table>\n";
    }
}

sub open_div_or_tr {
    my $self = shift;
    if (!exists($self->{'nocss'})) {
	print "<div class=\"" . $_[0] . "\">\n";
    } else {
	print "<tr $_[1]>\n";
    }
}

sub open_span_or_td {
    my $self = shift;
    if (!exists($self->{'nocss'})) {
	print "<span class=\"" . $_[0] . "\">\n";
    } else {
	print "<td valign=\"top\" $_[1]>\n";
    }
}



( run in 0.397 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )