summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-07 01:40:52 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-07 01:40:52 +0000
commitebb1782ad3c2d0f8d12e99da81a1d99e91ef5fe0 (patch)
treeb5c79d1876497848ddc8880dcc281f1604409b83 /chrome/browser/gtk
parent7ea9419dab2d53344207a3d9507b960b31ee0704 (diff)
downloadchromium_src-ebb1782ad3c2d0f8d12e99da81a1d99e91ef5fe0.zip
chromium_src-ebb1782ad3c2d0f8d12e99da81a1d99e91ef5fe0.tar.gz
chromium_src-ebb1782ad3c2d0f8d12e99da81a1d99e91ef5fe0.tar.bz2
More gtk signal handler macro conversion.
BUG=none TEST=none Review URL: http://codereview.chromium.org/1981006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46652 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk')
-rw-r--r--chrome/browser/gtk/constrained_window_gtk.cc5
-rw-r--r--chrome/browser/gtk/constrained_window_gtk.h12
-rw-r--r--chrome/browser/gtk/first_run_bubble.cc16
-rw-r--r--chrome/browser/gtk/first_run_bubble.h17
-rw-r--r--chrome/browser/gtk/go_button_gtk.cc61
-rw-r--r--chrome/browser/gtk/go_button_gtk.h22
-rw-r--r--chrome/browser/gtk/info_bubble_gtk.cc3
-rw-r--r--chrome/browser/gtk/info_bubble_gtk.h10
-rw-r--r--chrome/browser/gtk/sad_tab_gtk.cc2
-rw-r--r--chrome/browser/gtk/sad_tab_gtk.h11
10 files changed, 62 insertions, 97 deletions
diff --git a/chrome/browser/gtk/constrained_window_gtk.cc b/chrome/browser/gtk/constrained_window_gtk.cc
index 91be058..321aa16 100644
--- a/chrome/browser/gtk/constrained_window_gtk.cc
+++ b/chrome/browser/gtk/constrained_window_gtk.cc
@@ -85,7 +85,10 @@ void ConstrainedWindowGtk::ConnectAccelerators() {
}
-gboolean ConstrainedWindowGtk::OnEscape() {
+gboolean ConstrainedWindowGtk::OnEscape(GtkAccelGroup* group,
+ GObject* acceleratable,
+ guint keyval,
+ GdkModifierType modifier) {
// Handle this accelerator only if this is on the currently selected tab.
Browser* browser = BrowserList::GetLastActive();
if (!browser || browser->GetSelectedTabContents() != owner_)
diff --git a/chrome/browser/gtk/constrained_window_gtk.h b/chrome/browser/gtk/constrained_window_gtk.h
index 0af6e63..5015b45 100644
--- a/chrome/browser/gtk/constrained_window_gtk.h
+++ b/chrome/browser/gtk/constrained_window_gtk.h
@@ -7,6 +7,7 @@
#include <gtk/gtk.h>
+#include "app/gtk_signal.h"
#include "base/basictypes.h"
#include "chrome/browser/tab_contents/constrained_window.h"
#include "chrome/common/owned_widget_gtk.h"
@@ -58,15 +59,8 @@ class ConstrainedWindowGtk : public ConstrainedWindow {
void ConnectAccelerators();
// Handles an ESC accelerator being pressed.
- static gboolean OnEscapeThunk(GtkAccelGroup* accel_group,
- GObject* acceleratable,
- guint keyval,
- GdkModifierType modifier,
- gpointer user_data) {
- return reinterpret_cast<ConstrainedWindowGtk*>(user_data)->OnEscape();
- }
-
- gboolean OnEscape();
+ CHROMEG_CALLBACK_3(ConstrainedWindowGtk, gboolean, OnEscape, GtkAccelGroup*,
+ GObject*, guint, GdkModifierType);
// The TabContents that owns and constrains this ConstrainedWindow.
TabContents* owner_;
diff --git a/chrome/browser/gtk/first_run_bubble.cc b/chrome/browser/gtk/first_run_bubble.cc
index 911aed9..e86df98 100644
--- a/chrome/browser/gtk/first_run_bubble.cc
+++ b/chrome/browser/gtk/first_run_bubble.cc
@@ -177,17 +177,17 @@ FirstRunBubble::FirstRunBubble(Profile* profile,
theme_provider_->InitThemesFor(this);
}
-void FirstRunBubble::HandleChangeButton() {
- bubble_->Close();
- ShowOptionsWindow(OPTIONS_PAGE_GENERAL, OPTIONS_GROUP_DEFAULT_SEARCH,
- profile_);
-}
-
-void FirstRunBubble::HandleDestroy() {
+void FirstRunBubble::HandleDestroy(GtkWidget* sender) {
content_ = NULL;
delete this;
}
-void FirstRunBubble::HandleKeepButton() {
+void FirstRunBubble::HandleKeepButton(GtkWidget* sender) {
bubble_->Close();
+
+}
+void FirstRunBubble::HandleChangeButton(GtkWidget* sender) {
+ bubble_->Close();
+ ShowOptionsWindow(OPTIONS_PAGE_GENERAL, OPTIONS_GROUP_DEFAULT_SEARCH,
+ profile_);
}
diff --git a/chrome/browser/gtk/first_run_bubble.h b/chrome/browser/gtk/first_run_bubble.h
index 2c1b095..31355d0 100644
--- a/chrome/browser/gtk/first_run_bubble.h
+++ b/chrome/browser/gtk/first_run_bubble.h
@@ -46,20 +46,9 @@ class FirstRunBubble : public InfoBubbleGtkDelegate,
const gfx::Rect& rect);
~FirstRunBubble() { }
- static void HandleChangeButtonThunk(GtkWidget* widget, gpointer user_data) {
- reinterpret_cast<FirstRunBubble*>(user_data)->HandleChangeButton();
- }
- void HandleChangeButton();
-
- static void HandleDestroyThunk(GtkWidget* widget, gpointer userdata) {
- reinterpret_cast<FirstRunBubble*>(userdata)->HandleDestroy();
- }
- void HandleDestroy();
-
- static void HandleKeepButtonThunk(GtkWidget* widget, gpointer user_data) {
- reinterpret_cast<FirstRunBubble*>(user_data)->HandleKeepButton();
- }
- void HandleKeepButton();
+ CHROMEGTK_CALLBACK_0(FirstRunBubble, void, HandleDestroy);
+ CHROMEGTK_CALLBACK_0(FirstRunBubble, void, HandleKeepButton);
+ CHROMEGTK_CALLBACK_0(FirstRunBubble, void, HandleChangeButton);
// Our current profile.
Profile* profile_;
diff --git a/chrome/browser/gtk/go_button_gtk.cc b/chrome/browser/gtk/go_button_gtk.cc
index fe66f71..cf0d926 100644
--- a/chrome/browser/gtk/go_button_gtk.cc
+++ b/chrome/browser/gtk/go_button_gtk.cc
@@ -41,11 +41,11 @@ GoButtonGtk::GoButtonGtk(LocationBarViewGtk* location_bar, Browser* browser)
gtk_widget_set_app_paintable(widget_.get(), TRUE);
g_signal_connect(widget_.get(), "expose-event",
- G_CALLBACK(OnExpose), this);
+ G_CALLBACK(OnExposeThunk), this);
g_signal_connect(widget_.get(), "leave-notify-event",
- G_CALLBACK(OnLeave), this);
+ G_CALLBACK(OnLeaveNotifyThunk), this);
g_signal_connect(widget_.get(), "clicked",
- G_CALLBACK(OnClicked), this);
+ G_CALLBACK(OnClickedThunk), this);
GTK_WIDGET_UNSET_FLAGS(widget_.get(), GTK_CAN_FOCUS);
gtk_widget_set_has_tooltip(widget_.get(), TRUE);
@@ -103,57 +103,52 @@ void GoButtonGtk::OnButtonTimer() {
ChangeMode(intended_mode_, true);
}
-// static
gboolean GoButtonGtk::OnExpose(GtkWidget* widget,
- GdkEventExpose* e,
- GoButtonGtk* button) {
- if (button->theme_provider_ && button->theme_provider_->UseGtkTheme()) {
+ GdkEventExpose* e) {
+ if (theme_provider_ && theme_provider_->UseGtkTheme()) {
return FALSE;
} else {
- double hover_state = button->hover_controller_.GetCurrentValue();
- if (button->visible_mode_ == MODE_GO) {
- return button->go_.OnExpose(widget, e, hover_state);
+ double hover_state = hover_controller_.GetCurrentValue();
+ if (visible_mode_ == MODE_GO) {
+ return go_.OnExpose(widget, e, hover_state);
} else {
- return button->stop_.OnExpose(widget, e, hover_state);
+ return stop_.OnExpose(widget, e, hover_state);
}
}
}
-// static
-gboolean GoButtonGtk::OnLeave(GtkWidget* widget,
- GdkEventCrossing* event,
- GoButtonGtk* button) {
- button->ChangeMode(button->intended_mode_, true);
+gboolean GoButtonGtk::OnLeaveNotify(GtkWidget* widget,
+ GdkEventCrossing* event) {
+ ChangeMode(intended_mode_, true);
return FALSE;
}
-// static
-gboolean GoButtonGtk::OnClicked(GtkButton* widget, GoButtonGtk* button) {
- if (button->visible_mode_ == MODE_STOP) {
- if (button->browser_)
- button->browser_->Stop();
+void GoButtonGtk::OnClicked(GtkWidget* sender) {
+ if (visible_mode_ == MODE_STOP) {
+ if (browser_)
+ browser_->Stop();
// The user has clicked, so we can feel free to update the button,
// even if the mouse is still hovering.
- button->ChangeMode(MODE_GO, true);
- } else if (button->visible_mode_ == MODE_GO && button->stop_timer_.empty()) {
+ ChangeMode(MODE_GO, true);
+ } else if (visible_mode_ == MODE_GO && stop_timer_.empty()) {
// If the go button is visible and not within the double click timer, go.
- if (button->browser_) {
- button->browser_->ExecuteCommandWithDisposition(IDC_GO,
+ if (browser_) {
+ browser_->ExecuteCommandWithDisposition(IDC_GO,
gtk_util::DispositionForCurrentButtonPressEvent());
}
// Figure out the system double-click time.
- if (button->button_delay_ == 0) {
+ if (button_delay_ == 0) {
GtkSettings* settings = gtk_settings_get_default();
g_object_get(G_OBJECT(settings),
"gtk-double-click-time",
- &button->button_delay_,
+ &button_delay_,
NULL);
}
// Stop any existing timers.
- button->stop_timer_.RevokeAll();
+ stop_timer_.RevokeAll();
// Start a timer - while this timer is running, the go button
// cannot be changed to a stop button. We do not set intended_mode_
@@ -161,14 +156,14 @@ gboolean GoButtonGtk::OnClicked(GtkButton* widget, GoButtonGtk* button) {
// us that it has started loading (and this may occur only after
// some delay).
MessageLoop::current()->PostDelayedTask(FROM_HERE,
- button->CreateButtonTimerTask(),
- button->button_delay_);
+ CreateButtonTimerTask(),
+ button_delay_);
}
-
- return TRUE;
}
-gboolean GoButtonGtk::OnQueryTooltip(GtkTooltip* tooltip) {
+gboolean GoButtonGtk::OnQueryTooltip(GtkWidget* sender,
+ gint x, gint y, gboolean keyboard_mode,
+ GtkTooltip* tooltip) {
// |location_bar_| can be NULL in tests.
if (!location_bar_)
return FALSE;
diff --git a/chrome/browser/gtk/go_button_gtk.h b/chrome/browser/gtk/go_button_gtk.h
index adf5f06..9626256 100644
--- a/chrome/browser/gtk/go_button_gtk.h
+++ b/chrome/browser/gtk/go_button_gtk.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2010 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.
@@ -7,6 +7,7 @@
#include <gtk/gtk.h>
+#include "app/gtk_signal.h"
#include "base/basictypes.h"
#include "base/task.h"
#include "chrome/browser/gtk/custom_button.h"
@@ -40,20 +41,11 @@ class GoButtonGtk : public NotificationObserver {
private:
friend class GoButtonGtkPeer;
- // gtk signals
- static gboolean OnExpose(GtkWidget* widget,
- GdkEventExpose* e,
- GoButtonGtk* button);
- static gboolean OnLeave(GtkWidget* widget, GdkEventCrossing* event,
- GoButtonGtk* button);
- static gboolean OnClicked(GtkButton* widget, GoButtonGtk* button);
- static gboolean OnQueryTooltipThunk(GtkWidget* widget,
- gint x, gint y, gboolean keyboard_mode,
- GtkTooltip* tooltip,
- GoButtonGtk* button) {
- return button->OnQueryTooltip(tooltip);
- }
- gboolean OnQueryTooltip(GtkTooltip* tooltip);
+ CHROMEGTK_CALLBACK_1(GoButtonGtk, gboolean, OnExpose, GdkEventExpose*);
+ CHROMEGTK_CALLBACK_1(GoButtonGtk, gboolean, OnLeaveNotify, GdkEventCrossing*);
+ CHROMEGTK_CALLBACK_0(GoButtonGtk, void, OnClicked);
+ CHROMEGTK_CALLBACK_4(GoButtonGtk, gboolean, OnQueryTooltip,
+ gint, gint, gboolean, GtkTooltip*);
void SetToggled();
diff --git a/chrome/browser/gtk/info_bubble_gtk.cc b/chrome/browser/gtk/info_bubble_gtk.cc
index 28dc047..3f155ea 100644
--- a/chrome/browser/gtk/info_bubble_gtk.cc
+++ b/chrome/browser/gtk/info_bubble_gtk.cc
@@ -378,7 +378,8 @@ void InfoBubbleGtk::GrabPointerAndKeyboard() {
}
}
-gboolean InfoBubbleGtk::OnEscape() {
+gboolean InfoBubbleGtk::OnEscape(GtkAccelGroup* group, GObject* acceleratable,
+ guint keyval, GdkModifierType modifier) {
closed_by_escape_ = true;
Close();
return TRUE;
diff --git a/chrome/browser/gtk/info_bubble_gtk.h b/chrome/browser/gtk/info_bubble_gtk.h
index 104dc01..bb49bfb 100644
--- a/chrome/browser/gtk/info_bubble_gtk.h
+++ b/chrome/browser/gtk/info_bubble_gtk.h
@@ -141,14 +141,8 @@ class InfoBubbleGtk : public NotificationObserver {
// sure that we have the input focus.
void GrabPointerAndKeyboard();
- static gboolean OnEscapeThunk(GtkAccelGroup* group,
- GObject* acceleratable,
- guint keyval,
- GdkModifierType modifier,
- gpointer user_data) {
- return reinterpret_cast<InfoBubbleGtk*>(user_data)->OnEscape();
- }
- gboolean OnEscape();
+ CHROMEG_CALLBACK_3(InfoBubbleGtk, gboolean, OnEscape, GtkAccelGroup*,
+ GObject*, guint, GdkModifierType);
CHROMEGTK_CALLBACK_1(InfoBubbleGtk, gboolean, OnExpose, GdkEventExpose*);
CHROMEGTK_CALLBACK_1(InfoBubbleGtk, void, OnSizeAllocate, GtkAllocation*);
diff --git a/chrome/browser/gtk/sad_tab_gtk.cc b/chrome/browser/gtk/sad_tab_gtk.cc
index f3ec1a4..982259b 100644
--- a/chrome/browser/gtk/sad_tab_gtk.cc
+++ b/chrome/browser/gtk/sad_tab_gtk.cc
@@ -110,7 +110,7 @@ SadTabGtk::~SadTabGtk() {
event_box_.Destroy();
}
-void SadTabGtk::OnLinkButtonClick() {
+void SadTabGtk::OnLinkButtonClick(GtkWidget* sender) {
if (tab_contents_ != NULL) {
tab_contents_->OpenURL(GURL(l10n_util::GetStringUTF8(IDS_CRASH_REASON_URL)),
GURL(), CURRENT_TAB, PageTransition::LINK);
diff --git a/chrome/browser/gtk/sad_tab_gtk.h b/chrome/browser/gtk/sad_tab_gtk.h
index 1f513d3..283f4d5 100644
--- a/chrome/browser/gtk/sad_tab_gtk.h
+++ b/chrome/browser/gtk/sad_tab_gtk.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2010 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.
@@ -7,6 +7,7 @@
typedef struct _GtkWidget GtkWidget;
+#include "app/gtk_signal.h"
#include "chrome/common/owned_widget_gtk.h"
class TabContents;
@@ -19,11 +20,7 @@ class SadTabGtk {
GtkWidget* widget() const { return event_box_.get(); }
private:
- // Clicked-event handler for link to launch associated url.
- static void OnLinkButtonClickThunk(GtkWidget* widget,
- SadTabGtk* sad_tab) {
- sad_tab->OnLinkButtonClick();
- }
+ CHROMEGTK_CALLBACK_0(SadTabGtk, void, OnLinkButtonClick);
void OnLinkButtonClick();
@@ -33,4 +30,4 @@ class SadTabGtk {
DISALLOW_COPY_AND_ASSIGN(SadTabGtk);
};
-#endif // CHROME_BROWSER_GTK_SAD_TAB_GTK_H__
+#endif // CHROME_BROWSER_GTK_SAD_TAB_GTK_H_