Index: chrome/browser/ui/libgtk2ui/native_theme_gtk2.h |
diff --git a/chrome/browser/ui/libgtk2ui/native_theme_gtk2.h b/chrome/browser/ui/libgtk2ui/native_theme_gtk2.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8d9a3abea6d8c0c954f4a8c1b1ec7da6a9043a62 |
--- /dev/null |
+++ b/chrome/browser/ui/libgtk2ui/native_theme_gtk2.h |
@@ -0,0 +1,60 @@ |
+// Copyright (c) 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_UI_LIBGTK2UI_NATIVE_THEME_GTK2_H_ |
+#define CHROME_BROWSER_UI_LIBGTK2UI_NATIVE_THEME_GTK2_H_ |
+ |
+#include "chrome/browser/ui/libgtk2ui/owned_widget_gtk2.h" |
+#include "ui/native_theme/native_theme_base.h" |
+ |
+typedef struct _GdkColor GdkColor; |
+typedef struct _GtkStyle GtkStyle; |
+typedef struct _GtkWidget GtkWidget; |
+ |
+namespace libgtk2ui { |
+ |
+// A version of NativeTheme that uses GTK2 supplied colours instead of the |
+// default aura colours. Analogue to NativeThemeWin, except that can't be |
+// compiled into the main chrome binary like the Windows code can. |
+class NativeThemeGtk2 : public ui::NativeThemeBase { |
+ public: |
+ static NativeThemeGtk2* instance(); |
+ |
+ // Overridden from ui::NativeThemeBase: |
+ virtual SkColor GetSystemColor(ColorId color_id) const OVERRIDE; |
+ virtual void PaintMenuPopupBackground( |
+ SkCanvas* canvas, |
+ const gfx::Size& size, |
+ const MenuBackgroundExtraParams& menu_background) const OVERRIDE; |
+ |
+ private: |
+ NativeThemeGtk2(); |
+ virtual ~NativeThemeGtk2(); |
+ |
+ // Implementation of GetSystemColor. |
+ GdkColor GetSystemGdkColor(ColorId color_id) const; |
+ |
+ // Returns styles associated with various widget types. |
+ GtkWidget* GetRealizedWindow() const; |
+ GtkStyle* GetWindowStyle() const; |
+ GtkStyle* GetEntryStyle() const; |
+ GtkStyle* GetLabelStyle() const; |
+ GtkStyle* GetButtonStyle() const; |
+ GtkStyle* GetMenuStyle() const; |
+ GtkStyle* GetMenuItemStyle() const; |
+ |
+ mutable GtkWidget* fake_window_; |
sky
2013/03/05 03:59:03
How come this one can't be an OwnedWidgetGtk too?
|
+ mutable OwnedWidgetGtk fake_entry_; |
+ mutable OwnedWidgetGtk fake_label_; |
+ mutable OwnedWidgetGtk fake_button_; |
+ |
+ mutable OwnedWidgetGtk fake_menu_; |
+ mutable GtkWidget* fake_menu_item_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(NativeThemeGtk2); |
+}; |
+ |
+} // namespace libgtk2ui |
+ |
+#endif // CHROME_BROWSER_UI_LIBGTK2UI_NATIVE_THEME_GTK2_H_ |