From 8b9a8f156c4f0038012718378dab89416731f2f5 Mon Sep 17 00:00:00 2001 From: "pkasting@chromium.org" Date: Tue, 27 Jul 2010 01:39:13 +0000 Subject: Make theme change notifications auto-propagate through the view hierarchy, instead of forcing subclasses to manually call their superclass implementation. This fixes some problems where not all views would get notified of a theme change. Make naming for theme and locale changes consistent and clear. BUG=50107 TEST=none Review URL: http://codereview.chromium.org/2878055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53736 0039d316-1c4b-4281-b951-d872f2087c98 --- views/view.h | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'views/view.h') diff --git a/views/view.h b/views/view.h index fcd0ee7..22c38d0 100644 --- a/views/view.h +++ b/views/view.h @@ -976,15 +976,15 @@ class View : public AcceleratorTarget { // Called when the UI theme has changed, overriding allows individual Views to // do special cleanup and processing (such as dropping resource caches). - // Subclasses that override this method must call the base class - // implementation to ensure child views are processed. - // Can only be called by subclasses. To dispatch a theme changed notification, - // call this method on the RootView. - virtual void ThemeChanged(); + // To dispatch a theme changed notification, call + // RootView::NotifyThemeChanged(). + virtual void OnThemeChanged() { } // Called when the locale has changed, overriding allows individual Views to // update locale-dependent strings. - virtual void LocaleChanged() { } + // To dispatch a locale changed notification, call + // RootView::NotifyLocaleChanged(). + virtual void OnLocaleChanged() { } #ifndef NDEBUG // Returns true if the View is currently processing a paint. @@ -1138,9 +1138,13 @@ class View : public AcceleratorTarget { gfx::Point start_pt; }; - // Propagates locale changed notification from the root view downside. - // Invokes LocaleChanged() for every view in the hierarchy. - virtual void NotifyLocaleChanged(); + // Used to propagate theme changed notifications from the root view to all + // views in the hierarchy. + virtual void PropagateThemeChanged(); + + // Used to propagate locale changed notifications from the root view to all + // views in the hierarchy. + virtual void PropagateLocaleChanged(); // RootView invokes these. These in turn invoke the appropriate OnMouseXXX // method. If a drag is detected, DoDrag is invoked. -- cgit v1.1