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 )