1 /* This file is part of the Linux Trace Toolkit viewer
2 * Copyright (C) 2006 Mathieu Desnoyers
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;
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.
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,
19 /* The LttvPlugin class is a pure virtual class. It only contains the functions
20 * available for interaction with a plugin (tab or viewer).
27 #include <lttv/filter.h>
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))
40 typedef struct _LttvPlugin LttvPlugin;
41 typedef struct _LttvPluginClass LttvPluginClass;
45 /* instance members */
46 GtkWidget *top_widget;
51 struct _LttvPluginClass {
54 void (*update_filter) (LttvPlugin *self, LttvFilter *filter);
59 /* used by LTTV_PLUGIN_TYPE */
60 GType lttv_plugin_get_type (void);
66 /* declaration in the header. */
67 void lttv_plugin_update_filter (LttvPlugin *self, LttvFilter *filter);