Index: chrome/browser/themes/custom_theme_supplier.h |
diff --git a/chrome/browser/themes/custom_theme_supplier.h b/chrome/browser/themes/custom_theme_supplier.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..98e3988e06bf17951dc86013b1deed6a21951eb7 |
--- /dev/null |
+++ b/chrome/browser/themes/custom_theme_supplier.h |
@@ -0,0 +1,79 @@ |
+// Copyright 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_BROWSER_THEMES_CUSTOM_THEME_SUPPLIER_H_ |
+#define CHROME_BROWSER_THEMES_CUSTOM_THEME_SUPPLIER_H_ |
+ |
+#include "base/memory/ref_counted.h" |
+#include "content/public/browser/browser_thread.h" |
+#include "third_party/skia/include/core/SkColor.h" |
+#include "ui/base/layout.h" |
+ |
+namespace base { |
+class RefCountedMemory; |
+} |
+ |
+namespace color_utils { |
+struct HSL; |
+} |
+ |
+namespace gfx { |
+class Image; |
+} |
+ |
+class CustomThemeSupplier : public base::RefCountedThreadSafe< |
+ CustomThemeSupplier, content::BrowserThread::DeleteOnFileThread> { |
+ public: |
+ enum ThemeType { |
+ EXTENSION, |
+ NATIVE_X11, |
+ MANAGED_USER_THEME, |
+ }; |
+ |
+ explicit CustomThemeSupplier(ThemeType type); |
+ |
+ ThemeType GetThemeType() const { |
+ return theme_type_; |
+ } |
+ |
+ // Called when the theme starts being used. |
+ virtual void StartUsingTheme(); |
+ |
+ // Called when the theme is not used anymore. |
+ virtual void StopUsingTheme(); |
+ |
+ // If the theme specifies data for the corresponding |id|, return true and |
pkotwicz
2013/07/19 18:33:20
Nit: returns true
Adrian Kuegel
2013/07/22 12:58:08
I also changed "write" to "writes", and replaced "
|
+ // write the corresponding value to the output parameter. These functions |
+ // should not return the default data. These methods should only be called |
+ // from the UI thread. |
+ virtual bool GetTint(int id, color_utils::HSL* hsl) const; |
+ virtual bool GetColor(int id, SkColor* color) const; |
+ virtual bool GetDisplayProperty(int id, int* result) const; |
+ |
+ // Returns the theme image for |id|. Returns an empty image if no image is |
+ // found for |id|. |
+ virtual gfx::Image GetImageNamed(int id); |
+ |
+ // Whether this theme provides an image for |id|. |
+ virtual bool HasCustomImage(int id) const; |
+ |
+ // Returns the raw PNG encoded data for IDR_THEME_NTP_*. This method is only |
pkotwicz
2013/07/19 18:33:20
Nit: This method only works
Adrian Kuegel
2013/07/22 12:58:08
Done.
|
+ // supposed to work for the NTP attribution and background resources. |
+ virtual base::RefCountedMemory* GetRawData( |
+ int id, ui::ScaleFactor scale_factor) const; |
+ |
+ protected: |
+ virtual ~CustomThemeSupplier(); |
+ |
+ private: |
+ friend struct content::BrowserThread::DeleteOnThread< |
+ content::BrowserThread::FILE>; |
+ friend class base::DeleteHelper<CustomThemeSupplier>; |
+ |
+ ThemeType theme_type_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(CustomThemeSupplier); |
+}; |
+ |
+#endif // CHROME_BROWSER_THEMES_CUSTOM_THEME_SUPPLIER_H_ |