internal PDFSearchResult SetCurrentSearchPosition(PDFSearchResult previous_search_result_placeholder) { PDFRendererControl pdf_renderer_control = GetPDFRendererControl(); if (pdf_renderer_control != null) { foreach (PDFTextItem pdf_text_item in Children.OfType <PDFTextItem>()) { ASSERT.Test(pdf_text_item != null); PDFSearchResult search_result_placeholder = pdf_text_item.Tag as PDFSearchResult; // If there was no previous search location, we use the first we find // If the last text item was the match position, use this next one if (previous_search_result_placeholder == search_result_placeholder) { pdf_renderer_control.SelectPage(page); pdf_text_item.BringIntoView(); pdf_text_item.Opacity = 0; Animations.Fade(pdf_text_item, 0.1, 1); return(search_result_placeholder); } } } return(null); }
internal PDFSearchResult SetNextSearchPosition(PDFSearchResult previous_search_result_placeholder) { bool have_found_last_search_item = false; PDFRendererControl pdf_renderer_control = GetPDFRendererControl(); if (pdf_renderer_control != null) { foreach (PDFTextItem pdf_text_item in Children.OfType <PDFTextItem>()) { ASSERT.Test(pdf_text_item != null); PDFSearchResult search_result_placeholder = pdf_text_item.Tag as PDFSearchResult; // If there was no previous search location, we use the first we find // If the last text item was the match position, use this next one if (null == previous_search_result_placeholder || have_found_last_search_item && previous_search_result_placeholder != search_result_placeholder) { pdf_renderer_control.SelectPage(page); pdf_text_item.BringIntoView(); pdf_text_item.Opacity = 0; Animations.Fade(pdf_text_item, 0.1, 1); return(search_result_placeholder); } // If we have just found the last match, flag that the next one is the successor match if (previous_search_result_placeholder == search_result_placeholder) { have_found_last_search_item = true; } } } // We have not managed to find a search position if we get this far return(null); }