| Index: gfx/scoped_image.h
|
| ===================================================================
|
| --- gfx/scoped_image.h (revision 73487)
|
| +++ gfx/scoped_image.h (working copy)
|
| @@ -6,142 +6,7 @@
|
| #define GFX_SCOPED_IMAGE_H_
|
| #pragma once
|
|
|
| -#include "base/basictypes.h"
|
| -#include "build/build_config.h"
|
| -#include "gfx/native_widget_types.h"
|
| -#include "third_party/skia/include/core/SkBitmap.h"
|
| +#include "ui/gfx/scoped_image.h"
|
| +// TODO(sail): remove this file once all includes have been updated.
|
|
|
| -#if defined(OS_LINUX)
|
| -#include <glib-object.h>
|
| -#elif defined(OS_MACOSX)
|
| -#include "base/mac/mac_util.h"
|
| -#endif
|
| -
|
| -namespace gfx {
|
| -
|
| -namespace internal {
|
| -
|
| -// ScopedImage is class that encapsulates one of the three platform-specific
|
| -// images used: SkBitmap, NSImage, and GdkPixbuf. This is the abstract interface
|
| -// that all ScopedImages respond to. This wrapper expects to own the image it
|
| -// holds, unless it is Release()ed or Free()ed.
|
| -//
|
| -// This class is abstract and callers should use the specialized versions below,
|
| -// which are not in the internal namespace.
|
| -template <class ImageType>
|
| -class ScopedImage {
|
| - public:
|
| - virtual ~ScopedImage() {}
|
| -
|
| - // Frees the actual image that this boxes.
|
| - virtual void Free() = 0;
|
| -
|
| - // Returns the image that this boxes.
|
| - ImageType* Get() {
|
| - return image_;
|
| - }
|
| -
|
| - // Frees the current image and sets a new one.
|
| - void Set(ImageType* new_image) {
|
| - Free();
|
| - image_ = new_image;
|
| - }
|
| -
|
| - // Returns the image this boxes and relinquishes ownership.
|
| - ImageType* Release() {
|
| - ImageType* tmp = image_;
|
| - image_ = NULL;
|
| - return tmp;
|
| - }
|
| -
|
| - protected:
|
| - explicit ScopedImage(ImageType* image) : image_(image) {}
|
| - ImageType* image_;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(ScopedImage);
|
| -};
|
| -
|
| -} // namespace internal
|
| -
|
| -// Generic template.
|
| -template <class ImageType = gfx::NativeImageType>
|
| -class ScopedImage : public gfx::internal::ScopedImage<ImageType> {
|
| - public:
|
| - explicit ScopedImage(gfx::NativeImage image)
|
| - : gfx::internal::ScopedImage<ImageType>(image) {}
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(ScopedImage<ImageType>);
|
| -};
|
| -
|
| -// Specialization for SkBitmap on all platforms.
|
| -template <>
|
| -class ScopedImage<SkBitmap> : public gfx::internal::ScopedImage<SkBitmap> {
|
| - public:
|
| - explicit ScopedImage(SkBitmap* image)
|
| - : gfx::internal::ScopedImage<SkBitmap>(image) {}
|
| - virtual ~ScopedImage() {
|
| - Free();
|
| - }
|
| -
|
| - virtual void Free() {
|
| - delete image_;
|
| - image_ = NULL;
|
| - }
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(ScopedImage);
|
| -};
|
| -
|
| -// Specialization for the NSImage type on Mac OS X.
|
| -#if defined(OS_MACOSX)
|
| -template <>
|
| -class ScopedImage<NSImage> : public gfx::internal::ScopedImage<NSImage> {
|
| - public:
|
| - explicit ScopedImage(NSImage* image)
|
| - : gfx::internal::ScopedImage<NSImage>(image) {}
|
| - virtual ~ScopedImage() {
|
| - Free();
|
| - }
|
| -
|
| - virtual void Free() {
|
| - base::mac::NSObjectRelease(image_);
|
| - image_ = NULL;
|
| - }
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(ScopedImage);
|
| -};
|
| -#endif // defined(OS_MACOSX)
|
| -
|
| -// Specialization for the GdkPixbuf type on Linux.
|
| -#if defined(OS_LINUX)
|
| -template <>
|
| -class ScopedImage<GdkPixbuf> : public gfx::internal::ScopedImage<GdkPixbuf> {
|
| - public:
|
| - explicit ScopedImage(GdkPixbuf* image)
|
| - : gfx::internal::ScopedImage<GdkPixbuf>(image) {}
|
| - virtual ~ScopedImage() {
|
| - Free();
|
| - }
|
| -
|
| - virtual void Free() {
|
| - if (image_) {
|
| - g_object_unref(image_);
|
| - image_ = NULL;
|
| - }
|
| - }
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(ScopedImage);
|
| -};
|
| -#endif // defined(OS_LINUX)
|
| -
|
| -// Typedef ScopedNativeImage to the default template argument. This allows for
|
| -// easy exchange between gfx::NativeImage and a gfx::ScopedNativeImage.
|
| -typedef ScopedImage<> ScopedNativeImage;
|
| -
|
| -} // namespace gfx
|
| -
|
| #endif // GFX_SCOPED_IMAGE_H_
|
|
|