diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-07 01:40:52 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-07 01:40:52 +0000 |
commit | ebb1782ad3c2d0f8d12e99da81a1d99e91ef5fe0 (patch) | |
tree | b5c79d1876497848ddc8880dcc281f1604409b83 /chrome/browser/gtk | |
parent | 7ea9419dab2d53344207a3d9507b960b31ee0704 (diff) | |
download | chromium_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.cc | 5 | ||||
-rw-r--r-- | chrome/browser/gtk/constrained_window_gtk.h | 12 | ||||
-rw-r--r-- | chrome/browser/gtk/first_run_bubble.cc | 16 | ||||
-rw-r--r-- | chrome/browser/gtk/first_run_bubble.h | 17 | ||||
-rw-r--r-- | chrome/browser/gtk/go_button_gtk.cc | 61 | ||||
-rw-r--r-- | chrome/browser/gtk/go_button_gtk.h | 22 | ||||
-rw-r--r-- | chrome/browser/gtk/info_bubble_gtk.cc | 3 | ||||
-rw-r--r-- | chrome/browser/gtk/info_bubble_gtk.h | 10 | ||||
-rw-r--r-- | chrome/browser/gtk/sad_tab_gtk.cc | 2 | ||||
-rw-r--r-- | chrome/browser/gtk/sad_tab_gtk.h | 11 |
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_ |