diff options
author | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-08 21:28:04 +0000 |
---|---|---|
committer | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-08 21:28:04 +0000 |
commit | 284f766950396abce8f0672c2ccde6b45de25578 (patch) | |
tree | a711fe12c1c3ac2aa83e1392f667cdff8b07221f /chrome/browser | |
parent | b3f2f32e4cdf73df0073930cef7b4d3531df8e5d (diff) | |
download | chromium_src-284f766950396abce8f0672c2ccde6b45de25578.zip chromium_src-284f766950396abce8f0672c2ccde6b45de25578.tar.gz chromium_src-284f766950396abce8f0672c2ccde6b45de25578.tar.bz2 |
GTK: Minimize usage of gtk headers.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/2891006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51898 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/gtk/bookmark_bubble_gtk.h | 5 | ||||
-rw-r--r-- | chrome/browser/gtk/bookmark_editor_gtk.h | 9 | ||||
-rw-r--r-- | chrome/browser/gtk/bookmark_menu_controller_gtk.h | 8 | ||||
-rw-r--r-- | chrome/browser/gtk/bookmark_utils_gtk.h | 8 | ||||
-rw-r--r-- | chrome/browser/gtk/browser_actions_toolbar_gtk.h | 4 | ||||
-rw-r--r-- | chrome/browser/gtk/cairo_cached_surface.cc | 2 | ||||
-rw-r--r-- | chrome/browser/gtk/cairo_cached_surface.h | 4 | ||||
-rw-r--r-- | chrome/browser/gtk/fullscreen_exit_bubble_gtk.h | 4 | ||||
-rw-r--r-- | chrome/browser/gtk/gtk_theme_provider.cc | 88 | ||||
-rw-r--r-- | chrome/browser/gtk/gtk_theme_provider.h | 20 | ||||
-rw-r--r-- | chrome/browser/gtk/hover_controller_gtk.h | 1 | ||||
-rw-r--r-- | chrome/browser/gtk/info_bubble_gtk.h | 1 | ||||
-rw-r--r-- | chrome/browser/gtk/menu_bar_helper.cc | 1 | ||||
-rw-r--r-- | chrome/browser/gtk/menu_bar_helper.h | 2 | ||||
-rw-r--r-- | chrome/browser/gtk/rounded_window.cc | 1 | ||||
-rw-r--r-- | chrome/browser/gtk/tab_contents_drag_source.h | 1 | ||||
-rw-r--r-- | chrome/browser/gtk/update_recommended_dialog.cc | 2 | ||||
-rw-r--r-- | chrome/browser/gtk/update_recommended_dialog.h | 7 |
18 files changed, 104 insertions, 64 deletions
diff --git a/chrome/browser/gtk/bookmark_bubble_gtk.h b/chrome/browser/gtk/bookmark_bubble_gtk.h index 0ca7043..c58b224 100644 --- a/chrome/browser/gtk/bookmark_bubble_gtk.h +++ b/chrome/browser/gtk/bookmark_bubble_gtk.h @@ -12,8 +12,6 @@ #ifndef CHROME_BROWSER_GTK_BOOKMARK_BUBBLE_GTK_H_ #define CHROME_BROWSER_GTK_BOOKMARK_BUBBLE_GTK_H_ -#include <gtk/gtk.h> - #include <string> #include <vector> @@ -30,6 +28,9 @@ class BookmarkNode; class Profile; class RecentlyUsedFoldersComboModel; +typedef struct _GtkWidget GtkWidget; +typedef struct _GParamSpec GParamSpec; + class BookmarkBubbleGtk : public InfoBubbleGtkDelegate, public NotificationObserver { public: diff --git a/chrome/browser/gtk/bookmark_editor_gtk.h b/chrome/browser/gtk/bookmark_editor_gtk.h index f835b0e..af9a984 100644 --- a/chrome/browser/gtk/bookmark_editor_gtk.h +++ b/chrome/browser/gtk/bookmark_editor_gtk.h @@ -5,10 +5,9 @@ #ifndef CHROME_BROWSER_GTK_BOOKMARK_EDITOR_GTK_H_ #define CHROME_BROWSER_GTK_BOOKMARK_EDITOR_GTK_H_ -#include <gtk/gtk.h> - #include <string> +#include "app/gtk_integers.h" #include "app/gtk_signal.h" #include "base/gtest_prod_util.h" #include "chrome/browser/bookmarks/bookmark_editor.h" @@ -16,6 +15,12 @@ class GURL; +typedef union _GdkEvent GdkEvent; +typedef struct _GtkTreeIter GtkTreeIter; +typedef struct _GtkTreeSelection GtkTreeSelection; +typedef struct _GtkTreeStore GtkTreeStore; +typedef struct _GtkWidget GtkWidget; + // GTK version of the bookmark editor dialog. class BookmarkEditorGtk : public BookmarkEditor, public BookmarkModelObserver { diff --git a/chrome/browser/gtk/bookmark_menu_controller_gtk.h b/chrome/browser/gtk/bookmark_menu_controller_gtk.h index 1a31416..cf0a512 100644 --- a/chrome/browser/gtk/bookmark_menu_controller_gtk.h +++ b/chrome/browser/gtk/bookmark_menu_controller_gtk.h @@ -5,10 +5,9 @@ #ifndef CHROME_BROWSER_GTK_BOOKMARK_MENU_CONTROLLER_GTK_H_ #define CHROME_BROWSER_GTK_BOOKMARK_MENU_CONTROLLER_GTK_H_ -#include <gtk/gtk.h> - #include <map> +#include "app/gtk_integers.h" #include "app/gtk_signal.h" #include "base/scoped_ptr.h" #include "chrome/browser/bookmarks/base_bookmark_model_observer.h" @@ -24,6 +23,11 @@ class BookmarkModel; class BookmarkNode; class MenuGtk; +typedef struct _GdkDragContext GdkDragContext; +typedef struct _GdkEventButton GdkEventButton; +typedef struct _GtkSelectionData GtkSelectionData; +typedef struct _GtkWidget GtkWidget; + class BookmarkMenuController : public BaseBookmarkModelObserver, public BookmarkContextMenuControllerDelegate { public: diff --git a/chrome/browser/gtk/bookmark_utils_gtk.h b/chrome/browser/gtk/bookmark_utils_gtk.h index 6c2227c..6619461 100644 --- a/chrome/browser/gtk/bookmark_utils_gtk.h +++ b/chrome/browser/gtk/bookmark_utils_gtk.h @@ -5,15 +5,21 @@ #ifndef CHROME_BROWSER_GTK_BOOKMARK_UTILS_GTK_H_ #define CHROME_BROWSER_GTK_BOOKMARK_UTILS_GTK_H_ -#include <gtk/gtk.h> #include <vector> #include <string> +#include "app/gtk_integers.h" + class BookmarkModel; class BookmarkNode; class GtkThemeProvider; class Profile; +typedef struct _GdkDragContext GdkDragContext; +typedef struct _GdkPixbuf GdkPixbuf; +typedef struct _GtkSelectionData GtkSelectionData; +typedef struct _GtkWidget GtkWidget; + namespace bookmark_utils { extern const char kBookmarkNode[]; diff --git a/chrome/browser/gtk/browser_actions_toolbar_gtk.h b/chrome/browser/gtk/browser_actions_toolbar_gtk.h index e26b555..262b81d 100644 --- a/chrome/browser/gtk/browser_actions_toolbar_gtk.h +++ b/chrome/browser/gtk/browser_actions_toolbar_gtk.h @@ -5,12 +5,11 @@ #ifndef CHROME_BROWSER_GTK_BROWSER_ACTIONS_TOOLBAR_GTK_H_ #define CHROME_BROWSER_GTK_BROWSER_ACTIONS_TOOLBAR_GTK_H_ -#include <gtk/gtk.h> - #include <map> #include <string> #include "app/gtk_signal.h" +#include "app/gtk_signal_registrar.h" #include "app/menus/simple_menu_model.h" #include "app/slide_animation.h" #include "base/linked_ptr.h" @@ -28,6 +27,7 @@ class Extension; class GtkThemeProvider; class Profile; +typedef struct _GdkDragContext GdkDragContext; typedef struct _GtkWidget GtkWidget; class BrowserActionsToolbarGtk : public ExtensionToolbarModel::Observer, diff --git a/chrome/browser/gtk/cairo_cached_surface.cc b/chrome/browser/gtk/cairo_cached_surface.cc index 19ec295..bb5ae41 100644 --- a/chrome/browser/gtk/cairo_cached_surface.cc +++ b/chrome/browser/gtk/cairo_cached_surface.cc @@ -4,6 +4,8 @@ #include "chrome/browser/gtk/cairo_cached_surface.h" +#include <gtk/gtk.h> + #include "base/basictypes.h" #include "base/logging.h" diff --git a/chrome/browser/gtk/cairo_cached_surface.h b/chrome/browser/gtk/cairo_cached_surface.h index 2c0b4d3..0a2c256 100644 --- a/chrome/browser/gtk/cairo_cached_surface.h +++ b/chrome/browser/gtk/cairo_cached_surface.h @@ -5,7 +5,9 @@ #ifndef CHROME_BROWSER_GTK_CAIRO_CACHED_SURFACE_H_ #define CHROME_BROWSER_GTK_CAIRO_CACHED_SURFACE_H_ -#include <gtk/gtk.h> +typedef struct _GdkPixbuf GdkPixbuf; +typedef struct _cairo cairo_t; +typedef struct _cairo_surface cairo_surface_t; // A helper class that takes a GdkPixbuf* and renders it to the screen. Unlike // gdk_cairo_set_source_pixbuf(), CairoCachedSurface assumes that the pixbuf is diff --git a/chrome/browser/gtk/fullscreen_exit_bubble_gtk.h b/chrome/browser/gtk/fullscreen_exit_bubble_gtk.h index 0b9c90e..b81348e 100644 --- a/chrome/browser/gtk/fullscreen_exit_bubble_gtk.h +++ b/chrome/browser/gtk/fullscreen_exit_bubble_gtk.h @@ -5,13 +5,13 @@ #ifndef CHROME_BROWSER_GTK_FULLSCREEN_EXIT_BUBBLE_GTK_H_ #define CHROME_BROWSER_GTK_FULLSCREEN_EXIT_BUBBLE_GTK_H_ -#include <gtk/gtk.h> - #include "app/gtk_signal.h" +#include "app/gtk_signal_registrar.h" #include "base/timer.h" #include "chrome/browser/gtk/slide_animator_gtk.h" typedef struct _GtkFloatingContainer GtkFloatingContainer; +typedef struct _GtkWidget GtkWidget; // FullscreenExitBubbleGTK is responsible for showing a bubble atop the screen // in fullscreen mode, telling users how to exit and providing a click target. diff --git a/chrome/browser/gtk/gtk_theme_provider.cc b/chrome/browser/gtk/gtk_theme_provider.cc index 79d45cd..0f8a254 100644 --- a/chrome/browser/gtk/gtk_theme_provider.cc +++ b/chrome/browser/gtk/gtk_theme_provider.cc @@ -8,6 +8,7 @@ #include <set> +#include "app/gtk_signal_registrar.h" #include "app/resource_bundle.h" #include "base/env_var.h" #include "base/stl_util-inl.h" @@ -187,6 +188,45 @@ void PickButtonTintFromColors(const GdkColor& accent_gdk_color, } } + +// Builds and tints the image with |id| to the GtkStateType |state| and +// places the result in |icon_set|. +void BuildIconFromIDRWithColor(int id, + GtkStyle* style, + GtkStateType state, + GtkIconSet* icon_set) { + SkColor color = GdkToSkColor(&style->fg[state]); + ResourceBundle& rb = ResourceBundle::GetSharedInstance(); + SkBitmap original = *rb.GetBitmapNamed(id); + + SkBitmap fill_color; + fill_color.setConfig(SkBitmap::kARGB_8888_Config, + original.width(), original.height(), 0); + fill_color.allocPixels(); + fill_color.eraseColor(color); + SkBitmap masked = SkBitmapOperations::CreateMaskedBitmap( + fill_color, original); + + GtkIconSource* icon = gtk_icon_source_new(); + GdkPixbuf* pixbuf = gfx::GdkPixbufFromSkBitmap(&masked); + gtk_icon_source_set_pixbuf(icon, pixbuf); + g_object_unref(pixbuf); + + gtk_icon_source_set_direction_wildcarded(icon, TRUE); + gtk_icon_source_set_size_wildcarded(icon, TRUE); + + gtk_icon_source_set_state(icon, state); + // All fields default to wildcarding being on and setting a property doesn't + // turn off wildcarding. You need to do this yourself. This is stated once in + // the documentation in the gtk_icon_source_new() function, and no where else. + gtk_icon_source_set_state_wildcarded( + icon, state == GTK_STATE_NORMAL); + + gtk_icon_set_add_source(icon_set, icon); + gtk_icon_source_free(icon); +} + + } // namespace GtkWidget* GtkThemeProvider::icon_widget_ = NULL; @@ -202,6 +242,7 @@ GtkThemeProvider::GtkThemeProvider() : BrowserThemeProvider(), fake_window_(gtk_window_new(GTK_WINDOW_TOPLEVEL)), fake_frame_(meta_frames_new()), + signals_(new GtkSignalRegistrar), fullscreen_icon_set_(NULL) { fake_label_.Own(gtk_label_new("")); fake_entry_.Own(gtk_entry_new()); @@ -212,8 +253,8 @@ GtkThemeProvider::GtkThemeProvider() // properties, too, which we query for some colors. gtk_widget_realize(fake_frame_); gtk_widget_realize(fake_window_); - signals_.Connect(fake_frame_, "style-set", - G_CALLBACK(&OnStyleSetThunk), this); + signals_->Connect(fake_frame_, "style-set", + G_CALLBACK(&OnStyleSetThunk), this); } GtkThemeProvider::~GtkThemeProvider() { @@ -313,8 +354,8 @@ GtkWidget* GtkThemeProvider::BuildChromeButton() { gtk_chrome_button_set_use_gtk_rendering(GTK_CHROME_BUTTON(button), use_gtk_); chrome_buttons_.push_back(button); - signals_.Connect(button, "destroy", G_CALLBACK(OnDestroyChromeButtonThunk), - this); + signals_->Connect(button, "destroy", G_CALLBACK(OnDestroyChromeButtonThunk), + this); return button; } @@ -325,8 +366,8 @@ GtkWidget* GtkThemeProvider::CreateToolbarSeparator() { kSeparatorPadding, kSeparatorPadding, kSeparatorPadding, 0); gtk_container_add(GTK_CONTAINER(alignment), separator); - signals_.Connect(separator, "expose-event", - G_CALLBACK(OnSeparatorExposeThunk), this); + signals_->Connect(separator, "expose-event", + G_CALLBACK(OnSeparatorExposeThunk), this); return alignment; } @@ -793,41 +834,6 @@ void GtkThemeProvider::RebuildMenuIconSets() { fullscreen_icon_set_); } -void GtkThemeProvider::BuildIconFromIDRWithColor(int id, - GtkStyle* style, - GtkStateType state, - GtkIconSet* icon_set) { - SkColor color = GdkToSkColor(&style->fg[state]); - ResourceBundle& rb = ResourceBundle::GetSharedInstance(); - SkBitmap original = *rb.GetBitmapNamed(id); - - SkBitmap fill_color; - fill_color.setConfig(SkBitmap::kARGB_8888_Config, - original.width(), original.height(), 0); - fill_color.allocPixels(); - fill_color.eraseColor(color); - SkBitmap masked = SkBitmapOperations::CreateMaskedBitmap( - fill_color, original); - - GtkIconSource* icon = gtk_icon_source_new(); - GdkPixbuf* pixbuf = gfx::GdkPixbufFromSkBitmap(&masked); - gtk_icon_source_set_pixbuf(icon, pixbuf); - g_object_unref(pixbuf); - - gtk_icon_source_set_direction_wildcarded(icon, TRUE); - gtk_icon_source_set_size_wildcarded(icon, TRUE); - - gtk_icon_source_set_state(icon, state); - // All fields default to wildcarding being on and setting a property doesn't - // turn off wildcarding. You need to do this yourself. This is stated once in - // the documentation in the gtk_icon_source_new() function, and no where else. - gtk_icon_source_set_state_wildcarded( - icon, state == GTK_STATE_NORMAL); - - gtk_icon_set_add_source(icon_set, icon); - gtk_icon_source_free(icon); -} - void GtkThemeProvider::SetThemeColorFromGtk(int id, const GdkColor* color) { colors_[id] = GdkToSkColor(color); } diff --git a/chrome/browser/gtk/gtk_theme_provider.h b/chrome/browser/gtk/gtk_theme_provider.h index edc5ce7..031c5c0 100644 --- a/chrome/browser/gtk/gtk_theme_provider.h +++ b/chrome/browser/gtk/gtk_theme_provider.h @@ -5,20 +5,29 @@ #ifndef CHROME_BROWSER_GTK_GTK_THEME_PROVIDER_H_ #define CHROME_BROWSER_GTK_GTK_THEME_PROVIDER_H_ -#include <gtk/gtk.h> #include <map> #include <string> #include <vector> +#include "app/gtk_integers.h" #include "app/gtk_signal.h" +#include "base/scoped_ptr.h" #include "chrome/browser/browser_theme_provider.h" #include "chrome/common/notification_observer.h" #include "chrome/common/owned_widget_gtk.h" #include "gfx/color_utils.h" class CairoCachedSurface; +class GtkSignalRegistrar; class Profile; +typedef struct _GdkDisplay GdkDisplay; +typedef struct _GdkEventExpose GdkEventExpose; +typedef struct _GdkPixbuf GdkPixbuf; +typedef struct _GtkIconSet GtkIconSet; +typedef struct _GtkStyle GtkStyle; +typedef struct _GtkWidget GtkWidget; + // Specialization of BrowserThemeProvider which supplies system colors. class GtkThemeProvider : public BrowserThemeProvider, public NotificationObserver { @@ -153,13 +162,6 @@ class GtkThemeProvider : public BrowserThemeProvider, // the menus are always rendered with gtk colors. void RebuildMenuIconSets(); - // Builds and tints the image with |id| to the GtkStateType |state| and - // places the result in |icon_set|. - void BuildIconFromIDRWithColor(int id, - GtkStyle* style, - GtkStateType state, - GtkIconSet* icon_set); - // Sets the underlying theme colors/tints from a GTK color. void SetThemeColorFromGtk(int id, const GdkColor* color); void SetThemeTintFromGtk(int id, const GdkColor* color); @@ -225,7 +227,7 @@ class GtkThemeProvider : public BrowserThemeProvider, std::vector<GtkWidget*> chrome_buttons_; // Tracks all the signals we have connected to on various widgets. - GtkSignalRegistrar signals_; + scoped_ptr<GtkSignalRegistrar> signals_; // Tints and colors calculated by LoadGtkValues() that are given to the // caller while |use_gtk_| is true. diff --git a/chrome/browser/gtk/hover_controller_gtk.h b/chrome/browser/gtk/hover_controller_gtk.h index 10196ad..5a4cd9c 100644 --- a/chrome/browser/gtk/hover_controller_gtk.h +++ b/chrome/browser/gtk/hover_controller_gtk.h @@ -8,6 +8,7 @@ #include <gtk/gtk.h> #include "app/gtk_signal.h" +#include "app/gtk_signal_registrar.h" #include "app/slide_animation.h" #include "app/throb_animation.h" #include "base/scoped_ptr.h" diff --git a/chrome/browser/gtk/info_bubble_gtk.h b/chrome/browser/gtk/info_bubble_gtk.h index bb49bfb..d13a965 100644 --- a/chrome/browser/gtk/info_bubble_gtk.h +++ b/chrome/browser/gtk/info_bubble_gtk.h @@ -16,6 +16,7 @@ #include <gtk/gtk.h> #include "app/gtk_signal.h" +#include "app/gtk_signal_registrar.h" #include "base/basictypes.h" #include "chrome/common/notification_registrar.h" #include "gfx/point.h" diff --git a/chrome/browser/gtk/menu_bar_helper.cc b/chrome/browser/gtk/menu_bar_helper.cc index d5d42ae..1e85475c 100644 --- a/chrome/browser/gtk/menu_bar_helper.cc +++ b/chrome/browser/gtk/menu_bar_helper.cc @@ -6,6 +6,7 @@ #include <algorithm> +#include "app/gtk_signal_registrar.h" #include "base/logging.h" #include "chrome/browser/gtk/gtk_util.h" diff --git a/chrome/browser/gtk/menu_bar_helper.h b/chrome/browser/gtk/menu_bar_helper.h index 05d6819..99ac541 100644 --- a/chrome/browser/gtk/menu_bar_helper.h +++ b/chrome/browser/gtk/menu_bar_helper.h @@ -16,6 +16,8 @@ #include "app/gtk_signal.h" #include "base/scoped_ptr.h" +class GtkSignalRegistrar; + class MenuBarHelper { public: class Delegate { diff --git a/chrome/browser/gtk/rounded_window.cc b/chrome/browser/gtk/rounded_window.cc index 2783045..053f9ad 100644 --- a/chrome/browser/gtk/rounded_window.cc +++ b/chrome/browser/gtk/rounded_window.cc @@ -8,6 +8,7 @@ #include <math.h> #include "app/gtk_signal.h" +#include "app/gtk_signal_registrar.h" #include "base/i18n/rtl.h" #include "chrome/browser/gtk/gtk_util.h" diff --git a/chrome/browser/gtk/tab_contents_drag_source.h b/chrome/browser/gtk/tab_contents_drag_source.h index d11e4e1..a885fed 100644 --- a/chrome/browser/gtk/tab_contents_drag_source.h +++ b/chrome/browser/gtk/tab_contents_drag_source.h @@ -8,6 +8,7 @@ #include <gtk/gtk.h> #include "app/gtk_signal.h" +#include "app/gtk_signal_registrar.h" #include "base/basictypes.h" #include "base/file_path.h" #include "base/message_loop.h" diff --git a/chrome/browser/gtk/update_recommended_dialog.cc b/chrome/browser/gtk/update_recommended_dialog.cc index 6264639..e2ab33e 100644 --- a/chrome/browser/gtk/update_recommended_dialog.cc +++ b/chrome/browser/gtk/update_recommended_dialog.cc @@ -4,6 +4,8 @@ #include "chrome/browser/gtk/update_recommended_dialog.h" +#include <gtk/gtk.h> + #include "app/l10n_util.h" #include "app/message_box_flags.h" #include "chrome/browser/browser_list.h" diff --git a/chrome/browser/gtk/update_recommended_dialog.h b/chrome/browser/gtk/update_recommended_dialog.h index fd6ca4f..94e32c8 100644 --- a/chrome/browser/gtk/update_recommended_dialog.h +++ b/chrome/browser/gtk/update_recommended_dialog.h @@ -5,9 +5,12 @@ #ifndef CHROME_BROWSER_GTK_UPDATE_RECOMMENDED_DIALOG_H_ #define CHROME_BROWSER_GTK_UPDATE_RECOMMENDED_DIALOG_H_ -#include <gtk/gtk.h> - +#include "app/gtk_integers.h" #include "app/gtk_signal.h" +#include "base/basictypes.h" + +typedef struct _GtkWidget GtkWidget; +typedef struct _GtkWindow GtkWindow; class UpdateRecommendedDialog { public: |