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

Unified Diff: gfx/scoped_image.h

Issue 6246027: Move src/gfx/ to src/ui/gfx... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gfx/scoped_cg_context_state_mac.h ('k') | gfx/scoped_image_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_
« no previous file with comments | « gfx/scoped_cg_context_state_mac.h ('k') | gfx/scoped_image_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698