

=pod

=head1 NAME

QWizard_Widgets - Describes the Widgets available to QWizard Generators

=head1 OVERVIEW

This document describes the various QWizard backend widgets that can
be produced and what tags they support, and what the values of those
tags are expected to produce (either by direct value such as

  tag => "string"

or as a result of a code execution like 

  tag => sub { return "string" }

or even:

  tag => [sub { return $_[$#_] }, "string"]

=head2 Tag Value Expectations

The documentation to follow will reference a number of different value
types for various tags.  These possible values are described below:

=over

=item single

A single value is expected for this tag.  If a subroutine returns
multiple values only the first will be used.

=item multi

The tag expects or can accept multiple values.  These values should be
specified in the form of an array reference.

=item norecuse

This is a special form of "multi"...  I need to go look at the code
again to remember exactly what it does.

=item values,labels

This is a special tag to indicate the widget needs both values and
labels associated with the multiple sub-widgets it can display (radio
boxes, menu items, check boxes, ...).  The values tag (an array ref)
will indicate which values are used within the program.  The labels
clause will map those values to human strings.  The labels clause can
be either a hash mapping values to labels, or an array where the even
elements of the array (0, 2, 4, ...) will be the values and the odd
elements (1, 3, 5, ...) will be the labels to associate with them.  An
array reference for labels allows the order of label presentation to
be specified, where as a hash will display the labels/sub-widgets in a
somewhat random order.

If the labels clause is left out, the values themselves will be
present to the user.

If the values clause is left out, the values will be pulled from the labels.

It is likely a rare case that you need to specify both.  This special
tag name specifically indicates you can specify both.

=item forced

This is a value which is forced for a particular tag for internal use
and can't be manipulated by the programmer.  It's documented here
anyway for completeness.

=head2 Notes about this document.

=over

=item 1)

This file is automatically generated from the Generator's own
expect ions of their supported widgets and the requirements.  Thus,
not all widgets in all generators are perfectly equal.  Some
generators have better support for extra options for certain widgets,
for example.

=item 2)

This document does not specify some of the other tags that every
question is allowed to have, such as "name", "text", "helpddesc",
"check_value", ...  It only discusses the tags that the back end
generators make use of.

=head1 WIDGET SUPPORT SUMMARY MATRIX


  +--------------+----+----+--+--------+
  |              |HTML|Gtk2|Tk|ReadLine|
  +--------------+----+----+--+--------+
  |bar           |X   |X   |  |        |
  |button        |X   |X   |X |        |
  |checkbox      |X   |X   |X |X       |
  |filedownload  |    |X   |X |        |
  |fileupload    |X   |X   |X |X       |
  |graph         |X   |X   |X |        |
  |hidetext      |X   |X   |X |        |
  |image         |X   |X   |X |        |
  |label         |X   |X   |X |X       |
  |link          |X   |    |  |        |
  |menu          |X   |X   |X |X       |
  |multi_checkbox|X   |X   |X |X       |
  |paragraph     |X   |X   |X |X       |
  |radio         |X   |X   |X |X       |
  |table         |X   |X   |X |        |
  |text          |X   |X   |X |X       |
  |textbox       |X   |X   |X |X       |
  |unknown       |X   |X   |X |X       |
  +--------------+----+----+--+--------+



=head1 THE GENERATORS

=head2 QWizard::Generator::HTML

These are the question types known to the QWizard::Generator::HTML generator class:

=over

=item bar

=over

=item values => norecurse  

=back

=item button

=over

=item values => single  

=back

=item checkbox

=over

=item values => multi  

=item default => single  

=item submit => single  

=item refresh_on_change => single  

=item button_label => single  

=back

=item fileupload

=over

=item values => default  

=back

=item graph

=over

=item values => norecurse  

=item graph_options => norecursemulti  

=back

=item hidetext

=over

=item name => single  

=item default => single  

=item size => single  

=item maxsize => single  

=item submit => single  

=item refresh_on_change => single  

=back

=item image

=over

=item imgdata => norecurse  

=item image => norecurse  

=item imagealt => single  

=item height => single  

=item width => single  

=back

=item label

=over

=item values => multi  

=back

=item link

=over

=item linktext => single  

=item url => single  

=back

=item menu

=over

=item     => values,labels  

=item default => single  

=item submit => single  

=item refresh_on_change => single  

=item name => single  

=back

=item multi_checkbox

=over

=item default => multi  

=item values,labels => single  

=item submit => single  

=item refresh_on_change => single  

=back

=item paragraph

=over

=item values => multi  

=item preformatted => single  

=back

=item radio

=over

=item values,labels => single  

=item default => single  

=item submit => single  

=item refresh_on_change => single  

=item name => single  

=item icons => single  

=item noiconpadding => single  

=back

=item table

=over

=item values => norecurse  

=item headers => norecurse  

=back

=item text

=over

=item name => single  

=item default => single  

=item size => single  

=item maxsize => single  

=item submit => single  

=item refresh_on_change => single  

=back

=item textbox

=over

=item default => single  

=item width => single  

=item size => single  

=item height => single  

=item submit => single  

=item refresh_on_change => single  

=back

=item unknown

=over

=back

=back




=head2 QWizard::Generator::Gtk2

These are the question types known to the QWizard::Generator::Gtk2 generator class:

=over

=item bar

=over

=item values => norecurse  

=back

=item button

=over

=item values => single  

=item default => single  

=item icon => single  

=back

=item checkbox

=over

=item values => multi  

=item default => single  

=item name => single  

=item submit => single  

=item refresh_on_change => single  

=item button_label => single  

=back

=item filedownload

=over

=item name => single  

=item default => single  

=item data => single  

=item datafn => noexpand  

=back

=item fileupload

=over

=item name => single  

=item default => single  

=back

=item graph

=over

=item values => norecurse  

=item graph_options => norecursemulti  

=back

=item hidetext

=over

=item name => single  

=item default => single  

=item size => single  

=item maxsize => single  

=item submit => single  

=item refresh_on_change => single  

=back

=item image

=over

=item imgdata => norecurse  

=item image => norecurse  

=item imagealt => single  

=item addscalebuttons => single  

=back

=item label

=over

=item values => multi  

=back

=item menu

=over

=item values,labels => single  

=item default => single  

=item name => single  

=item submit => single  

=item refresh_on_change => single  

=back

=item multi_checkbox

=over

=item default => multi  

=item values,labels => single  

=item refresh_on_change => single  

=back

=item paragraph

=over

=item values => multi  

=item preformatted => single  

=item width => single  

=back

=item radio

=over

=item     => values,labels  

=item default => single  

=item name => single  

=item submit => single  

=item refresh_on_change => single  

=item icons => single  

=item noiconpadding => single  

=back

=item table

=over

=item values => norecurse  

=item headers => norecurse  

=back

=item text

=over

=item name => single  

=item default => single  

=item size => single  

=item maxsize => single  

=item submit => single  

=item refresh_on_change => single  

=back

=item textbox

=over

=item name => single  

=item default => single  

=item size => single  

=item maxsize => single  

=item submit => single  

=item refresh_on_change => single  

=back

=item unknown

=over

=back

=back



=head2 QWizard::Generator::Tk

These are the question types known to the QWizard::Generator::Tk generator class:

=over

=item button

=over

=item values => single  

=item default => single  

=back

=item checkbox

=over

=item values => multi  

=item default => single  

=item button_label => single  

=back

=item filedownload

=over

=item values => default  

=back

=item fileupload

=over

=item values => default  

=back

=item graph

=over

=item values => norecurse  

=item graph_options => norecursemulti  

=back

=item hidetext

=over

=item name => single  

=item default => single  

=item size => single  

=item maxsize => single  

=item submit => single  

=item refresh_on_change => single  

=back

=item image

=over

=item imgdata => norecurse  

=item image => norecurse  

=item imagealt => single  

=back

=item label

=over

=item values => multi  

=back

=item menu

=over

=item values,labels => single  

=item default => single  

=item name => single  

=back

=item multi_checkbox

=over

=item default => multi  

=item values,labels => single  

=back

=item paragraph

=over

=item values => multi  

=item preformatted => single  

=item width => single  

=back

=item radio

=over

=item     => values,labels  

=item default => single  

=item name => single  

=back

=item table

=over

=item values => norecurse  

=item headers => norecurse  

=back

=item text

=over

=item name => single  

=item default => single  

=item size => single  

=item maxsize => single  

=item submit => single  

=item refresh_on_change => single  

=back

=item textbox

=over

=item name => single  

=item default => single  

=item size => single  

=item width => single  

=item height => single  

=back

=item unknown

=over

=back

=back



=head2 QWizard::Generator::ReadLine

These are the question types known to the QWizard::Generator::ReadLine generator class:

=over

=item checkbox

=over

=item values => multi  

=item default => single  

=item name => single  

=back

=item fileupload

=over

=item values => default  

=back

=item label

=over

=item values => multi  

=back

=item menu

=over

=item     => values,labels  

=item default => single  

=item name => single  

=back

=item multi_checkbox

=over

=item default => multi  

=item values,labels => single  

=back

=item paragraph

=over

=item values => multi  

=back

=item radio

=over

=item     => values,labels  

=item default => single  

=item name => single  

=back

=item text

=over

=item name => single  

=item default => single  

=back

=item textbox

=over

=item name => single  

=item default => single  

=item size => single  

=item maxsize => single  

=item submit => single  

=back

=item unknown

=over

=back

=back





=head1 AUTHOR

Wes Hardaker, hardaker@users.sourceforge.net

=head1 SEE ALSO

QWizard, perl(1)

Net-Policy: http://net-policy.sourceforge.net/

=cut

