6 * (c) 2006, Luis E. Garcia Ontanon <luis@ontanon.org>
10 * Wireshark - Network traffic analyzer
11 * By Gerald Combs <gerald@wireshark.org>
12 * Copyright 1998 Gerald Combs
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License
16 * as published by the Free Software Foundation; either version 2
17 * of the License, or (at your option) any later version.
19 * This program is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
24 * You should have received a copy of the GNU General Public License
25 * along with this program; if not, write to the Free Software
26 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
31 #include <epan/funnel.h>
33 typedef struct _funnel_menu_t
{
35 register_stat_group_t group
;
36 void (*callback
)(gpointer
);
37 gpointer callback_data
;
39 struct _funnel_menu_t
* next
;
42 static const funnel_ops_t
* ops
= NULL
;
43 static funnel_menu_t
* menus
= NULL
;
45 const funnel_ops_t
* funnel_get_funnel_ops(void) { return ops
; }
46 void funnel_set_funnel_ops(const funnel_ops_t
* o
) { ops
= o
; }
48 void funnel_register_menu(const char *name
,
49 register_stat_group_t group
,
50 void (*callback
)(gpointer
),
51 gpointer callback_data
,
53 funnel_menu_t
* m
= (funnel_menu_t
*)g_malloc(sizeof(funnel_menu_t
));
54 m
->name
= g_strdup(name
);
56 m
->callback
= callback
;
57 m
->callback_data
= callback_data
;
65 for (c
= menus
; c
->next
; c
= c
->next
);
70 void funnel_register_all_menus(funnel_registration_cb_t r_cb
) {
72 for (c
= menus
; c
; c
= c
->next
) {
73 r_cb(c
->name
,c
->group
,c
->callback
,c
->callback_data
,c
->retap
);