#! /home/pete/CitrusPerl/perl/bin/perl
package main;
use strict;
use warnings;
my $app = App->new();
$app->MainLoop;

package App;
use strict;
use warnings;
use base 'Wx::App';
sub OnInit {
    my $frame = Frame->new();
    $frame->Show(1);
}

package Frame;
use strict;
use warnings;
use Wx qw(:everything);
use base qw(Wx::Frame);
use LinearMeter;
use Data::Dumper;
use Wx::Event qw(EVT_PAINT);

sub new {
    my $self = shift;
    $self = $self->SUPER::new(undef, -1, "Linear Meters", wxDefaultPosition, [300,800]);
    EVT_PAINT($self, \&onPaint);
    return $self;
}
1;
#
# Paint the Meters ---------------------------------------------------------------------
#
sub onPaint {
    my($self, $event) = @_;
# Create 6 panels to hold 6 meters
    my $m1 = Wx::Panel->new($self, wxID_ANY, [0 ,0], [100,400]);
    my $m2 = Wx::Panel->new($self, wxID_ANY, [100 ,0], [100,400]);
    my $m3 = Wx::Panel->new($self, wxID_ANY, [200 ,0], [100,400]);
    my $m4 = Wx::Panel->new($self, wxID_ANY, [0 ,400], [100,400]);
    my $m5 = Wx::Panel->new($self, wxID_ANY, [100 ,400], [100,400]);
    my $m6 = Wx::Panel->new($self, wxID_ANY, [200 ,400], [100,400]);

# Write a label in each panel to test panel creation and location - remove later
    my $st1 = Wx::StaticText->new($m1, -1, "Meter 1", wxDefaultPosition, wxDefaultSize);
    my $st2 = Wx::StaticText->new($m2, -1, "Meter 2", wxDefaultPosition, wxDefaultSize);
    my $st3 = Wx::StaticText->new($m3, -1, "Meter 3", wxDefaultPosition, wxDefaultSize);
    my $st4 = Wx::StaticText->new($m4, -1, "Meter 4", wxDefaultPosition, wxDefaultSize);
    my $st5 = Wx::StaticText->new($m5, -1, "Meter 5", wxDefaultPosition, wxDefaultSize);
    my $st6 = Wx::StaticText->new($m6, -1, "Meter 6", wxDefaultPosition, wxDefaultSize);

# Create 6 meter objects
    my $lm1 = LinearMeter->new();
    my $lm2 = LinearMeter->new();
    my $lm3 = LinearMeter->new();
    my $lm4 = LinearMeter->new();
    my $lm5 = LinearMeter->new();
    my $lm6 = LinearMeter->new();

# Draw 6 meters
    LinearMeter->Draw($m1, $lm1);
    LinearMeter->Draw($m2, $lm2);
    LinearMeter->Draw($m3, $lm3);
    LinearMeter->Draw($m4, $lm4);
    LinearMeter->Draw($m5, $lm5);
    LinearMeter->Draw($m6, $lm6);

} 
