From a51bc3d6545b48eddb18de3b10a4381dc459614c Mon Sep 17 00:00:00 2001 From: Colomban Wendling Date: Thu, 26 Jun 2014 18:31:05 +0200 Subject: [PATCH] Move include insert callbacks to the UI code where they belong --- src/callbacks.c | 44 ------------------------------------------ src/callbacks.h | 4 ---- src/ui_utils.c | 51 ++++++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 46 insertions(+), 53 deletions(-) diff --git a/src/callbacks.c b/src/callbacks.c index 7995a9c856..d0df2d79f3 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -1359,50 +1359,6 @@ void on_menu_insert_date_activate(GtkMenuItem *menuitem, gpointer user_data) } -/* @include include name or NULL for empty with cursor ready for typing it */ -static void insert_include(GeanyDocument *doc, gint pos, const gchar *include) -{ - gint pos_after = -1; - gchar *text; - - g_return_if_fail(doc != NULL); - g_return_if_fail(include != NULL); - g_return_if_fail(pos == -1 || pos >= 0); - - if (pos == -1) - pos = sci_get_current_position(doc->editor->sci); - - if (utils_str_equal(include, "blank")) - { - text = g_strdup("#include \"\"\n"); - pos_after = pos + 10; - } - else - { - text = g_strconcat("#include <", include, ">\n", NULL); - } - - sci_start_undo_action(doc->editor->sci); - sci_insert_text(doc->editor->sci, pos, text); - sci_end_undo_action(doc->editor->sci); - g_free(text); - if (pos_after >= 0) - sci_goto_pos(doc->editor->sci, pos_after, FALSE); -} - - -void on_insert_include_activate(GtkMenuItem *menuitem, gpointer user_data) -{ - insert_include(document_get_current(), editor_info.click_pos, user_data); -} - - -void on_menu_insert_include_activate(GtkMenuItem *menuitem, gpointer user_data) -{ - insert_include(document_get_current(), -1, user_data); -} - - G_MODULE_EXPORT void on_file_properties_activate(GtkMenuItem *menuitem, gpointer user_data) { GeanyDocument *doc = document_get_current(); diff --git a/src/callbacks.h b/src/callbacks.h index 12ff8a0fa8..ff747795ce 100644 --- a/src/callbacks.h +++ b/src/callbacks.h @@ -104,8 +104,6 @@ void on_toolbutton_compile_clicked(GtkAction *action, gpointer user_data); G_MODULE_EXPORT void on_line_wrapping1_toggled(GtkCheckMenuItem *checkmenuitem, gpointer user_data); -void on_insert_include_activate(GtkMenuItem *menuitem, gpointer user_data); - void on_insert_date_activate(GtkMenuItem *menuitem, gpointer user_data); void on_toolbutton_goto_entry_activate(GtkAction *action, const gchar *text, gpointer user_data); @@ -134,8 +132,6 @@ G_MODULE_EXPORT void on_menu_toggle_line_commentation1_activate(GtkMenuItem *men G_MODULE_EXPORT void on_next_message1_activate(GtkMenuItem *menuitem, gpointer user_data); -void on_menu_insert_include_activate(GtkMenuItem *menuitem, gpointer user_data); - void on_menu_insert_date_activate(GtkMenuItem *menuitem, gpointer user_data); G_MODULE_EXPORT void on_project_new1_activate(GtkMenuItem *menuitem, gpointer user_data); diff --git a/src/ui_utils.c b/src/ui_utils.c index e06ffbeb90..511b81ae5d 100644 --- a/src/ui_utils.c +++ b/src/ui_utils.c @@ -553,6 +553,49 @@ void ui_update_fold_items(void) } +/* @include include name or NULL for empty with cursor ready for typing it */ +static void insert_include(GeanyDocument *doc, gint pos, const gchar *include) +{ + gint pos_after = -1; + gchar *text; + + g_return_if_fail(doc != NULL); + g_return_if_fail(pos == -1 || pos >= 0); + + if (pos == -1) + pos = sci_get_current_position(doc->editor->sci); + + if (! include) + { + text = g_strdup("#include \"\"\n"); + pos_after = pos + 10; + } + else + { + text = g_strconcat("#include <", include, ">\n", NULL); + } + + sci_start_undo_action(doc->editor->sci); + sci_insert_text(doc->editor->sci, pos, text); + sci_end_undo_action(doc->editor->sci); + g_free(text); + if (pos_after >= 0) + sci_goto_pos(doc->editor->sci, pos_after, FALSE); +} + + +static void on_popup_insert_include_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_include(document_get_current(), editor_info.click_pos, user_data); +} + + +static void on_menu_insert_include_activate(GtkMenuItem *menuitem, gpointer user_data) +{ + insert_include(document_get_current(), -1, user_data); +} + + static void insert_include_items(GtkMenu *me, GtkMenu *mp, gchar **includes, gchar *label) { guint i = 0; @@ -577,7 +620,7 @@ static void insert_include_items(GtkMenu *me, GtkMenu *mp, gchar **includes, gch g_signal_connect(tmp_menu, "activate", G_CALLBACK(on_menu_insert_include_activate), (gpointer) includes[i]); g_signal_connect(tmp_popup, "activate", - G_CALLBACK(on_insert_include_activate), (gpointer) includes[i]); + G_CALLBACK(on_popup_insert_include_activate), (gpointer) includes[i]); i++; } gtk_widget_show_all(edit_menu_item); @@ -615,8 +658,7 @@ void ui_create_insert_menu_items(void) blank = gtk_menu_item_new_with_label("#include \"...\""); gtk_container_add(GTK_CONTAINER(menu_edit), blank); gtk_widget_show(blank); - g_signal_connect(blank, "activate", G_CALLBACK(on_menu_insert_include_activate), - (gpointer) "blank"); + g_signal_connect(blank, "activate", G_CALLBACK(on_menu_insert_include_activate), NULL); blank = gtk_separator_menu_item_new (); gtk_container_add(GTK_CONTAINER(menu_edit), blank); gtk_widget_show(blank); @@ -624,8 +666,7 @@ void ui_create_insert_menu_items(void) blank = gtk_menu_item_new_with_label("#include \"...\""); gtk_container_add(GTK_CONTAINER(menu_popup), blank); gtk_widget_show(blank); - g_signal_connect(blank, "activate", G_CALLBACK(on_insert_include_activate), - (gpointer) "blank"); + g_signal_connect(blank, "activate", G_CALLBACK(on_popup_insert_include_activate), NULL); blank = gtk_separator_menu_item_new(); gtk_container_add(GTK_CONTAINER(menu_popup), blank); gtk_widget_show(blank);