Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(479)

Side by Side Diff: chrome/renderer/print_web_view_helper.cc

Issue 8227034: Change print setting conventions for margins to support more options. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix test compile Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/print_web_view_helper.h" 5 #include "chrome/renderer/print_web_view_helper.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 // too long. This will be removed soon. http://crbug.com/92000 157 // too long. This will be removed soon. http://crbug.com/92000
158 settings->margin_top = 0; 158 settings->margin_top = 0;
159 settings->margin_left = 0; 159 settings->margin_left = 0;
160 settings->printable_size.set_width(settings->page_size.width()); 160 settings->printable_size.set_width(settings->page_size.width());
161 settings->printable_size.set_height(settings->page_size.height()); 161 settings->printable_size.set_height(settings->page_size.height());
162 } 162 }
163 163
164 // Get the margins option selected and set custom margins appropriately. 164 // Get the margins option selected and set custom margins appropriately.
165 void SetCustomMarginsIfSelected(const DictionaryValue& job_settings, 165 void SetCustomMarginsIfSelected(const DictionaryValue& job_settings,
166 PrintMsg_PrintPages_Params* settings) { 166 PrintMsg_PrintPages_Params* settings) {
167 bool default_margins_selected; 167 int margin_type = printing::DEFAULT_MARGINS;
168 if (!job_settings.GetBoolean(printing::kSettingDefaultMarginsSelected, 168 if (!job_settings.GetInteger(printing::kSettingMarginsType, &margin_type)) {
169 &default_margins_selected)) {
170 NOTREACHED(); 169 NOTREACHED();
171 default_margins_selected = true;
172 } 170 }
173 171
174 if (default_margins_selected) 172 if (margin_type == printing::DEFAULT_MARGINS)
175 return; 173 return;
176 174
177 DictionaryValue* custom_margins;
178 if (!job_settings.GetDictionary(printing::kSettingMargins,
179 &custom_margins)) {
180 NOTREACHED();
181 return;
182 }
183
184 double custom_margin_top_in_points = 0; 175 double custom_margin_top_in_points = 0;
185 double custom_margin_left_in_points = 0; 176 double custom_margin_left_in_points = 0;
186 double custom_margin_right_in_points = 0; 177 double custom_margin_right_in_points = 0;
187 double custom_margin_bottom_in_points = 0; 178 double custom_margin_bottom_in_points = 0;
188 if (!custom_margins->GetDouble(printing::kSettingMarginTop, 179 if (margin_type == printing::CUSTOM_MARGINS) {
189 &custom_margin_top_in_points) || 180 DictionaryValue* custom_margins;
190 !custom_margins->GetDouble(printing::kSettingMarginLeft, 181 if (!job_settings.GetDictionary(printing::kSettingMarginsCustom,
191 &custom_margin_left_in_points) || 182 &custom_margins)) {
192 !custom_margins->GetDouble(printing::kSettingMarginRight, 183 NOTREACHED();
193 &custom_margin_right_in_points) || 184 return;
194 !custom_margins->GetDouble(printing::kSettingMarginBottom, 185 }
195 &custom_margin_bottom_in_points)) { 186 if (!custom_margins->GetDouble(printing::kSettingMarginTop,
196 NOTREACHED(); 187 &custom_margin_top_in_points) ||
197 return; 188 !custom_margins->GetDouble(printing::kSettingMarginLeft,
189 &custom_margin_left_in_points) ||
190 !custom_margins->GetDouble(printing::kSettingMarginRight,
191 &custom_margin_right_in_points) ||
192 !custom_margins->GetDouble(printing::kSettingMarginBottom,
193 &custom_margin_bottom_in_points)) {
194 NOTREACHED();
195 return;
196 }
198 } 197 }
199 198
200 int dpi = GetDPI(&settings->params); 199 int dpi = GetDPI(&settings->params);
201 double custom_margin_top_in_dots = ConvertUnitDouble( 200 double custom_margin_top_in_dots = ConvertUnitDouble(
202 custom_margin_top_in_points, printing::kPointsPerInch, dpi); 201 custom_margin_top_in_points, printing::kPointsPerInch, dpi);
203 double custom_margin_left_in_dots = ConvertUnitDouble( 202 double custom_margin_left_in_dots = ConvertUnitDouble(
204 custom_margin_left_in_points, printing::kPointsPerInch, dpi); 203 custom_margin_left_in_points, printing::kPointsPerInch, dpi);
205 double custom_margin_right_in_dots = ConvertUnitDouble( 204 double custom_margin_right_in_dots = ConvertUnitDouble(
206 custom_margin_right_in_points, printing::kPointsPerInch, dpi); 205 custom_margin_right_in_points, printing::kPointsPerInch, dpi);
207 double custom_margin_bottom_in_dots = ConvertUnitDouble( 206 double custom_margin_bottom_in_dots = ConvertUnitDouble(
(...skipping 1380 matching lines...) Expand 10 before | Expand all | Expand 10 after
1588 PrintWebViewHelper::PrintPreviewContext::GetPrintCanvasSize() const { 1587 PrintWebViewHelper::PrintPreviewContext::GetPrintCanvasSize() const {
1589 return prep_frame_view_->GetPrintCanvasSize(); 1588 return prep_frame_view_->GetPrintCanvasSize();
1590 } 1589 }
1591 1590
1592 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { 1591 void PrintWebViewHelper::PrintPreviewContext::ClearContext() {
1593 prep_frame_view_.reset(); 1592 prep_frame_view_.reset();
1594 metafile_.reset(); 1593 metafile_.reset();
1595 pages_to_render_.clear(); 1594 pages_to_render_.clear();
1596 error_ = PREVIEW_ERROR_NONE; 1595 error_ = PREVIEW_ERROR_NONE;
1597 } 1596 }
OLDNEW
« no previous file with comments | « chrome/browser/resources/print_preview/print_preview.js ('k') | chrome/renderer/print_web_view_helper_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698