Skip to content

Commit 749730a

Browse files
committed
CHANGED: multi-tab asciio is standard
1 parent 69c79e3 commit 749730a

File tree

6 files changed

+33
-187
lines changed

6 files changed

+33
-187
lines changed

Build.PL

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -335,11 +335,9 @@ my $build = $class->new
335335

336336
script_files => [qw(
337337
script/asciio
338-
script/tasciio
339338
script/asciio_to_text
340339
script/text_to_asciio
341340
script/A
342-
script/TA
343341
script/AV
344342
script/T
345343
script/stdin_to_asciio

MANIFEST

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ META.json
99
META.yml
1010

1111
script/A
12-
script/TA
1312
script/AV
1413
script/T
14+
script/asciio
1515
script/asciio_to_text
1616
script/text_to_asciio
1717
script/startup_script.pl
@@ -361,9 +361,10 @@ documentation/mdbook_asciio/src/for_developers/scripting.md
361361
documentation/mdbook_asciio/src/for_developers/scripting_api.md
362362
documentation/mdbook_asciio/src/for_developers/scripting_execute.md
363363
documentation/mdbook_asciio/src/for_developers/unicode_support.md
364-
documentation/mdbook_asciio/src/functionality_log/026_01_08_search_and_replace.gif
365364
documentation/mdbook_asciio/src/functionality_log/2025_12_20_freeze_elements.gif
366365
documentation/mdbook_asciio/src/functionality_log/2026_01_01_graph_selection.gif
366+
documentation/mdbook_asciio/src/functionality_log/2026_01_08_search_and_replace.gif
367+
documentation/mdbook_asciio/src/functionality_log/2026_01_09_spellcheck.png
367368
documentation/mdbook_asciio/src/gen_doc
368369
documentation/mdbook_asciio/src/git_mode.md
369370
documentation/mdbook_asciio/src/grouping.md
@@ -385,11 +386,6 @@ documentation/mdbook_asciio/src/modes/cross_effect.gif
385386
documentation/mdbook_asciio/src/modes/cross_stripes.gif
386387
documentation/mdbook_asciio/src/modes/eraser_mode.gif
387388
documentation/mdbook_asciio/src/modes/find.md
388-
documentation/mdbook_asciio/src/modes/find_canvas_zooming.gif
389-
documentation/mdbook_asciio/src/modes/find_example.gif
390-
documentation/mdbook_asciio/src/modes/find_normal_string.gif
391-
documentation/mdbook_asciio/src/modes/find_regex.gif
392-
documentation/mdbook_asciio/src/modes/find_repeat.gif
393389
documentation/mdbook_asciio/src/modes/git.md
394390
documentation/mdbook_asciio/src/modes/git_graph.svg
395391
documentation/mdbook_asciio/src/modes/git_graph_feature_branch.gif
@@ -426,7 +422,6 @@ documentation/mdbook_asciio/src/selection_mode_operation.md
426422
documentation/mdbook_asciio/src/selection_polygon_mode.md
427423
documentation/mdbook_asciio/src/slide_script_mode.md
428424
documentation/mdbook_asciio/src/spellcheck.md
429-
documentation/mdbook_asciio/src/spellcheck.png
430425
documentation/mdbook_asciio/src/spellcheck_errors.png
431426
documentation/mdbook_asciio/src/spellchecking_operation.md
432427
documentation/mdbook_asciio/src/stencils.md

lib/App/Asciio.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use App::Asciio::Undo ;
2525

2626
#-----------------------------------------------------------------------------
2727

28-
our $VERSION = '1.9.60' ;
28+
our $VERSION = '1.9.70' ;
2929

3030
#-----------------------------------------------------------------------------
3131

script/TA

Lines changed: 0 additions & 2 deletions
This file was deleted.

script/asciio

Lines changed: 29 additions & 132 deletions
Original file line numberDiff line numberDiff line change
@@ -1,145 +1,42 @@
11
#!/usr/bin/env perl
2-
3-
package main ;
4-
52
use strict;
63
use warnings;
74

8-
use Glib ':constants';
95
use Gtk3 -init;
10-
Gtk3->init;
11-
12-
use App::Asciio::Setup ;
13-
use App::Asciio::GTK::Asciio ;
14-
use App::Asciio::Server ;
15-
use App::Asciio::GTK::Asciio::DnD ;
16-
17-
use Module::Util qw(find_installed) ;
18-
use File::Basename ;
19-
20-
#-----------------------------------------------------------------------------
21-
22-
my $window = Gtk3::Window->new('toplevel');
23-
$window->set_title("asciio");
24-
$window->set_default_size(1000, 1000) ;
25-
$window->signal_connect("destroy", sub { exit(0); });
26-
27-
my $scwin = Gtk3::ScrolledWindow->new();
28-
$scwin->set_policy('automatic', 'automatic');
29-
30-
$window->add($scwin);
31-
32-
my @asciios ;
33-
34-
push @asciios, my $asciio = new App::Asciio::GTK::Asciio($window, 50, 25, $scwin) ;
35-
36-
$scwin->add_with_viewport($asciio->{widget});
37-
$scwin->show_all();
38-
39-
my ($command_line_switch_parse_ok, $command_line_parse_message, $asciio_config)
40-
= $asciio->ParseSwitches([@ARGV], 0) ;
41-
42-
die "Error: '$command_line_parse_message'!" unless $command_line_switch_parse_ok ;
43-
44-
my %object_override ;
45-
if(defined $asciio_config->{DEBUG_FD})
46-
{
47-
open my $fh, ">&=", $asciio_config->{DEBUG_FD} or die "can't open fd $asciio_config->{DEBUG_FD}: $!\n" ;
48-
$fh->autoflush(1) ;
49-
%object_override = (WARN => sub { print $fh "@_" }, ACTION_VERBOSE => sub { print $fh "$_[0]\n" ; } ) ;
50-
}
51-
else
52-
{
53-
%object_override = (WARN => sub { print STDERR "@_" }, ACTION_VERBOSE => sub { print STDERR "$_[0]\n" ; } ) ;
54-
}
55-
56-
my $setup_paths = [] ;
57-
58-
$asciio->{DISPLAY_SETUP_INFORMATION}++ if $asciio_config->{DISPLAY_SETUP_INFORMATION} ;
6+
use Glib::Object::Introspection;
7+
use Glib qw(TRUE FALSE);
598

60-
if(@{$asciio_config->{SETUP_PATHS}})
61-
{
62-
$setup_paths = $asciio_config->{SETUP_PATHS} ;
63-
}
64-
else
65-
{
66-
my ($basename, $path, $ext) = File::Basename::fileparse(find_installed('App::Asciio'), ('\..*')) ;
67-
my $setup_path = $path . $basename . '/setup/' ;
68-
69-
$setup_paths =
70-
[
71-
$setup_path . 'setup.ini',
72-
$setup_path . 'GTK/setup.ini',
73-
$ENV{HOME} . '/.config/Asciio/Asciio.ini',
74-
] ;
75-
}
9+
use App::Asciio::GTK::Asciio::TabManager ;
7610

77-
$asciio->setup($setup_paths, \%object_override) ;
11+
my $window = Gtk3::Window->new('toplevel') ;
12+
$window->set_title('Asciio') ;
13+
$window->set_default_size(600, 400) ;
7814

79-
my ($character_width, $character_height) = $asciio->get_character_size() ;
15+
my $tab_manager = App::Asciio::GTK::Asciio::TabManager->new() ;
8016

81-
if(defined $asciio_config->{TARGETS}[0])
82-
{
83-
$asciio->run_actions_by_name(['Open', $asciio_config->{TARGETS}[0]]) ;
84-
85-
delete $asciio->{BINDINGS_COMPLETION} ;
86-
87-
$window->set_default_size(@{$asciio->{WINDOW_SIZE}}) if defined $asciio->{WINDOW_SIZE} ;
88-
}
17+
$window->add($tab_manager->get_widget()) ;
8918

90-
App::Asciio::setup_embedded_bindings($asciio, $asciio_config) ;
91-
92-
$window->show_all();
93-
94-
$asciio->{widget}->set_size_request($asciio->{CANVAS_WIDTH} * $character_width, $asciio->{CANVAS_HEIGHT} * $character_height);
95-
$asciio->set_modified_state(0) ;
96-
97-
if(defined $asciio_config->{SCRIPT})
98-
{
99-
require App::Asciio::Scripting ;
100-
101-
App::Asciio::Utils::Scripting::run_external_script($asciio, $asciio_config->{SCRIPT}) ;
102-
}
103-
104-
$asciio->setup_dnd($window) ;
105-
106-
#--------------------------------------------------------------------------
107-
108-
$window->signal_connect (delete_event => \&delete_event, \@asciios) ;
109-
110-
sub delete_event
111-
{
112-
my ($window, $event, $asciios) = @_;
113-
114-
my $answer = 'yes';
115-
116-
my $should_save ;
117-
for my $asciio (@{$asciios})
118-
{
119-
$should_save++ if $asciio->get_modified_state() ;
120-
}
121-
122-
if($should_save)
123-
{
124-
$answer = $asciios[0]->display_quit_dialog('asciio', ' ' x 25 . "Document is modified!\n\nAre you sure you want to quit and lose your changes?\n") ;
125-
}
126-
127-
if($answer eq 'save_and_quit')
128-
{
129-
for my $asciio (@{$asciios})
19+
$window->signal_connect
20+
(
21+
destroy => sub
13022
{
131-
my @saved_result = $asciio->run_actions_by_name('Save') ;
132-
133-
$answer = 'cancel' if(! defined $saved_result[0][0] || $saved_result[0][0] eq '') ;
23+
Gtk3::main_quit() ;
13424
}
135-
}
136-
137-
return $answer eq 'cancel';
138-
}
139-
140-
#--------------------------------------------------------------------------
141-
142-
App::Asciio::Server::start_web_server($asciios[0], $asciio_config->{WEB_PORT} // 4444) ;
143-
144-
Gtk3->main();
25+
) ;
26+
27+
$window->show_all() ;
28+
29+
# $window->signal_connect
30+
# (
31+
# 'key-press-event' => sub
32+
# {
33+
# my ($widget, $event) = @_ ;
34+
# $widget->grab_focus() ;
35+
# # App::Asciio::GTK::Asciio::button_press_event(undef, $event, $self) ;
36+
# print"in main window key-press-event\n" ;
37+
# return TRUE ;
38+
# }
39+
# ) ;
40+
41+
Gtk3::main() ;
14542

script/tab_asciio

Lines changed: 0 additions & 42 deletions
This file was deleted.

0 commit comments

Comments
 (0)