App-Tk-Deparse

 view release on metacpan or  search on metacpan

lib/App/Tk/Deparse.pm  view on Meta::CPAN

      <body>
         Version: $VERSION<br>
         &nbsp;<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 )