SF.net SVN: geany-plugins:[789] trunk/geanylatex/src

frlan at users.sourceforge.net frlan at xxxxx
Sat Jun 27 09:52:14 UTC 2009


Revision: 789
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=789&view=rev
Author:   frlan
Date:     2009-06-27 09:52:14 +0000 (Sat, 27 Jun 2009)

Log Message:
-----------
GeanyLaTeX: Insert keybndings for inserting common list environments

Modified Paths:
--------------
    trunk/geanylatex/src/geanylatex.c
    trunk/geanylatex/src/latexenvironments.c
    trunk/geanylatex/src/latexenvironments.h
    trunk/geanylatex/src/latexkeybindings.c
    trunk/geanylatex/src/latexkeybindings.h

Modified: trunk/geanylatex/src/geanylatex.c
===================================================================
--- trunk/geanylatex/src/geanylatex.c	2009-06-27 08:25:43 UTC (rev 788)
+++ trunk/geanylatex/src/geanylatex.c	2009-06-27 09:52:14 UTC (rev 789)
@@ -85,6 +85,9 @@
 	KB_LATEX_FORMAT_CENTER,
 	KB_LATEX_FORMAT_LEFT,
 	KB_LATEX_FORMAT_RIGHT,
+	KB_LATEX_ENVIRONMENT_INSERT_DESCRIPTION,
+	KB_LATEX_ENVIRONMENT_INSERT_ITEMIZE,
+	KB_LATEX_ENVIRONMENT_INSERT_ENUMERATE,
 	COUNT_KB
 };
 
@@ -1135,7 +1138,16 @@
 	keybindings_set_item(plugin_key_group, KB_LATEX_FORMAT_LEFT, glatex_kb_format_left,
 		0, 0, "format_left", _("Format selection left-aligned"), NULL);
 	keybindings_set_item(plugin_key_group, KB_LATEX_FORMAT_RIGHT, glatex_kb_format_right,
-		0, 0, "format_right", _("Format selection right-aligned "), NULL);
+		0, 0, "format_right", _("Format selection right-aligned"), NULL);
+	keybindings_set_item(plugin_key_group, KB_LATEX_ENVIRONMENT_INSERT_DESCRIPTION,
+		glatex_kb_insert_description_list, 0, 0, "insert_description_list",
+		_("Insert description list"), NULL);
+	keybindings_set_item(plugin_key_group, KB_LATEX_ENVIRONMENT_INSERT_ITEMIZE,
+		glatex_kb_insert_itemize_list, 0, 0, "insert_itemize_list",
+		_("Insert itemize list"), NULL);
+	keybindings_set_item(plugin_key_group, KB_LATEX_ENVIRONMENT_INSERT_ENUMERATE,
+		glatex_kb_insert_enumerate_list, 0, 0, "insert_enumerate_list",
+		_("Insert enumerate list"), NULL);
 }
 
 void plugin_help()

Modified: trunk/geanylatex/src/latexenvironments.c
===================================================================
--- trunk/geanylatex/src/latexenvironments.c	2009-06-27 08:25:43 UTC (rev 788)
+++ trunk/geanylatex/src/latexenvironments.c	2009-06-27 09:52:14 UTC (rev 789)
@@ -51,8 +51,14 @@
 	{0, NULL, NULL},
 };
 
+gchar *glatex_list_environments [] =
+{
+	"description",
+	"enumerate",
+	"itemize"
+};
 
-void glatex_insert_environment(gchar *environment)
+void glatex_insert_environment(gchar *environment, gint type)
 {
 	GeanyDocument *doc = NULL;
 
@@ -78,11 +84,19 @@
 		{
 			gint pos = sci_get_current_position(doc->editor->sci);
 			gint len = strlen(environment);
+			GString *tmpstring = NULL;
 			gchar *tmp = NULL;
 
-			tmp = g_strconcat("\\begin{", environment, "}\n\n\\end{",
-			environment, "}\n", NULL);
+			tmpstring = g_string_new("\\begin{");
+			g_string_append(tmpstring, environment);
+			g_string_append(tmpstring, "}\n");
+			if (type == GLATEX_ENVIRONMENT_TYPE_LIST)
+				g_string_append(tmpstring, "\\item \n");
+			g_string_append(tmpstring, "\\end{");
+			g_string_append(tmpstring, environment);
+			g_string_append(tmpstring,"}\n");
 
+			tmp = g_string_free(tmpstring, FALSE);
 			sci_insert_text(doc->editor->sci, pos, tmp);
 			sci_set_current_position(doc->editor->sci, pos + len + 9, TRUE);
 			g_free(tmp);
@@ -97,7 +111,12 @@
 {
     gint env = GPOINTER_TO_INT(gdata);
 
-    glatex_insert_environment(glatex_environment_array[env].latex);
+	if (glatex_environment_array[env].cat == ENVIRONMENT_CAT_LISTS)
+	    glatex_insert_environment(glatex_environment_array[env].latex,
+			GLATEX_ENVIRONMENT_TYPE_LIST);
+	else
+		glatex_insert_environment(glatex_environment_array[env].latex,
+			GLATEX_ENVIRONMENT_TYPE_NONE);
 }
 
 
@@ -158,7 +177,8 @@
 
 		if (env_string != NULL)
 		{
-			glatex_insert_environment(env_string);
+			/* Introduce a check whether an enrivonent is a list */
+			glatex_insert_environment(env_string, GLATEX_ENVIRONMENT_TYPE_NONE);
 			g_free(env_string);
 		}
 	}
@@ -166,3 +186,7 @@
 	gtk_widget_destroy(dialog);
 }
 
+void glatex_insert_list_environment(gint type)
+{
+	glatex_insert_environment(glatex_list_environments[type], GLATEX_ENVIRONMENT_TYPE_LIST);
+}

Modified: trunk/geanylatex/src/latexenvironments.h
===================================================================
--- trunk/geanylatex/src/latexenvironments.h	2009-06-27 08:25:43 UTC (rev 788)
+++ trunk/geanylatex/src/latexenvironments.h	2009-06-27 09:52:14 UTC (rev 789)
@@ -34,11 +34,22 @@
     ENVIRONMENT_CAT_MAX
 };
 
+enum {
+    GLATEX_LIST_DESCRIPTION = 0,
+    GLATEX_LIST_ENUMERATE,
+    GLATEX_LIST_ITEMIZE
+};
+
+enum {
+    GLATEX_ENVIRONMENT_TYPE_NONE = 0,
+    GLATEX_ENVIRONMENT_TYPE_LIST
+};
+
 extern SubMenuTemplate glatex_environment_array[];
 
 extern CategoryName glatex_environment_cat_names[];
 
-void glatex_insert_environment(gchar *environment);
+void glatex_insert_environment(gchar *environment, gint type);
 
 void
 glatex_insert_environment_dialog(G_GNUC_UNUSED GtkMenuItem *menuitem,
@@ -48,4 +59,5 @@
 glatex_environment_insert_activated (G_GNUC_UNUSED GtkMenuItem *menuitem,
                               		 G_GNUC_UNUSED gpointer gdata);
 
+void glatex_insert_list_environment(gint type);
 #endif

Modified: trunk/geanylatex/src/latexkeybindings.c
===================================================================
--- trunk/geanylatex/src/latexkeybindings.c	2009-06-27 08:25:43 UTC (rev 788)
+++ trunk/geanylatex/src/latexkeybindings.c	2009-06-27 09:52:14 UTC (rev 789)
@@ -110,3 +110,24 @@
 		return;
 	glatex_insert_latex_format(NULL, GINT_TO_POINTER(LATEX_RIGHT));
 }
+
+void glatex_kb_insert_description_list(G_GNUC_UNUSED guint key_id)
+{
+	if (NULL == document_get_current())
+		return;
+	glatex_insert_list_environment(GLATEX_LIST_DESCRIPTION);
+}
+
+void glatex_kb_insert_itemize_list(G_GNUC_UNUSED guint key_id)
+{
+	if (NULL == document_get_current())
+		return;
+	glatex_insert_list_environment(GLATEX_LIST_ITEMIZE);
+}
+
+void glatex_kb_insert_enumerate_list(G_GNUC_UNUSED guint key_id)
+{
+	if (NULL == document_get_current())
+		return;
+	glatex_insert_list_environment(GLATEX_LIST_ENUMERATE);
+}

Modified: trunk/geanylatex/src/latexkeybindings.h
===================================================================
--- trunk/geanylatex/src/latexkeybindings.h	2009-06-27 08:25:43 UTC (rev 788)
+++ trunk/geanylatex/src/latexkeybindings.h	2009-06-27 09:52:14 UTC (rev 789)
@@ -37,5 +37,8 @@
 void glatex_kb_format_centering(G_GNUC_UNUSED guint key_id);
 void glatex_kb_format_left(G_GNUC_UNUSED guint key_id);
 void glatex_kb_format_right(G_GNUC_UNUSED guint key_id);
+void glatex_kb_insert_description_list(G_GNUC_UNUSED guint key_id);
+void glatex_kb_insert_itemize_list(G_GNUC_UNUSED guint key_id);
+void glatex_kb_insert_enumerate_list(G_GNUC_UNUSED guint key_id);
 
 #endif


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Plugins-Commits mailing list