1 // Copyright 2018 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.
5 #include "printing/nup_parameters.h"
10 #include "base/logging.h"
14 NupParameters::NupParameters() {
18 void NupParameters::Clear() {
20 num_pages_on_x_axis_ = 1;
21 num_pages_on_y_axis_ = 1;
25 bool NupParameters::IsSupported(int pages_per_sheet) {
26 // Supports N-up: 1 2 4 6 9 16
28 return pages_per_sheet == 1 || pages_per_sheet == 2 || pages_per_sheet == 4 ||
29 pages_per_sheet == 6 || pages_per_sheet == 9 || pages_per_sheet == 16;
32 void NupParameters::SetParameters(int pages_per_sheet,
33 bool is_source_landscape) {
34 DCHECK(IsSupported(pages_per_sheet));
36 switch (pages_per_sheet) {
38 num_pages_on_x_axis_ = 1;
39 num_pages_on_y_axis_ = 1;
42 if (!is_source_landscape) {
43 num_pages_on_x_axis_ = 2;
44 num_pages_on_y_axis_ = 1;
47 num_pages_on_x_axis_ = 1;
48 num_pages_on_y_axis_ = 2;
52 if (!is_source_landscape) {
53 num_pages_on_x_axis_ = 3;
54 num_pages_on_y_axis_ = 2;
57 num_pages_on_x_axis_ = 2;
58 num_pages_on_y_axis_ = 3;
64 num_pages_on_x_axis_ = std::sqrt(pages_per_sheet);
65 num_pages_on_y_axis_ = std::sqrt(pages_per_sheet);
66 if (is_source_landscape)
74 } // namespace printing