Tk-XML-WizardMaker

 view release on metacpan or  search on metacpan

WizardMaker.pm  view on Meta::CPAN

#                                                                              #
#  Version      see variable $VERSION below                                    #
#                                                                              #
#  Author       V.Zimmermann (ZiMTraining@gmx.net)                             #
#                                                                              #
#  History      07.10.2003   Version 0.01 Created.                             #
#                                                                              #
#                                                                              #
################################################################################

# start package
package Tk::XML::WizardMaker;

# version
our $VERSION = '0.91';

################################################################################
# modules we use                                                               #
################################################################################

BEGIN {
  use 5.0;
  use warnings;

  use strict;              # all variables must be declared
  use Storable 'dclone';   #
  use English;             # no crypt variable names
  use Cwd;                 # current working directory

  eval "use Data::Dumper"; # usefull for debugging
  eval "use Config";       # infos about perl distribution(path to images etc.)

  # GUI
  use Tk;
  use Tk::LabEntry;
  use Tk::Font;
  use Tk::DirTree;
  use Tk::ProgressBar;

  # init and file processing
  use XML::Simple;
  use File::Path;
  use File::Find;
  use File::Copy;
  use File::Basename;

  # Win32 specific
  eval "use Win32";
  eval 'require Win32API::File';

  # class variables
  our $defs;
}


################################################################################
# Standard perl and Tk object magic.                                           #
# We must override Tk functions  ClassInit and Populate!                       #
################################################################################

use base qw/Tk::Derived Tk::Frame/;

Tk::Widget->Construct('WizardMaker');

# Tk standard function to initialize class
sub ClassInit{
  my ($class, $main_window) = @_;

  # init the instance variables.
  # You can use more than one WizardMaker object adonce
  $defs->{counter} = 0;

  # only this page types can be generated now. But ExternalPage
  # can be used to emulate every page form.
  $defs->{known_page_types} = [
    qw(TextPage LabeledEntriesPage RadioButtonPage
       CheckButtonPage ExternalPage)
   ];

  # dirs to look for files
  $defs->{dirs} = $OSNAME eq 'MSWin32'?
    [ cwd, $Config{installsitearch}, $ENV{windir} , "C:\\TEMP", ]:
      [ cwd, $Config{installsitearch}, '/etc', $ENV{HOME}, '/tmp'];

  # some defaults
  $defs->{font}->{title_font} = "-family Helvetica -size 24 -weight demi";
  $defs->{font}->{subtitle_font} = "-family arial -size 18";
  $defs->{font}->{subsubtitle_font} = "-family arial -size 12";
  $defs->{font}->{small_font} = "-family Helvetica -size 10";
  $defs->{font}->{text_font}  = "-family Helvetica -size 12";
  $defs->{font}->{radio_font} = "-family Courier -size 12 -weight demi";
  $defs->{font}->{fixed_font} = "-family Courier -size 12";
  $defs->{font}->{button_font} = "-family Courier -size 12 -slant italic";

  $defs->{button_help} ="HELP";
  $defs->{button_next}="NEXT >";
  $defs->{button_back}="< BACK";
  $defs->{button_finish}="FINISH";
  $defs->{button_cancel}="CANCEL";
  $defs->{button_log}="Show Log";
  $defs->{button_done}="Done";
  $defs->{button_dir_select}=" . . . ";
  $defs->{button_file_open}=" . . . ";

  $defs->{foreground}="black";
  $defs->{background}="#f6f6f6";
  $defs->{select_foreground}="blue";
  $defs->{select_background}="white";

  $defs->{header_background}="#f6f6f6";        # header frame
  $defs->{header_foreground}="blue";
  $defs->{header_background1}="#f6f6f6";       #title
  $defs->{header_foreground1}="blue";
  $defs->{header_background2}="#f6f6f6";       #subtitle
  $defs->{header_foreground2}="blue";
  $defs->{header_background3}="#f6f6f6";       #title text (subsubtitle)
  $defs->{header_foreground3}="blue";
  $defs->{select_header_background}="white";
  $defs->{select_header_foreround}="blue";

  $defs->{button_background}="lightgrey";



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