| Index: chrome/browser/ui/libgtk2ui/gtk2_ui.h
|
| diff --git a/chrome/browser/ui/libgtk2ui/gtk2_ui.h b/chrome/browser/ui/libgtk2ui/gtk2_ui.h
|
| index 9c462f038ebe2ec5aa0b48eab59abe05062afdbe..381e6664f4a553cca9fdfd4d48dbffaafb1d610b 100644
|
| --- a/chrome/browser/ui/libgtk2ui/gtk2_ui.h
|
| +++ b/chrome/browser/ui/libgtk2ui/gtk2_ui.h
|
| @@ -14,10 +14,12 @@
|
| #include "chrome/browser/ui/libgtk2ui/libgtk2ui_export.h"
|
| #include "chrome/browser/ui/libgtk2ui/owned_widget_gtk2.h"
|
| #include "ui/gfx/color_utils.h"
|
| +#include "ui/gfx/geometry/insets.h"
|
| #include "ui/views/linux_ui/linux_ui.h"
|
| #include "ui/views/window/frame_buttons.h"
|
|
|
| typedef struct _GdkColor GdkColor;
|
| +typedef struct _GtkBorder GtkBorder;
|
| typedef struct _GtkStyle GtkStyle;
|
| typedef struct _GtkWidget GtkWidget;
|
|
|
| @@ -28,6 +30,7 @@ class Image;
|
| }
|
|
|
| namespace libgtk2ui {
|
| +class Gtk2Border;
|
| class GConfTitlebarListener;
|
|
|
| // Interface to GTK2 desktop features.
|
| @@ -41,6 +44,17 @@ class Gtk2UI : public views::LinuxUI {
|
| const std::vector<views::FrameButton>& leading_buttons,
|
| const std::vector<views::FrameButton>& trailing_buttons);
|
|
|
| + // Draws the GTK button border for state |gtk_state| onto a bitmap.
|
| + SkBitmap DrawGtkButtonBorder(int gtk_state, int width, int height) const;
|
| +
|
| + // Returns the current insets for a button.
|
| + gfx::Insets GetButtonInsets() const;
|
| +
|
| + // We keep track of live Gtk2Border objects since we must alert them to theme
|
| + // changes.
|
| + void AddGtkBorder(Gtk2Border* border);
|
| + void RemoveGtkBorder(Gtk2Border* border);
|
| +
|
| // ui::LinuxInputMethodContextFactory:
|
| virtual scoped_ptr<ui::LinuxInputMethodContext> CreateInputMethodContext(
|
| ui::LinuxInputMethodContextDelegate* delegate) const OVERRIDE;
|
| @@ -73,6 +87,7 @@ class Gtk2UI : public views::LinuxUI {
|
| virtual double GetCursorBlinkInterval() const OVERRIDE;
|
| virtual ui::NativeTheme* GetNativeTheme() const OVERRIDE;
|
| virtual void SetUseSystemTheme(bool use_system_theme) OVERRIDE;
|
| + virtual bool GetUseSystemTheme() const OVERRIDE;
|
| virtual bool GetDefaultUsesSystemTheme() const OVERRIDE;
|
| virtual void SetDownloadCount(int count) const OVERRIDE;
|
| virtual void SetProgressFraction(float percentage) const OVERRIDE;
|
| @@ -82,6 +97,9 @@ class Gtk2UI : public views::LinuxUI {
|
| const base::string16& tool_tip) const OVERRIDE;
|
| virtual gfx::Image GetIconForContentType(
|
| const std::string& content_type, int size) const OVERRIDE;
|
| + virtual views::Border* CreateNativeBorder(
|
| + views::CustomButton* owning_button,
|
| + views::Border* border) OVERRIDE;
|
| virtual void AddWindowButtonOrderObserver(
|
| views::WindowButtonOrderObserver* observer) OVERRIDE;
|
| virtual void RemoveWindowButtonOrderObserver(
|
| @@ -161,8 +179,9 @@ class Gtk2UI : public views::LinuxUI {
|
| // entry.
|
| void GetSelectedEntryForegroundHSL(color_utils::HSL* tint) const;
|
|
|
| - // Draws the GTK button border for state |gtk_state| onto a bitmap.
|
| - SkBitmap DrawGtkButtonBorder(int gtk_state, int width, int height) const;
|
| + // Create a GTK window and button and queries what "default-border" is, which
|
| + // corresponds with our insets.
|
| + void UpdateButtonInsets();
|
|
|
| // Frees all calculated images and color data.
|
| void ClearAllThemeData();
|
| @@ -193,6 +212,8 @@ class Gtk2UI : public views::LinuxUI {
|
| SkColor inactive_selection_bg_color_;
|
| SkColor inactive_selection_fg_color_;
|
|
|
| + gfx::Insets button_insets_;
|
| +
|
| #if defined(USE_GCONF)
|
| // Currently, the only source of window button configuration. This will
|
| // change if we ever have to support XFCE's configuration system or KDE's.
|
| @@ -207,6 +228,9 @@ class Gtk2UI : public views::LinuxUI {
|
| // Objects to notify when the window frame button order changes.
|
| ObserverList<views::WindowButtonOrderObserver> observer_list_;
|
|
|
| + // Borders to notify when the theme state changes.
|
| + ObserverList<Gtk2Border> border_list_;
|
| +
|
| // Image cache of lazily created images.
|
| mutable ImageCache gtk_images_;
|
|
|
|
|