Source

App::Harmonograph / lib / Wx / Perl / Smart / TabbedBox.pm

use v5.12;
use warnings;
use Wx;
use Wx::Perl::Smart::Panel;

package Wx::Perl::Smart::TabbedBox;
use base qw(Wx::Notebook);
use Scalar::Util qw(blessed);

sub new {
	my ($class, $parent, $widgets, $orientation, $init_arg) = @_;
	die __PACKAGE__.'::new a widget as first arg'
		if  defined $parent and not (blessed($parent) and $parent->isa('Wx::Window'));
	die __PACKAGE__.'::new need a widget list (ARRAY ref) as second arg' unless ref $widgets eq 'ARRAY';

	my ($self) = $class->SUPER::new( $parent, -1, [-1, -1],[-1, -1], &Wx::wxNB_TOP );
	while (scalar @$widgets > 1){
		my $label         = shift $widgets;
		my $panel_widgets = shift $widgets;
		$self->AddPage( Wx::Perl::Smart::Panel->new($self, $panel_widgets, $orientation, $init_arg), $label, 0);
	}
	#$self->ChangeSelection(0);
	$self;
}

1;