App-Tk-Deparse
view release on metacpan or search on metacpan
lib/App/Tk/Deparse.pm view on Meta::CPAN
<body>
Version: $VERSION<br>
<a href="https://metacpan.org/pod/Tk">Perl Tk</a>: $Tk::VERSION<br>
<a href="https://metacpan.org/pod/B::Deparse">B::Deparse</a><br>
Perl $]<br>
<p>
Create by Gabor Szabo<br>
Source code on <a href="https://github.com/szabgab/App-Tk-Deparse">GitHub</a><br>
Thanks to my <a href="https://www.patreon.com/szabgab">Patreon</a> supporters<br>
<h2>Supporters</h2>
<ul>
<li><a href="https://www.activestate.com/">ActiveState</a></li>
<li><a href="https://www.chatterjee.net/">Anirvan Chatterjee</a></li>
<li>Brian Gaboury</li>
<li><a href="https://www.linkedin.com/in/chan-wilson-b867b3/">Chan Wilson</a></li>
<li><a href="https://www.linkedin.com/in/fins0ck/">Csaba Gaspar</a></li>
<li><a href="https://www.linkedin.com/in/dihnen/">David Ihnen</a></li>
<li><a href="https://www.preshweb.co.uk/about/">David Precious</a></li>
<li>Frank Kropp</li>
<li>John Andersen</li>
<li>Magnus Enger</li>
<li><a href="https://www.linkedin.com/in/mjgardner/">Mark Gardner</a></li>
<li>Markus Hechenberger</li>
<li>Matthew Mitchell</li>
<li>Matthew Persico</li>
<li>Meir Guttman</li>
<li>Mike Small</li>
<li><a href="https://www.linkedin.com/in/n8dgr8/">Nathan Schlehlein</a></li>
<li><a href="https://www.linkedin.com/in/pfmabry/">Paul Mabry</a></li>
<li><a href="https://perl.careers/">Perl Careers</a></li>
<li>Richard Leach</li>
<li>Robert Coursen</li>
<li><a href="https://www.linkedin.com/in/shajiindia/">Shaji Kalidasan</a></li>
<li><a href="https://www.linkedin.com/in/shanta-mcbain-7b644437/">Shanta McBain</a></li>
<li><a href="https://www.linkedin.com/in/slobodanmiskovic/">Slobodan MiÅ¡koviÄ</a></li>
<li><a href="https://www.linkedin.com/in/stephen-jarjoura-a684401/">Stephen A. Jarjoura</a></li>
<li>Tony Edwardson</li>
<li><a href="https://www.linkedin.com/in/tori-hunter-00009639/">Tori Hunter</a></li>
<li><a href="https://bruck.co.il/">Uri Bruck</a></li>
<li>Victor Moral</li>
<li>Wolfgang Odendahl</li>
<li>Yes2Crypto</li>
<li>... + many others</li>
</ul>
</body>
</html>
});
$dialog->Show;
}
sub onResource {
my ($html, %info) = @_;
my $url = $info{href};
#print $url, "\n";
#open_browser($url); # https://rt.cpan.org/Public/Bug/Display.html?id=133315
#print "done\n";
my $cmd = open_browser_cmd($url);
# TODO: verify that the URL is well formatted before passing it to system
if ($^O eq 'MSWin32') {
system("$cmd $url");
} else {
system("$cmd $url &");
}
}
sub changed {
my ($self, $event) = @_;
# TODO can we delay this and only run the deparse process if there were no changes for some time (e.g. 1 sec)
$self->deparse;
#print("changed\n");
}
sub create_app {
my ($self) = @_;
$self->{incode} = $self->{top}->Text(
-state => 'normal',
-font => ['fixed', 12],
-bg => 'white',
);
$self->{incode}->bindtags([$self->{incode}, 'Tk::Text', $self->{top}, 'all']);
#$self->{incode}->bind('<<Modified>>' => sub { I could not get this working
$self->{incode}->bind('<Any-KeyPress>' => sub { $self->changed(shift); });
$self->{incode}->pack(-fill => 'both', -expand => 1);
$self->{flags} = $self->{top}->Frame();
$self->{flags}->pack(-side => 'top');
for my $flag (@flags) {
$self->{"${flag}_flag"} = 0;
$self->{"${flag}_flag_checkbox"} = $self->{flags}->Checkbutton(
-text => "-$flag",
-variable => \$self->{"${flag}_flag"},
-font => ['fixed', 10],
-command => sub { $self->deparse },
);
$self->{"${flag}_flag_checkbox"}->pack(-side => 'left');
}
# $self->{"s_flag"} = '';
# my @s_values = qw(C i T);
# $self->{"s_flag_widget"} = $self->{flags}->BrowseEntry(
# -label => "-s",
# -width => 3,
# -variable => \$self->{"s_flag"},
# );
# for my $s (@s_values) {
# $self->{"s_flag_widget"}->insert("end", $s);
# }
# $self->{"s_flag_widget"}->pack;
$self->{outcode} = $self->{top}->Text(
-state => 'disabled',
-font => ['fixed', 12],
);
$self->{outcode}->pack(-fill => 'both', -expand => 1);
$self->{deparse} = $self->{top}->Button(
( run in 2.483 seconds using v1.01-cache-2.11-cpan-98e64b0badf )