| Index: chrome/browser/printing/page_overlays.cc
|
| ===================================================================
|
| --- chrome/browser/printing/page_overlays.cc (revision 20026)
|
| +++ chrome/browser/printing/page_overlays.cc (working copy)
|
| @@ -1,206 +0,0 @@
|
| -// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/printing/page_overlays.h"
|
| -
|
| -#include "app/gfx/text_elider.h"
|
| -#include "base/logging.h"
|
| -#include "base/string_util.h"
|
| -#include "chrome/browser/printing/printed_document.h"
|
| -#include "chrome/browser/printing/printed_page.h"
|
| -
|
| -namespace {
|
| -
|
| -// Replaces a subpart of a string by other value, and returns the position right
|
| -// after the new value.
|
| -size_t ReplaceKey(std::wstring* string,
|
| - size_t offset,
|
| - size_t old_string_len,
|
| - const std::wstring& new_string) {
|
| - string->replace(offset, old_string_len, new_string);
|
| - return offset + new_string.size();
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -namespace printing {
|
| -
|
| -const wchar_t* const PageOverlays::kTitle = L"{title}";
|
| -const wchar_t* const PageOverlays::kTime = L"{time}";
|
| -const wchar_t* const PageOverlays::kDate = L"{date}";
|
| -const wchar_t* const PageOverlays::kPage = L"{page}";
|
| -const wchar_t* const PageOverlays::kPageCount = L"{pagecount}";
|
| -const wchar_t* const PageOverlays::kPageOnTotal = L"{pageontotal}";
|
| -const wchar_t* const PageOverlays::kUrl = L"{url}";
|
| -
|
| -PageOverlays::PageOverlays()
|
| - : top_left(kDate),
|
| - top_center(kTitle),
|
| - top_right(),
|
| - bottom_left(kUrl),
|
| - bottom_center(),
|
| - bottom_right(kPageOnTotal) {
|
| -}
|
| -
|
| -bool PageOverlays::Equals(const PageOverlays& rhs) const {
|
| - return top_left == rhs.top_left &&
|
| - top_center == rhs.top_center &&
|
| - top_right == rhs.top_right &&
|
| - bottom_left == rhs.bottom_left &&
|
| - bottom_center == rhs.bottom_center &&
|
| - bottom_right == rhs.bottom_right;
|
| -}
|
| -
|
| -const std::wstring& PageOverlays::GetOverlay(HorizontalPosition x,
|
| - VerticalPosition y) const {
|
| - switch (x) {
|
| - case LEFT:
|
| - switch (y) {
|
| - case TOP:
|
| - return top_left;
|
| - case BOTTOM:
|
| - return bottom_left;
|
| - }
|
| - break;
|
| - case CENTER:
|
| - switch (y) {
|
| - case TOP:
|
| - return top_center;
|
| - case BOTTOM:
|
| - return bottom_center;
|
| - }
|
| - break;
|
| - case RIGHT:
|
| - switch (y) {
|
| - case TOP:
|
| - return top_right;
|
| - case BOTTOM:
|
| - return bottom_right;
|
| - }
|
| - break;
|
| - }
|
| - NOTREACHED();
|
| - return EmptyWString();
|
| -}
|
| -
|
| -void PageOverlays::SetOverlay(HorizontalPosition x, VerticalPosition y,
|
| - std::wstring& input) {
|
| - switch (x) {
|
| - case LEFT:
|
| - switch (y) {
|
| - case TOP:
|
| - top_left = input;
|
| - break;
|
| - case BOTTOM:
|
| - bottom_left = input;
|
| - break;
|
| - default:
|
| - NOTREACHED();
|
| - break;
|
| - }
|
| - break;
|
| - case CENTER:
|
| - switch (y) {
|
| - case TOP:
|
| - top_center = input;
|
| - break;
|
| - case BOTTOM:
|
| - bottom_center = input;
|
| - break;
|
| - default:
|
| - NOTREACHED();
|
| - break;
|
| - }
|
| - break;
|
| - case RIGHT:
|
| - switch (y) {
|
| - case TOP:
|
| - top_right = input;
|
| - break;
|
| - case BOTTOM:
|
| - bottom_right = input;
|
| - break;
|
| - default:
|
| - NOTREACHED();
|
| - break;
|
| - }
|
| - break;
|
| - default:
|
| - NOTREACHED();
|
| - break;
|
| - }
|
| -}
|
| -
|
| -//static
|
| -std::wstring PageOverlays::ReplaceVariables(const std::wstring& input,
|
| - const PrintedDocument& document,
|
| - const PrintedPage& page) {
|
| - std::wstring output(input);
|
| - for (size_t offset = output.find(L'{', 0);
|
| - offset != std::wstring::npos;
|
| - offset = output.find(L'{', offset)) {
|
| -
|
| - if (0 == output.compare(offset,
|
| - wcslen(kTitle),
|
| - kTitle)) {
|
| - offset = ReplaceKey(&output,
|
| - offset,
|
| - wcslen(kTitle),
|
| - document.name());
|
| - } else if (0 == output.compare(offset,
|
| - wcslen(kTime),
|
| - kTime)) {
|
| - offset = ReplaceKey(&output,
|
| - offset,
|
| - wcslen(kTime),
|
| - document.time());
|
| - } else if (0 == output.compare(offset,
|
| - wcslen(kDate),
|
| - kDate)) {
|
| - offset = ReplaceKey(&output,
|
| - offset,
|
| - wcslen(kDate),
|
| - document.date());
|
| - } else if (0 == output.compare(offset,
|
| - wcslen(kPage),
|
| - kPage)) {
|
| - offset = ReplaceKey(&output,
|
| - offset,
|
| - wcslen(kPage),
|
| - IntToWString(page.page_number()));
|
| - } else if (0 == output.compare(offset,
|
| - wcslen(kPageCount),
|
| - kPageCount)) {
|
| - offset = ReplaceKey(&output,
|
| - offset,
|
| - wcslen(kPageCount),
|
| - IntToWString(document.page_count()));
|
| - } else if (0 == output.compare(offset,
|
| - wcslen(kPageOnTotal),
|
| - kPageOnTotal)) {
|
| - std::wstring replacement;
|
| - replacement = IntToWString(page.page_number());
|
| - replacement += L"/";
|
| - replacement += IntToWString(document.page_count());
|
| - offset = ReplaceKey(&output,
|
| - offset,
|
| - wcslen(kPageOnTotal),
|
| - replacement);
|
| - } else if (0 == output.compare(offset,
|
| - wcslen(kUrl),
|
| - kUrl)) {
|
| - // TODO(maruel): http://b/1126373 gfx::ElideUrl(document.url(), ...)
|
| - offset = ReplaceKey(&output,
|
| - offset,
|
| - wcslen(kUrl),
|
| - UTF8ToWide(document.url().spec()));
|
| - } else {
|
| - // There is just a { in the string.
|
| - ++offset;
|
| - }
|
| - }
|
| - return output;
|
| -}
|
| -
|
| -} // namespace printing
|
|
|