diff options
author | thestig@google.com <thestig@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-03 21:13:16 +0000 |
---|---|---|
committer | thestig@google.com <thestig@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-03 21:13:16 +0000 |
commit | 393fb93afa9f860680d6a6078b75699d651e777d (patch) | |
tree | a71bb09c586432ee74c7e5cc8a8d0cd5a86945cf | |
parent | f5b50b81cdf4a883c1eba35394b7b2191179d246 (diff) | |
download | chromium_src-393fb93afa9f860680d6a6078b75699d651e777d.zip chromium_src-393fb93afa9f860680d6a6078b75699d651e777d.tar.gz chromium_src-393fb93afa9f860680d6a6078b75699d651e777d.tar.bz2 |
Merge app/gfx/gtk_util into base/gfx/gtk_util.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/118174
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17535 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | app/app.gyp | 2 | ||||
-rw-r--r-- | app/gfx/gtk_util.cc | 41 | ||||
-rw-r--r-- | app/gfx/gtk_util.h | 21 | ||||
-rw-r--r-- | app/resource_bundle_linux.cc | 1 | ||||
-rw-r--r-- | base/gfx/gtk_util.cc | 30 | ||||
-rw-r--r-- | base/gfx/gtk_util.h | 7 | ||||
-rw-r--r-- | chrome/browser/browser_theme_provider_gtk.cc | 2 | ||||
-rw-r--r-- | chrome/browser/gtk/bookmark_bar_gtk.cc | 1 | ||||
-rw-r--r-- | chrome/browser/gtk/bookmark_menu_controller_gtk.cc | 2 | ||||
-rw-r--r-- | chrome/browser/gtk/hung_renderer_dialog_gtk.cc | 2 | ||||
-rw-r--r-- | chrome/browser/gtk/infobar_gtk.cc | 1 | ||||
-rw-r--r-- | chrome/browser/gtk/menu_gtk.cc | 2 | ||||
-rw-r--r-- | chrome/browser/gtk/nine_box.cc | 1 | ||||
-rw-r--r-- | chrome/browser/gtk/tabs/dragged_tab_gtk.cc | 2 |
14 files changed, 42 insertions, 73 deletions
diff --git a/app/app.gyp b/app/app.gyp index 4a4c29b..3d1d0a5 100644 --- a/app/app.gyp +++ b/app/app.gyp @@ -77,8 +77,6 @@ 'gfx/color_utils.cc', 'gfx/color_utils.h', 'gfx/favicon_size.h', - 'gfx/gtk_util.cc', - 'gfx/gtk_util.h', 'gfx/icon_util.cc', 'gfx/icon_util.h', 'gfx/insets.h', diff --git a/app/gfx/gtk_util.cc b/app/gfx/gtk_util.cc deleted file mode 100644 index e2c5ba4..0000000 --- a/app/gfx/gtk_util.cc +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "app/gfx/gtk_util.h" - -#include "base/linux_util.h" -#include "third_party/skia/include/core/SkBitmap.h" - -namespace { - -void FreePixels(guchar* pixels, gpointer data) { - free(data); -} - -} // namespace - -namespace gfx { - -GdkPixbuf* GdkPixbufFromSkBitmap(const SkBitmap* bitmap) { - bitmap->lockPixels(); - int width = bitmap->width(); - int height = bitmap->height(); - int stride = bitmap->rowBytes(); - const guchar* orig_data = static_cast<guchar*>(bitmap->getPixels()); - guchar* data = base::BGRAToRGBA(orig_data, width, height, stride); - - // This pixbuf takes ownership of our malloc()ed data and will - // free it for us when it is destroyed. - GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data( - data, - GDK_COLORSPACE_RGB, // The only colorspace gtk supports. - true, // There is an alpha channel. - 8, - width, height, stride, &FreePixels, data); - - bitmap->unlockPixels(); - return pixbuf; -} - -} // namespace gfx diff --git a/app/gfx/gtk_util.h b/app/gfx/gtk_util.h deleted file mode 100644 index 471d7f2..0000000 --- a/app/gfx/gtk_util.h +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef APP_GFX_GTK_UTIL_H_ -#define APP_GFX_GTK_UTIL_H_ - -#include <gtk/gtk.h> - -typedef struct _GdkPixbuf GdkPixbuf; -class SkBitmap; - -namespace gfx { - -// Convert and copy a SkBitmap to a GdkPixbuf. NOTE: this uses BGRAToRGBA, so -// it is an expensive operation. -GdkPixbuf* GdkPixbufFromSkBitmap(const SkBitmap* bitmap); - -} // namespace gfx - -#endif // APP_GFX_GTK_UTIL_H_ diff --git a/app/resource_bundle_linux.cc b/app/resource_bundle_linux.cc index e27c7b6..f886eca 100644 --- a/app/resource_bundle_linux.cc +++ b/app/resource_bundle_linux.cc @@ -8,7 +8,6 @@ #include "app/app_paths.h" #include "app/gfx/font.h" -#include "app/gfx/gtk_util.h" #include "app/l10n_util.h" #include "base/base_paths.h" #include "base/data_pack.h" diff --git a/base/gfx/gtk_util.cc b/base/gfx/gtk_util.cc index 03acfbf..005ec54 100644 --- a/base/gfx/gtk_util.cc +++ b/base/gfx/gtk_util.cc @@ -9,13 +9,43 @@ #include <stdlib.h> #include "base/gfx/rect.h" +#include "base/linux_util.h" +#include "third_party/skia/include/core/SkBitmap.h" +namespace { + +void FreePixels(guchar* pixels, gpointer data) { + free(data); +} + +} // namespace namespace gfx { const GdkColor kGdkWhite = GDK_COLOR_RGB(0xff, 0xff, 0xff); const GdkColor kGdkBlack = GDK_COLOR_RGB(0x00, 0x00, 0x00); const GdkColor kGdkGreen = GDK_COLOR_RGB(0x00, 0xff, 0x00); +GdkPixbuf* GdkPixbufFromSkBitmap(const SkBitmap* bitmap) { + bitmap->lockPixels(); + int width = bitmap->width(); + int height = bitmap->height(); + int stride = bitmap->rowBytes(); + const guchar* orig_data = static_cast<guchar*>(bitmap->getPixels()); + guchar* data = base::BGRAToRGBA(orig_data, width, height, stride); + + // This pixbuf takes ownership of our malloc()ed data and will + // free it for us when it is destroyed. + GdkPixbuf* pixbuf = gdk_pixbuf_new_from_data( + data, + GDK_COLORSPACE_RGB, // The only colorspace gtk supports. + true, // There is an alpha channel. + 8, + width, height, stride, &FreePixels, data); + + bitmap->unlockPixels(); + return pixbuf; +} + void SubtractRectanglesFromRegion(GdkRegion* region, const std::vector<Rect>& cutouts) { for (size_t i = 0; i < cutouts.size(); ++i) { diff --git a/base/gfx/gtk_util.h b/base/gfx/gtk_util.h index 0d21216..c219dab 100644 --- a/base/gfx/gtk_util.h +++ b/base/gfx/gtk_util.h @@ -13,8 +13,11 @@ #include "base/scoped_ptr.h" typedef struct _GdkColor GdkColor; +typedef struct _GdkPixbuf GdkPixbuf; typedef struct _GdkRegion GdkRegion; +class SkBitmap; + // Define a macro for creating GdkColors from RGB values. This is a macro to // allow static construction of literals, etc. Use this like: // GdkColor white = GDK_COLOR_RGB(0xff, 0xff, 0xff); @@ -28,6 +31,10 @@ extern const GdkColor kGdkWhite; extern const GdkColor kGdkBlack; extern const GdkColor kGdkGreen; +// Convert and copy a SkBitmap to a GdkPixbuf. NOTE: this uses BGRAToRGBA, so +// it is an expensive operation. +GdkPixbuf* GdkPixbufFromSkBitmap(const SkBitmap* bitmap); + // Modify the given region by subtracting the given rectangles. void SubtractRectanglesFromRegion(GdkRegion* region, const std::vector<Rect>& cutouts); diff --git a/chrome/browser/browser_theme_provider_gtk.cc b/chrome/browser/browser_theme_provider_gtk.cc index 0908d78..84ad293 100644 --- a/chrome/browser/browser_theme_provider_gtk.cc +++ b/chrome/browser/browser_theme_provider_gtk.cc @@ -4,7 +4,7 @@ #include "chrome/browser/browser_theme_provider.h" -#include "app/gfx/gtk_util.h" +#include "base/gfx/gtk_util.h" #include "base/logging.h" GdkPixbuf* BrowserThemeProvider::GetPixbufNamed(int id) { diff --git a/chrome/browser/gtk/bookmark_bar_gtk.cc b/chrome/browser/gtk/bookmark_bar_gtk.cc index 354d55d..9fd896c 100644 --- a/chrome/browser/gtk/bookmark_bar_gtk.cc +++ b/chrome/browser/gtk/bookmark_bar_gtk.cc @@ -4,7 +4,6 @@ #include "chrome/browser/gtk/bookmark_bar_gtk.h" -#include "app/gfx/gtk_util.h" #include "app/gfx/text_elider.h" #include "app/l10n_util.h" #include "app/resource_bundle.h" diff --git a/chrome/browser/gtk/bookmark_menu_controller_gtk.cc b/chrome/browser/gtk/bookmark_menu_controller_gtk.cc index f94ef7f..0b4a60a 100644 --- a/chrome/browser/gtk/bookmark_menu_controller_gtk.cc +++ b/chrome/browser/gtk/bookmark_menu_controller_gtk.cc @@ -6,9 +6,9 @@ #include <gtk/gtk.h> -#include "app/gfx/gtk_util.h" #include "app/l10n_util.h" #include "app/resource_bundle.h" +#include "base/gfx/gtk_util.h" #include "base/string_util.h" #include "chrome/browser/bookmarks/bookmark_context_menu.h" #include "chrome/browser/gtk/menu_gtk.h" diff --git a/chrome/browser/gtk/hung_renderer_dialog_gtk.cc b/chrome/browser/gtk/hung_renderer_dialog_gtk.cc index 0f16cf0..254336d 100644 --- a/chrome/browser/gtk/hung_renderer_dialog_gtk.cc +++ b/chrome/browser/gtk/hung_renderer_dialog_gtk.cc @@ -6,9 +6,9 @@ #include <gtk/gtk.h> -#include "app/gfx/gtk_util.h" #include "app/l10n_util.h" #include "app/resource_bundle.h" +#include "base/gfx/gtk_util.h" #include "base/process_util.h" #include "chrome/browser/browser_list.h" #include "chrome/common/logging_chrome.h" diff --git a/chrome/browser/gtk/infobar_gtk.cc b/chrome/browser/gtk/infobar_gtk.cc index 1b8734b..fbf6b49 100644 --- a/chrome/browser/gtk/infobar_gtk.cc +++ b/chrome/browser/gtk/infobar_gtk.cc @@ -6,7 +6,6 @@ #include <gtk/gtk.h> -#include "app/gfx/gtk_util.h" #include "base/gfx/gtk_util.h" #include "base/string_util.h" #include "chrome/browser/gtk/custom_button.h" diff --git a/chrome/browser/gtk/menu_gtk.cc b/chrome/browser/gtk/menu_gtk.cc index dc1be83..2721843 100644 --- a/chrome/browser/gtk/menu_gtk.cc +++ b/chrome/browser/gtk/menu_gtk.cc @@ -4,8 +4,8 @@ #include "chrome/browser/gtk/menu_gtk.h" -#include "app/gfx/gtk_util.h" #include "app/l10n_util.h" +#include "base/gfx/gtk_util.h" #include "base/logging.h" #include "base/stl_util-inl.h" #include "base/string_util.h" diff --git a/chrome/browser/gtk/nine_box.cc b/chrome/browser/gtk/nine_box.cc index e1f3aa6..6a380ca 100644 --- a/chrome/browser/gtk/nine_box.cc +++ b/chrome/browser/gtk/nine_box.cc @@ -4,7 +4,6 @@ #include "chrome/browser/gtk/nine_box.h" -#include "app/gfx/gtk_util.h" #include "app/resource_bundle.h" #include "app/theme_provider.h" #include "base/gfx/gtk_util.h" diff --git a/chrome/browser/gtk/tabs/dragged_tab_gtk.cc b/chrome/browser/gtk/tabs/dragged_tab_gtk.cc index 3963eac..48413ef 100644 --- a/chrome/browser/gtk/tabs/dragged_tab_gtk.cc +++ b/chrome/browser/gtk/tabs/dragged_tab_gtk.cc @@ -7,7 +7,7 @@ #include <gdk/gdk.h> #include "app/gfx/canvas.h" -#include "app/gfx/gtk_util.h" +#include "base/gfx/gtk_util.h" #include "chrome/browser/tab_contents/tab_contents.h" #include "chrome/browser/tabs/tab_strip_model.h" #include "chrome/browser/gtk/tabs/tab_renderer_gtk.h" |