summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorerg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-29 01:06:26 +0000
committererg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-29 01:06:26 +0000
commitf7c58408fa17ea3f97af00d138f602e32df25d28 (patch)
tree61764c7952067f00505011ad0c2ddc7f1c13262a /chrome
parent9b152e9e9265f792ebcd0ba5301fd3f8bd36e58f (diff)
downloadchromium_src-f7c58408fa17ea3f97af00d138f602e32df25d28.zip
chromium_src-f7c58408fa17ea3f97af00d138f602e32df25d28.tar.gz
chromium_src-f7c58408fa17ea3f97af00d138f602e32df25d28.tar.bz2
Multiprofile: Change TabRendererGtk interface so we can observe the correct ThemeService.
BUG=87457 TEST=none Review URL: http://codereview.chromium.org/7276048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90898 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/ui/gtk/tabs/tab_gtk.h7
-rw-r--r--chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc22
-rw-r--r--chrome/browser/ui/gtk/tabs/tab_renderer_gtk.h13
-rw-r--r--chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc2
-rw-r--r--chrome/browser/ui/gtk/tabs/tab_strip_gtk.h2
5 files changed, 21 insertions, 25 deletions
diff --git a/chrome/browser/ui/gtk/tabs/tab_gtk.h b/chrome/browser/ui/gtk/tabs/tab_gtk.h
index 6b670ad..bfa64e0 100644
--- a/chrome/browser/ui/gtk/tabs/tab_gtk.h
+++ b/chrome/browser/ui/gtk/tabs/tab_gtk.h
@@ -13,15 +13,12 @@
#include "ui/base/gtk/gtk_signal.h"
class TabStripMenuController;
+class ThemeService;
namespace gfx {
class Path;
}
-namespace ui {
-class ThemeProvider;
-}
-
class TabGtk : public TabRendererGtk,
public MessageLoopForUI::Observer {
public:
@@ -89,7 +86,7 @@ class TabGtk : public TabRendererGtk,
virtual bool HasAvailableDragActions() const = 0;
// Returns the theme provider for icons and colors.
- virtual ui::ThemeProvider* GetThemeProvider() = 0;
+ virtual ThemeService* GetThemeProvider() = 0;
// Returns a context menu controller for |tab|. Caller takes ownership of
// the pointed object.
diff --git a/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc b/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc
index 8a314b4..7b812df 100644
--- a/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc
+++ b/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc
@@ -95,10 +95,10 @@ gfx::Rect GetWidgetBoundsRelativeToParent(GtkWidget* parent,
} // namespace
TabRendererGtk::LoadingAnimation::Data::Data(
- ui::ThemeProvider* theme_provider) {
+ ThemeService* theme_service) {
// The loading animation image is a strip of states. Each state must be
// square, so the height must divide the width evenly.
- loading_animation_frames = theme_provider->GetBitmapNamed(IDR_THROBBER);
+ loading_animation_frames = theme_service->GetBitmapNamed(IDR_THROBBER);
DCHECK(loading_animation_frames);
DCHECK_EQ(loading_animation_frames->width() %
loading_animation_frames->height(), 0);
@@ -107,7 +107,7 @@ TabRendererGtk::LoadingAnimation::Data::Data(
loading_animation_frames->height();
waiting_animation_frames =
- theme_provider->GetBitmapNamed(IDR_THROBBER_WAITING);
+ theme_service->GetBitmapNamed(IDR_THROBBER_WAITING);
DCHECK(waiting_animation_frames);
DCHECK_EQ(waiting_animation_frames->width() %
waiting_animation_frames->height(), 0);
@@ -150,14 +150,14 @@ SkColor TabRendererGtk::unselected_title_color_ = SkColorSetRGB(64, 64, 64);
// TabRendererGtk::LoadingAnimation, public:
//
TabRendererGtk::LoadingAnimation::LoadingAnimation(
- ui::ThemeProvider* theme_provider)
- : data_(new Data(theme_provider)),
- theme_service_(theme_provider),
+ ThemeService* theme_service)
+ : data_(new Data(theme_service)),
+ theme_service_(theme_service),
animation_state_(ANIMATION_NONE),
animation_frame_(0) {
registrar_.Add(this,
NotificationType::BROWSER_THEME_CHANGED,
- NotificationService::AllSources());
+ Source<ThemeService>(theme_service_));
}
TabRendererGtk::LoadingAnimation::LoadingAnimation(
@@ -249,14 +249,15 @@ class TabRendererGtk::FaviconCrashAnimation : public ui::LinearAnimation,
////////////////////////////////////////////////////////////////////////////////
// TabRendererGtk, public:
-TabRendererGtk::TabRendererGtk(ui::ThemeProvider* theme_provider)
+TabRendererGtk::TabRendererGtk(ThemeService* theme_service)
: showing_icon_(false),
showing_close_button_(false),
favicon_hiding_offset_(0),
should_display_crashed_favicon_(false),
- loading_animation_(theme_provider),
+ loading_animation_(theme_service),
background_offset_x_(0),
background_offset_y_(kInactiveTabBackgroundOffsetY),
+ theme_service_(theme_service),
close_button_color_(0) {
InitResources();
@@ -273,7 +274,7 @@ TabRendererGtk::TabRendererGtk(ui::ThemeProvider* theme_provider)
hover_animation_->SetSlideDuration(kHoverDurationMs);
registrar_.Add(this, NotificationType::BROWSER_THEME_CHANGED,
- NotificationService::AllSources());
+ Source<ThemeService>(theme_service_));
}
TabRendererGtk::~TabRendererGtk() {
@@ -290,7 +291,6 @@ void TabRendererGtk::UpdateData(TabContents* contents,
DCHECK(contents);
TabContentsWrapper* wrapper =
TabContentsWrapper::GetCurrentWrapperForContents(contents);
- theme_service_ = GtkThemeService::GetFrom(contents->profile());
if (!loading_only) {
data_.title = contents->GetTitle();
diff --git a/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.h b/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.h
index c99f7cf..a8a36a3 100644
--- a/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.h
+++ b/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.h
@@ -27,12 +27,11 @@ class Size;
} // namespace gfx
class CustomDrawButton;
-class GtkThemeService;
class TabContents;
+class ThemeService;
namespace ui {
class SlideAnimation;
-class ThemeProvider;
class ThrobAnimation;
}
@@ -49,7 +48,7 @@ class TabRendererGtk : public ui::AnimationDelegate,
class LoadingAnimation : public NotificationObserver {
public:
struct Data {
- explicit Data(ui::ThemeProvider* theme_provider);
+ explicit Data(ThemeService* theme_service);
Data(int loading, int waiting, int waiting_to_loading);
SkBitmap* waiting_animation_frames;
@@ -59,7 +58,7 @@ class TabRendererGtk : public ui::AnimationDelegate,
int waiting_to_loading_frame_count_ratio;
};
- explicit LoadingAnimation(ui::ThemeProvider* theme_provider);
+ explicit LoadingAnimation(ThemeService* theme_service);
// Used in unit tests to inject specific data.
explicit LoadingAnimation(const LoadingAnimation::Data& data);
@@ -93,7 +92,7 @@ class TabRendererGtk : public ui::AnimationDelegate,
NotificationRegistrar registrar_;
// Gives us our throbber images.
- ui::ThemeProvider* theme_service_;
+ ThemeService* theme_service_;
// Current state of the animation.
AnimationState animation_state_;
@@ -104,7 +103,7 @@ class TabRendererGtk : public ui::AnimationDelegate,
DISALLOW_COPY_AND_ASSIGN(LoadingAnimation);
};
- explicit TabRendererGtk(ui::ThemeProvider* theme_provider);
+ explicit TabRendererGtk(ThemeService* theme_service);
virtual ~TabRendererGtk();
// TabContents. If only the loading state was updated, the loading_only flag
@@ -442,7 +441,7 @@ class TabRendererGtk : public ui::AnimationDelegate,
// alignment in the BrowserTitlebar.
int background_offset_y_;
- GtkThemeService* theme_service_;
+ ThemeService* theme_service_;
// The close button.
scoped_ptr<CustomDrawButton> close_button_;
diff --git a/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc b/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc
index 4a079e6..5441cfc 100644
--- a/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc
+++ b/chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc
@@ -1255,7 +1255,7 @@ bool TabStripGtk::HasAvailableDragActions() const {
return model_->delegate()->GetDragActions() != 0;
}
-ui::ThemeProvider* TabStripGtk::GetThemeProvider() {
+ThemeService* TabStripGtk::GetThemeProvider() {
return theme_service_;
}
diff --git a/chrome/browser/ui/gtk/tabs/tab_strip_gtk.h b/chrome/browser/ui/gtk/tabs/tab_strip_gtk.h
index c6da777..cc47446 100644
--- a/chrome/browser/ui/gtk/tabs/tab_strip_gtk.h
+++ b/chrome/browser/ui/gtk/tabs/tab_strip_gtk.h
@@ -143,7 +143,7 @@ class TabStripGtk : public TabStripModelObserver,
virtual void ContinueDrag(GdkDragContext* context);
virtual bool EndDrag(bool canceled);
virtual bool HasAvailableDragActions() const;
- virtual ui::ThemeProvider* GetThemeProvider();
+ virtual ThemeService* GetThemeProvider();
virtual TabStripMenuController* GetTabStripMenuControllerForTab(TabGtk* tab);
// MessageLoop::Observer implementation: