App-PerlTidy-Tk

 view release on metacpan or  search on metacpan

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

        );
    }
}

sub load_config {
    my ($self) = @_;
}

sub zoom {
    my ($self, $number) = @_;
    my $font_info = $self->{text}->configure('-font');
    #print "${$font_info->[4]}\n";  # 'fixed 20';
    my ($font, $size) = split / /, ${$font_info->[4]};
    $size += $number;
    $self->{text}->configure(-font => ['fixed', $size]);
}

sub create_config_panel {
    my ($self) = @_;

    $self->{table}  = $self->{top}->Table(-columns => 2, -rows => 1, -fixedrows => 1, -scrollbars => '');
    $self->{table}->pack(-expand=> 1, -fill => 'both');

    my $row = -1;

    #my $name = 'line-up-parentheses';
    #print $self->{flags}{$name}, "\n";
    #my $cb = $self->{top}->Checkbutton(
    #    -text     => $name,
    #    -variable => \$self->{flags}{$name},
    #    -font     => ['fixed', 10]
    #);
    #$cb->pack(-side => 'left');

    for my $name (@options) {
        $row++;
        my $label = $self->{table}->Label(
            -text     => $name,
        );
        $self->{table}->put($row, 0, $label);

        my $cb = $self->{table}->Optionmenu(
            -variable => \$self->{config}{$name},
            -options  => [$self->{range}{$name}[0] .. $self->{range}{$name}[1]],
            -command => sub { $self->config_changed },
        );
        $self->{table}->put($row, 1, $cb);
        $self->{widgets}{$name} = $cb;
    }
}

sub config_changed {
    my ($self) = @_;

    if ($self->{autotidy}) {
        $self->run_tidy;
    }
}


sub update_config {
    my ($self) = @_;
    #my $name = 'indent-columns';
    #$self->{config}{$name} = $self->{widgets}{$name}->get;
}

sub create_text_widget {
    my ($self) = @_;

    $self->{text} = $self->{top}->Text(
        -state => 'normal',
        -font => ['fixed', 12],
    );
    $self->{text}->pack(-fill => 'both', -expand => 1);
}

sub show_open {
    my ($self) = @_;

    my $start_dir = getcwd();
    my $file_selector = $self->{top}->FileSelect(-directory => $start_dir);
    my $filename = $file_selector->Show;
    $self->load_perl_file($filename);
}

sub load_perl_file {
    my ($self, $filename) = @_;

    if ($filename and -f $filename) {
        if (open my $fh, '<', $filename) {
            local $/ = undef;
            my $content = <$fh>;
            $self->{text}->delete("0.0", 'end');
            $self->{text}->insert("0.0", $content);
        } else {
            print "TODO: Report error $! for '$filename'\n";
        }
    }
}

sub get_rc {
    my ($self) = @_;

    $self->update_config;

    my $rc = '';
    while (my ($name, $value) = each %{$self->{config}}) {
        $rc .= "--$name=$value\n";
    }
    for my $name (keys %{$self->{flags}}) {
        $rc .= "--$name\n";
    }
    #print $rc;
    return $rc;
}

sub run_tidy {
    my ($self) = @_;
    #print Dumper \%skip;
    #
    my $rc = $self->get_rc();



( run in 2.817 seconds using v1.01-cache-2.11-cpan-9581c071862 )