printed_page.cc revision f8ee788a64d60abd8f2d742a5fdedde054ecd910
1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "printing/printed_page.h"
6
7namespace printing {
8
9PrintedPage::PrintedPage(int page_number,
10                         Metafile* metafile,
11                         const gfx::Size& page_size,
12                         const gfx::Rect& page_content_rect)
13    : page_number_(page_number),
14      metafile_(metafile),
15#if defined(OS_WIN)
16      shrink_factor_(0.0f),
17#endif  // OS_WIN
18      page_size_(page_size),
19      page_content_rect_(page_content_rect) {
20}
21
22PrintedPage::~PrintedPage() {
23}
24
25const Metafile* PrintedPage::metafile() const {
26  return metafile_.get();
27}
28
29void PrintedPage::GetCenteredPageContentRect(
30    const gfx::Size& paper_size, gfx::Rect* content_rect) const {
31  *content_rect = page_content_rect();
32  if (paper_size.width() > page_size().width()) {
33    int diff = paper_size.width() - page_size().width();
34    content_rect->set_x(content_rect->x() + diff / 2);
35  }
36  if (paper_size.height() > page_size().height()) {
37    int diff = paper_size.height() - page_size().height();
38    content_rect->set_y(content_rect->y() + diff / 2);
39  }
40}
41
42}  // namespace printing
43