OpenCores
URL https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk

Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc

[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [perl_gui/] [lib/] [perl/] [software_editor.pl] - Diff between revs 38 and 42

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 38 Rev 42
Line 86... Line 86...
        $vpaned-> pack1 ($hpaned, TRUE, TRUE);
        $vpaned-> pack1 ($hpaned, TRUE, TRUE);
        $vpaned ->set_position ($hight*.5);
        $vpaned ->set_position ($hight*.5);
        $vpaned-> pack2 ($scwin_info, TRUE, TRUE);
        $vpaned-> pack2 ($scwin_info, TRUE, TRUE);
 
 
 
 
 
my ($tree_view,$tree_store) =$self->build_tree_view($sw);
 
 
 
 
# Directory name, full path
 
my $tree_store = Gtk2::TreeStore->new('Glib::String', 'Glib::String');
 
my $tree_view = Gtk2::TreeView->new($tree_store);
 
my $column = Gtk2::TreeViewColumn->new_with_attributes('', Gtk2::CellRendererText->new(), text => "0");
 
$tree_view->append_column($column);
 
$tree_view->set_headers_visible(FALSE);
 
$tree_view->signal_connect (button_release_event => sub{
 
        my $tree_model = $tree_view->get_model();
 
        my $selection = $tree_view->get_selection();
 
        my $iter = $selection->get_selected();
 
        if(defined $iter){
 
                my $path = $tree_model->get($iter, 1) ;
 
                $path= substr $path, 0, -1;
 
 
 
                 $self->load_source($path) if(-f $path);
 
        }
 
         return;
 
});
 
 
 
 
 
$tree_view->signal_connect ('row-expanded' => sub {
 
        my ($tree_view, $iter, $tree_path) = @_;
 
        my $tree_model = $tree_view->get_model();
 
        my ($dir, $path) = $tree_model->get($iter);
 
 
 
        # for each of $iter's children add any subdirectories
 
        my $child = $tree_model->iter_children ($iter);
 
        while ($child) {
 
                my ($dir, $path) = $tree_model->get($child, 0, 1);
 
                add_to_tree($tree_view,$tree_store, $child, $dir, $path);
 
                $child = $tree_model->iter_next ($child);
 
        }
 
         return;
 
});
 
 
 
 
 
$scwin_dirs -> add($tree_view);
$scwin_dirs -> add($tree_view);
 
 
 
 
 
 
my $child = $tree_store->append(undef);
 
$tree_store->set($child, 0, $sw, 1, '/');
 
add_to_tree($tree_view,$tree_store, $child, '/', "$sw/");
 
#print "$sw/\n";
#print "$sw/\n";
 
 
        #my $window = Gtk2::Window->new();
        #my $window = Gtk2::Window->new();
        #$window->set_size_request(480, 360);
        #$window->set_size_request(480, 360);
        #$window->set_title($NAME);
        #$window->set_title($NAME);
        $self->window($window);
        $self->window($window);
 
 
        my $vbox = Gtk2::VBox->new(FALSE, 0);
        my $vbox = Gtk2::VBox->new(FALSE, 0);
        $scwin_text->add_with_viewport($vbox);
        $scwin_text->add_with_viewport($vbox);
 
 
        $vbox->pack_start($self->build_menu, FALSE, FALSE, 0);
        $vbox->pack_start($self->build_menu("$sw/",$window,$tree_view,$tree_store,$scwin_dirs), FALSE, FALSE, 0);
        $vbox->pack_start($self->build_search_box, FALSE, FALSE, 0);
        $vbox->pack_start($self->build_search_box, FALSE, FALSE, 0);
 
 
        my $scroll = Gtk2::ScrolledWindow->new();
        my $scroll = Gtk2::ScrolledWindow->new();
        $scroll->set_policy('automatic', 'automatic');
        $scroll->set_policy('automatic', 'automatic');
        $scroll->set_shadow_type('in');
        $scroll->set_shadow_type('in');
Line 211... Line 176...
        $window->show_all();
        $window->show_all();
        return ($table,$tview,$window);
        return ($table,$tview,$window);
}
}
 
 
 
 
 
 
 
 
 
sub build_tree_view{
 
        my ($self,$sw)=@_;
 
 
 
        # Directory name, full path
 
my $tree_store = Gtk2::TreeStore->new('Glib::String', 'Glib::String');
 
my $tree_view = Gtk2::TreeView->new($tree_store);
 
my $column = Gtk2::TreeViewColumn->new_with_attributes('', Gtk2::CellRendererText->new(), text => "0");
 
$tree_view->append_column($column);
 
$tree_view->set_headers_visible(FALSE);
 
$tree_view->signal_connect (button_release_event => sub{
 
        my $tree_model = $tree_view->get_model();
 
        my $selection = $tree_view->get_selection();
 
        my $iter = $selection->get_selected();
 
        if(defined $iter){
 
                my $path = $tree_model->get($iter, 1) ;
 
                $path= substr $path, 0, -1;
 
                $self->do_save();
 
                #print "open $path\n";
 
                 $self->load_source($path) if(-f $path);
 
        }
 
         return;
 
});
 
 
 
 
 
$tree_view->signal_connect ('row-expanded' => sub {
 
        my ($tree_view, $iter, $tree_path) = @_;
 
        my $tree_model = $tree_view->get_model();
 
        my ($dir, $path) = $tree_model->get($iter);
 
 
 
        # for each of $iter's children add any subdirectories
 
        my $child = $tree_model->iter_children ($iter);
 
        while ($child) {
 
                my ($dir, $path) = $tree_model->get($child, 0, 1);
 
                add_to_tree($tree_view,$tree_store, $child, $dir, $path);
 
                $child = $tree_model->iter_next ($child);
 
        }
 
         return;
 
});
 
 
 
my $child = $tree_store->append(undef);
 
$tree_store->set($child, 0, $sw, 1, '/');
 
add_to_tree($tree_view,$tree_store, $child, '/', "$sw/");
 
return ($tree_view,$tree_store);
 
 
 
}
 
 
 
 
 
 
sub build_search_box {
sub build_search_box {
        my $self = shift;
        my $self = shift;
 
 
        # Elements of the search box
        # Elements of the search box
        my $hbox = Gtk2::HBox->new(FALSE, 0);
        my $hbox = Gtk2::HBox->new(FALSE, 0);
Line 432... Line 447...
        });
        });
}
}
 
 
 
 
sub do_file_new {
sub do_file_new {
        my $self = shift;
        my ($self,$sw,$window,$tree_view,$tree_store,$scwin_dirs) = @_;
        my $buffer = $self->buffer;
        my $buffer = $self->buffer;
 
 
 
 
        # Set no language
        # Set no language
        $buffer->set_language(undef);
        $buffer->set_language(undef);
 
 
        # Showing a blank editor should not be undoable.
        # Showing a blank editor should not be undoable.
        $buffer->begin_not_undoable_action();
        $buffer->begin_not_undoable_action();
Line 448... Line 464...
        $buffer->set_modified(FALSE);
        $buffer->set_modified(FALSE);
        $buffer->place_cursor($buffer->get_start_iter);
        $buffer->place_cursor($buffer->get_start_iter);
 
 
        $self->filename('');
        $self->filename('');
        $self->window->set_title("Untitled - $NAME");
        $self->window->set_title("Untitled - $NAME");
 
        $self->do_save_as($sw,$window,$tree_view,$tree_store,$scwin_dirs);
}
}
 
 
 
 
sub do_file_open {
sub do_file_open {
        my $self = shift;
        my $self = shift;
Line 532... Line 549...
        $self->show_highlighted(goto_line => $start, $end);
        $self->show_highlighted(goto_line => $start, $end);
}
}
 
 
 
 
sub do_quit {
sub do_quit {
        my $self = shift;
        my ($self,$window) = @_;
        Gtk2->main_quit();
        $window->destroy;
}
}
 
 
 
 
sub do_save_as {
sub do_save_as {
        my $self = shift;
        my ($self,$sw,$window,$tree_view,$tree_store,$scwin_dirs) = @_;
 
 
        # If no file is associated with the editor then ask the user for a file where
        # If no file is associated with the editor then ask the user for a file where
        # to save the contents of the buffer.
        # to save the contents of the buffer.
        my $dialog = Gtk2::FileChooserDialog->new(
        my $dialog = Gtk2::FileChooserDialog->new(
                "Save file", $self->window, 'save',
                "Save file", $self->window, 'save',
                'gtk-cancel' => 'cancel',
                'gtk-cancel' => 'cancel',
                'gtk-save'   => 'ok',
                'gtk-save'   => 'ok',
        );
        );
 
        if(defined  $sw){
 
                $dialog->set_current_folder ($sw);
 
                #print "open_in:$sw\n";
 
 
 
        }
 
 
        my $response = $dialog->run();
        my $response = $dialog->run();
        if ($response eq 'ok') {
        if ($response eq 'ok') {
                $self->filename($dialog->get_filename);
                my $file=$dialog->get_filename;
 
                $self->filename($file);
                $self->do_save();
                $self->do_save();
 
                $tree_view->destroy;
 
                ($tree_view,$tree_store) =$self->build_tree_view($sw);
 
                $scwin_dirs->add($tree_view);
 
                $scwin_dirs->show_all;
 
                $self->load_source($file);
 
 
 
 
        }
        }
        $dialog->destroy();
        $dialog->destroy();
 
 
 
 
}
}
 
 
 
 
sub do_save {
sub do_save {
        my $self = shift;
        my $self = shift;
 
 
        my $filename = $self->filename;
        my $filename = $self->filename;
 
 
        # If there's no file then do a save as...
        # If there's no file then do a save as...
        if (! $filename) {
        if (! $filename) {
                $self->do_save_as();
                #$self->do_save_as();
                return;
                return;
        }
        }
 
 
        my $buffer = $self->buffer;
        my $buffer = $self->buffer;
        open my $handle, '>:encoding(UTF-8)', $filename or die "Can't write to $filename: $!";
        open my $handle, '>:encoding(UTF-8)', $filename or die "Can't write to $filename: $!";
Line 579... Line 611...
                $self->detect_language($filename);
                $self->detect_language($filename);
        }
        }
}
}
 
 
 
 
 
 
 
 
 
 
sub build_menu {
sub build_menu {
        my $self = shift;
        my ($self,$sw,$window,$tree_view,$tree_store,$scwin_dirs) = @_;
 
 
        my $entries = [
        my $entries = [
                # name, stock id, label
                # name, stock id, label
                [ "FileMenu",  undef, "_File" ],
                [ "FileMenu",  undef, "_File" ],
                [ "SearchMenu",  undef, "_Search" ],
                [ "SearchMenu",  undef, "_Search" ],
Line 595... Line 630...
                        "New",
                        "New",
                        'gtk-new',
                        'gtk-new',
                        "_New",
                        "_New",
                        "<control>N",
                        "<control>N",
                        "Create a new file",
                        "Create a new file",
                        sub { $self->do_file_new(@_) }
                        sub { $self->do_file_new($sw,$window,$tree_view,$tree_store,$scwin_dirs) }
                ],
                ],
                [
                [
                        "Open",
                        "Open",
                        'gtk-open',
                        'gtk-open',
                        "_Open",
                        "_Open",
Line 619... Line 654...
                        "SaveAs",
                        "SaveAs",
                        'gtk-save',
                        'gtk-save',
                        "Save _As...",
                        "Save _As...",
                        "<control><shift>S",
                        "<control><shift>S",
                        "Save to a file",
                        "Save to a file",
                        sub { $self->do_save_as(@_) }
                        sub { $self->do_save_as($sw,$window,$tree_view,$tree_store,$scwin_dirs) }
                ],
                ],
                [
                [
                        "Quit",
                        "Quit",
                        'gtk-quit',
                        'gtk-quit',
                        "_Quit",
                        "_Quit",
                        "<control>Q",
                        "<control>Q",
                        "Quit",
                        "Quit",
                        sub { $self->do_quit() }
                        sub { $self->do_quit($window) }
                ],
                ],
                [
                [
                        "About",
                        "About",
                        'gtk-about',
                        'gtk-about',
                        "_About",
                        "_About",

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.