From e1834f63b1199b4efe8f103fa11e259cadc6a8b4 Mon Sep 17 00:00:00 2001 From: freesource Date: Tue, 28 Aug 2001 03:02:07 +0000 Subject: [PATCH] Search is getting there. --- BootRoot/YardBox.pm | 68 +++++++++++++++++++++++++++++---------------- 1 file changed, 44 insertions(+), 24 deletions(-) diff --git a/BootRoot/YardBox.pm b/BootRoot/YardBox.pm index 8ce4b93..4099aae 100644 --- a/BootRoot/YardBox.pm +++ b/BootRoot/YardBox.pm @@ -45,7 +45,6 @@ my $search_window; my $Shortcuts; my @entry; my $file_dialog; -my $blue; # for search #my $filesystem_type = "ext2"; #my $inode_size = 8192; @@ -962,8 +961,6 @@ sub yard_box { #_______________________________________ # Create the GtkText widget $text = new Gtk::Text( undef, undef ); - ##Gtk::Text->signal_connect_after("key-press-event" => \&Gtk::false); - $blue = Gtk::Gdk::Color->parse_color("blue"); $text->set_editable($true); $text->signal_connect("activate", sub { my $new_length = $text->get_length(); @@ -1189,14 +1186,41 @@ sub search { $submit_b->signal_connect( "clicked", sub { my $keywords = $search1->get_text(); - # There may be numbers, ofcourse. - if ($keywords && $keywords ne $old_keywords) { - undef $offset; - } - # rindex if ($search_backwards->active) { + if (!$offset) { + $offset = rindex($changed_text_from_template, $keywords); + if ($offset != -1) { + my $length = length($keywords); + $text->set_position($offset); + $text->get_chars($offset, $length); + $length = $length + $offset; + $text->select_region($offset, $length); + #print "$offset && $length\n"; + } + else { + + } + } + else { + $offset = $offset - 1; + $offset = rindex($changed_text_from_template, $keywords, + $offset); + if ($offset != -1) { + my $length = length($keywords); + $text->set_position($offset); + $text->get_chars($offset, $length); + $length = $length + $offset; + $text->select_region($offset,$length); + #print "$offset && $length\n"; + } + else { + + + } + } + } # index @@ -1204,15 +1228,13 @@ sub search { if (!$offset) { $offset = index($changed_text_from_template, $keywords); if ($offset != -1) { - $text->set_point($offset); my $length = length($keywords); - $text->forward_delete( $length ); - $text->insert( undef, $blue, undef, $keywords ); - - $length = $length + ($offset - 1); - my $stuff = $text->get_chars($offset, $length); - print "$offset && $length\n"; - #Gtk::Widget::drag_begin(widget, targets, actions, button, event) + $text->set_position($offset); + $text->get_chars($offset, $length); + $length = $length + $offset; + $text->select_region($offset, $length); + } + else { } } @@ -1221,20 +1243,18 @@ sub search { $offset = index($changed_text_from_template, $keywords, $offset); if ($offset != -1) { - $text->set_point($offset); my $length = length($keywords); - $text->forward_delete( $length ); - $text->insert( undef, $blue, undef, $keywords ); + $text->set_position($offset); + $text->get_chars($offset, $length); + $length = $length + $offset; + $text->select_region($offset,$length); + } + else { - $length = $length + ($offset - 1); - $text->get_chars($offset, $length); - print "$offset && $length\n"; } } - print "$offset\n" if $offset; - } $old_keywords = $keywords;