The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -w

# This is a BROKEN example of using a Wizard embedded in an application.

# Based on code supplied by Peter Weber.

use strict;
use warnings;

BEGIN {
	# Log l4p is we have it
	eval { require Log::Log4perl; };
	# No l4p - add stubs
	if ($@) {
		no strict qw(refs);
		*{"main::$_"} = sub { } for qw(DEBUG INFO WARN ERROR FATAL);
		*{"WizTestSettings::$_"} = sub { } for qw(DEBUG INFO WARN ERROR FATAL);
	}

	# Have l4p - configure
	else {
		no warnings;
		require Log::Log4perl::Level;
		Log::Log4perl::Level->import(__PACKAGE__);
		Log::Log4perl->import(":easy");

		if (not Log::Log4perl::initialized()){
			my $Log_Conf = q[
				log4perl.logger                   = TRACE, Screen
				log4perl.appender.Screen          = Log::Log4perl::Appender::ScreenColoredLevels
				log4perl.appender.Screen.stderr   = 1
				log4perl.appender.Screen.layout   = PatternLayout::Multiline
				log4perl.appender.Screen.layout.ConversionPattern = %7p | %-70m | %M %L%n
			];
			Log::Log4perl->init( \$Log_Conf );
		}
	}
}

use ExtUtils::testlib;    # Allows execution before installing the module
use lib "../lib";		  # Dev
use Tk;
use Tk::Wizard 2.076;

my $mw = new MainWindow;
our $wizard;

$wizard = $mw->Wizard(
    # -debug => 1,
    -title    => 'Component Wizard',
    -style    => 'top',
    -tag_text => "Component Wizard",
);


$wizard->addPage(
    sub {
        $wizard->blank_frame(
            -title    => "First Frame",
            -subtitle => "Step by step setup",
            -text     => "This wizard will guide you through the complete setup"
        );
    }
);

$wizard->addPage(
    sub {
        $wizard->blank_frame(
            -title    => "Second page",
            -subtitle => "Second step setup",
            -text     => "Second test text"
        );
    }
);

$wizard->addPage(
    sub {
        $wizard->blank_frame(
            -title    => "Last Frame",
            -subtitle => "LAST step setup",
            -text     => "LAST test text"
        );
    }
);

$mw->Label( -text => "This is the application's MainWindow.", )->pack;
$mw->Label( -text => "When you click this button, the Wizard will start.", )->pack;

my $button = $mw->Button(
    -text    => "Start Wizard",
    -command => sub {
        $wizard->Show();
    }
)->pack();

MainLoop;

__END__