SF.net SVN: geany:[5794] trunk

colombanw at users.sourceforge.net colombanw at xxxxx
Tue May 10 23:50:21 UTC 2011


Revision: 5794
          http://geany.svn.sourceforge.net/geany/?rev=5794&view=rev
Author:   colombanw
Date:     2011-05-10 23:50:21 +0000 (Tue, 10 May 2011)

Log Message:
-----------
Improve the plugin manager dialog a little

 * Add a paned to allow the plugin description part to be resized;
 * Split plugin name, description and authors into distinct entities
   and show aligned and bold titles for them.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/plugins.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2011-05-09 17:41:30 UTC (rev 5793)
+++ trunk/ChangeLog	2011-05-10 23:50:21 UTC (rev 5794)
@@ -1,3 +1,9 @@
+2011-05-11  Colomban Wendling  <colomban(at)geany(dot)org>
+
+ * src/plugins.c:
+   Improve the plugin manager dialog a little.
+
+
 2011-05-09  Colomban Wendling  <colomban(at)geany(dot)org>
 
  * plugins/splitwindow.c:

Modified: trunk/src/plugins.c
===================================================================
--- trunk/src/plugins.c	2011-05-09 17:41:30 UTC (rev 5793)
+++ trunk/src/plugins.c	2011-05-10 23:50:21 UTC (rev 5794)
@@ -1089,7 +1089,9 @@
 	GtkWidget *dialog;
 	GtkWidget *tree;
 	GtkListStore *store;
+	GtkWidget *plugin_label;
 	GtkWidget *description_label;
+	GtkWidget *author_label;
 	GtkWidget *configure_button;
 	GtkWidget *help_button;
 }
@@ -1125,11 +1127,11 @@
 			PluginInfo *pi;
 
 			pi = &p->info;
-			text = g_strdup_printf(
-				_("Plugin: %s %s\nDescription: %s\nAuthor(s): %s"),
-				pi->name, pi->version, pi->description, pi->author);
-
-			geany_wrap_label_set_text(GTK_LABEL(pm_widgets.description_label), text);
+			/* Translators: <plugin name> <plugin version> */
+			text = g_strdup_printf(_("%s %s"), pi->name, pi->version);
+			geany_wrap_label_set_text(GTK_LABEL(pm_widgets.plugin_label), text);
+			geany_wrap_label_set_text(GTK_LABEL(pm_widgets.description_label), pi->description);
+			geany_wrap_label_set_text(GTK_LABEL(pm_widgets.author_label), pi->author);
 			g_free(text);
 
 			pm_update_buttons(p);
@@ -1305,9 +1307,25 @@
 }
 
 
+static GtkWidget *create_table_label(const gchar *text)
+{
+	GtkWidget *label;
+	PangoAttrList *attrs;
+
+	attrs = pango_attr_list_new();
+	pango_attr_list_insert(attrs, pango_attr_weight_new(PANGO_WEIGHT_BOLD));
+	label = gtk_label_new(text);
+	gtk_label_set_attributes(GTK_LABEL(label), attrs);
+	gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0);
+	pango_attr_list_unref(attrs);
+
+	return label;
+}
+
+
 static void pm_show_dialog(GtkMenuItem *menuitem, gpointer user_data)
 {
-	GtkWidget *vbox, *vbox2, *label_vbox, *hbox, *swin, *label, *label2, *desc_win;
+	GtkWidget *vbox, *vbox2, *label_vbox, *hbox, *swin, *label, *label2, *desc_win, *table, *paned;
 
 	/* before showing the dialog, we need to create the list of available plugins */
 	load_all_plugins();
@@ -1348,12 +1366,22 @@
 	gtk_label_set_use_markup(GTK_LABEL(label2), TRUE);
 	gtk_misc_set_alignment(GTK_MISC(label2), 0, 0.5);
 
-	pm_widgets.description_label = geany_wrap_label_new("");
+	table = gtk_table_new(3, 2, FALSE);
+	gtk_table_set_col_spacings(GTK_TABLE(table), 6);
+	pm_widgets.plugin_label = geany_wrap_label_new(NULL);
+	pm_widgets.description_label = geany_wrap_label_new(NULL);
+	pm_widgets.author_label = geany_wrap_label_new(NULL);
+	gtk_table_attach(GTK_TABLE(table), create_table_label(_("Plugin:")), 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
+	gtk_table_attach(GTK_TABLE(table), create_table_label(_("Description:")), 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0);
+	gtk_table_attach(GTK_TABLE(table), create_table_label(_("Author(s):")), 0, 1, 2, 3, GTK_FILL, GTK_FILL, 0, 0);
+	gtk_table_attach(GTK_TABLE(table), pm_widgets.plugin_label, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+	gtk_table_attach(GTK_TABLE(table), pm_widgets.description_label, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+	gtk_table_attach(GTK_TABLE(table), pm_widgets.author_label, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+
 	desc_win = gtk_scrolled_window_new(NULL, NULL);
 	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(desc_win),
 		GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(desc_win),
-		pm_widgets.description_label);
+	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(desc_win), table);
 
 	hbox = gtk_hbox_new(FALSE, 0);
 	gtk_box_pack_start(GTK_BOX(hbox), label2, TRUE, TRUE, 0);
@@ -1362,12 +1390,15 @@
 
 	label_vbox = gtk_vbox_new(FALSE, 3);
 	gtk_box_pack_start(GTK_BOX(label_vbox), hbox, FALSE, FALSE, 0);
-	gtk_box_pack_start(GTK_BOX(label_vbox), desc_win, FALSE, FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(label_vbox), desc_win, TRUE, TRUE, 0);
 
+	paned = gtk_vpaned_new();
+	gtk_paned_pack1(GTK_PANED(paned), swin, TRUE, FALSE);
+	gtk_paned_pack2(GTK_PANED(paned), label_vbox, FALSE, FALSE);
+
 	vbox2 = gtk_vbox_new(FALSE, 3);
 	gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 5);
-	gtk_box_pack_start(GTK_BOX(vbox2), swin, TRUE, TRUE, 0);
-	gtk_box_pack_start(GTK_BOX(vbox2), label_vbox, FALSE, FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(vbox2), paned, TRUE, TRUE, 0);
 
 	g_signal_connect(pm_widgets.dialog, "response", G_CALLBACK(pm_dialog_response), NULL);
 


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