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