diff options
author | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-29 01:06:26 +0000 |
---|---|---|
committer | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-29 01:06:26 +0000 |
commit | f7c58408fa17ea3f97af00d138f602e32df25d28 (patch) | |
tree | 61764c7952067f00505011ad0c2ddc7f1c13262a /chrome | |
parent | 9b152e9e9265f792ebcd0ba5301fd3f8bd36e58f (diff) | |
download | chromium_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.h | 7 | ||||
-rw-r--r-- | chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc | 22 | ||||
-rw-r--r-- | chrome/browser/ui/gtk/tabs/tab_renderer_gtk.h | 13 | ||||
-rw-r--r-- | chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc | 2 | ||||
-rw-r--r-- | chrome/browser/ui/gtk/tabs/tab_strip_gtk.h | 2 |
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: |