Devel-ebug-Wx
view release on metacpan or search on metacpan
lib/Devel/ebug/Wx.pm view on Meta::CPAN
$self->service_manager->add_service( Devel::ebug::Wx::Publisher->new ); # FIXME
$self->service_manager->add_service( $self );
$self->{ebug} = $self->ebug_publisher_service;
$self->service_manager->initialize;
$self->service_manager->load_configuration;
$self->ebug->add_subscriber( 'load_program', $self, '_pgm_load' );
$self->ebug->add_subscriber( 'finished', $self, '_pgm_stop' );
$self->SetMenuBar( $self->command_manager_service->get_menu_bar );
$self->ebug->load_program( $args->{argv} );
return $self;
}
sub _on_close {
my( $self ) = @_;
$self->service_manager->finalize( $self );
lib/Devel/ebug/Wx/Service/CommandManager.pm view on Meta::CPAN
sub get_menu_bar {
my( $self ) = @_;
return $self->_build_menu( $self->_menu_tree );
}
sub _build_menu {
my( $self, $menu_tree ) = @_;
my $mbar = Wx::MenuBar->new;
foreach my $rv ( sort { $a->{priority} <=> $b->{priority} }
values %$menu_tree ) {
my $menu = Wx::Menu->new;
my $prev_pri = 0;
foreach my $item ( sort { $a->{priority} <=> $b->{priority} }
@{$rv->{childs}} ) {
if( $prev_pri && $item->{priority} != $prev_pri ) {
$menu->AppendSeparator;
}
my $label = $item->{key} ?
sprintf( "%s\t%s", $item->{label}, $item->{key} ) :
$item->{label};
my $style = $item->{checkable} ? wxITEM_CHECK : wxITEM_NORMAL;
( run in 1.174 second using v1.01-cache-2.11-cpan-49f99fa48dc )