SF.net SVN: geany: [472] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Thu Jun 22 14:30:07 UTC 2006
Revision: 472
Author: eht16
Date: 2006-06-22 07:29:55 -0700 (Thu, 22 Jun 2006)
ViewCVS: http://svn.sourceforge.net/geany/?rev=472&view=rev
Log Message:
-----------
Reorganised C include file items, added C++ headers.
Insert include statements and comment templates at mouse pointer position instead of cursor position.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/callbacks.c
trunk/src/utils.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2006-06-21 23:15:54 UTC (rev 471)
+++ trunk/ChangeLog 2006-06-22 14:29:55 UTC (rev 472)
@@ -1,3 +1,10 @@
+2006-06-22 Enrico Troeger <enrico.troeger at uvena.de>
+
+ * src/utils.c: Reorganised C include file items, added C++ headers.
+ * src/callbacks.c: Insert include statements and comment templates at
+ mouse pointer position instead of cursor position.
+
+
2006-06-21 Enrico Troeger <enrico.troeger at uvena.de>
* src/keybindings.c: Added missing shortcut for "Close".
Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c 2006-06-21 23:15:54 UTC (rev 471)
+++ trunk/src/callbacks.c 2006-06-22 14:29:55 UTC (rev 472)
@@ -78,6 +78,9 @@
static gint search_flags_re;
static gboolean search_backwards_re;
+// holds the current position where the mouse pointer is when the popup menu for the scintilla
+// scintilla widget is shown
+static gint clickpos;
void signal_cb(gint sig)
@@ -968,7 +971,7 @@
gpointer user_data)
{
gint idx = GPOINTER_TO_INT(user_data);
- gint clickpos = sci_get_position_from_xy(doc_list[idx].sci, event->x, event->y, FALSE);
+ clickpos = sci_get_position_from_xy(doc_list[idx].sci, event->x, event->y, FALSE);
#ifndef GEANY_WIN32
if (event->button == 1)
@@ -2092,7 +2095,7 @@
}
}
- sci_insert_text(doc_list[idx].sci, -1, text);
+ sci_insert_text(doc_list[idx].sci, clickpos, text);
g_free(text);
}
@@ -2132,7 +2135,7 @@
}
}
- sci_insert_text(doc_list[idx].sci, -1, text);
+ sci_insert_text(doc_list[idx].sci, clickpos, text);
g_free(text);
}
@@ -2154,8 +2157,6 @@
}
-
-
void
on_comments_fileheader_activate (GtkMenuItem *menuitem,
gpointer user_data)
@@ -2206,10 +2207,9 @@
gpointer user_data)
{
gint idx = document_get_cur_idx();
- gint pos = sci_get_current_position(doc_list[idx].sci);
gchar *text;
- if (utils_strcmp(user_data, "(blank)"))
+ if (utils_strcmp(user_data, "blank"))
{
text = g_strdup("#include \"\"\n");
}
@@ -2218,7 +2218,7 @@
text = g_strconcat("#include <", user_data, ">\n", NULL);
}
- sci_insert_text(doc_list[idx].sci, pos, text);
+ sci_insert_text(doc_list[idx].sci, clickpos, text);
g_free(text);
}
@@ -2305,9 +2305,6 @@
}
-
-
-
void
on_file_properties_activate (GtkMenuItem *menuitem,
gpointer user_data)
@@ -2317,8 +2314,6 @@
}
-
-
void
on_menu_fold_all1_activate (GtkMenuItem *menuitem,
gpointer user_data)
Modified: trunk/src/utils.c
===================================================================
--- trunk/src/utils.c 2006-06-21 23:15:54 UTC (rev 471)
+++ trunk/src/utils.c 2006-06-22 14:29:55 UTC (rev 472)
@@ -1485,6 +1485,7 @@
}
+/// TODO move me to document.c
void utils_replace_tabs(gint idx)
{
gint i, len, j = 0, tabs_amount = 0;
@@ -1767,79 +1768,80 @@
}
+static void insert_items(GtkMenu *me, GtkMenu *mp, gchar **includes, gchar *label)
+{
+ guint i = 0;
+ GtkWidget *tmp_menu;
+ GtkWidget *tmp_popup;
+ GtkWidget *edit_menu, *edit_menu_item;
+ GtkWidget *popup_menu, *popup_menu_item;
+
+ edit_menu = gtk_menu_new();
+ popup_menu = gtk_menu_new();
+ edit_menu_item = gtk_menu_item_new_with_label(label);
+ popup_menu_item = gtk_menu_item_new_with_label(label);
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(edit_menu_item), edit_menu);
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(popup_menu_item), popup_menu);
+
+ while (includes[i] != NULL)
+ {
+ tmp_menu = gtk_menu_item_new_with_label(includes[i]);
+ tmp_popup = gtk_menu_item_new_with_label(includes[i]);
+ gtk_container_add(GTK_CONTAINER(edit_menu), tmp_menu);
+ gtk_container_add(GTK_CONTAINER(popup_menu), tmp_popup);
+ g_signal_connect((gpointer) tmp_menu, "activate", G_CALLBACK(on_insert_include_activate),
+ (gpointer) includes[i]);
+ g_signal_connect((gpointer) tmp_popup, "activate", G_CALLBACK(on_insert_include_activate),
+ (gpointer) includes[i]);
+ i++;
+ }
+ gtk_widget_show_all(edit_menu_item);
+ gtk_widget_show_all(popup_menu_item);
+ gtk_container_add(GTK_CONTAINER(me), edit_menu_item);
+ gtk_container_add(GTK_CONTAINER(mp), popup_menu_item);
+}
+
+
void utils_create_insert_menu_items(void)
{
GtkMenu *menu_edit = GTK_MENU(lookup_widget(app->window, "insert_include2_menu"));
GtkMenu *menu_popup = GTK_MENU(lookup_widget(app->popup_menu, "insert_include1_menu"));
- gint i, include_files_len = 29;
- const gchar *c_include_files[] = {
- NULL,
- "<span weight=\"ultrabold\">Std.Lib</span>",
- "(blank)",
- "assert.h",
- "ctype.h",
- "errno.h",
- "float.h",
- "limits.h",
- "locale.h",
- "math.h",
- "setjmp.h",
- "signal.h",
- "stdarg.h",
- "stddef.h",
- "stdio.h",
- "stdlib.h",
- "string.h",
- "time.h",
- NULL,
- "<span weight=\"ultrabold\">C99</span>",
- "complex.h",
- "fenv.h",
- "inttypes.h",
- "iso646.h",
- "stdbool.h",
- "stdint.h",
- "tgmath.h",
- "wchar.h",
- "wctype.h"
+ GtkWidget *blank;
+ const gchar *c_includes_stdlib[] = {
+ "assert.h", "ctype.h", "errno.h", "float.h", "limits.h", "locale.h", "math.h", "setjmp.h",
+ "signal.h", "stdarg.h", "stddef.h", "stdio.h", "stdlib.h", "string.h", "time.h", NULL
};
-
- for (i = 0; i < include_files_len; i++)
- {
- if (c_include_files[i] == NULL)
- {
- GtkWidget *tmp_menu = gtk_menu_item_new_with_label("");
- GtkWidget *tmp_popup = gtk_menu_item_new_with_label("");
- i++;
- gtk_widget_set_sensitive(tmp_menu, FALSE);
- gtk_widget_set_sensitive(tmp_popup, FALSE);
- gtk_label_set_markup (GTK_LABEL(gtk_bin_get_child(GTK_BIN(tmp_menu))), c_include_files[i]);
- gtk_label_set_markup (GTK_LABEL(gtk_bin_get_child(GTK_BIN(tmp_popup))), c_include_files[i]);
- gtk_widget_show(tmp_menu);
- gtk_widget_show(tmp_popup);
- gtk_container_add(GTK_CONTAINER(menu_edit), tmp_menu);
- gtk_container_add(GTK_CONTAINER(menu_popup), tmp_popup);
- tmp_menu = gtk_separator_menu_item_new();
- tmp_popup = gtk_separator_menu_item_new();
- gtk_widget_show(tmp_menu);
- gtk_widget_show(tmp_popup);
- gtk_container_add(GTK_CONTAINER(menu_edit), tmp_menu);
- gtk_container_add(GTK_CONTAINER(menu_popup), tmp_popup);
- }
- else
- {
- GtkWidget *tmp_menu = gtk_menu_item_new_with_label(c_include_files[i]);
- GtkWidget *tmp_popup = gtk_menu_item_new_with_label(c_include_files[i]);
- gtk_widget_show(tmp_menu);
- gtk_widget_show(tmp_popup);
- gtk_container_add(GTK_CONTAINER(menu_edit), tmp_menu);
- gtk_container_add(GTK_CONTAINER(menu_popup), tmp_popup);
- g_signal_connect((gpointer) tmp_menu, "activate", G_CALLBACK(on_insert_include_activate), (gpointer) c_include_files[i]);
- g_signal_connect((gpointer) tmp_popup, "activate", G_CALLBACK(on_insert_include_activate), (gpointer) c_include_files[i]);
- }
-
- }
-
+ const gchar *c_includes_c99[] = {
+ "complex.h", "fenv.h", "inttypes.h", "iso646.h", "stdbool.h", "stdint.h",
+ "tgmath.h", "wchar.h", "wctype.h", NULL
+ };
+ const gchar *c_includes_cpp[] = {
+ "cstdio", "cstring", "cctype", "cmath", "ctime", "cstdlib", "cstdarg", NULL
+ };
+ const gchar *c_includes_cppstdlib[] = {
+ "iostream", "fstream", "iomanip", "sstream", "exception", "stdexcept",
+ "memory", "locale", NULL
+ };
+ const gchar *c_includes_stl[] = {
+ "bitset", "dequev", "list", "map", "set", "queue", "stack", "vector", "algorithm",
+ "iterator", "functional", "string", "complex", "valarray", NULL
+ };
+
+ blank = gtk_menu_item_new_with_label(_("(blank)"));
+ gtk_container_add(GTK_CONTAINER(menu_edit), blank);
+ gtk_widget_show(blank);
+ g_signal_connect((gpointer) blank, "activate", G_CALLBACK(on_insert_include_activate),
+ (gpointer) "blank");
+ blank = gtk_menu_item_new_with_label(_("(blank)"));
+ gtk_container_add(GTK_CONTAINER(menu_popup), blank);
+ gtk_widget_show(blank);
+ g_signal_connect((gpointer) blank, "activate", G_CALLBACK(on_insert_include_activate),
+ (gpointer) "blank");
+ insert_items(menu_edit, menu_popup, (gchar**) c_includes_stdlib, _("C Standard Library"));
+ insert_items(menu_edit, menu_popup, (gchar**) c_includes_c99, _("ISO C99"));
+ insert_items(menu_edit, menu_popup, (gchar**) c_includes_cpp, _("C++ (C Standard Library)"));
+ insert_items(menu_edit, menu_popup, (gchar**) c_includes_cppstdlib, _("C++ Standard Library"));
+ insert_items(menu_edit, menu_popup, (gchar**) c_includes_stl, _("C++ STL"));
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list