Commit d1cfebd3 authored by Jeremy Chinsen's avatar Jeremy Chinsen Committed by Commit Bot

Add helper function GetInsetSizes() to PDFiumEngine.

Currently PDFiumEngine::EnlargePage() and PDFiumEngine::InsetPage()
have common logic for retrieving the inset sizes given the current
layout and position of the page in the document.

This CL adds PDFiumEngine::GetInsetSizes() which extracts the logic for
retrieving insets sizes and puts it into a helper function. This helps
manage the complexity of PDFiumEngine.

Change-Id: I2aabba1f08770dbc16e033c64607627675ff0b58
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715904
Commit-Queue: Jeremy Chinsen <chinsenj@google.com>
Reviewed-by: default avatarLei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#680188}
parent 87040434
......@@ -2833,17 +2833,24 @@ pp::Size PDFiumEngine::GetPageSize(int index) {
return size;
}
void PDFiumEngine::EnlargePage(size_t page_index,
size_t num_of_pages,
pp::Size* page_size) {
draw_utils::PageInsetSizes PDFiumEngine::GetInsetSizes(
size_t page_index,
size_t num_of_pages) const {
DCHECK_LT(page_index, num_of_pages);
draw_utils::PageInsetSizes inset_sizes = kSingleViewInsets;
if (two_up_view_) {
inset_sizes = draw_utils::GetPageInsetsForTwoUpView(
return draw_utils::GetPageInsetsForTwoUpView(
page_index, num_of_pages, kSingleViewInsets, kHorizontalSeparator);
}
return kSingleViewInsets;
}
void PDFiumEngine::EnlargePage(size_t page_index,
size_t num_of_pages,
pp::Size* page_size) const {
draw_utils::PageInsetSizes inset_sizes =
GetInsetSizes(page_index, num_of_pages);
page_size->Enlarge(inset_sizes.left + inset_sizes.right,
inset_sizes.top + inset_sizes.bottom);
}
......@@ -2851,15 +2858,9 @@ void PDFiumEngine::EnlargePage(size_t page_index,
void PDFiumEngine::InsetPage(size_t page_index,
size_t num_of_pages,
double multiplier,
pp::Rect* rect) {
DCHECK_LT(page_index, num_of_pages);
draw_utils::PageInsetSizes inset_sizes = kSingleViewInsets;
if (two_up_view_) {
inset_sizes = draw_utils::GetPageInsetsForTwoUpView(
page_index, num_of_pages, kSingleViewInsets, kHorizontalSeparator);
}
pp::Rect* rect) const {
draw_utils::PageInsetSizes inset_sizes =
GetInsetSizes(page_index, num_of_pages);
rect->Inset(static_cast<int>(ceil(inset_sizes.left * multiplier)),
static_cast<int>(ceil(inset_sizes.top * multiplier)),
static_cast<int>(ceil(inset_sizes.right * multiplier)),
......
......@@ -41,6 +41,7 @@ class PDFiumDocument;
namespace draw_utils {
class ShadowMatrix;
struct PageInsetSizes;
}
class PDFiumEngine : public PDFEngine,
......@@ -267,18 +268,26 @@ class PDFiumEngine : public PDFEngine,
// PDFiumPage because we might not have that structure when we need this.
pp::Size GetPageSize(int index);
// Helper function for getting the inset sizes for the current layout. If
// |two_up_view_| is true, the configuration of inset sizes depends on
// the position of the page, specified by |page_index| and |num_of_pages|.
draw_utils::PageInsetSizes GetInsetSizes(size_t page_index,
size_t num_of_pages) const;
// If |two_up_view_| is false, enlarges |page_size| with inset sizes for
// single-view. If |two_up_view_| is true, gets the appropriate two-up view
// inset sizes for the position of the page (dependent on |page_index| and
// |num_of_pages|) and then enlarges |page_size|.
void EnlargePage(size_t page_index, size_t num_of_pages, pp::Size* page_size);
// single-view. If |two_up_view_| is true, calls GetInsetSizes() with
// |page_index| and |num_of_pages|, and uses the returned inset sizes to
// enlarge |page_size|.
void EnlargePage(size_t page_index,
size_t num_of_pages,
pp::Size* page_size) const;
// Similar to EnlargePage(), but insets a |rect|. Also multiplies the inset
// sizes by |multiplier|, using the ceiling of the result.
void InsetPage(size_t page_index,
size_t num_of_pages,
double multiplier,
pp::Rect* rect);
pp::Rect* rect) const;
void GetAllScreenRectsUnion(const std::vector<PDFiumRange>& rect_range,
const pp::Point& offset_point,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment