summaryrefslogtreecommitdiffstats
path: root/printing/page_overlays.h
diff options
context:
space:
mode:
Diffstat (limited to 'printing/page_overlays.h')
-rw-r--r--printing/page_overlays.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/printing/page_overlays.h b/printing/page_overlays.h
new file mode 100644
index 0000000..f30aa26
--- /dev/null
+++ b/printing/page_overlays.h
@@ -0,0 +1,80 @@
+// 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.
+
+#ifndef PRINTING_PAGE_OVERLAYS_H_
+#define PRINTING_PAGE_OVERLAYS_H_
+
+#include <string>
+
+namespace printing {
+
+class PrintedDocument;
+class PrintedPage;
+
+// Page's overlays, i.e. headers and footers. Contains the strings that will be
+// printed in the overlays, with actual values as variables. The variables are
+// replaced by their actual values with ReplaceVariables().
+class PageOverlays {
+ public:
+ // Position of the header/footer.
+ enum HorizontalPosition {
+ LEFT,
+ CENTER,
+ RIGHT,
+ };
+
+ // Position of the header/footer.
+ enum VerticalPosition {
+ TOP,
+ BOTTOM,
+ };
+
+ PageOverlays();
+
+ // Equality operator.
+ bool Equals(const PageOverlays& rhs) const;
+
+ // Returns the string of an overlay according to its x,y position.
+ const std::wstring& GetOverlay(HorizontalPosition x,
+ VerticalPosition y) const;
+
+ // Sets the string of an overlay according to its x,y position.
+ void SetOverlay(HorizontalPosition x, VerticalPosition y,
+ std::wstring& input);
+
+ // Replaces the variables in |input| with their actual values according to the
+ // properties of the current printed document and the current printed page.
+ static std::wstring ReplaceVariables(const std::wstring& input,
+ const PrintedDocument& document,
+ const PrintedPage& page);
+
+ // Keys that are dynamically replaced in the header and footer by their actual
+ // values.
+ // Web page's title.
+ static const wchar_t* const kTitle;
+ // Print job's start time.
+ static const wchar_t* const kTime;
+ // Print job's start date.
+ static const wchar_t* const kDate;
+ // Printed page's number.
+ static const wchar_t* const kPage;
+ // Print job's total page count.
+ static const wchar_t* const kPageCount;
+ // Printed page's number on total page count.
+ static const wchar_t* const kPageOnTotal;
+ // Web page's displayed url.
+ static const wchar_t* const kUrl;
+
+ // Actual headers and footers.
+ std::wstring top_left;
+ std::wstring top_center;
+ std::wstring top_right;
+ std::wstring bottom_left;
+ std::wstring bottom_center;
+ std::wstring bottom_right;
+};
+
+} // namespace printing
+
+#endif // PRINTING_PAGE_OVERLAYS_H_