X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/23b22b10a8d5ff80bfb7d5b2b1c75c4ceb6383c0..d57d0505d4c2186592833f18c3d40532d3a4bf0e:/src/gtk/assertdlg_gtk.cpp?ds=sidebyside diff --git a/src/gtk/assertdlg_gtk.cpp b/src/gtk/assertdlg_gtk.cpp index e71571bd75..bdcd83c086 100644 --- a/src/gtk/assertdlg_gtk.cpp +++ b/src/gtk/assertdlg_gtk.cpp @@ -1,5 +1,5 @@ /* /////////////////////////////////////////////////////////////////////////// -// Name: src/gtk/assertdlg_gtk.c +// Name: src/gtk/assertdlg_gtk.cpp // Purpose: GtkAssertDialog // Author: Francesco Montorsi // Id: $Id$ @@ -7,23 +7,15 @@ // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////// */ -#ifdef VMS -#define XCheckIfEvent XCHECKIFEVENT -#endif +#include "wx/wxprec.h" #include "wx/platform.h" -#include "wx/gtk/assertdlg_gtk.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - #include +#include "wx/gtk/assertdlg_gtk.h" +#include "wx/gtk/private/gtk2-compat.h" -/* For FILE */ #include - /* ---------------------------------------------------------------------------- Constants ---------------------------------------------------------------------------- */ @@ -33,10 +25,9 @@ extern "C" { in gtk_assert_dialog_create_backtrace_list_model() function */ #define STACKFRAME_LEVEL_COLIDX 0 -#define FUNCTION_NAME_COLIDX 1 +#define FUNCTION_PROTOTYPE_COLIDX 1 #define SOURCE_FILE_COLIDX 2 #define LINE_NUMBER_COLIDX 3 -#define FUNCTION_ARGS_COLIDX 4 @@ -46,20 +37,15 @@ extern "C" { ---------------------------------------------------------------------------- */ GtkWidget *gtk_assert_dialog_add_button_to (GtkBox *box, const gchar *label, - const gchar *stock, gint response_id) + const gchar *stock) { /* create the button */ GtkWidget *button = gtk_button_new_with_mnemonic (label); - GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); + gtk_widget_set_can_default(button, true); -#if GTK_CHECK_VERSION(2,6,0) - if (!gtk_check_version (2, 6, 0)) - { - /* add a stock icon inside it */ - GtkWidget *image = gtk_image_new_from_stock (stock, GTK_ICON_SIZE_BUTTON); - gtk_button_set_image (GTK_BUTTON (button), image); - } -#endif + /* add a stock icon inside it */ + GtkWidget *image = gtk_image_new_from_stock (stock, GTK_ICON_SIZE_BUTTON); + gtk_button_set_image (GTK_BUTTON (button), image); /* add to the given (container) widget */ if (box) @@ -72,7 +58,7 @@ GtkWidget *gtk_assert_dialog_add_button (GtkAssertDialog *dlg, const gchar *labe const gchar *stock, gint response_id) { /* create the button */ - GtkWidget *button = gtk_assert_dialog_add_button_to (NULL, label, stock, response_id); + GtkWidget* button = gtk_assert_dialog_add_button_to(NULL, label, stock); /* add the button to the dialog's action area */ gtk_dialog_add_action_widget (GTK_DIALOG (dlg), button, response_id); @@ -99,12 +85,11 @@ GtkWidget *gtk_assert_dialog_create_backtrace_list_model () GtkWidget *treeview; /* create list store */ - store = gtk_list_store_new (5, + store = gtk_list_store_new (4, G_TYPE_UINT, /* stack frame number */ - G_TYPE_STRING, /* function name */ + G_TYPE_STRING, /* function prototype */ G_TYPE_STRING, /* source file name */ - G_TYPE_STRING, /* line number */ - G_TYPE_STRING); /* function arguments */ + G_TYPE_STRING); /* line number */ /* create the tree view */ treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL(store)); @@ -113,8 +98,7 @@ GtkWidget *gtk_assert_dialog_create_backtrace_list_model () /* append columns */ gtk_assert_dialog_append_text_column(treeview, "#", STACKFRAME_LEVEL_COLIDX); - gtk_assert_dialog_append_text_column(treeview, "Function name", FUNCTION_NAME_COLIDX); - gtk_assert_dialog_append_text_column(treeview, "Function args", FUNCTION_ARGS_COLIDX); + gtk_assert_dialog_append_text_column(treeview, "Function Prototype", FUNCTION_PROTOTYPE_COLIDX); gtk_assert_dialog_append_text_column(treeview, "Source file", SOURCE_FILE_COLIDX); gtk_assert_dialog_append_text_column(treeview, "Line #", LINE_NUMBER_COLIDX); @@ -124,7 +108,7 @@ GtkWidget *gtk_assert_dialog_create_backtrace_list_model () void gtk_assert_dialog_process_backtrace (GtkAssertDialog *dlg) { /* set busy cursor */ - GdkWindow *parent = GTK_WIDGET(dlg)->window; + GdkWindow *parent = gtk_widget_get_window(GTK_WIDGET(dlg)); GdkCursor *cur = gdk_cursor_new (GDK_WATCH); gdk_window_set_cursor (parent, cur); gdk_flush (); @@ -138,11 +122,12 @@ void gtk_assert_dialog_process_backtrace (GtkAssertDialog *dlg) +extern "C" { /* ---------------------------------------------------------------------------- GtkAssertDialog signal handlers ---------------------------------------------------------------------------- */ -void gtk_assert_dialog_expander_callback (GtkWidget *widget, GtkAssertDialog *dlg) +static void gtk_assert_dialog_expander_callback(GtkWidget*, GtkAssertDialog* dlg) { /* status is not yet updated so we need to invert it to get the new one */ gboolean expanded = !gtk_expander_get_expanded (GTK_EXPANDER(dlg->expander)); @@ -157,7 +142,7 @@ void gtk_assert_dialog_expander_callback (GtkWidget *widget, GtkAssertDialog *dl dlg->callback = NULL; } -void gtk_assert_dialog_save_backtrace_callback (GtkWidget *widget, GtkAssertDialog *dlg) +static void gtk_assert_dialog_save_backtrace_callback(GtkWidget*, GtkAssertDialog* dlg) { GtkWidget *dialog; @@ -195,7 +180,7 @@ void gtk_assert_dialog_save_backtrace_callback (GtkWidget *widget, GtkAssertDial gtk_widget_destroy (dialog); } -void gtk_assert_dialog_copy_callback (GtkWidget *widget, GtkAssertDialog *dlg) +static void gtk_assert_dialog_copy_callback(GtkWidget*, GtkAssertDialog* dlg) { char *msg, *backtrace; GtkClipboard *clipboard; @@ -221,7 +206,7 @@ void gtk_assert_dialog_copy_callback (GtkWidget *widget, GtkAssertDialog *dlg) g_string_free (str, TRUE); } -void gtk_assert_dialog_continue_callback (GtkWidget *widget, GtkAssertDialog *dlg) +static void gtk_assert_dialog_continue_callback(GtkWidget*, GtkAssertDialog* dlg) { gint response = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(dlg->shownexttime)) ? @@ -229,7 +214,7 @@ void gtk_assert_dialog_continue_callback (GtkWidget *widget, GtkAssertDialog *dl gtk_dialog_response (GTK_DIALOG(dlg), response); } - +} // extern "C" /* ---------------------------------------------------------------------------- GtkAssertDialogClass implementation @@ -239,9 +224,9 @@ static void gtk_assert_dialog_init (GtkAssertDialog *sel static void gtk_assert_dialog_class_init (GtkAssertDialogClass *klass); -GtkType gtk_assert_dialog_get_type (void) +GType gtk_assert_dialog_get_type() { - static GtkType assert_dialog_type = 0; + static GType assert_dialog_type; if (!assert_dialog_type) { @@ -264,12 +249,12 @@ GtkType gtk_assert_dialog_get_type (void) return assert_dialog_type; } -void gtk_assert_dialog_class_init(GtkAssertDialogClass *klass) +static void gtk_assert_dialog_class_init(GtkAssertDialogClass*) { /* no special initializations required */ } -void gtk_assert_dialog_init(GtkAssertDialog *dlg) +static void gtk_assert_dialog_init(GtkAssertDialog* dlg) { GtkWidget *continuebtn; @@ -280,7 +265,7 @@ void gtk_assert_dialog_init(GtkAssertDialog *dlg) gtk_widget_push_composite_child (); vbox = gtk_vbox_new (FALSE, 8); gtk_container_set_border_width (GTK_CONTAINER(vbox), 8); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), vbox, TRUE, TRUE, 5); + gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dlg))), vbox, true, true, 5); /* add the icon+message hbox */ @@ -313,7 +298,7 @@ void gtk_assert_dialog_init(GtkAssertDialog *dlg) /* add the expander */ dlg->expander = gtk_expander_new_with_mnemonic ("Back_trace:"); gtk_box_pack_start (GTK_BOX(vbox), dlg->expander, TRUE, TRUE, 0); - g_signal_connect (GTK_EXPANDER(dlg->expander), "activate", + g_signal_connect (dlg->expander, "activate", G_CALLBACK(gtk_assert_dialog_expander_callback), dlg); } @@ -343,19 +328,19 @@ void gtk_assert_dialog_init(GtkAssertDialog *dlg) /* add the buttons */ button = gtk_assert_dialog_add_button_to (GTK_BOX(hbox), "Save to _file", - GTK_STOCK_SAVE, GTK_RESPONSE_NONE); + GTK_STOCK_SAVE); g_signal_connect (button, "clicked", G_CALLBACK(gtk_assert_dialog_save_backtrace_callback), dlg); button = gtk_assert_dialog_add_button_to (GTK_BOX(hbox), "Copy to clip_board", - GTK_STOCK_COPY, GTK_RESPONSE_NONE); + GTK_STOCK_COPY); g_signal_connect (button, "clicked", G_CALLBACK(gtk_assert_dialog_copy_callback), dlg); } /* add the checkbutton */ dlg->shownexttime = gtk_check_button_new_with_mnemonic("Show this _dialog the next time"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(dlg->shownexttime), TRUE); - gtk_box_pack_end (GTK_BOX(GTK_DIALOG(dlg)->action_area), dlg->shownexttime, FALSE, TRUE, 8); + gtk_box_pack_end(GTK_BOX(gtk_dialog_get_action_area(GTK_DIALOG(dlg))), dlg->shownexttime, false, true, 8); /* add the stop button */ gtk_assert_dialog_add_button (dlg, "_Stop", GTK_STOCK_QUIT, GTK_ASSERT_DIALOG_STOP); @@ -369,8 +354,8 @@ void gtk_assert_dialog_init(GtkAssertDialog *dlg) dlg->callback = NULL; dlg->userdata = NULL; - /* the resizeable property of this window is modified by the expander: - when it's collapsed, the window must be non-resizeable! */ + /* the resizable property of this window is modified by the expander: + when it's collapsed, the window must be non-resizable! */ gtk_window_set_resizable (GTK_WINDOW (dlg), FALSE); gtk_widget_pop_composite_child (); gtk_widget_show_all (GTK_WIDGET(dlg)); @@ -393,7 +378,7 @@ gchar *gtk_assert_dialog_get_message (GtkAssertDialog *dlg) gchar *gtk_assert_dialog_get_backtrace (GtkAssertDialog *dlg) { - gchar *function, *arguments, *sourcefile, *linenum; + gchar *function, *sourcefile, *linenum; guint count; GtkTreeModel *model; @@ -411,16 +396,15 @@ gchar *gtk_assert_dialog_get_backtrace (GtkAssertDialog *dlg) do { /* append this stack frame's info to the string */ - gtk_tree_model_get (model, &iter, + gtk_tree_model_get(model, &iter, STACKFRAME_LEVEL_COLIDX, &count, - FUNCTION_NAME_COLIDX, &function, - FUNCTION_ARGS_COLIDX, &arguments, + FUNCTION_PROTOTYPE_COLIDX, &function, SOURCE_FILE_COLIDX, &sourcefile, LINE_NUMBER_COLIDX, &linenum, -1); - g_string_append_printf (string, "[%u] %s(%s)", - count, function, arguments); + g_string_append_printf(string, "[%u] %s", + count, function); if (sourcefile[0] != '\0') g_string_append_printf (string, " %s", sourcefile); if (linenum[0] != '\0') @@ -428,7 +412,6 @@ gchar *gtk_assert_dialog_get_backtrace (GtkAssertDialog *dlg) g_string_append (string, "\n"); g_free (function); - g_free (arguments); g_free (sourcefile); g_free (linenum); @@ -463,7 +446,6 @@ void gtk_assert_dialog_set_backtrace_callback(GtkAssertDialog *assertdlg, void gtk_assert_dialog_append_stack_frame(GtkAssertDialog *dlg, const gchar *function, - const gchar *arguments, const gchar *sourcefile, guint line_number) { @@ -486,8 +468,7 @@ void gtk_assert_dialog_append_stack_frame(GtkAssertDialog *dlg, gtk_list_store_append (GTK_LIST_STORE(model), &iter); gtk_list_store_set (GTK_LIST_STORE(model), &iter, STACKFRAME_LEVEL_COLIDX, count+1, /* start from 1 and not from 0 */ - FUNCTION_NAME_COLIDX, function, - FUNCTION_ARGS_COLIDX, arguments, + FUNCTION_PROTOTYPE_COLIDX, function, SOURCE_FILE_COLIDX, sourcefile, LINE_NUMBER_COLIDX, linenum->str, -1); @@ -497,11 +478,7 @@ void gtk_assert_dialog_append_stack_frame(GtkAssertDialog *dlg, GtkWidget *gtk_assert_dialog_new(void) { - GtkAssertDialog *dialog = g_object_new (GTK_TYPE_ASSERT_DIALOG, NULL); + void* dialog = g_object_new(GTK_TYPE_ASSERT_DIALOG, NULL); return GTK_WIDGET (dialog); } - -#ifdef __cplusplus -} -#endif /* __cplusplus */