SF.net SVN: geany-plugins:[1370] trunk/geanygendoc

colombanw at users.sourceforge.net colombanw at xxxxx
Thu May 20 21:20:15 UTC 2010


Revision: 1370
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1370&view=rev
Author:   colombanw
Date:     2010-05-20 21:20:14 +0000 (Thu, 20 May 2010)

Log Message:
-----------
GeanyGenDoc: Use an helper function to add menu items

Modified Paths:
--------------
    trunk/geanygendoc/TODO
    trunk/geanygendoc/src/ggd-plugin.c

Modified: trunk/geanygendoc/TODO
===================================================================
--- trunk/geanygendoc/TODO	2010-05-16 22:07:00 UTC (rev 1369)
+++ trunk/geanygendoc/TODO	2010-05-20 21:20:14 UTC (rev 1370)
@@ -18,5 +18,3 @@
   use valadoc for vala, but not with other languages.
   In practice Doxygen seems the only (or close to be) option that would be
   useful for more than one single language.
-
-* DOCUMENTATION!

Modified: trunk/geanygendoc/src/ggd-plugin.c
===================================================================
--- trunk/geanygendoc/src/ggd-plugin.c	2010-05-16 22:07:00 UTC (rev 1369)
+++ trunk/geanygendoc/src/ggd-plugin.c	2010-05-20 21:20:14 UTC (rev 1370)
@@ -338,6 +338,33 @@
   gtk_widget_destroy (pdata->edit_menu_item);
 }
 
+static GtkWidget *
+menu_add_item (GtkMenuShell  *menu,
+               const gchar   *mnemonic,
+               const gchar   *tooltip,
+               const gchar   *stock_image,
+               GCallback      activate_handler,
+               gpointer       activate_data)
+{
+  GtkWidget *item;
+  
+  if (! stock_image) {
+    item = gtk_menu_item_new_with_mnemonic (mnemonic);
+  } else {
+    item = gtk_image_menu_item_new_with_mnemonic (mnemonic);
+    gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item),
+                                   gtk_image_new_from_stock (stock_image,
+                                                             GTK_ICON_SIZE_MENU));
+  }
+  ui_widget_set_tooltip_text (item, tooltip);
+  gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+  if (activate_handler) {
+    g_signal_connect (item, "activate", activate_handler, activate_data);
+  }
+  
+  return item;
+}
+
 /* creates plugin's tool's menu */
 static GtkWidget *
 create_tools_menu_item (void)
@@ -348,53 +375,47 @@
   /* build submenu */
   menu = gtk_menu_new ();
   /* build "document current symbol" item */
-  item = gtk_menu_item_new_with_mnemonic (_("_Document current symbol"));
-  ui_widget_set_tooltip_text (item, _("Generate documentation for the "
-                                      "currently selected symbol"));
-  g_signal_connect (item, "activate",
-                    G_CALLBACK (document_current_symbol_handler), NULL);
-  gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+  item = menu_add_item (GTK_MENU_SHELL (menu),
+                        _("_Document current symbol"),
+                        _("Generate documentation for the currently selected "
+                          "symbol"),
+                        NULL,
+                        G_CALLBACK (document_current_symbol_handler), NULL);
   ui_add_document_sensitive (item);
   /* build "document all" item */
-  item = gtk_menu_item_new_with_mnemonic (_("Document _all symbols"));
-  ui_widget_set_tooltip_text (item, _("Generate documentation for all the "
-                                      "symbols in the current document"));
-  g_signal_connect (item, "activate",
-                    G_CALLBACK (document_all_symbols_handler), NULL);
-  gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+  item = menu_add_item (GTK_MENU_SHELL (menu),
+                        _("Document _all symbols"),
+                        _("Generate documentation for all the symbols in the "
+                          "current document"),
+                        NULL,
+                        G_CALLBACK (document_all_symbols_handler), NULL);
   ui_add_document_sensitive (item);
   /* separator */
   item = gtk_separator_menu_item_new ();
   gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
   /* build "reload" item */
-  item = gtk_image_menu_item_new_with_mnemonic (_("_Reload configuration files"));
-  ui_widget_set_tooltip_text (item, _("Force reloading of the configuration "
-                                      "files"));
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item),
-                                 gtk_image_new_from_stock (GTK_STOCK_REFRESH,
-                                                           GTK_ICON_SIZE_MENU));
-  g_signal_connect (item, "activate",
-                    G_CALLBACK (reload_configuration_hanlder), NULL);
-  gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+  item = menu_add_item (GTK_MENU_SHELL (menu),
+                        _("_Reload configuration files"),
+                        _("Force reloading of the configuration files"),
+                        GTK_STOCK_REFRESH,
+                        G_CALLBACK (reload_configuration_hanlder), NULL);
   /* language filetypes opener */
-  item = gtk_menu_item_new_with_mnemonic (_("_Edit current language configuration"));
-  ui_widget_set_tooltip_text (item, _("Open the current language configuration "
-                                      "file for editing"));
-  g_signal_connect (item, "activate",
-                    G_CALLBACK (open_current_filetype_conf_handler), NULL);
-  gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+  item = menu_add_item (GTK_MENU_SHELL (menu),
+                        _("_Edit current language configuration"),
+                        _("Open the current language configuration file for "
+                          "editing"),
+                        GTK_STOCK_EDIT,
+                        G_CALLBACK (open_current_filetype_conf_handler), NULL);
   ui_add_document_sensitive (item);
   /* separator */
   item = gtk_separator_menu_item_new ();
   gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
   /* help/manual opening */
-  item = gtk_image_menu_item_new_with_mnemonic (_("Open _manual"));
-  ui_widget_set_tooltip_text (item, _("Open the manual in a browser"));
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item),
-                                 gtk_image_new_from_stock (GTK_STOCK_HELP,
-                                                           GTK_ICON_SIZE_MENU));
-  g_signal_connect (item, "activate", G_CALLBACK (open_manual_handler), NULL);
-  gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+  item = menu_add_item (GTK_MENU_SHELL (menu),
+                        _("Open _manual"),
+                        _("Open the manual in a browser"),
+                        GTK_STOCK_HELP,
+                        G_CALLBACK (open_manual_handler), NULL);
   /* build tools menu item */
   item = gtk_menu_item_new_with_mnemonic (_("_Documentation generator"));
   gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), menu);


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