15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_UI_LIBGTK2UI_GTK2_SIGNAL_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_UI_LIBGTK2UI_GTK2_SIGNAL_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/base/glib/glib_signal.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _GtkWidget GtkWidget;
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// These macros handle the common case where the sender object will be a
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// GtkWidget*.
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROMEGTK_CALLBACK_0(CLASS, RETURN, METHOD) \
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CHROMEG_CALLBACK_0(CLASS, RETURN, METHOD, GtkWidget*);
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROMEGTK_CALLBACK_1(CLASS, RETURN, METHOD, ARG1) \
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CHROMEG_CALLBACK_1(CLASS, RETURN, METHOD, GtkWidget*, ARG1);
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROMEGTK_CALLBACK_2(CLASS, RETURN, METHOD, ARG1, ARG2) \
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CHROMEG_CALLBACK_2(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2);
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROMEGTK_CALLBACK_3(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3) \
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CHROMEG_CALLBACK_3(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, ARG3);
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROMEGTK_CALLBACK_4(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, ARG4) \
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CHROMEG_CALLBACK_4(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, ARG3,   \
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     ARG4);
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROMEGTK_CALLBACK_5(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, ARG4, \
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             ARG5)                                          \
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CHROMEG_CALLBACK_5(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, ARG3,   \
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     ARG4, ARG5);
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROMEGTK_CALLBACK_6(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, ARG4, \
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             ARG5, ARG6)                                    \
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CHROMEG_CALLBACK_6(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2, ARG3,   \
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     ARG4, ARG5, ARG6);
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROMEGTK_VIRTUAL_CALLBACK_0(CLASS, RETURN, METHOD) \
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CHROMEG_VIRTUAL_CALLBACK_0(CLASS, RETURN, METHOD, GtkWidget*);
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROMEGTK_VIRTUAL_CALLBACK_1(CLASS, RETURN, METHOD, ARG1) \
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CHROMEG_VIRTUAL_CALLBACK_1(CLASS, RETURN, METHOD, GtkWidget*, ARG1);
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROMEGTK_VIRTUAL_CALLBACK_2(CLASS, RETURN, METHOD, ARG1, ARG2) \
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CHROMEG_VIRTUAL_CALLBACK_2(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2);
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROMEGTK_VIRTUAL_CALLBACK_3(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3) \
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CHROMEG_VIRTUAL_CALLBACK_3(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2,   \
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             ARG3);
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROMEGTK_VIRTUAL_CALLBACK_4(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, \
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                     ARG4) \
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CHROMEG_VIRTUAL_CALLBACK_4(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2,   \
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             ARG3, ARG4);
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROMEGTK_VIRTUAL_CALLBACK_5(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, \
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                     ARG4, ARG5)                              \
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CHROMEG_VIRTUAL_CALLBACK_5(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2,   \
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             ARG3, ARG4, ARG5);
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROMEGTK_VIRTUAL_CALLBACK_6(CLASS, RETURN, METHOD, ARG1, ARG2, ARG3, \
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                                     ARG4, ARG5, ARG6)                        \
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  CHROMEG_VIRTUAL_CALLBACK_6(CLASS, RETURN, METHOD, GtkWidget*, ARG1, ARG2,   \
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                             ARG3, ARG4, ARG5, ARG6);
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // CHROME_BROWSER_UI_LIBGTK2UI_GTK2_SIGNAL_H_
69