]>
Commit | Line | Data |
---|---|---|
30c4dd91 RR |
1 | /* /////////////////////////////////////////////////////////////////////////// |
2 | // Name: assertdlg_gtk.h | |
3 | // Purpose: GtkAssertDialog | |
4 | // Author: Francesco Montorsi | |
5 | // Id: $Id$ | |
6 | // Copyright: (c) 2006 Francesco Montorsi | |
7 | // Licence: wxWindows licence | |
8 | /////////////////////////////////////////////////////////////////////////// */ | |
9 | ||
10 | #ifndef __GTK_ASSERTDLG_H__ | |
11 | #define __GTK_ASSERTDLG_H__ | |
12 | ||
13 | #ifdef __cplusplus | |
14 | extern "C" { | |
15 | #endif /* __cplusplus */ | |
16 | ||
adc62081 | 17 | #include <gtk/gtk.h> |
30c4dd91 RR |
18 | |
19 | #define GTK_TYPE_ASSERT_DIALOG (gtk_assert_dialog_get_type ()) | |
20 | #define GTK_ASSERT_DIALOG(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GTK_TYPE_ASSERT_DIALOG, GtkAssertDialog)) | |
21 | #define GTK_ASSERT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_ASSERT_DIALOG, GtkAssertDialogClass)) | |
22 | #define GTK_IS_ASSERT_DIALOG(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GTK_TYPE_ASSERT_DIALOG)) | |
23 | #define GTK_IS_ASSERT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ASSERT_DIALOG)) | |
24 | #define GTK_ASSERT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ASSERT_DIALOG, GtkAssertDialogClass)) | |
25 | ||
26 | typedef struct _GtkAssertDialog GtkAssertDialog; | |
27 | typedef struct _GtkAssertDialogClass GtkAssertDialogClass; | |
28 | typedef void (*GtkAssertDialogStackFrameCallback)(void *); | |
29 | ||
30 | struct _GtkAssertDialog | |
31 | { | |
32 | GtkDialog parent_instance; | |
33 | ||
34 | /* GtkAssertDialog widgets */ | |
35 | GtkWidget *expander; | |
36 | GtkWidget *message; | |
37 | GtkWidget *treeview; | |
38 | ||
364663aa VZ |
39 | GtkWidget *shownexttime; |
40 | ||
30c4dd91 RR |
41 | /* callback for processing the stack frame */ |
42 | GtkAssertDialogStackFrameCallback callback; | |
43 | void *userdata; | |
44 | }; | |
45 | ||
46 | struct _GtkAssertDialogClass | |
47 | { | |
48 | GtkDialogClass parent_class; | |
49 | }; | |
50 | ||
51 | typedef enum | |
52 | { | |
53 | GTK_ASSERT_DIALOG_STOP, | |
54 | GTK_ASSERT_DIALOG_CONTINUE, | |
55 | GTK_ASSERT_DIALOG_CONTINUE_SUPPRESSING | |
56 | } GtkAssertDialogResponseID; | |
57 | ||
58 | ||
59 | ||
60 | ||
d4945129 VZ |
61 | GType gtk_assert_dialog_get_type(void); |
62 | GtkWidget *gtk_assert_dialog_new(void); | |
30c4dd91 RR |
63 | |
64 | /* get the assert message */ | |
65 | gchar *gtk_assert_dialog_get_message(GtkAssertDialog *assertdlg); | |
66 | ||
67 | /* set the assert message */ | |
68 | void gtk_assert_dialog_set_message(GtkAssertDialog *assertdlg, const gchar *msg); | |
69 | ||
70 | /* get a string containing all stack frames appended to the dialog */ | |
71 | gchar *gtk_assert_dialog_get_backtrace(GtkAssertDialog *assertdlg); | |
72 | ||
73 | /* sets the callback to use when the user wants to see the stackframe */ | |
74 | void gtk_assert_dialog_set_backtrace_callback(GtkAssertDialog *assertdlg, | |
75 | GtkAssertDialogStackFrameCallback callback, | |
76 | void *userdata); | |
77 | ||
78 | /* appends a stack frame to the dialog */ | |
79 | void gtk_assert_dialog_append_stack_frame(GtkAssertDialog *dlg, | |
80 | const gchar *function, | |
81 | const gchar *arguments, | |
82 | const gchar *sourcefile, | |
83 | guint line_number); | |
84 | ||
85 | #ifdef __cplusplus | |
86 | } | |
87 | #endif /* __cplusplus */ | |
88 | ||
89 | #endif /* __GTK_ASSERTDLG_H__ */ | |
90 | ||
91 |