blob: 80fa6366d57b4352ef04ecae1b014cfc342de7e2 [file] [log] [blame]
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001// 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/print_settings_initializer.h"
6
7#include <algorithm>
8#include <cmath>
9#include <string>
10
11#include "base/i18n/time_formatting.h"
Torne (Richard Coles)7d4cd472013-06-19 11:58:07 +010012#include "base/strings/string_number_conversions.h"
Torne (Richard Coles)868fa2f2013-06-11 10:57:03 +010013#include "base/strings/utf_string_conversions.h"
Ben Murdocheb525c52013-07-10 11:40:50 +010014#include "base/time/time.h"
Torne (Richard Coles)58218062012-11-14 11:43:16 +000015#include "base/values.h"
Torne (Richard Coles)58218062012-11-14 11:43:16 +000016#include "printing/print_job_constants.h"
17#include "printing/print_settings.h"
18#include "printing/units.h"
19#include "ui/base/text/text_elider.h"
Ben Murdoch7dbb3d52013-07-17 14:55:54 +010020#include "url/gurl.h"
Torne (Richard Coles)58218062012-11-14 11:43:16 +000021
22using base::DictionaryValue;
23
24namespace printing {
25
26void PrintSettingsInitializer::InitHeaderFooterStrings(
27 const DictionaryValue& job_settings,
28 PrintSettings* print_settings) {
29 if (!job_settings.GetBoolean(kSettingHeaderFooterEnabled,
30 &print_settings->display_header_footer)) {
31 NOTREACHED();
32 }
33 if (!print_settings->display_header_footer)
34 return;
35
36 string16 date = base::TimeFormatShortDateNumeric(base::Time::Now());
37 string16 title;
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000038 string16 url;
Torne (Richard Coles)58218062012-11-14 11:43:16 +000039 if (!job_settings.GetString(kSettingHeaderFooterTitle, &title) ||
40 !job_settings.GetString(kSettingHeaderFooterURL, &url)) {
41 NOTREACHED();
42 }
43
Torne (Richard Coles)58218062012-11-14 11:43:16 +000044 print_settings->date = date;
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000045 print_settings->title = title;
46 print_settings->url = ui::ElideUrl(GURL(url), gfx::Font(), 0, std::string());
Torne (Richard Coles)58218062012-11-14 11:43:16 +000047}
48
49} // namespace printing