diff options
Diffstat (limited to 'xfa_test/pdf/pdfium/pdfium_range.h')
-rw-r--r-- | xfa_test/pdf/pdfium/pdfium_range.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/xfa_test/pdf/pdfium/pdfium_range.h b/xfa_test/pdf/pdfium/pdfium_range.h new file mode 100644 index 0000000000..ed8daf65bb --- /dev/null +++ b/xfa_test/pdf/pdfium/pdfium_range.h @@ -0,0 +1,54 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef PDF_PDFIUM_PDFIUM_RANGE_H_ +#define PDF_PDFIUM_PDFIUM_RANGE_H_ + +#include <string> +#include <vector> + +#include "base/strings/string16.h" +#include "pdf/pdfium/pdfium_page.h" +#include "ppapi/cpp/rect.h" + +namespace chrome_pdf { + +// Describes location of a string of characters. +class PDFiumRange { + public: + PDFiumRange(PDFiumPage* page, int char_index, int char_count); + ~PDFiumRange(); + + // Update how many characters are in the selection. Could be negative if + // backwards. + void SetCharCount(int char_count); + + int page_index() const { return page_->index(); } + int char_index() const { return char_index_; } + int char_count() const { return char_count_; } + + // Gets bounding rectangles of range in screen coordinates. + std::vector<pp::Rect> GetScreenRects(const pp::Point& offset, + double zoom, + int rotation); + + // Gets the string of characters in this range. + base::string16 GetText(); + + private: + PDFiumPage* page_; + // Index of first character. + int char_index_; + // How many characters are part of this range (negative if backwards). + int char_count_; + + // Cache of ScreenRect, and the associated variables used when caching it. + std::vector<pp::Rect> cached_screen_rects_; + pp::Point cached_screen_rects_offset_; + double cached_screen_rects_zoom_; +}; + +} // namespace chrome_pdf + +#endif // PDF_PDFIUM_PDFIUM_RANGE_H_ |