예제 #1
0
        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);
        }
예제 #2
0
        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);
        }