1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_UI_LIBGTK2UI_GTK2_SIGNAL_H_ 6#define CHROME_BROWSER_UI_LIBGTK2UI_GTK2_SIGNAL_H_ 7 8#include "ui/base/glib/glib_signal.h" 9 10typedef struct _GtkWidget GtkWidget; 11 12// These macros handle the common case where the sender object will be a 13// GtkWidget*. 14#define CHROMEGTK_CALLBACK_0(CLASS, RETURN, METHOD) \ 15 CHROMEG_CALLBACK_0(CLASS, RETURN, METHOD, GtkWidget*); 16 17#define CHROMEGTK_CALLBACK_1(CLASS, RETURN, METHOD, ARG1) \ 18 CHROMEG_CALLBACK_1(CLASS, RETURN, METHOD, GtkWidget*, ARG1); 19 20#define CHROMEGTK_CALLBACK_2(CLASS, RETURN, METHOD, ARG1, ARG2) \ 21 CHROMEG_CALLBACK_2(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2); 22 23#define CHROMEGTK_CALLBACK_3(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3) \ 24 CHROMEG_CALLBACK_3(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, ARG3); 25 26#define CHROMEGTK_CALLBACK_4(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, ARG4) \ 27 CHROMEG_CALLBACK_4(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, ARG3, \ 28 ARG4); 29 30#define CHROMEGTK_CALLBACK_5(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, ARG4, \ 31 ARG5) \ 32 CHROMEG_CALLBACK_5(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, ARG3, \ 33 ARG4, ARG5); 34 35#define CHROMEGTK_CALLBACK_6(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, ARG4, \ 36 ARG5, ARG6) \ 37 CHROMEG_CALLBACK_6(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, ARG3, \ 38 ARG4, ARG5, ARG6); 39 40#define CHROMEGTK_VIRTUAL_CALLBACK_0(CLASS, RETURN, METHOD) \ 41 CHROMEG_VIRTUAL_CALLBACK_0(CLASS, RETURN, METHOD, GtkWidget*); 42 43#define CHROMEGTK_VIRTUAL_CALLBACK_1(CLASS, RETURN, METHOD, ARG1) \ 44 CHROMEG_VIRTUAL_CALLBACK_1(CLASS, RETURN, METHOD, GtkWidget*, ARG1); 45 46#define CHROMEGTK_VIRTUAL_CALLBACK_2(CLASS, RETURN, METHOD, ARG1, ARG2) \ 47 CHROMEG_VIRTUAL_CALLBACK_2(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2); 48 49#define CHROMEGTK_VIRTUAL_CALLBACK_3(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3) \ 50 CHROMEG_VIRTUAL_CALLBACK_3(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, \ 51 ARG3); 52 53#define CHROMEGTK_VIRTUAL_CALLBACK_4(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, \ 54 ARG4) \ 55 CHROMEG_VIRTUAL_CALLBACK_4(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, \ 56 ARG3, ARG4); 57 58#define CHROMEGTK_VIRTUAL_CALLBACK_5(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, \ 59 ARG4, ARG5) \ 60 CHROMEG_VIRTUAL_CALLBACK_5(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, \ 61 ARG3, ARG4, ARG5); 62 63#define CHROMEGTK_VIRTUAL_CALLBACK_6(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, \ 64 ARG4, ARG5, ARG6) \ 65 CHROMEG_VIRTUAL_CALLBACK_6(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, \ 66 ARG3, ARG4, ARG5, ARG6); 67 68#endif // CHROME_BROWSER_UI_LIBGTK2UI_GTK2_SIGNAL_H_ 69