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

frlan at users.sourceforge.net frlan at xxxxx
Mon Sep 27 07:13:52 UTC 2010


Revision: 1612
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1612&view=rev
Author:   frlan
Date:     2010-09-27 07:13:52 +0000 (Mon, 27 Sep 2010)

Log Message:
-----------
GeanyLaTeX: Add a way to add an icon for the LaTeX wizard to Geany main toolbar

Modified Paths:
--------------
    trunk/geanylatex/ChangeLog
    trunk/geanylatex/doc/geanylatex.tex
    trunk/geanylatex/src/geanylatex.c

Modified: trunk/geanylatex/ChangeLog
===================================================================
--- trunk/geanylatex/ChangeLog	2010-09-27 07:13:28 UTC (rev 1611)
+++ trunk/geanylatex/ChangeLog	2010-09-27 07:13:52 UTC (rev 1612)
@@ -1,7 +1,8 @@
 2010-09-26  Frank Lanitz  <frank at frank.uvena.de>
 
  * Try to backport automatic generation of LINGUAS files into waf script
-   as a backport from Geany-plugins build script. 
+   as a backport from Geany-plugins build script.
+ * Add a feature to put a icon for the wizard into Geany's main toolbar.
 
 
 2010-09-20  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>

Modified: trunk/geanylatex/doc/geanylatex.tex
===================================================================
--- trunk/geanylatex/doc/geanylatex.tex	2010-09-27 07:13:28 UTC (rev 1611)
+++ trunk/geanylatex/doc/geanylatex.tex	2010-09-27 07:13:52 UTC (rev 1612)
@@ -581,6 +581,11 @@
 have the capital version of a letter in a particular case, just hit 
 undo (Ctrl + z in most cases). 
 
+\subsubsection{Add a wizard icon to Geany's main toolbar}
+This adds an icon for Geany\LaTeX{} wizard to Geany's main toolbar
+so its easy to access via mouse even the toolbar of Geany\LaTeX{} is
+not active and the tools menu is a way to far away.
+
 \subsubsection{Modus of autocompletion}
 \label{sec:modus_of_autocompletion}
 Here you can choose, whether the Geany\LaTeX{} should do some

Modified: trunk/geanylatex/src/geanylatex.c
===================================================================
--- trunk/geanylatex/src/geanylatex.c	2010-09-27 07:13:28 UTC (rev 1611)
+++ trunk/geanylatex/src/geanylatex.c	2010-09-27 07:13:52 UTC (rev 1612)
@@ -75,6 +75,7 @@
 static gchar *glatex_ref_all_string = NULL;
 static gboolean glatex_set_toolbar_active = FALSE;
 static gboolean glatex_capitalize_sentence_starts = FALSE;
+static gboolean glatex_wizard_to_generic_toolbar = FALSE;
 
 /* We want to keep this deactivated by default as the
  * user needs to know what he is doing here.... */
@@ -95,6 +96,8 @@
 static GtkWidget *glatex_toolbar = NULL;
 static GtkWidget *box = NULL;
 
+static GtkToolItem *glatex_wizard_generic_toolbar_item = NULL;
+
 /* Configuration file */
 static gchar *config_file = NULL;
 
@@ -136,6 +139,7 @@
 	GtkWidget *toolbar_active;
 	GtkWidget *glatex_autocompletion_active;
 	GtkWidget *glatex_capitalize_sentence;
+	GtkWidget *wizard_to_generic_toolbar;
 }
 config_widgets;
 
@@ -143,6 +147,8 @@
 static void toggle_toolbar_items_by_file_type(gint id);
 static void add_menu_to_menubar();
 static void remove_menu_from_menubar();
+static void add_wizard_to_generic_toolbar();
+static void remove_wizard_from_generic_toolbar();
 
 static GtkWidget *init_toolbar()
 {
@@ -185,7 +191,9 @@
 			gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(config_widgets.toolbar_active));
 		glatex_capitalize_sentence_starts =
 			gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(config_widgets.glatex_capitalize_sentence));
-
+		glatex_wizard_to_generic_toolbar =
+			gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(config_widgets.wizard_to_generic_toolbar));
+			
 		/* Check the response code for geanyLaTeX's autocompletion functions.
 		 * Due compatibility with oder Geany versions cass 0 will be treated
 		 * as FALSE, which means autocompletion is deactivated. */
@@ -207,7 +215,10 @@
 			glatex_autocompletion_active);
 		g_key_file_set_boolean(config, "autocompletion", 
 			"glatex_capitalize_sentence_starts", glatex_capitalize_sentence_starts);
+		g_key_file_set_boolean(config, "toolbar", "glatex_wizard_to_generic_toolbar",
+			glatex_wizard_to_generic_toolbar);
 
+
 		if (!g_file_test(config_dir, G_FILE_TEST_IS_DIR)
 			&& utils_mkdir(config_dir, TRUE) != 0)
 		{
@@ -243,6 +254,18 @@
 		{
 			gtk_widget_hide(glatex_toolbar);
 		}
+
+		/* Add wizard to generic toolbar if requested */
+		if (glatex_wizard_to_generic_toolbar == TRUE &&
+			glatex_wizard_generic_toolbar_item == NULL)
+		{
+			add_wizard_to_generic_toolbar();
+		}
+		else if (glatex_wizard_to_generic_toolbar == FALSE &&
+				 glatex_wizard_generic_toolbar_item != NULL)
+		{
+			remove_wizard_from_generic_toolbar();
+		}
 	}
 }
 
@@ -262,6 +285,8 @@
 		_("Show extra plugin toolbar"));
 	config_widgets.glatex_capitalize_sentence = gtk_check_button_new_with_label(
 		_("Capitalize sentense on typing"));
+	config_widgets.wizard_to_generic_toolbar = gtk_check_button_new_with_label(
+		_("Add a wizard icon to Geany's main toolbar"));
 
 	config_widgets.glatex_autocompletion_active = gtk_combo_box_new_text();
 	gtk_combo_box_insert_text(GTK_COMBO_BOX(config_widgets.glatex_autocompletion_active), 0,
@@ -293,6 +318,9 @@
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(config_widgets.glatex_capitalize_sentence), 
 		glatex_capitalize_sentence_starts);
 	gtk_box_pack_start(GTK_BOX(vbox), config_widgets.glatex_capitalize_sentence, FALSE, FALSE, 2);
+	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(config_widgets.wizard_to_generic_toolbar),
+		glatex_wizard_to_generic_toolbar);
+	gtk_box_pack_start(GTK_BOX(vbox), config_widgets.wizard_to_generic_toolbar, FALSE, FALSE, 2);
 	gtk_box_pack_start(GTK_BOX(vbox), hbox_autocompletion, FALSE, FALSE, 2);
 
 	gtk_widget_show_all(vbox);
@@ -1993,6 +2021,8 @@
 
 	glatex_deactivate_toolbaritems_with_non_latex = utils_get_setting_boolean(config, "toolbar",
 		"glatex_deactivate_toolbaritems_with_non_latex", TRUE);
+	glatex_wizard_to_generic_toolbar = utils_get_setting_boolean(config, "toolbar",
+		"glatex_wizard_to_generic_toolbar", TRUE);
 	glatex_deactivate_menubarentry_with_non_latex = utils_get_setting_boolean(config, "menu",
 		"glatex_deactivate_menubarentry_with_non_latex", TRUE);
 	glatex_add_menu_on_startup = utils_get_setting_boolean(config, "menu", 
@@ -2015,7 +2045,35 @@
 	g_key_file_free(config);
 }
 
+
 void static
+add_wizard_to_generic_toolbar()
+{
+	if (glatex_wizard_generic_toolbar_item == NULL)
+	{
+		/* TODO: Find a better icon as this one is used way too often */
+		glatex_wizard_generic_toolbar_item =
+			gtk_tool_button_new_from_stock(GTK_STOCK_NEW);
+		plugin_add_toolbar_item(geany_plugin, glatex_wizard_generic_toolbar_item);
+		gtk_widget_show_all(GTK_WIDGET(glatex_wizard_generic_toolbar_item));
+		g_signal_connect(glatex_wizard_generic_toolbar_item, "clicked",
+				G_CALLBACK(glatex_wizard_activated), NULL);
+	}
+}
+
+
+void static
+remove_wizard_from_generic_toolbar()
+{
+	if (glatex_wizard_generic_toolbar_item != NULL)
+	{
+		gtk_widget_destroy(GTK_WIDGET(glatex_wizard_generic_toolbar_item));
+		glatex_wizard_generic_toolbar_item = NULL;
+	}
+}
+
+
+void static
 add_menu_to_menubar()
 {
 	GtkWidget *tmp = NULL;
@@ -2185,6 +2243,7 @@
 	main_menu_item = menu_latex;
 }
 
+
 void static
 remove_menu_from_menubar()
 {
@@ -2196,6 +2255,7 @@
 	
 }
 
+
 void static
 remove_menu_from_tools_menu()
 {
@@ -2206,6 +2266,7 @@
 	}
 }
 
+
 void static
 add_wizard_to_tools_menu()
 {
@@ -2245,6 +2306,15 @@
 		glatex_toolbar = NULL;
 	}
 
+	if (glatex_wizard_to_generic_toolbar == TRUE)
+	{
+		add_wizard_to_generic_toolbar();
+	}
+	else
+	{
+		glatex_wizard_generic_toolbar_item = NULL;
+	}
+
 }
 
 void
@@ -2254,8 +2324,11 @@
 		gtk_widget_destroy(glatex_toolbar);
 	remove_menu_from_menubar();
 	remove_menu_from_tools_menu();
+	remove_wizard_from_generic_toolbar();
 	g_free(config_file);
 	g_free(glatex_ref_chapter_string);
 	g_free(glatex_ref_page_string);
 	g_free(glatex_ref_all_string);
+	
 }
+


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