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

Side by Side Diff: printing/print_settings_initializer.cc

Issue 11359020: Print headers and footers with WebKit. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 1 month 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 "printing/print_settings_initializer.h" 5 #include "printing/print_settings_initializer.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <string> 9 #include <string>
10 10
(...skipping 17 matching lines...) Expand all
28 PrintSettings* print_settings) { 28 PrintSettings* print_settings) {
29 if (!job_settings.GetBoolean(kSettingHeaderFooterEnabled, 29 if (!job_settings.GetBoolean(kSettingHeaderFooterEnabled,
30 &print_settings->display_header_footer)) { 30 &print_settings->display_header_footer)) {
31 NOTREACHED(); 31 NOTREACHED();
32 } 32 }
33 if (!print_settings->display_header_footer) 33 if (!print_settings->display_header_footer)
34 return; 34 return;
35 35
36 string16 date = base::TimeFormatShortDateNumeric(base::Time::Now()); 36 string16 date = base::TimeFormatShortDateNumeric(base::Time::Now());
37 string16 title; 37 string16 title;
38 std::string url; 38 string16 url;
39 if (!job_settings.GetString(kSettingHeaderFooterTitle, &title) || 39 if (!job_settings.GetString(kSettingHeaderFooterTitle, &title) ||
40 !job_settings.GetString(kSettingHeaderFooterURL, &url)) { 40 !job_settings.GetString(kSettingHeaderFooterURL, &url)) {
41 NOTREACHED(); 41 NOTREACHED();
42 } 42 }
43 43
44 gfx::Font font(
45 kSettingHeaderFooterFontName,
46 ceil(ConvertPointsToPixelDouble(kSettingHeaderFooterFontSize)));
47 double segment_width = GetHeaderFooterSegmentWidth(ConvertUnitDouble(
48 print_settings->page_setup_device_units().physical_size().width(),
49 print_settings->device_units_per_inch(), kPixelsPerInch));
50 date = ui::ElideText(date, font, segment_width, ui::ELIDE_AT_END);
vandebo (ex-Chrome) 2012/11/06 23:01:32 As I recall, ElideText didn't work in the renderer
Vitaly Buka (NO REVIEWS) 2012/11/06 23:16:02 I use CSS "text-overflow: ellipsis;" On 2012/11/0
vandebo (ex-Chrome) 2012/11/06 23:23:44 Right, and as such, I think there's a bunch of mac
51 print_settings->date = date; 44 print_settings->date = date;
52 45 print_settings->title = title;
53 // Calculate the available title width. If the date string is not long 46 print_settings->url = url;
54 // enough, increase the available space for the title.
55 // Assumes there is no header text to RIGHT of title.
56 double date_width = font.GetStringWidth(date);
57 double max_title_width = std::min(2 * segment_width,
58 2 * (segment_width - date_width) +
59 segment_width);
60 print_settings->title =
61 ui::ElideText(title, font, max_title_width, ui::ELIDE_AT_END);
62
63 double max_url_width = 2 * segment_width;
64 GURL gurl(url);
65 print_settings->url = ui::ElideUrl(gurl, font, max_url_width, std::string());
66 } 47 }
67 48
68 } // namespace printing 49 } // namespace printing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698