CVS-Metrics

 view release on metacpan or  search on metacpan

bin/cvs_wxlog  view on Meta::CPAN


    return $self;
}

#######################################################################

package MyHtmlFrame;

use strict;
use base qw(Wx::Frame);

use Wx::Html;
use Wx qw(:sizer);
use Wx qw(wxDefaultPosition wxDefaultSize);

sub new {
    my $class = shift;
    my ($title, $file) = @_;

    my $self = $class->SUPER::new(undef, -1, $title,
            wxDefaultPosition, wxDefaultSize);
    $self->SetIcon(Wx::GetWxPerlIcon());

    my $BROWSER = Wx::HtmlWindow->new($self, -1, wxDefaultPosition, wxDefaultSize);
    $BROWSER->LoadPage($file);

    my $top_s = Wx::BoxSizer->new(wxVERTICAL);
    $top_s->Add($BROWSER, 1, wxGROW|wxALL, 0);

    $self->SetSizer($top_s);
    $self->SetAutoLayout(1);

    return $self;
}

#######################################################################

package MyFrame;

use strict;
use base qw(Wx::Frame);

use File::Basename;

use Wx::Event qw(EVT_MENU EVT_BUTTON EVT_COMBOBOX EVT_TREE_SEL_CHANGED);
use Wx qw(:window :sizer :treectrl :bitmap :button :combobox :statictext :icon :color);
use Wx qw(wxDefaultPosition wxDefaultSize wxOK);

use constant ID_QUIT    => 10000;

sub new {
    my $class = shift;
    my $model = shift;
    my $self = $class->SUPER::new(@_);
    $self->{model} = $model;

    $self->CreateStatusBar(1);
    $self->SetBackgroundColour(wxLIGHT_GREY);
    $self->SetIcon(Wx::GetWxPerlIcon());

    $self->CreateMyMenuBar();
    $self->CreateMyTreeCtrl();

    my $rightsizer = Wx::BoxSizer->new(wxVERTICAL);
    my $bottomsizer = Wx::BoxSizer->new(wxHORIZONTAL);
    my $topsizer = Wx::BoxSizer->new(wxHORIZONTAL);

    if (scalar(@{$model->{tags}}) >= 2) {
        my $b_audit = Wx::Button->new($self, -1, 'Audit :');

        my @tags_from = @{$model->{tags}};
        pop @tags_from;
        my @tags_to = @{$model->{tags}};
        shift @tags_to;

        my $cb_from = Wx::ComboBox->new($self, -1, $model->{tag_from},
                wxDefaultPosition, wxDefaultSize,
                \@tags_from, wxCB_READONLY);

        my $cb_to = Wx::ComboBox->new($self, -1, $model->{tag_to},
                wxDefaultPosition, wxDefaultSize,
                \@tags_to, wxCB_READONLY);

        my $l_from = Wx::StaticText->new($self, -1, 'from',
                wxDefaultPosition, wxDefaultSize, wxST_NO_AUTORESIZE );
        my $l_to = Wx::StaticText->new($self, -1, 'to',
                wxDefaultPosition, wxDefaultSize, wxST_NO_AUTORESIZE );

        EVT_BUTTON($self, $b_audit, \&OnAudit);
        EVT_COMBOBOX($self, $cb_from, \&OnComboFrom);
        EVT_COMBOBOX($self, $cb_to, \&OnComboTo);

        $bottomsizer->Add($b_audit, 0, wxALL, 2);
        $bottomsizer->Add($l_from, 0, wxALL, 2);
        $bottomsizer->Add($cb_from, 0, wxALL, 2);
        $bottomsizer->Add($l_to, 0, wxALL, 2);
        $bottomsizer->Add($cb_to, 0, wxALL, 2);
    }

    $self->{bmp} = Wx::StaticBitmap->new($self, -1, Wx::Bitmap->new(600, 400, -1));

    $rightsizer->Add($self->{bmp}, 0, wxALL|wxALIGN_CENTER, 1);
    $rightsizer->Add($bottomsizer, 0, wxALL|wxALIGN_CENTER, 8);

    $topsizer->Add($self->{tree}, 1, wxEXPAND);
    $topsizer->Add($rightsizer, 0, wxALL);

    EVT_MENU($self, ID_QUIT, sub { $self->Close(); });
    EVT_TREE_SEL_CHANGED($self, $self->{tree}, \&OnSelChange);

    $self->SetSizer($topsizer);
    $self->SetAutoLayout(1);
    $topsizer->Fit($self);
    $topsizer->SetSizeHints($self);

    return $self;
}

sub CreateMyMenuBar {
    my $self = shift;

    my $bar = Wx::MenuBar->new();

    my $file = Wx::Menu->new();
    $file->Append(ID_QUIT, 'E&xit');

    $bar->Append($file, '&File');

    $self->SetMenuBar($bar);
}

sub CreateMyImageList {
    my $self = shift;

    my $imagelist = Wx::ImageList->new(16, 16, 3);

    my $xpm_open_folder = [
        # columns rows colors chars-per-pixel
        '32 32 7 1',
        '+ c Black',
        '@ c #808000',
        'O c #C0C0C0',
        'o c #FFFF00',
        '  c None',
        'X c #FFFFFF',
        '. c #808080',
        # pixels
        '                                ',
        '                                ',
        '       .........                ',
        '      .XXXXXXXXX.               ',
        '     .XoOoOoOoOoO.              ',
        '    .XoOoOoOoOoOoO.             ',
        '   .XoOoOoOoOoOoOoO...........  ',
        '   .XOoOoOoOoOoOoOoXXXXXXXXXXX+ ',
        '   .XoOoOoOoOoOoOoOoOoOoOoOoOo@+',
        '   .XOoOoOoOoOoOoOoOoOoOoOoOoO@+',
        '   .XoOoOoOoOoOoOoOoOoOoOoOoOo@+',
        ' ..OOOOOOOOOOOOOOOOOOOOOOOOOoO@+',
        '.XXXXXXXXXXXXXXXXXXXXXXXXXX+.o@+',
        '.oOoOoOoOoOoOoOoOoOoOoOoOoO.+O@+',
        '.OoOoOoOoOoOoOoOoOoOoOoOoOo.+o@+',
        '.oOoOoOoOoOoOoOoOoOoOoOoOoOo+.@+',
        '.OoOoOoOoOoOoOoOoOoOoOoOoOoO+.@+',
        ' .OoOoOoOoOoOoOoOoOoOoOoOoOo.+@+',
        ' .oOoOoOoOoOoOoOoOoOoOoOoOoO.+@+',
        ' .OoOoOoOoOoOoOoOoOoOoOoOoOoO+@+',
        ' .oOoOoOoOoOoOoOoOoOoOoOoOoOo+@+',
        '  .oOoOoOoOoOoOoOoOoOoOoOoOoO.++',
        '  .OoOoOoOoOoOoOoOoOoOoOoOoOo.++',
        '  .oOoOoOoOoOoOoOoOoOoOoOoOoOO++',
        '  .OoOoOoOoOoOoOoOoOoOoOoOoOoO++',
        '   .OoOoOoOoOoOoOoOoOoOoOoOoOo@+',
        '   .oOoOoOoOoOoOoOoOoOoOoOoOoO@+',
        '   .@@@@@@@@@@@@@@@@@@@@@@@@@@@+',
        '    +++++++++++++++++++++++++++ ',
        '                                ',
        '                                ',
        '                                ',
    ];

    my $xpm_closed_folder = [
        # columns rows colors chars-per-pixel
        '32 32 7 1',
        '+ c Black',
        '@ c #808000',
        'O c #C0C0C0',
        'o c #FFFF00',
        '  c None',



( run in 2.632 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )