Python plugin: Improve error reporting during plugin init
[claws.git] / src / plugins / python / python-shell.h
1 /*
2  * Copyright (c) 2008-2009  Christian Hammond
3  * Copyright (c) 2008-2009  David Trowbridge
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included
13  * in all copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21  * THE SOFTWARE.
22  */
23 #ifndef _PARASITE_PYTHON_SHELL_H_
24 #define _PARASITE_PYTHON_SHELL_H_
25
26 typedef struct _ParasitePythonShell      ParasitePythonShell;
27 typedef struct _ParasitePythonShellClass ParasitePythonShellClass;
28
29 #include <gtk/gtk.h>
30
31 #define PARASITE_TYPE_PYTHON_SHELL (parasite_python_shell_get_type())
32 #define PARASITE_PYTHON_SHELL(obj) \
33                 (G_TYPE_CHECK_INSTANCE_CAST((obj), PARASITE_TYPE_PYTHON_SHELL, ParasitePythonShell))
34 #define PARASITE_PYTHON_SHELL_CLASS(klass) \
35                 (G_TYPE_CHECK_CLASS_CAST((klass), PARASITE_TYPE_PYTHON_SHELL, ParasitePythonShellClass))
36 #define PARASITE_IS_PYTHON_SHELL(obj) \
37                 (G_TYPE_CHECK_INSTANCE_TYPE((obj), PARASITE_TYPE_PYTHON_SHELL))
38 #define PARASITE_IS_PYTHON_SHELL_CLASS(klass) \
39                 (G_TYPE_CHECK_CLASS_TYPE((klass), PARASITE_TYPE_PYTHON_SHELL))
40 #define PARASITE_PYTHON_SHELL_GET_CLASS(obj) \
41                 (G_TYPE_INSTANCE_GET_CLASS ((obj), PARASITE_TYPE_PYTHON_SHELL, ParasitePythonShellClass))
42
43
44 struct _ParasitePythonShell
45 {
46         GtkVBox parent_object;
47
48         void (*gtk_reserved1)(void);
49         void (*gtk_reserved2)(void);
50         void (*gtk_reserved3)(void);
51         void (*gtk_reserved4)(void);
52 };
53
54 struct _ParasitePythonShellClass
55 {
56         GtkVBoxClass parent_class;
57
58         void (*gtk_reserved1)(void);
59         void (*gtk_reserved2)(void);
60         void (*gtk_reserved3)(void);
61         void (*gtk_reserved4)(void);
62 };
63
64 G_BEGIN_DECLS
65
66 GType parasite_python_shell_get_type(void);
67
68 GtkWidget *parasite_python_shell_new(void);
69 void parasite_python_shell_append_text(ParasitePythonShell *python_shell,
70                                        const char *str,
71                                        const char *tag);
72 void parasite_python_shell_focus(ParasitePythonShell *python_shell);
73
74 G_END_DECLS
75
76 #endif // _PARASITE_PYTHON_SHELL_H_