CLI-Gwrap
view release on metacpan or search on metacpan
lib/CLI/Gwrapper/wxGrid.pm view on Meta::CPAN
#===============================================================================
#
# PODNAME: CLI::Gwrapper::wxGrid
# ABSTRACT: CLI::Gwrap graphical wrapper in a wxGrid
#
# AUTHOR: Reid Augustin
# EMAIL: reid@LucidPort.com
# CREATED: 07/08/2013 12:08:30 PM
#===============================================================================
use 5.008;
use strict;
use warnings;
package CLI::Gwrapper::wxGrid;
use Moo;
extends 'CLI::Gwrapper::Wx::App';
with 'CLI::Gwrapper'; # this module must satisfy the Gwrapper role
use Types::Standard qw( Str Int Bool ArrayRef CodeRef InstanceOf );
use Carp;
use Scalar::Util(qw( looks_like_number ));
use Wx qw(
:sizer
:combobox
:textctrl
wxNOT_FOUND wxID_EXIT
wxTELETYPE
);
use Wx::Event qw(
EVT_BUTTON
EVT_COLLAPSIBLEPANE_CHANGED
);
has 'sizer' => (is => 'rw', isa => InstanceOf['Wx::BoxSizer']);
has 'notebook' => (is => 'rw', isa => InstanceOf['Wx::Notebook']);
has 'Command_page' => (is => 'rw', isa => InstanceOf['Wx::Panel']);
has 'STDOUT_page' => (is => 'rw', isa => InstanceOf['Wx::Panel']);
has 'STDERR_page' => (is => 'rw', isa => InstanceOf['Wx::Panel']);
has 'STDOUT_text_ctrl' => (is => 'rw', isa => InstanceOf['Wx::TextCtrl']);
has 'STDERR_text_ctrl' => (is => 'rw', isa => InstanceOf['Wx::TextCtrl']);
our $VERSION = '0.030'; # VERSION
sub BUILD {
my ($self, $params) = @_;
$self->_populate_window($self->panel); # fill in all the parts
$self->frame->Show; # put it up on the screen
}
sub title { # required by Gwrapper role
my ($self, $new) = @_;
if (@_ > 1) {
$self->frame->SetTitle($new);
$self->{title} = $new;
}
return $self->{title};
}
sub run { # required by Gwrapper role
my ($self) = @_;
$self->MainLoop; # run the main event loop
}
sub _populate_window {
my ($self, $parent) = @_;
$self->notebook(Wx::Notebook->new($parent));
my $sizer = Wx::BoxSizer->new(wxVERTICAL);
$self->sizer($sizer);
$sizer->Add(
$self->notebook,
1, # proportion
wxEXPAND | wxALL, # flags
0, # border
);
$self->_populate_command_page;
# add the control buttons at the bottom
$sizer->Add(
( run in 1.179 second using v1.01-cache-2.11-cpan-39bf76dae61 )