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

Side by Side Diff: chrome/renderer/print_web_view_helper_mac.mm

Issue 7348010: Added Header and Footer support using Skia (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Initialized vars Created 9 years, 4 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 #import <AppKit/AppKit.h> 7 #import <AppKit/AppKit.h>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/mac/scoped_nsautorelease_pool.h" 10 #include "base/mac/scoped_nsautorelease_pool.h"
(...skipping 17 matching lines...) Expand all
28 WebFrame* frame) { 28 WebFrame* frame) {
29 printing::NativeMetafile metafile; 29 printing::NativeMetafile metafile;
30 if (!metafile.Init()) 30 if (!metafile.Init())
31 return; 31 return;
32 32
33 float scale_factor = frame->getPrintPageShrink(params.page_number); 33 float scale_factor = frame->getPrintPageShrink(params.page_number);
34 int page_number = params.page_number; 34 int page_number = params.page_number;
35 35
36 // Render page for printing. 36 // Render page for printing.
37 gfx::Rect content_area(params.params.printable_size); 37 gfx::Rect content_area(params.params.printable_size);
38 params.display_header_footer = false;
38 RenderPage(params.params.printable_size, content_area, scale_factor, 39 RenderPage(params.params.printable_size, content_area, scale_factor,
39 page_number, frame, &metafile); 40 page_number, frame, &metafile);
40 metafile.FinishDocument(); 41 metafile.FinishDocument();
41 42
42 PrintHostMsg_DidPrintPage_Params page_params; 43 PrintHostMsg_DidPrintPage_Params page_params;
43 page_params.data_size = metafile.GetDataSize(); 44 page_params.data_size = metafile.GetDataSize();
44 page_params.page_number = page_number; 45 page_params.page_number = page_number;
45 page_params.document_cookie = params.params.document_cookie; 46 page_params.document_cookie = params.params.document_cookie;
46 page_params.actual_shrink = scale_factor; 47 page_params.actual_shrink = scale_factor;
47 page_params.page_size = params.params.page_size; 48 page_params.page_size = params.params.page_size;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 #else 130 #else
130 bool success = metafile->StartPage(page_size, content_area, scale_factor); 131 bool success = metafile->StartPage(page_size, content_area, scale_factor);
131 DCHECK(success); 132 DCHECK(success);
132 // printPage can create autoreleased references to |context|. PDF contexts 133 // printPage can create autoreleased references to |context|. PDF contexts
133 // don't write all their data until they are destroyed, so we need to make 134 // don't write all their data until they are destroyed, so we need to make
134 // certain that there are no lingering references. 135 // certain that there are no lingering references.
135 base::mac::ScopedNSAutoreleasePool pool; 136 base::mac::ScopedNSAutoreleasePool pool;
136 CGContextRef cgContext = metafile->context(); 137 CGContextRef cgContext = metafile->context();
137 CGContextRef canvasPtr = cgContext; 138 CGContextRef canvasPtr = cgContext;
138 #endif 139 #endif
139 frame->printPage(page_number, canvasPtr); 140 float webkit_scale_factor = frame->printPage(page_number, canvasPtr);
141 #if defined(USE_SKIA)
142 PrintMsg_Print_Params printParams = print_preview_context_.print_params();
143 if (printParams.display_header_footer) {
144 PageSizeMargins page_layout_in_points;
145 GetPageSizeAndMarginsInPoints(frame, page_number, printParams,
146 &page_layout_in_points);
147 // |page_number| is 0-based, so 1 is added.
148 PrintHeaderAndFooter(device, canvas.get(), page_number + 1,
149 print_preview_context_.total_page_count(),
150 webkit_scale_factor, page_layout_in_points,
151 *header_footer_info_);
152 }
153 #endif // USE_SKIA
140 } 154 }
141 155
142 // Done printing. Close the device context to retrieve the compiled metafile. 156 // Done printing. Close the device context to retrieve the compiled metafile.
143 metafile->FinishPage(); 157 metafile->FinishPage();
144 } 158 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698