summaryrefslogtreecommitdiffstats
path: root/gfx/scoped_image.h
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/scoped_image.h')
-rw-r--r--gfx/scoped_image.h139
1 files changed, 2 insertions, 137 deletions
diff --git a/gfx/scoped_image.h b/gfx/scoped_image.h
index 56e99b7..686f249 100644
--- a/gfx/scoped_image.h
+++ b/gfx/scoped_image.h
@@ -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"
-
-#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
+#include "ui/gfx/scoped_image.h"
+// TODO(sail): remove this file once all includes have been updated.
#endif // GFX_SCOPED_IMAGE_H_