27dd5fdf |
1 | /* This file is part of the Linux Trace Toolkit viewer |
2 | * Copyright (C) 2006 Mathieu Desnoyers |
3 | * |
4 | * This program is free software; you can redistribute it and/or modify |
5 | * it under the terms of the GNU General Public License Version 2 as |
6 | * published by the Free Software Foundation; |
7 | * |
8 | * This program is distributed in the hope that it will be useful, |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
11 | * GNU General Public License for more details. |
12 | * |
13 | * You should have received a copy of the GNU General Public License |
14 | * along with this program; if not, write to the Free Software |
15 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, |
16 | * MA 02111-1307, USA. |
17 | */ |
18 | |
19 | /* The LttvPlugin class is a pure virtual class. It only contains the functions |
20 | * available for interaction with a plugin (tab or viewer). |
21 | */ |
22 | |
23 | #ifndef LTTV_PLUGIN_H |
24 | #define LTTV_PLUGIN_H |
25 | |
26 | #include <gtk/gtk.h> |
27 | #include <lttv/filter.h> |
28 | |
29 | /* |
30 | * Type macros. |
31 | */ |
32 | |
33 | #define LTTV_TYPE_PLUGIN (lttv_plugin_get_type ()) |
34 | #define LTTV_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LTTV_TYPE_PLUGIN, LttvPlugin)) |
35 | #define LTTV_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LTTV_TYPE_PLUGIN, LttvPluginClass)) |
36 | #define LTTV_IS_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LTTV_TYPE_PLUGIN)) |
37 | #define LTTV_IS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LTTV_TYPE_PLUGIN)) |
38 | #define LTTV_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LTTV_TYPE_PLUGIN, LttvPluginClass)) |
39 | |
40 | typedef struct _LttvPlugin LttvPlugin; |
41 | typedef struct _LttvPluginClass LttvPluginClass; |
42 | |
43 | struct _LttvPlugin { |
44 | GObject parent; |
45 | /* instance members */ |
46 | GtkWidget *top_widget; |
47 | |
48 | /* private */ |
49 | }; |
50 | |
51 | struct _LttvPluginClass { |
52 | GObjectClass parent; |
53 | |
54 | void (*update_filter) (LttvPlugin *self, LttvFilter *filter); |
55 | |
56 | /* class members */ |
57 | }; |
58 | |
59 | /* used by LTTV_PLUGIN_TYPE */ |
60 | GType lttv_plugin_get_type (void); |
61 | |
62 | /* |
63 | * Method definitions. |
64 | */ |
65 | |
66 | /* declaration in the header. */ |
67 | void lttv_plugin_update_filter (LttvPlugin *self, LttvFilter *filter); |
68 | |
69 | |
70 | |
71 | |
72 | #endif |