Chromium Code Reviews| Index: printing/emf_win.cc |
| diff --git a/printing/emf_win.cc b/printing/emf_win.cc |
| index f2b22fa13f8b865b4c01924254fade83077b0a1b..ff7c304b435093fbe89f859cfdfe9ac807487362 100644 |
| --- a/printing/emf_win.cc |
| +++ b/printing/emf_win.cc |
| @@ -68,7 +68,8 @@ bool Emf::CreateDc(HDC sibling, const RECT* rect) { |
| return hdc_ != NULL; |
| } |
| -bool Emf::CreateFileBackedDc(HDC sibling, const RECT* rect, |
| +bool Emf::CreateFileBackedDc(HDC sibling, |
|
vandebo (ex-Chrome)
2011/03/14 20:24:25
Extra line break.
dpapad
2011/03/14 22:15:12
Done.
|
| + const RECT* rect, |
| const FilePath& path) { |
| DCHECK(!emf_ && !hdc_); |
| DCHECK(!path.empty()); |
| @@ -85,7 +86,7 @@ bool Emf::CreateFromFile(const FilePath& metafile_path) { |
| } |
| -bool Emf::CloseDc() { |
| +bool Emf::Close() { |
| DCHECK(!emf_ && hdc_); |
| emf_ = CloseEnhMetaFile(hdc_); |
| DCHECK(emf_); |
| @@ -106,7 +107,7 @@ bool Emf::Playback(HDC hdc, const RECT* rect) const { |
| RECT bounds; |
| if (!rect) { |
| // Get the natural bounds of the EMF buffer. |
| - bounds = GetBounds().ToRECT(); |
| + bounds = GetPageBounds(1).ToRECT(); |
| rect = &bounds; |
| } |
| return PlayEnhMetaFile(hdc, emf_, rect) != 0; |
| @@ -123,10 +124,10 @@ bool Emf::SafePlayback(HDC context) const { |
| emf_, |
| &Emf::SafePlaybackProc, |
| reinterpret_cast<void*>(&base_matrix), |
| - &GetBounds().ToRECT()) != 0; |
| + &GetPageBounds(1).ToRECT()) != 0; |
| } |
| -gfx::Rect Emf::GetBounds() const { |
| +gfx::Rect Emf::GetPageBounds(unsigned int page_number) const { |
| DCHECK(emf_ && !hdc_); |
|
vandebo (ex-Chrome)
2011/03/14 20:24:25
Add DCHECK_EQ(page_number, 1);
dpapad
2011/03/14 22:15:12
Done. static_cast is necessary to avoid compilatio
|
| ENHMETAHEADER header; |
| if (GetEnhMetaFileHeader(emf_, sizeof(header), &header) != sizeof(header)) { |
| @@ -173,8 +174,8 @@ bool Emf::GetData(std::vector<uint8>* buffer) const { |
| return true; |
| } |
| -bool Emf::SaveTo(const std::wstring& filename) const { |
| - HANDLE file = CreateFile(filename.c_str(), GENERIC_WRITE, |
| +bool Emf::SaveTo(const FilePath& file_path) const { |
| + HANDLE file = CreateFile(file_path.value().c_str(), GENERIC_WRITE, |
| FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, |
| CREATE_ALWAYS, 0, NULL); |
| if (file == INVALID_HANDLE_VALUE) |
| @@ -194,6 +195,24 @@ bool Emf::SaveTo(const std::wstring& filename) const { |
| return success; |
| } |
| +bool Emf::StartPage() { |
|
vandebo (ex-Chrome)
2011/03/14 20:24:25
No reason to move these methods.
dpapad
2011/03/14 22:15:12
Done.
vandebo (ex-Chrome)
2011/03/14 22:55:05
The CR still shows them moved. They used to be be
|
| + DCHECK(hdc_); |
| + if (!hdc_) |
| + return false; |
| + PageBreakRecord record(PageBreakRecord::START_PAGE); |
| + return !!GdiComment(hdc_, sizeof(record), |
| + reinterpret_cast<const BYTE *>(&record)); |
| +} |
| + |
| +bool Emf::FinishPage() { |
| + DCHECK(hdc_); |
| + if (!hdc_) |
| + return false; |
| + PageBreakRecord record(PageBreakRecord::END_PAGE); |
| + return !!GdiComment(hdc_, sizeof(record), |
| + reinterpret_cast<const BYTE *>(&record)); |
| +} |
| + |
| int CALLBACK Emf::SafePlaybackProc(HDC hdc, |
| HANDLETABLE* handle_table, |
| const ENHMETARECORD* record, |
| @@ -409,25 +428,6 @@ bool Emf::Record::SafePlayback(const XFORM* base_matrix) const { |
| return res; |
| } |
| -bool Emf::StartPage() { |
| - DCHECK(hdc_); |
| - if (!hdc_) |
| - return false; |
| - PageBreakRecord record(PageBreakRecord::START_PAGE); |
| - return !!GdiComment(hdc_, sizeof(record), |
| - reinterpret_cast<const BYTE *>(&record)); |
| -} |
| - |
| -bool Emf::EndPage() { |
| - DCHECK(hdc_); |
| - if (!hdc_) |
| - return false; |
| - PageBreakRecord record(PageBreakRecord::END_PAGE); |
| - return !!GdiComment(hdc_, sizeof(record), |
| - reinterpret_cast<const BYTE *>(&record)); |
| -} |
| - |
| - |
| Emf::Enumerator::Enumerator(const Emf& emf, HDC context, const RECT* rect) { |
| context_.handle_table = NULL; |
| context_.objects_count = 0; |