summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorerg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-08 21:28:04 +0000
committererg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-08 21:28:04 +0000
commit284f766950396abce8f0672c2ccde6b45de25578 (patch)
treea711fe12c1c3ac2aa83e1392f667cdff8b07221f /chrome/browser
parentb3f2f32e4cdf73df0073930cef7b4d3531df8e5d (diff)
downloadchromium_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.h5
-rw-r--r--chrome/browser/gtk/bookmark_editor_gtk.h9
-rw-r--r--chrome/browser/gtk/bookmark_menu_controller_gtk.h8
-rw-r--r--chrome/browser/gtk/bookmark_utils_gtk.h8
-rw-r--r--chrome/browser/gtk/browser_actions_toolbar_gtk.h4
-rw-r--r--chrome/browser/gtk/cairo_cached_surface.cc2
-rw-r--r--chrome/browser/gtk/cairo_cached_surface.h4
-rw-r--r--chrome/browser/gtk/fullscreen_exit_bubble_gtk.h4
-rw-r--r--chrome/browser/gtk/gtk_theme_provider.cc88
-rw-r--r--chrome/browser/gtk/gtk_theme_provider.h20
-rw-r--r--chrome/browser/gtk/hover_controller_gtk.h1
-rw-r--r--chrome/browser/gtk/info_bubble_gtk.h1
-rw-r--r--chrome/browser/gtk/menu_bar_helper.cc1
-rw-r--r--chrome/browser/gtk/menu_bar_helper.h2
-rw-r--r--chrome/browser/gtk/rounded_window.cc1
-rw-r--r--chrome/browser/gtk/tab_contents_drag_source.h1
-rw-r--r--chrome/browser/gtk/update_recommended_dialog.cc2
-rw-r--r--chrome/browser/gtk/update_recommended_dialog.h7
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: