diff options
author | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-18 05:45:51 +0000 |
---|---|---|
committer | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-18 05:45:51 +0000 |
commit | f2da4b06dd189750cf2cd1db687b1106dce38ee8 (patch) | |
tree | 331027ffd36e5ffd618892e75b78abfedb627028 /printing/emf_win.cc | |
parent | c8477a432601854d4e8e85a85cbbbf79af723ad2 (diff) | |
download | chromium_src-f2da4b06dd189750cf2cd1db687b1106dce38ee8.zip chromium_src-f2da4b06dd189750cf2cd1db687b1106dce38ee8.tar.gz chromium_src-f2da4b06dd189750cf2cd1db687b1106dce38ee8.tar.bz2 |
Revert 78666 - Cleanup NativeMetafile (win) interface and EMF class.
- Rename CreateDc to Init() and remove unused argument (all non-test calls were CreateDc(NULL, NULL). [This matches cross platform interface.]
- Remove CreateFileBackedDc from the NativeMetafile interface and make InitToFile() in the EMF class.
- Remove CreateFromFile from the NativeMetafile interface and make it InitFromFile() in the EMF class.
- Move the CloseEmf method into the destructor, making the Emf class a use once class (matches actual use).
BUG=NONE
TEST=NONE
Review URL: http://codereview.chromium.org/6695013
TBR=vandebo@chromium.org
Review URL: http://codereview.chromium.org/6712030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78669 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'printing/emf_win.cc')
-rw-r--r-- | printing/emf_win.cc | 42 |
1 files changed, 26 insertions, 16 deletions
diff --git a/printing/emf_win.cc b/printing/emf_win.cc index 7e3dbeb..6fea291 100644 --- a/printing/emf_win.cc +++ b/printing/emf_win.cc @@ -50,39 +50,41 @@ Emf::Emf() : emf_(NULL), hdc_(NULL) { } Emf::~Emf() { - DCHECK(!hdc_); - if (emf_) - DeleteEnhMetaFile(emf_); + CloseEmf(); + DCHECK(!emf_ && !hdc_); } -bool Emf::InitToFile(const FilePath& metafile_path) { +bool Emf::InitFromData(const void* src_buffer, uint32 src_buffer_size) { DCHECK(!emf_ && !hdc_); - hdc_ = CreateEnhMetaFile(NULL, metafile_path.value().c_str(), NULL, NULL); - DCHECK(hdc_); - return hdc_ != NULL; + emf_ = SetEnhMetaFileBits(src_buffer_size, + reinterpret_cast<const BYTE*>(src_buffer)); + return emf_ != NULL; } -bool Emf::InitFromFile(const FilePath& metafile_path) { +bool Emf::CreateDc(HDC sibling, const RECT* rect) { DCHECK(!emf_ && !hdc_); - emf_ = GetEnhMetaFile(metafile_path.value().c_str()); - DCHECK(emf_); - return emf_ != NULL; + hdc_ = CreateEnhMetaFile(sibling, NULL, rect, NULL); + DCHECK(hdc_); + return hdc_ != NULL; } -bool Emf::Init() { +bool Emf::CreateFileBackedDc(HDC sibling, const RECT* rect, + const FilePath& path) { DCHECK(!emf_ && !hdc_); - hdc_ = CreateEnhMetaFile(NULL, NULL, NULL, NULL); + DCHECK(!path.empty()); + hdc_ = CreateEnhMetaFile(sibling, path.value().c_str(), rect, NULL); DCHECK(hdc_); return hdc_ != NULL; } -bool Emf::InitFromData(const void* src_buffer, uint32 src_buffer_size) { +bool Emf::CreateFromFile(const FilePath& metafile_path) { DCHECK(!emf_ && !hdc_); - emf_ = SetEnhMetaFileBits(src_buffer_size, - reinterpret_cast<const BYTE*>(src_buffer)); + emf_ = GetEnhMetaFile(metafile_path.value().c_str()); + DCHECK(emf_); return emf_ != NULL; } + bool Emf::Close() { DCHECK(!emf_ && hdc_); emf_ = CloseEnhMetaFile(hdc_); @@ -91,6 +93,14 @@ bool Emf::Close() { return emf_ != NULL; } +void Emf::CloseEmf() { + DCHECK(!hdc_); + if (emf_) { + DeleteEnhMetaFile(emf_); + emf_ = NULL; + } +} + bool Emf::Playback(HDC hdc, const RECT* rect) const { DCHECK(emf_ && !hdc_); RECT bounds; |