App-Codit
view release on metacpan or search on metacpan
lib/App/Codit/Plugins/SearchReplace.pm view on Meta::CPAN
my $mode = $_;
push @menu, [command => $mode,
-command => sub { $searchmode = $mode },
];
}
$mb->configure(-menu => $mb->Menu(
-menuitems => \@menu,
));
my $sc = $page->Frame(
-relief => 'groove',
-borderwidth => 2,
)->pack(@padding, -fill => 'x');
$sc->gridColumnconfigure(0, -weight => 2);
$sc->gridColumnconfigure(1, -weight => 2);
$sc->Button(
-command => ['Find', $self],
-text => 'Find',
-width => 8,
)->grid(@padding, -column => 0, -row => 0, -sticky => 'ew');
$sc->Button(
-command => ['Clear', $self],
-text => 'Clear',
-width => 8,
)->grid(@padding, -column => 1, -row => 0, -sticky => 'ew');
$sc->Button(
-command => ['Replace', $self],
-text => 'Replace',
-width => 8,
)->grid(@padding, -column => 0, -row => 1, -sticky => 'ew');
$sc->Button(
-command => ['Skip', $self],
-text => 'Skip',
-width => 8,
)->grid(@padding, -column => 1, -row => 1, -sticky => 'ew');
my $tf = $page->Frame(
-relief => 'groove',
-borderwidth => 2,
)->pack(@padding, -expand => 1, -fill => 'both');
$tf->gridColumnconfigure(0, -weight => 2);
$tf->gridColumnconfigure(1, -weight => 2);
$tf->gridRowconfigure(1, -weight => 2);
$tf->Button(
-text => 'Previous',
-command => ['BrowsePrevious', $self],
-width => 8,
)->grid(@padding, -column => 0, -row => 0, -sticky => 'ew');
$tf->Button(
-text => 'Next',
-command => ['BrowseNext', $self],
-width => 8,
)->grid(@padding, -column => 1, -row => 0, -sticky => 'ew');
my $results = $tf->Scrolled('ITree',
-height => 4,
-browsecmd => ['Select', $self],
-scrollbars => 'osoe',
-separator => '@',
)->grid(@padding, -column => 0, -columnspan => 2, -row => 1, -sticky => 'nsew');
$results->autosetmode;
$self->{RESULTSLIST} = $results;
$self->cmdHookAfter('doc_select', 'ShowResults', $self);
return $self;
}
sub BrowseNext {
my $self = shift;
my $list = $self->list;
my ($sel) = $list->infoSelection;
#select the first hit if no selection is set
unless (defined $sel) {
$sel = $self->SelectFirst;
return
}
return unless defined $sel;
#select the first hit is the last hit is selected
my $last = $self->GetLast;
if ($self->IsSelected($last)) {
$sel = $self->SelectFirst;
return
}
my ($name, $index) = split(/@/, $sel);
if (defined $index) {
my $next = $list->infoNext($sel);
return unless defined $next;
my ($nname, $nindex) = split(/@/, $next);
unless (defined $nindex) {
my @d = $list->infoChildren($nname);
if (@d) {
$self->Select($d[0]);
return
}
} else {
$self->Select($next);
}
}
}
sub BrowsePrevious {
my $self = shift;
my $list = $self->list;
my ($sel) = $list->infoSelection;
#select the last hit if no selection is set
unless (defined $sel) {
$self->SelectLast;
return
}
return unless defined $sel;
#select the last hit is the first hit is selected
my $first = $self->GetFirst;
if ($self->IsSelected($first)) {
$self->SelectLast;
( run in 1.039 second using v1.01-cache-2.11-cpan-df04353d9ac )