Commit 2f451516 authored by dcheng@chromium.org's avatar dcheng@chromium.org

Devirtualize CHROMEGTK_CALLBACK.

BUG=103827
TEST=compiles on clang without warnings and passes tests

Review URL: http://codereview.chromium.org/8536036

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109784 0039d316-1c4b-4281-b951-d872f2087c98
parent 63297fc5
......@@ -21,7 +21,7 @@ class AvatarMenuButtonGtk {
public:
explicit AvatarMenuButtonGtk(Browser* browser);
virtual ~AvatarMenuButtonGtk();
~AvatarMenuButtonGtk();
// Returns the button widget.
GtkWidget* widget() const { return widget_.get(); }
......
......@@ -94,7 +94,7 @@ class CryptoModulePasswordDialog {
const std::string& server,
const browser::CryptoModulePasswordCallback& callback);
virtual ~CryptoModulePasswordDialog() {}
~CryptoModulePasswordDialog() {}
void Show();
......
......@@ -18,7 +18,7 @@ class DownloadInProgressDialogGtk {
explicit DownloadInProgressDialogGtk(Browser* browser);
protected:
virtual ~DownloadInProgressDialogGtk() {}
~DownloadInProgressDialogGtk() {}
private:
CHROMEGTK_CALLBACK_1(DownloadInProgressDialogGtk, void, OnResponse, int);
......
......@@ -25,7 +25,7 @@ class EditSearchEngineDialog {
const TemplateURL* template_url,
EditSearchEngineControllerDelegate* delegate,
Profile* profile);
virtual ~EditSearchEngineDialog();
~EditSearchEngineDialog();
private:
// Create and show the window.
......
......@@ -52,7 +52,7 @@ class ExtensionInstallDialog {
SkBitmap* skia_icon,
const ExtensionInstallUI::Prompt& prompt);
private:
virtual ~ExtensionInstallDialog();
~ExtensionInstallDialog();
CHROMEGTK_CALLBACK_1(ExtensionInstallDialog, void, OnResponse, int);
CHROMEGTK_CALLBACK_0(ExtensionInstallDialog, void, OnStoreLinkClick);
......
......@@ -16,7 +16,7 @@ typedef struct _GtkWidget GtkWidget;
class ExternalProtocolDialogGtk {
public:
explicit ExternalProtocolDialogGtk(const GURL& url);
virtual ~ExternalProtocolDialogGtk();
~ExternalProtocolDialogGtk();
private:
CHROMEGTK_CALLBACK_1(ExternalProtocolDialogGtk, void, OnResponse, int);
......
......@@ -33,7 +33,7 @@ namespace {
class HungRendererDialogGtk {
public:
HungRendererDialogGtk();
virtual ~HungRendererDialogGtk() {}
~HungRendererDialogGtk() {}
void ShowForTabContents(TabContents* hung_contents);
void Hide();
void EndForTabContents(TabContents* hung_contents);
......
......@@ -23,7 +23,7 @@ class ImportLockDialogGtk {
private:
ImportLockDialogGtk(GtkWindow* parent, ImporterHost* importer_host);
virtual ~ImportLockDialogGtk();
~ImportLockDialogGtk();
CHROMEGTK_CALLBACK_1(ImportLockDialogGtk, void, OnResponse, int);
......
......@@ -19,7 +19,7 @@ typedef struct _GtkWindow GtkWindow;
class InstantConfirmDialogGtk {
public:
InstantConfirmDialogGtk(GtkWindow* parent, Profile* profile);
virtual ~InstantConfirmDialogGtk();
~InstantConfirmDialogGtk();
private:
CHROMEGTK_CALLBACK_1(InstantConfirmDialogGtk, void, OnResponse, int);
......
......@@ -34,7 +34,7 @@ class MenuBarHelper {
// |delegate| cannot be null.
explicit MenuBarHelper(Delegate* delegate);
virtual ~MenuBarHelper();
~MenuBarHelper();
// Must be called whenever a button's menu starts showing. It triggers the
// MenuBarHelper to start listening for certain events.
......
......@@ -21,7 +21,7 @@ class SadTabGtk {
};
SadTabGtk(TabContents* tab_contents, Kind kind);
virtual ~SadTabGtk();
~SadTabGtk();
GtkWidget* widget() const { return event_box_.get(); }
......
......@@ -19,7 +19,7 @@ class UpdateRecommendedDialog {
private:
explicit UpdateRecommendedDialog(GtkWindow* parent);
virtual ~UpdateRecommendedDialog();
~UpdateRecommendedDialog();
CHROMEGTK_CALLBACK_1(UpdateRecommendedDialog, void, OnResponse, int);
......
......@@ -27,7 +27,7 @@ class WebDragDestDelegate;
class CONTENT_EXPORT WebDragDestGtk {
public:
WebDragDestGtk(TabContents* tab_contents, GtkWidget* widget);
virtual ~WebDragDestGtk();
~WebDragDestGtk();
// This is called when the renderer responds to a drag motion event. We must
// update the system drag cursor.
......
......@@ -13,30 +13,57 @@ typedef struct _GtkWidget GtkWidget;
// These macros handle the common case where the sender object will be a
// GtkWidget*.
#define CHROMEGTK_CALLBACK_0(CLASS, RETURN, METHOD) \
CHROMEG_VIRTUAL_CALLBACK_0(CLASS, RETURN, METHOD, GtkWidget*);
CHROMEG_CALLBACK_0(CLASS, RETURN, METHOD, GtkWidget*);
#define CHROMEGTK_CALLBACK_1(CLASS, RETURN, METHOD, ARG1) \
CHROMEG_VIRTUAL_CALLBACK_1(CLASS, RETURN, METHOD, GtkWidget*, ARG1);
CHROMEG_CALLBACK_1(CLASS, RETURN, METHOD, GtkWidget*, ARG1);
#define CHROMEGTK_CALLBACK_2(CLASS, RETURN, METHOD, ARG1, ARG2) \
CHROMEG_VIRTUAL_CALLBACK_2(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2);
CHROMEG_CALLBACK_2(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2);
#define CHROMEGTK_CALLBACK_3(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3) \
CHROMEG_VIRTUAL_CALLBACK_3(CLASS, RETURN, METHOD, GtkWidget*, ARG1, \
ARG2, ARG3);
CHROMEG_CALLBACK_3(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, ARG3);
#define CHROMEGTK_CALLBACK_4(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, ARG4) \
CHROMEG_VIRTUAL_CALLBACK_4(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, \
ARG3, ARG4);
CHROMEG_CALLBACK_4(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, ARG3, \
ARG4);
#define CHROMEGTK_CALLBACK_5(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, ARG4, \
ARG5) \
CHROMEG_VIRTUAL_CALLBACK_5(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, \
ARG3, ARG4, ARG5);
CHROMEG_CALLBACK_5(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, ARG3, \
ARG4, ARG5);
#define CHROMEGTK_CALLBACK_6(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, ARG4, \
ARG5, ARG6) \
CHROMEG_VIRTUAL_CALLBACK_6(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, \
CHROMEG_CALLBACK_6(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, ARG3, \
ARG4, ARG5, ARG6);
#define CHROMEGTK_VIRTUAL_CALLBACK_0(CLASS, RETURN, METHOD) \
CHROMEG_VIRTUAL_CALLBACK_0(CLASS, RETURN, METHOD, GtkWidget*);
#define CHROMEGTK_VIRTUAL_CALLBACK_1(CLASS, RETURN, METHOD, ARG1) \
CHROMEG_VIRTUAL_CALLBACK_1(CLASS, RETURN, METHOD, GtkWidget*, ARG1);
#define CHROMEGTK_VIRTUAL_CALLBACK_2(CLASS, RETURN, METHOD, ARG1, ARG2) \
CHROMEG_VIRTUAL_CALLBACK_2(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2);
#define CHROMEGTK_VIRTUAL_CALLBACK_3(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3) \
CHROMEG_VIRTUAL_CALLBACK_3(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, \
ARG3);
#define CHROMEGTK_VIRTUAL_CALLBACK_4(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, \
ARG4) \
CHROMEG_VIRTUAL_CALLBACK_4(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, \
ARG3, ARG4);
#define CHROMEGTK_VIRTUAL_CALLBACK_5(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, \
ARG4, ARG5) \
CHROMEG_VIRTUAL_CALLBACK_5(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, \
ARG3, ARG4, ARG5);
#define CHROMEGTK_VIRTUAL_CALLBACK_6(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, \
ARG4, ARG5, ARG6) \
CHROMEG_VIRTUAL_CALLBACK_6(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, \
ARG3, ARG4, ARG5, ARG6);
#endif // UI_BASE_GTK_GTK_SIGNAL_H_
......@@ -26,7 +26,7 @@ namespace ui {
class UI_EXPORT TooltipWindowGtk {
public:
explicit TooltipWindowGtk(GtkWidget* widget);
virtual ~TooltipWindowGtk();
~TooltipWindowGtk();
// Sets tooltip text to display.
void SetTooltipText(const string16& text);
......
......@@ -238,51 +238,61 @@ class VIEWS_EXPORT NativeWidgetGtk : public internal::NativeWidgetPrivate,
}
// Event handlers:
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, gboolean, OnButtonPress,
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, gboolean, OnButtonPress,
GdkEventButton*);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, void, OnSizeRequest, GtkRequisition*);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, void, OnSizeAllocate, GtkAllocation*);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, gboolean, OnPaint, GdkEventExpose*);
CHROMEGTK_CALLBACK_4(NativeWidgetGtk, void, OnDragDataGet,
GdkDragContext*, GtkSelectionData*, guint, guint);
CHROMEGTK_CALLBACK_6(NativeWidgetGtk, void, OnDragDataReceived,
GdkDragContext*, gint, gint, GtkSelectionData*,
guint, guint);
CHROMEGTK_CALLBACK_4(NativeWidgetGtk, gboolean, OnDragDrop,
GdkDragContext*, gint, gint, guint);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, void, OnDragEnd, GdkDragContext*);
CHROMEGTK_CALLBACK_2(NativeWidgetGtk, gboolean, OnDragFailed,
GdkDragContext*, GtkDragResult);
CHROMEGTK_CALLBACK_2(NativeWidgetGtk, void, OnDragLeave,
GdkDragContext*, guint);
CHROMEGTK_CALLBACK_4(NativeWidgetGtk, gboolean, OnDragMotion,
GdkDragContext*, gint, gint, guint);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, gboolean, OnEnterNotify,
GdkEventCrossing*);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, gboolean, OnLeaveNotify,
GdkEventCrossing*);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, gboolean, OnMotionNotify,
GdkEventMotion*);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, gboolean, OnButtonRelease,
GdkEventButton*);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, gboolean, OnFocusIn, GdkEventFocus*);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, gboolean, OnFocusOut, GdkEventFocus*);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, gboolean, OnEventKey, GdkEventKey*);
CHROMEGTK_CALLBACK_4(NativeWidgetGtk, gboolean, OnQueryTooltip,
gint, gint, gboolean, GtkTooltip*);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, gboolean, OnScroll, GdkEventScroll*);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, gboolean, OnVisibilityNotify,
GdkEventVisibility*);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, gboolean, OnGrabBrokeEvent, GdkEvent*);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, void, OnGrabNotify, gboolean);
CHROMEGTK_CALLBACK_0(NativeWidgetGtk, void, OnDestroy);
CHROMEGTK_CALLBACK_0(NativeWidgetGtk, void, OnShow);
CHROMEGTK_CALLBACK_0(NativeWidgetGtk, void, OnMap);
CHROMEGTK_CALLBACK_0(NativeWidgetGtk, void, OnHide);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, gboolean, OnWindowStateEvent,
GdkEventWindowState*);
CHROMEGTK_CALLBACK_1(NativeWidgetGtk, gboolean, OnConfigureEvent,
GdkEventConfigure*);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, void, OnSizeRequest,
GtkRequisition*);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, void, OnSizeAllocate,
GtkAllocation*);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, gboolean, OnPaint,
GdkEventExpose*);
CHROMEGTK_VIRTUAL_CALLBACK_4(NativeWidgetGtk, void, OnDragDataGet,
GdkDragContext*, GtkSelectionData*, guint,
guint);
CHROMEGTK_VIRTUAL_CALLBACK_6(NativeWidgetGtk, void, OnDragDataReceived,
GdkDragContext*, gint, gint, GtkSelectionData*,
guint, guint);
CHROMEGTK_VIRTUAL_CALLBACK_4(NativeWidgetGtk, gboolean, OnDragDrop,
GdkDragContext*, gint, gint, guint);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, void, OnDragEnd,
GdkDragContext*);
CHROMEGTK_VIRTUAL_CALLBACK_2(NativeWidgetGtk, gboolean, OnDragFailed,
GdkDragContext*, GtkDragResult);
CHROMEGTK_VIRTUAL_CALLBACK_2(NativeWidgetGtk, void, OnDragLeave,
GdkDragContext*, guint);
CHROMEGTK_VIRTUAL_CALLBACK_4(NativeWidgetGtk, gboolean, OnDragMotion,
GdkDragContext*, gint, gint, guint);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, gboolean, OnEnterNotify,
GdkEventCrossing*);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, gboolean, OnLeaveNotify,
GdkEventCrossing*);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, gboolean, OnMotionNotify,
GdkEventMotion*);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, gboolean, OnButtonRelease,
GdkEventButton*);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, gboolean, OnFocusIn,
GdkEventFocus*);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, gboolean, OnFocusOut,
GdkEventFocus*);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, gboolean, OnEventKey,
GdkEventKey*);
CHROMEGTK_VIRTUAL_CALLBACK_4(NativeWidgetGtk, gboolean, OnQueryTooltip, gint,
gint, gboolean, GtkTooltip*);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, gboolean, OnScroll,
GdkEventScroll*);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, gboolean, OnVisibilityNotify,
GdkEventVisibility*);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, gboolean, OnGrabBrokeEvent,
GdkEvent*);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, void, OnGrabNotify, gboolean);
CHROMEGTK_VIRTUAL_CALLBACK_0(NativeWidgetGtk, void, OnDestroy);
CHROMEGTK_VIRTUAL_CALLBACK_0(NativeWidgetGtk, void, OnShow);
CHROMEGTK_VIRTUAL_CALLBACK_0(NativeWidgetGtk, void, OnMap);
CHROMEGTK_VIRTUAL_CALLBACK_0(NativeWidgetGtk, void, OnHide);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, gboolean, OnWindowStateEvent,
GdkEventWindowState*);
CHROMEGTK_VIRTUAL_CALLBACK_1(NativeWidgetGtk, gboolean, OnConfigureEvent,
GdkEventConfigure*);
// Invoked when the widget is destroyed and right before the object
// destruction. Useful for overriding.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment