Thanks for the feedback, unfortunately fixing the extended class name does not solve the problem :(
Well, not surprising, fixing thinkos rarely fixes "bugs" :)
Well, it might be considered a bug that Moo isn't as helpful as Moose, Moose actually checks the class is blessed into the right, Moo doesn't
Quick workaround is
sub MenuBar::Item::BUILD { my $self = shift; bless $self, __PACKAGE__ ; $self->Append( $self->item_quit ); return $self; }
Now why doesn't Wx::Menu obey the common rules of subclassing/inheritance, well not all things in wxPerl are mean to be subclasses, and indeed menu/menubar are indeed odd candidates for that ... some of this is explained in Re: wxperl-users scalar reference objects?
As you can see a Wx::Menu isn't a hashref, its a scalar ref
#!/usr/bin/perl -- use Wx qw[ :allclasses ]; { package MMenu; use base qw/ Wx::Menu /; 1; } { package MFrame; use base qw/ Wx::Frame /; 1; } package main; print join "\n", MMenu->new, MFrame->new, ;;;;; __END__ Wx::Menu=SCALAR(0x3f9afc) MFrame=HASH(0x99b30c)
FWIW, not everything needs to be subclasses, ex wxperl_usage
In reply to Re^3: Different behavior for Moo and Moose with Wx?
by Anonymous Monk
in thread Different behavior for Moo and Moose with Wx?
by stefbv
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |