diff -Nru libtickit-widgets-perl-0.35/Build.PL libtickit-widgets-perl-0.36/Build.PL --- libtickit-widgets-perl-0.35/Build.PL 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/Build.PL 2022-12-14 23:33:12.000000000 +0000 @@ -12,7 +12,7 @@ requires => { 'perl' => '5.020', # experimental.pm; postderef 'List::Util' => '1.33', - 'Object::Pad' => '0.63', # :experimental + 'Object::Pad' => '0.75', 'Parser::MGC' => 0, 'Syntax::Keyword::Dynamically' => 0, 'Tickit::Event' => '0.66', # $info->type newapi diff -Nru libtickit-widgets-perl-0.35/Changes libtickit-widgets-perl-0.36/Changes --- libtickit-widgets-perl-0.35/Changes 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/Changes 2022-12-14 23:33:12.000000000 +0000 @@ -1,5 +1,12 @@ Revision history for Tickit-Widgets +0.36 2022-12-14 + [CHANGES] + * Updated for Object::Pad v0.75 + + Use `field NAME :param //= EXPR` syntax + + Use `ADJUST :params` + + Set `:strict(params)` + 0.35 2022-07-07 [CHANGES] * Updates for Object::Pad 0.63 diff -Nru libtickit-widgets-perl-0.35/debian/changelog libtickit-widgets-perl-0.36/debian/changelog --- libtickit-widgets-perl-0.35/debian/changelog 2022-07-10 14:41:35.000000000 +0000 +++ libtickit-widgets-perl-0.36/debian/changelog 2022-12-17 17:14:55.000000000 +0000 @@ -1,3 +1,12 @@ +libtickit-widgets-perl (0.36-1) unstable; urgency=medium + + * Team upload. + * Import upstream version 0.36. + * Bump test and runtime dependency on libobject-pad-perl to >= 0.75. + * Declare compliance with Debian Policy 4.6.2. + + -- gregor herrmann Sat, 17 Dec 2022 18:14:55 +0100 + libtickit-widgets-perl (0.35-1) unstable; urgency=medium * Team upload. diff -Nru libtickit-widgets-perl-0.35/debian/control libtickit-widgets-perl-0.36/debian/control --- libtickit-widgets-perl-0.35/debian/control 2022-07-10 14:41:35.000000000 +0000 +++ libtickit-widgets-perl-0.36/debian/control 2022-12-17 17:14:55.000000000 +0000 @@ -6,7 +6,7 @@ Priority: optional Build-Depends: debhelper-compat (= 13), libmodule-build-perl -Build-Depends-Indep: libobject-pad-perl (>= 0.63) , +Build-Depends-Indep: libobject-pad-perl (>= 0.75) , libparser-mgc-perl , libscalar-list-utils-perl , libstruct-dumb-perl , @@ -17,7 +17,7 @@ libtest-refcount-perl , libtickit-perl (>= 0.66) , perl -Standards-Version: 4.6.1 +Standards-Version: 4.6.2 Vcs-Browser: https://salsa.debian.org/perl-team/modules/packages/libtickit-widgets-perl Vcs-Git: https://salsa.debian.org/perl-team/modules/packages/libtickit-widgets-perl.git Homepage: https://metacpan.org/release/Tickit-Widgets @@ -27,7 +27,7 @@ Architecture: all Depends: ${misc:Depends}, ${perl:Depends}, - libobject-pad-perl (>= 0.63), + libobject-pad-perl (>= 0.75), libparser-mgc-perl, libscalar-list-utils-perl, libstruct-dumb-perl, diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/ContainerWidget.pm libtickit-widgets-perl-0.36/lib/Tickit/ContainerWidget.pm --- libtickit-widgets-perl-0.35/lib/Tickit/ContainerWidget.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/ContainerWidget.pm 2022-12-14 23:33:12.000000000 +0000 @@ -3,9 +3,9 @@ # # (C) Paul Evans, 2009-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.57; +use Object::Pad 0.66; -package Tickit::ContainerWidget 0.56; +package Tickit::ContainerWidget 0.57; class Tickit::ContainerWidget :isa(Tickit::Widget); @@ -56,7 +56,7 @@ =cut -has %_child_opts; +field %_child_opts; # This class should probably be a role ADJUST diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/SingleChildWidget.pm libtickit-widgets-perl-0.36/lib/Tickit/SingleChildWidget.pm --- libtickit-widgets-perl-0.35/lib/Tickit/SingleChildWidget.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/SingleChildWidget.pm 2022-12-14 23:33:12.000000000 +0000 @@ -1,11 +1,11 @@ # You may distribute under the terms of either the GNU General Public License # or the Artistic License (the same terms as Perl itself) # -# (C) Paul Evans, 2011-2021 -- leonerd@leonerd.org.uk +# (C) Paul Evans, 2011-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.57; +use Object::Pad 0.70 ':experimental(adjust_params)'; -package Tickit::SingleChildWidget 0.56; +package Tickit::SingleChildWidget 0.57; class Tickit::SingleChildWidget :isa(Tickit::ContainerWidget) :does(Tickit::WidgetRole::SingleChildContainer); @@ -42,11 +42,9 @@ =cut -ADJUSTPARAMS +ADJUST :params ( :$child = undef ) { - my ( $params ) = @_; - - if( exists $params->{child} ) { + if( $child ) { croak "The 'child' constructor argument to ${\ref $self} is no longer recognised; use ->set_child instead"; } } diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Style/Parser.pm libtickit-widgets-perl-0.36/lib/Tickit/Style/Parser.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Style/Parser.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Style/Parser.pm 2022-12-14 23:33:12.000000000 +0000 @@ -1,11 +1,11 @@ # You may distribute under the terms of either the GNU General Public License # or the Artistic License (the same terms as Perl itself) # -# (C) Paul Evans, 2013-2021 -- leonerd@leonerd.org.uk +# (C) Paul Evans, 2013-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.57; +use Object::Pad 0.66; -package Tickit::Style::Parser 0.53; +package Tickit::Style::Parser 0.54; class Tickit::Style::Parser :isa(Parser::MGC) :strict(params); @@ -99,10 +99,10 @@ class # hide from indexer Tickit::Style::Parser::_Definition :strict(params) { - has $type :reader :param; - has $class :reader :param; - has $tags :reader :param; - has $style :reader :param; + field $type :reader :param; + field $class :reader :param; + field $tags :reader :param; + field $style :reader :param; } 0x55AA; diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Style.pm libtickit-widgets-perl-0.36/lib/Tickit/Style.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Style.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Style.pm 2022-12-14 23:33:12.000000000 +0000 @@ -1,11 +1,11 @@ # You may distribute under the terms of either the GNU General Public License # or the Artistic License (the same terms as Perl itself) # -# (C) Paul Evans, 2013-2021 -- leonerd@leonerd.org.uk +# (C) Paul Evans, 2013-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.51; +use Object::Pad 0.70 ':experimental(adjust_params)'; -package Tickit::Style 0.53; +package Tickit::Style 0.54; use strict; use warnings; @@ -479,8 +479,8 @@ # A "Keyset" is the set of style keys applied to one particular set of # style tags - has $tags :reader :param; - has $style :reader :param; + field $tags :reader :param; + field $style :reader :param; method clone { @@ -493,14 +493,9 @@ use experimental 'postderef'; -has @_keysets; +field @_keysets; -ADJUSTPARAMS -{ - my ( $params ) = @_; - $params->{keysets} and - @_keysets = ( delete $params->{keysets} )->@*; -} +ADJUST :params ( :$keysets = undef ) { @_keysets = $keysets->@* if $keysets; } method clone { diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/Border.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/Border.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/Border.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/Border.pm 2022-12-14 23:33:12.000000000 +0000 @@ -3,10 +3,11 @@ # # (C) Paul Evans, 2011-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.57; +use Object::Pad 0.73 ':experimental(adjust_params init_expr)'; -package Tickit::Widget::Border 0.35; +package Tickit::Widget::Border 0.36; class Tickit::Widget::Border + :strict(params) :isa(Tickit::SingleChildWidget); use Tickit::Style; @@ -60,16 +61,14 @@ =cut -has $_top_border :reader = 0; -has $_bottom_border :reader = 0; -has $_left_border :reader = 0; -has $_right_border :reader = 0; +field $_top_border :reader = 0; +field $_bottom_border :reader = 0; +field $_left_border :reader = 0; +field $_right_border :reader = 0; -ADJUSTPARAMS +ADJUST :params ( %params ) { - my ( $params ) = @_; - - defined $params->{$_} and $self->${\"set_$_"}( delete $params->{$_} ) for qw( + defined $params{$_} and $self->${\"set_$_"}( delete $params{$_} ) for qw( border h_border v_border top_border bottom_border left_border right_border diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/Box.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/Box.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/Box.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/Box.pm 2022-12-14 23:33:12.000000000 +0000 @@ -1,12 +1,13 @@ # You may distribute under the terms of either the GNU General Public License # or the Artistic License (the same terms as Perl itself) # -# (C) Paul Evans, 2012-2021 -- leonerd@leonerd.org.uk +# (C) Paul Evans, 2012-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.57; +use Object::Pad 0.70 ':experimental(adjust_params)'; -package Tickit::Widget::Box 0.56; +package Tickit::Widget::Box 0.57; class Tickit::Widget::Box + :strict(params) :isa(Tickit::SingleChildWidget); use Carp; @@ -103,24 +104,19 @@ =cut -ADJUSTPARAMS -{ - my ( $params ) = @_; - +ADJUST :params ( + :$align = 0.5, + :$valign = 0.5, + %params, # easier than declaring 6 named ones +) { foreach (qw( child_lines_min child_lines_max child_cols_min child_cols_max child_lines child_cols )) { - my $val = delete $params->{$_}; + my $val = delete $params{$_}; $self->${\"set_$_"}( $val ) if defined $val; } - foreach (qw( align valign )) { - my $val = delete $params->{$_}; - $self->${\"set_$_"}( $val // 0.5 ); - } - - if( exists $params->{child} ) { - croak "The 'child' constructor argument to ${\ref $self} is no longer recognised; use ->add_child instead"; - } + $self->set_align( $align ); + $self->set_valign( $valign ); } method lines @@ -202,22 +198,22 @@ =cut -has $_child_lines_max; method _child_lines_max :lvalue { $_child_lines_max } -has $_child_lines_min; method _child_lines_min :lvalue { $_child_lines_min } -has $_child_cols_max; method _child_cols_max :lvalue { $_child_cols_max } -has $_child_cols_min; method _child_cols_min :lvalue { $_child_cols_min } +field $_child_lines_max; method _child_lines_max :lvalue { $_child_lines_max } +field $_child_lines_min; method _child_lines_min :lvalue { $_child_lines_min } +field $_child_cols_max; method _child_cols_max :lvalue { $_child_cols_max } +field $_child_cols_min; method _child_cols_min :lvalue { $_child_cols_min } # Because I hate copying code 4 times foreach my $dir (qw( lines cols )) { my %subs; foreach my $lim (qw( max min )) { - my $slotmeth = "_child_${dir}_${lim}"; + my $fieldmeth = "_child_${dir}_${lim}"; my $name = "child_${dir}_${lim}"; $subs{$name} = sub { my $self = shift; - my $value = $self->$slotmeth; + my $value = $self->$fieldmeth; if( !defined $value ) { return undef; } @@ -232,7 +228,7 @@ $subs{"set_$name"} = sub { my $self = shift; - ( $self->$slotmeth ) = @_; + ( $self->$fieldmeth ) = @_; $self->resized; }; } diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/Button.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/Button.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/Button.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/Button.pm 2022-12-14 23:33:12.000000000 +0000 @@ -1,12 +1,13 @@ # You may distribute under the terms of either the GNU General Public License # or the Artistic License (the same terms as Perl itself) # -# (C) Paul Evans, 2012-2021 -- leonerd@leonerd.org.uk +# (C) Paul Evans, 2012-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.57; +use Object::Pad 0.73 ':experimental(adjust_params init_expr)'; -package Tickit::Widget::Button 0.35; +package Tickit::Widget::Button 0.36; class Tickit::Widget::Button + :strict(params) :isa(Tickit::Widget); use Tickit::Style; @@ -133,20 +134,19 @@ =cut -has $_label :reader :param = undef; -has $_on_click :reader :writer :param = undef; +field $_label :reader :param = undef; +field $_on_click :reader :writer :param = undef; -has $_active; -has $_dragging_on_self; +field $_active; +field $_dragging_on_self; -ADJUSTPARAMS -{ - my ( $params ) = @_; - foreach (qw( align valign )) { - my $val = delete $params->{$_}; - $self->${\"set_$_"}( $val // 0.5 ); - } +ADJUST :params ( + :$align = 0.5, + :$valign = 0.5, +) { + $self->set_align( $align ); + $self->set_valign( $valign ); } method lines @@ -264,9 +264,9 @@ use Tickit::WidgetRole::Alignable name => "align", style => "h"; use Tickit::WidgetRole::Alignable name => "valign", style => "v"; -has $_label_line; -has $_label_col; -has $_label_end; +field $_label_line; +field $_label_col; +field $_label_end; method reshape { diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/CheckButton.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/CheckButton.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/CheckButton.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/CheckButton.pm 2022-12-14 23:33:12.000000000 +0000 @@ -3,10 +3,11 @@ # # (C) Paul Evans, 2013-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.57; +use Object::Pad 0.73 ':experimental(init_expr)'; -package Tickit::Widget::CheckButton 0.35; +package Tickit::Widget::CheckButton 0.36; class Tickit::Widget::CheckButton + :strict(params) :isa(Tickit::Widget); use Tickit::Style; @@ -138,10 +139,10 @@ =cut -has $_label :reader :param = undef; -has $_on_toggle :reader :writer :param = undef; +field $_label :reader :param = undef; +field $_on_toggle :reader :writer :param = undef; -has $_active; +field $_active; method lines { diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/Entry.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/Entry.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/Entry.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/Entry.pm 2022-12-14 23:33:12.000000000 +0000 @@ -1,12 +1,13 @@ # You may distribute under the terms of either the GNU General Public License # or the Artistic License (the same terms as Perl itself) # -# (C) Paul Evans, 2011-2021 -- leonerd@leonerd.org.uk +# (C) Paul Evans, 2011-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.57; +use Object::Pad 0.75 ':experimental(init_expr)'; -package Tickit::Widget::Entry 0.35; +package Tickit::Widget::Entry 0.36; class Tickit::Widget::Entry + :strict(params) :isa(Tickit::Widget); use Carp; @@ -179,11 +180,11 @@ =cut -has $_text :reader :param = ""; -has $_pos_ch :reader(position) :param(position) = 0; -has $_scrolloffs_co = 0; -has $_overwrite = 0; -has %_keybindings = ( +field $_text :reader :param //= ""; +field $_pos_ch :reader(position) :param(position) //= 0; +field $_scrolloffs_co = 0; +field $_overwrite = 0; +field %_keybindings = ( 'C-a' => "key_beginning_of_line", 'C-e' => "key_end_of_line", 'C-k' => "key_delete_line", @@ -206,7 +207,8 @@ 'Right' => "key_forward_char", 'C-Right' => "key_forward_word", ); -has $_on_enter :reader :param = undef; + +field $_on_enter :reader :param = undef; ADJUST { diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/Fill.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/Fill.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/Fill.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/Fill.pm 2022-12-14 23:33:12.000000000 +0000 @@ -5,8 +5,9 @@ use Object::Pad 0.57; -package Tickit::Widget::Fill 0.35; +package Tickit::Widget::Fill 0.36; class Tickit::Widget::Fill + :strict(params) :isa(Tickit::Widget); use Tickit::Style; diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/Frame.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/Frame.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/Frame.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/Frame.pm 2022-12-14 23:33:12.000000000 +0000 @@ -1,12 +1,13 @@ # You may distribute under the terms of either the GNU General Public License # or the Artistic License (the same terms as Perl itself) # -# (C) Paul Evans, 2011-2021 -- leonerd@leonerd.org.uk +# (C) Paul Evans, 2011-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.57; +use Object::Pad 0.73 ':experimental(adjust_params init_expr)'; -package Tickit::Widget::Frame 0.36; +package Tickit::Widget::Frame 0.37; class Tickit::Widget::Frame + :strict(params) :isa(Tickit::SingleChildWidget); use Tickit::Style; @@ -131,21 +132,16 @@ =cut -has $_title :reader :param = undef; -has %_has_edge; +field $_title :reader :param = undef; +field %_has_edge; -ADJUSTPARAMS -{ - my ( $params ) = @_; - - $self->set_title_align( delete $params->{title_align} || 0 ); +ADJUST :params ( + :$title_align = 0, +) { + $self->set_title_align( $title_align ); # Prepopulate has_* caches $self->on_style_changed_values; - - if( exists $params->{child} ) { - croak "The 'child' constructor argument to ${\ref $self} is no longer recognised; use ->add_child instead"; - } } =head1 ACCESSORS diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/GridBox.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/GridBox.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/GridBox.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/GridBox.pm 2022-12-14 23:33:12.000000000 +0000 @@ -1,12 +1,13 @@ # You may distribute under the terms of either the GNU General Public License # or the Artistic License (the same terms as Perl itself) # -# (C) Paul Evans, 2013-2021 -- leonerd@leonerd.org.uk +# (C) Paul Evans, 2013-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.57; +use Object::Pad 0.73 ':experimental(adjust_params init_expr)'; -package Tickit::Widget::GridBox 0.35; +package Tickit::Widget::GridBox 0.36; class Tickit::Widget::GridBox + :strict(params) :isa(Tickit::ContainerWidget); use experimental 'postderef'; @@ -98,17 +99,8 @@ return $class->SUPER::BUILDARGS( %args ); } -has @_grid; -has $_max_col = -1; - -ADJUSTPARAMS -{ - my ( $params ) = @_; - - if( $params->{children} ) { - croak "The 'children' constructor argument to ${\ref $self} is no longer recognised; use ->append_row instead"; - } -} +field @_grid; +field $_max_col = -1; method lines { diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/HBox.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/HBox.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/HBox.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/HBox.pm 2022-12-14 23:33:12.000000000 +0000 @@ -5,8 +5,9 @@ use Object::Pad 0.57; -package Tickit::Widget::HBox 0.50; +package Tickit::Widget::HBox 0.51; class Tickit::Widget::HBox + :strict(params) :isa(Tickit::Widget::LinearBox); use Tickit::Style; diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/HSplit.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/HSplit.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/HSplit.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/HSplit.pm 2022-12-14 23:33:12.000000000 +0000 @@ -5,8 +5,9 @@ use Object::Pad 0.57; -package Tickit::Widget::HSplit 0.35; +package Tickit::Widget::HSplit 0.36; class Tickit::Widget::HSplit + :strict(params) :isa(Tickit::Widget::LinearSplit); use Tickit::Style; @@ -99,17 +100,6 @@ =cut -ADJUSTPARAMS -{ - my ( $params ) = @_; - - croak "The 'top_child' constructor argument to ${\ref $self} is no longer recognised; use ->set_top_child instead" - if delete $params->{top_child}; - - croak "The 'bottom_child' constructor argument to ${\ref $self} is no longer recognised; use ->set_bottom_child instead" - if delete $params->{bottom_child}; -} - method lines { my $spacing = $self->get_style_values( "spacing" ); diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/LinearBox.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/LinearBox.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/LinearBox.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/LinearBox.pm 2022-12-14 23:33:12.000000000 +0000 @@ -3,10 +3,11 @@ # # (C) Paul Evans, 2009-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.57; +use Object::Pad 0.66; -package Tickit::Widget::LinearBox 0.52; +package Tickit::Widget::LinearBox 0.53; class Tickit::Widget::LinearBox + :strict(params) :isa(Tickit::ContainerWidget); use experimental 'postderef'; @@ -67,9 +68,9 @@ =cut -has @_children; +field @_children; -has $_suppress_redistribute; +field $_suppress_redistribute; sub BUILDARGS { @@ -81,15 +82,6 @@ return $class->SUPER::BUILDARGS( %args ); } -ADJUSTPARAMS -{ - my ( $params ) = @_; - - if( delete $params->{children} ) { - croak "The 'children' constructor argument to ${\ref $self} is no longer recognised; use ->add_children instead"; - } -} - =head1 METHODS =cut diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/LinearSplit.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/LinearSplit.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/LinearSplit.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/LinearSplit.pm 2022-12-14 23:33:12.000000000 +0000 @@ -3,22 +3,23 @@ # # (C) Paul Evans, 2013-2021 -- leonerd@leonerd.org.uk -use Object::Pad 0.57; +use Object::Pad 0.73 ':experimental(init_expr)'; -package Tickit::Widget::LinearSplit 0.35; +package Tickit::Widget::LinearSplit 0.36; class Tickit::Widget::LinearSplit + :strict(params) :isa(Tickit::ContainerWidget); use Tickit::Window 0.32; # needs drag_start use Carp; -has $_split_fraction = 0.5; -has $_A_child :reader; -has $_B_child :reader; +field $_split_fraction = 0.5; +field $_A_child :reader; +field $_B_child :reader; -has $_split_at; method _split_at { $_split_at } -has $_split_len; method _split_len { $_split_len } +field $_split_at; method _split_at { $_split_at } +field $_split_len; method _split_len { $_split_len } method set_A_child { @@ -113,7 +114,7 @@ $_split_len = $spacing; } -has $_drag_mouse_offset; +field $_drag_mouse_offset; method _on_mouse { diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/Placegrid.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/Placegrid.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/Placegrid.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/Placegrid.pm 2022-12-14 23:33:12.000000000 +0000 @@ -4,10 +4,11 @@ # (C) Paul Evans, 2013-2021 -- leonerd@leonerd.org.uk # Original render code by Tom Molesworth -use Object::Pad 0.57; +use Object::Pad 0.73 ':experimental(init_expr)'; -package Tickit::Widget::Placegrid 0.35; +package Tickit::Widget::Placegrid 0.36; class Tickit::Widget::Placegrid + :strict(params) :isa(Tickit::Widget); use Tickit::Style; @@ -69,7 +70,7 @@ =cut -has $_title :param = undef; +field $_title :param = undef; method lines { 1 } method cols { 1 } diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/RadioButton.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/RadioButton.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/RadioButton.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/RadioButton.pm 2022-12-14 23:33:12.000000000 +0000 @@ -3,10 +3,11 @@ # # (C) Paul Evans, 2013-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.57; +use Object::Pad 0.73 ':experimental(init_expr)'; -package Tickit::Widget::RadioButton 0.35; +package Tickit::Widget::RadioButton 0.36; class Tickit::Widget::RadioButton + :strict(params) :isa(Tickit::Widget); use Object::Pad qw( :experimental(init_expr) ); @@ -152,10 +153,10 @@ =cut -has $_label :reader :param; -has $_on_toggle :reader :writer :param = undef; -has $_value :reader :writer :param = undef; -has $_group :reader :param { Tickit::Widget::RadioButton::Group->new }; +field $_label :reader :param; +field $_on_toggle :reader :writer :param = undef; +field $_value :reader :writer :param = undef; +field $_group :reader :param = Tickit::Widget::RadioButton::Group->new; method lines { @@ -347,8 +348,8 @@ =cut - has $_active :reader; - has $_on_changed :reader :writer; + field $_active :reader; + field $_on_changed :reader :writer; =head2 active diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/Spinner.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/Spinner.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/Spinner.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/Spinner.pm 2022-12-14 23:33:12.000000000 +0000 @@ -1,12 +1,13 @@ # You may distribute under the terms of either the GNU General Public License # or the Artistic License (the same terms as Perl itself) # -# (C) Paul Evans, 2013-2021 -- leonerd@leonerd.org.uk +# (C) Paul Evans, 2013-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.57; +use Object::Pad 0.75 ':experimental(adjust_params init_expr)'; -package Tickit::Widget::Spinner 0.35; +package Tickit::Widget::Spinner 0.36; class Tickit::Widget::Spinner + :strict(params) :isa(Tickit::Widget); use experimental 'postderef'; @@ -70,24 +71,23 @@ =cut -has @_chars; -has $_state = 0; -has $_interval :param = 0.5; -has $_cols; - -ADJUSTPARAMS -{ - my ( $params ) = @_; - - @_chars = $params->{chars} ? $params->{chars}->@* : (qw( - \ | / )); +field @_chars; +field $_state = 0; +field $_interval :param //= 0.5; +field $_cols; + +ADJUST :params ( + :$chars = [qw( - \ | / )], +) { + @_chars = $chars->@*; $_cols = max map { textwidth $_ } @_chars; } -has $_running; -has $_x; -has $_y; -has $_rect; +field $_running; +field $_x; +field $_y; +field $_rect; =head1 METHODS diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/Static.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/Static.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/Static.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/Static.pm 2022-12-14 23:33:12.000000000 +0000 @@ -1,12 +1,13 @@ # You may distribute under the terms of either the GNU General Public License # or the Artistic License (the same terms as Perl itself) # -# (C) Paul Evans, 2009-2021 -- leonerd@leonerd.org.uk +# (C) Paul Evans, 2009-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.57; +use Object::Pad 0.73 ':experimental(adjust_params init_expr)'; -package Tickit::Widget::Static 0.55; +package Tickit::Widget::Static 0.56; class Tickit::Widget::Static + :strict(params) :isa(Tickit::Widget); use Tickit::Style; @@ -89,16 +90,17 @@ =cut -has @_lines; -has $_on_click :reader :writer :param = undef; +field @_lines; +field $_on_click :reader :writer :param = undef; -ADJUSTPARAMS -{ - my ( $params ) = @_; - - $self->set_text( delete $params->{text} ); - $self->set_align( delete $params->{align} || 0 ); - $self->set_valign( delete $params->{valign} || 0 ); +ADJUST :params ( + :$text = undef, + :$align = 0, + :$valign = 0, +) { + $self->set_text( $text ); + $self->set_align( $align ); + $self->set_valign( $valign ); } =head1 ACCESSORS diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/VBox.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/VBox.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/VBox.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/VBox.pm 2022-12-14 23:33:12.000000000 +0000 @@ -5,8 +5,9 @@ use Object::Pad 0.57; -package Tickit::Widget::VBox 0.50; +package Tickit::Widget::VBox 0.51; class Tickit::Widget::VBox + :strict(params) :isa(Tickit::Widget::LinearBox); use Tickit::Style; diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget/VSplit.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget/VSplit.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget/VSplit.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget/VSplit.pm 2022-12-14 23:33:12.000000000 +0000 @@ -5,8 +5,9 @@ use Object::Pad 0.57; -package Tickit::Widget::VSplit 0.35; +package Tickit::Widget::VSplit 0.37; class Tickit::Widget::VSplit + :strict(params) :isa(Tickit::Widget::LinearSplit); use Tickit::Style; @@ -99,17 +100,6 @@ =cut -ADJUSTPARAMS -{ - my ( $params ) = @_; - - croak "The 'left_child' constructor argument to ${\ref $self} is no longer recognised; use ->set_left_child instead" - if delete $params->{left_child}; - - croak "The 'right_child' constructor argument to ${\ref $self} is no longer recognised; use ->set_right_child instead" - if delete $params->{right_child}; -} - method lines { return max( diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widget.pm libtickit-widgets-perl-0.36/lib/Tickit/Widget.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widget.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widget.pm 2022-12-14 23:33:12.000000000 +0000 @@ -1,11 +1,11 @@ # You may distribute under the terms of either the GNU General Public License # or the Artistic License (the same terms as Perl itself) # -# (C) Paul Evans, 2009-2021 -- leonerd@leonerd.org.uk +# (C) Paul Evans, 2009-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.52; # ADJUSTPARAMS superclass bugfix +use Object::Pad 0.70 ':experimental(adjust_params)'; -package Tickit::Widget 0.55; +package Tickit::Widget 0.56; class Tickit::Widget :repr(HASH); use experimental 'postderef'; @@ -120,9 +120,9 @@ =cut -has @_style_classes; -has $_style_direct; -has %_style_tag; +field @_style_classes; +field $_style_direct; +field %_style_tag; ADJUST { @@ -133,21 +133,26 @@ } } -ADJUSTPARAMS -{ - my ( $params ) = @_; - - @_style_classes = @{ delete $params->{classes} // [ delete $params->{class} ] }; +ADJUST :params ( + :$class = undef, + :$classes = [ $class ], +) { + @_style_classes = $classes->@*; +} +ADJUST :params ( + :$style = undef, + %params +) { # Legacy direct-applied-style argument support foreach my $attr ( @Tickit::Pen::ALL_ATTRS ) { - next unless defined( my $val = delete $params->{$attr} ); + next unless defined( my $val = delete $params{$attr} ); carp "Applying legacy direct pen attribute '$attr' for ${\ref $self}"; - $params->{style}{$attr} = $val; + $style->{$attr} = $val; } - if( my $style = delete $params->{style} ) { + if( $style ) { my $tagset = $_style_direct = Tickit::Style::_Tagset->new; foreach my $key ( keys %$style ) { $tagset->add( $key, $style->{$key} ); @@ -157,13 +162,13 @@ $self->_update_pen( $self->get_style_pen ); } -has $_parent :reader; -has $_window :reader; -has $_pen :reader; +field $_parent :reader; +field $_window :reader; +field $_pen :reader; -has $_focus_pending; +field $_focus_pending; -has %_event_ids; +field %_event_ids; =head1 METHODS @@ -263,7 +268,7 @@ =cut -has %_style_cache; +field %_style_cache; method get_style_values { @@ -336,7 +341,7 @@ =cut -has %_style_pen_cache; +field %_style_pen_cache; method get_style_pen { @@ -688,8 +693,8 @@ =cut -has $_req_lines; -has $_req_cols; +field $_req_lines; +field $_req_cols; method set_requested_size { diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/WidgetRole/SingleChildContainer.pm libtickit-widgets-perl-0.36/lib/Tickit/WidgetRole/SingleChildContainer.pm --- libtickit-widgets-perl-0.35/lib/Tickit/WidgetRole/SingleChildContainer.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/WidgetRole/SingleChildContainer.pm 2022-12-14 23:33:12.000000000 +0000 @@ -3,9 +3,9 @@ # # (C) Paul Evans, 2020-2022 -- leonerd@leonerd.org.uk -use Object::Pad 0.32; +use Object::Pad 0.66; -package Tickit::WidgetRole::SingleChildContainer 0.35; +package Tickit::WidgetRole::SingleChildContainer 0.36; role Tickit::WidgetRole::SingleChildContainer; use Carp; @@ -25,7 +25,7 @@ =cut -has $_child :reader; +field $_child :reader; =head1 METHODS diff -Nru libtickit-widgets-perl-0.35/lib/Tickit/Widgets.pm libtickit-widgets-perl-0.36/lib/Tickit/Widgets.pm --- libtickit-widgets-perl-0.35/lib/Tickit/Widgets.pm 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/lib/Tickit/Widgets.pm 2022-12-14 23:33:12.000000000 +0000 @@ -3,7 +3,7 @@ # # (C) Paul Evans, 2012-2020 -- leonerd@leonerd.org.uk -package Tickit::Widgets 0.35; +package Tickit::Widgets 0.36; use v5.14; use warnings; diff -Nru libtickit-widgets-perl-0.35/MANIFEST libtickit-widgets-perl-0.36/MANIFEST --- libtickit-widgets-perl-0.35/MANIFEST 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/MANIFEST 2022-12-14 23:33:12.000000000 +0000 @@ -44,7 +44,11 @@ lib/Tickit/WidgetRole/Alignable.pm lib/Tickit/WidgetRole/SingleChildContainer.pm lib/Tickit/Widgets.pm +LICENSE MANIFEST This list of files +META.json +META.yml +README t/00use.t t/01widget.t t/02widget-window.t @@ -72,7 +76,3 @@ t/35hsplit.t t/35vsplit.t t/99pod.t -README -LICENSE -META.yml -META.json diff -Nru libtickit-widgets-perl-0.35/META.json libtickit-widgets-perl-0.36/META.json --- libtickit-widgets-perl-0.35/META.json 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/META.json 2022-12-14 23:33:12.000000000 +0000 @@ -22,7 +22,7 @@ "runtime" : { "requires" : { "List::Util" : "1.33", - "Object::Pad" : "0.63", + "Object::Pad" : "0.75", "Parser::MGC" : "0", "Syntax::Keyword::Dynamically" : "0", "Tickit::Event" : "0.66", @@ -43,95 +43,95 @@ "provides" : { "Tickit::ContainerWidget" : { "file" : "lib/Tickit/ContainerWidget.pm", - "version" : "0.56" + "version" : "0.57" }, "Tickit::SingleChildWidget" : { "file" : "lib/Tickit/SingleChildWidget.pm", - "version" : "0.56" + "version" : "0.57" }, "Tickit::Style" : { "file" : "lib/Tickit/Style.pm", - "version" : "0.53" + "version" : "0.54" }, "Tickit::Style::Parser" : { "file" : "lib/Tickit/Style/Parser.pm", - "version" : "0.53" + "version" : "0.54" }, "Tickit::Widget" : { "file" : "lib/Tickit/Widget.pm", - "version" : "0.55" + "version" : "0.56" }, "Tickit::Widget::Border" : { "file" : "lib/Tickit/Widget/Border.pm", - "version" : "0.35" + "version" : "0.36" }, "Tickit::Widget::Box" : { "file" : "lib/Tickit/Widget/Box.pm", - "version" : "0.56" + "version" : "0.57" }, "Tickit::Widget::Button" : { "file" : "lib/Tickit/Widget/Button.pm", - "version" : "0.35" + "version" : "0.36" }, "Tickit::Widget::CheckButton" : { "file" : "lib/Tickit/Widget/CheckButton.pm", - "version" : "0.35" + "version" : "0.36" }, "Tickit::Widget::Entry" : { "file" : "lib/Tickit/Widget/Entry.pm", - "version" : "0.35" + "version" : "0.36" }, "Tickit::Widget::Fill" : { "file" : "lib/Tickit/Widget/Fill.pm", - "version" : "0.35" + "version" : "0.36" }, "Tickit::Widget::Frame" : { "file" : "lib/Tickit/Widget/Frame.pm", - "version" : "0.36" + "version" : "0.37" }, "Tickit::Widget::GridBox" : { "file" : "lib/Tickit/Widget/GridBox.pm", - "version" : "0.35" + "version" : "0.36" }, "Tickit::Widget::HBox" : { "file" : "lib/Tickit/Widget/HBox.pm", - "version" : "0.50" + "version" : "0.51" }, "Tickit::Widget::HSplit" : { "file" : "lib/Tickit/Widget/HSplit.pm", - "version" : "0.35" + "version" : "0.36" }, "Tickit::Widget::LinearBox" : { "file" : "lib/Tickit/Widget/LinearBox.pm", - "version" : "0.52" + "version" : "0.53" }, "Tickit::Widget::LinearSplit" : { "file" : "lib/Tickit/Widget/LinearSplit.pm", - "version" : "0.35" + "version" : "0.36" }, "Tickit::Widget::Placegrid" : { "file" : "lib/Tickit/Widget/Placegrid.pm", - "version" : "0.35" + "version" : "0.36" }, "Tickit::Widget::RadioButton" : { "file" : "lib/Tickit/Widget/RadioButton.pm", - "version" : "0.35" + "version" : "0.36" }, "Tickit::Widget::Spinner" : { "file" : "lib/Tickit/Widget/Spinner.pm", - "version" : "0.35" + "version" : "0.36" }, "Tickit::Widget::Static" : { "file" : "lib/Tickit/Widget/Static.pm", - "version" : "0.55" + "version" : "0.56" }, "Tickit::Widget::VBox" : { "file" : "lib/Tickit/Widget/VBox.pm", - "version" : "0.50" + "version" : "0.51" }, "Tickit::Widget::VSplit" : { "file" : "lib/Tickit/Widget/VSplit.pm", - "version" : "0.35" + "version" : "0.37" }, "Tickit::WidgetRole" : { "file" : "lib/Tickit/WidgetRole.pm", @@ -143,11 +143,11 @@ }, "Tickit::WidgetRole::SingleChildContainer" : { "file" : "lib/Tickit/WidgetRole/SingleChildContainer.pm", - "version" : "0.35" + "version" : "0.36" }, "Tickit::Widgets" : { "file" : "lib/Tickit/Widgets.pm", - "version" : "0.35" + "version" : "0.36" } }, "release_status" : "stable", @@ -156,6 +156,6 @@ "http://dev.perl.org/licenses/" ] }, - "version" : "0.35", - "x_serialization_backend" : "JSON::PP version 4.06" + "version" : "0.36", + "x_serialization_backend" : "JSON::PP version 4.07" } diff -Nru libtickit-widgets-perl-0.35/META.yml libtickit-widgets-perl-0.36/META.yml --- libtickit-widgets-perl-0.35/META.yml 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/META.yml 2022-12-14 23:33:12.000000000 +0000 @@ -18,73 +18,73 @@ provides: Tickit::ContainerWidget: file: lib/Tickit/ContainerWidget.pm - version: '0.56' + version: '0.57' Tickit::SingleChildWidget: file: lib/Tickit/SingleChildWidget.pm - version: '0.56' + version: '0.57' Tickit::Style: file: lib/Tickit/Style.pm - version: '0.53' + version: '0.54' Tickit::Style::Parser: file: lib/Tickit/Style/Parser.pm - version: '0.53' + version: '0.54' Tickit::Widget: file: lib/Tickit/Widget.pm - version: '0.55' + version: '0.56' Tickit::Widget::Border: file: lib/Tickit/Widget/Border.pm - version: '0.35' + version: '0.36' Tickit::Widget::Box: file: lib/Tickit/Widget/Box.pm - version: '0.56' + version: '0.57' Tickit::Widget::Button: file: lib/Tickit/Widget/Button.pm - version: '0.35' + version: '0.36' Tickit::Widget::CheckButton: file: lib/Tickit/Widget/CheckButton.pm - version: '0.35' + version: '0.36' Tickit::Widget::Entry: file: lib/Tickit/Widget/Entry.pm - version: '0.35' + version: '0.36' Tickit::Widget::Fill: file: lib/Tickit/Widget/Fill.pm - version: '0.35' + version: '0.36' Tickit::Widget::Frame: file: lib/Tickit/Widget/Frame.pm - version: '0.36' + version: '0.37' Tickit::Widget::GridBox: file: lib/Tickit/Widget/GridBox.pm - version: '0.35' + version: '0.36' Tickit::Widget::HBox: file: lib/Tickit/Widget/HBox.pm - version: '0.50' + version: '0.51' Tickit::Widget::HSplit: file: lib/Tickit/Widget/HSplit.pm - version: '0.35' + version: '0.36' Tickit::Widget::LinearBox: file: lib/Tickit/Widget/LinearBox.pm - version: '0.52' + version: '0.53' Tickit::Widget::LinearSplit: file: lib/Tickit/Widget/LinearSplit.pm - version: '0.35' + version: '0.36' Tickit::Widget::Placegrid: file: lib/Tickit/Widget/Placegrid.pm - version: '0.35' + version: '0.36' Tickit::Widget::RadioButton: file: lib/Tickit/Widget/RadioButton.pm - version: '0.35' + version: '0.36' Tickit::Widget::Spinner: file: lib/Tickit/Widget/Spinner.pm - version: '0.35' + version: '0.36' Tickit::Widget::Static: file: lib/Tickit/Widget/Static.pm - version: '0.55' + version: '0.56' Tickit::Widget::VBox: file: lib/Tickit/Widget/VBox.pm - version: '0.50' + version: '0.51' Tickit::Widget::VSplit: file: lib/Tickit/Widget/VSplit.pm - version: '0.35' + version: '0.37' Tickit::WidgetRole: file: lib/Tickit/WidgetRole.pm version: '0.52' @@ -93,13 +93,13 @@ version: '0.51' Tickit::WidgetRole::SingleChildContainer: file: lib/Tickit/WidgetRole/SingleChildContainer.pm - version: '0.35' + version: '0.36' Tickit::Widgets: file: lib/Tickit/Widgets.pm - version: '0.35' + version: '0.36' requires: List::Util: '1.33' - Object::Pad: '0.63' + Object::Pad: '0.75' Parser::MGC: '0' Syntax::Keyword::Dynamically: '0' Tickit::Event: '0.66' @@ -109,5 +109,5 @@ perl: '5.020' resources: license: http://dev.perl.org/licenses/ -version: '0.35' +version: '0.36' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -Nru libtickit-widgets-perl-0.35/t/03widget-container.t libtickit-widgets-perl-0.36/t/03widget-container.t --- libtickit-widgets-perl-0.35/t/03widget-container.t 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/t/03widget-container.t 2022-12-14 23:33:12.000000000 +0000 @@ -92,7 +92,7 @@ done_testing; -use Object::Pad; +use Object::Pad 0.66; class TestWidget :isa(Tickit::Widget) { use constant WIDGET_PEN_FROM_STYLE => 1; @@ -106,7 +106,7 @@ class TestContainer :isa(Tickit::ContainerWidget) { use constant WIDGET_PEN_FROM_STYLE => 1; - has @_children; + field @_children; method children { @_children } method render_to_rb {} diff -Nru libtickit-widgets-perl-0.35/t/07widget-container-focus.t libtickit-widgets-perl-0.36/t/07widget-container-focus.t --- libtickit-widgets-perl-0.35/t/07widget-container-focus.t 2022-07-07 12:01:04.000000000 +0000 +++ libtickit-widgets-perl-0.36/t/07widget-container-focus.t 2022-12-14 23:33:12.000000000 +0000 @@ -178,7 +178,7 @@ done_testing; -use Object::Pad; +use Object::Pad 0.75 ':experimental(init_expr)'; class TestWidget :isa(Tickit::Widget) { use constant WIDGET_PEN_FROM_STYLE => 1; @@ -190,7 +190,7 @@ method lines { 1 } method cols { 5 } - has $_CAN_FOCUS :reader :param = 0; + field $_CAN_FOCUS :reader :param //= 0; } class TestContainer :isa(Tickit::Widget::HBox) {