diff options
author | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-03 01:27:52 +0000 |
---|---|---|
committer | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-03 01:27:52 +0000 |
commit | 0d9a805b30282e7aa64d6571f0571d412d128a45 (patch) | |
tree | f1c4a62f572854d16e13111d8616d783d732a67a /chrome/browser/themes | |
parent | 92fd95bb535f1e275c479a48b6a68deb28492c53 (diff) | |
download | chromium_src-0d9a805b30282e7aa64d6571f0571d412d128a45.zip chromium_src-0d9a805b30282e7aa64d6571f0571d412d128a45.tar.gz chromium_src-0d9a805b30282e7aa64d6571f0571d412d128a45.tar.bz2 |
GTK: Port omnibox drawing from GdkGC interface to cairo.
GdkGC is deprecated and will be removed in gtk3 and cairo should be faster anyway. This uses the new CairoCachedSurface in gfx::Image.
BUG=79722
TEST=none
Review URL: http://codereview.chromium.org/8781001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112839 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/themes')
-rw-r--r-- | chrome/browser/themes/theme_service.cc | 14 | ||||
-rw-r--r-- | chrome/browser/themes/theme_service.h | 11 |
2 files changed, 25 insertions, 0 deletions
diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc index 34a36e5..210e663 100644 --- a/chrome/browser/themes/theme_service.cc +++ b/chrome/browser/themes/theme_service.cc @@ -220,6 +220,20 @@ void ThemeService::Init(Profile* profile) { LoadThemePrefs(); } +const gfx::Image* ThemeService::GetImageNamed(int id) const { + DCHECK(CalledOnValidThread()); + + const gfx::Image* image = NULL; + + if (theme_pack_.get()) + image = theme_pack_->GetImageNamed(id); + + if (!image) + image = &rb_.GetNativeImageNamed(id); + + return image; +} + SkBitmap* ThemeService::GetBitmapNamed(int id) const { DCHECK(CalledOnValidThread()); diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h index 2534f71..a6c01c4 100644 --- a/chrome/browser/themes/theme_service.h +++ b/chrome/browser/themes/theme_service.h @@ -28,6 +28,10 @@ namespace color_utils { struct HSL; } +namespace gfx { +class Image; +} + namespace ui { class ResourceBundle; } @@ -140,6 +144,13 @@ class ThemeService : public base::NonThreadSafe, REPEAT = 3 } Tiling; + // Returns a cross platform image for an id. + // + // TODO(erg): Make this a virtual, exposed through ui::ThemeProvider and the + // main way to get theme properties out of the theme provider since it's + // cross platform. + const gfx::Image* GetImageNamed(int id) const; + // ui::ThemeProvider implementation. virtual void Init(Profile* profile) OVERRIDE; virtual SkBitmap* GetBitmapNamed(int id) const OVERRIDE; |