Commit | Line | Data |
---|---|---|
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 | |
b9ce0bad YB |
15 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
16 | * MA 02110-1301, USA. | |
27dd5fdf | 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 |