diff options
author | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-27 01:39:13 +0000 |
---|---|---|
committer | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-27 01:39:13 +0000 |
commit | 8b9a8f156c4f0038012718378dab89416731f2f5 (patch) | |
tree | 22e90a98d3d1f3773c6cb952d35cea7000342378 /views/view.h | |
parent | dd29fbe689b366ac754837d5b2f2956650cf6e45 (diff) | |
download | chromium_src-8b9a8f156c4f0038012718378dab89416731f2f5.zip chromium_src-8b9a8f156c4f0038012718378dab89416731f2f5.tar.gz chromium_src-8b9a8f156c4f0038012718378dab89416731f2f5.tar.bz2 |
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
Diffstat (limited to 'views/view.h')
-rw-r--r-- | views/view.h | 22 |
1 files changed, 13 insertions, 9 deletions
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. |