SF.net SVN: geany: [2734] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Mon Jun 30 11:49:39 UTC 2008


Revision: 2734
          http://geany.svn.sourceforge.net/geany/?rev=2734&view=rev
Author:   ntrel
Date:     2008-06-30 04:49:39 -0700 (Mon, 30 Jun 2008)

Log Message:
-----------
Use a dynamic pointer array for document sensitive widgets, so it's
easy to group widget names together in the source.
Make 'Close other documents' menu item document-sensitive.

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

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2008-06-28 15:46:07 UTC (rev 2733)
+++ trunk/ChangeLog	2008-06-30 11:49:39 UTC (rev 2734)
@@ -1,3 +1,11 @@
+2008-06-30  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
+
+ * src/ui_utils.c:
+   Use a dynamic pointer array for document sensitive widgets, so it's
+   easy to group widget names together in the source.
+   Make 'Close other documents' menu item document-sensitive.
+
+
 2008-06-28  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>
 
  * src/socket.c:

Modified: trunk/src/ui_utils.c
===================================================================
--- trunk/src/ui_utils.c	2008-06-28 15:46:07 UTC (rev 2733)
+++ trunk/src/ui_utils.c	2008-06-30 11:49:39 UTC (rev 2734)
@@ -57,8 +57,8 @@
 
 static struct
 {
-	/* widgets only sensitive when there is at least one document */
-	GtkWidget *document_buttons[45];
+	/* pointers to widgets only sensitive when there is at least one document */
+	GPtrArray *document_buttons;
 }
 widgets;
 
@@ -567,55 +567,63 @@
 }
 
 
+#define add_doc_widget(widget_name) \
+	g_ptr_array_add(widgets.document_buttons, lookup_widget(main_widgets.window, widget_name))
+
 static void init_document_widgets(void)
 {
+	static GPtrArray document_buttons = {NULL, 0};
+
+	widgets.document_buttons = &document_buttons;
+
 	/* Cache the document-sensitive widgets so we don't have to keep looking them up
 	 * when using ui_document_buttons_update(). */
-	widgets.document_buttons[0] = lookup_widget(main_widgets.window, "menu_close1");
-	widgets.document_buttons[1] = lookup_widget(main_widgets.window, "toolbutton15");
-	widgets.document_buttons[2] = lookup_widget(main_widgets.window, "menu_change_font1");
-	widgets.document_buttons[3] = lookup_widget(main_widgets.window, "entry1");
-	widgets.document_buttons[4] = lookup_widget(main_widgets.window, "toolbutton18");
-	widgets.document_buttons[5] = lookup_widget(main_widgets.window, "toolbutton20");
-	widgets.document_buttons[6] = lookup_widget(main_widgets.window, "toolbutton21");
-	widgets.document_buttons[7] = lookup_widget(main_widgets.window, "menu_close_all1");
-	widgets.document_buttons[8] = lookup_widget(main_widgets.window, "menu_save_all1");
-	widgets.document_buttons[9] = lookup_widget(main_widgets.window, "toolbutton22");
-	widgets.document_buttons[10] = lookup_widget(main_widgets.window, "toolbutton13"); /* compile_button */
-	widgets.document_buttons[11] = lookup_widget(main_widgets.window, "menu_save_as1");
-	widgets.document_buttons[12] = lookup_widget(main_widgets.window, "toolbutton23");
-	widgets.document_buttons[13] = lookup_widget(main_widgets.window, "menu_count_words1");
-	widgets.document_buttons[14] = lookup_widget(main_widgets.window, "menu_build1");
-	widgets.document_buttons[15] = lookup_widget(main_widgets.window, "add_comments1");
-	widgets.document_buttons[16] = lookup_widget(main_widgets.window, "menu_paste1");
-	widgets.document_buttons[17] = lookup_widget(main_widgets.window, "menu_undo2");
-	widgets.document_buttons[18] = lookup_widget(main_widgets.window, "preferences2");
-	widgets.document_buttons[19] = lookup_widget(main_widgets.window, "menu_reload1");
-	widgets.document_buttons[20] = lookup_widget(main_widgets.window, "menu_document1");
-	widgets.document_buttons[21] = lookup_widget(main_widgets.window, "menu_markers_margin1");
-	widgets.document_buttons[22] = lookup_widget(main_widgets.window, "menu_linenumber_margin1");
-	widgets.document_buttons[23] = lookup_widget(main_widgets.window, "menu_choose_color1");
-	widgets.document_buttons[24] = lookup_widget(main_widgets.window, "menu_zoom_in1");
-	widgets.document_buttons[25] = lookup_widget(main_widgets.window, "menu_zoom_out1");
-	widgets.document_buttons[26] = lookup_widget(main_widgets.window, "normal_size1");
-	widgets.document_buttons[27] = lookup_widget(main_widgets.window, "toolbutton24");
-	widgets.document_buttons[28] = lookup_widget(main_widgets.window, "toolbutton25");
-	widgets.document_buttons[29] = lookup_widget(main_widgets.window, "entry_goto_line");
-	widgets.document_buttons[30] = lookup_widget(main_widgets.window, "treeview6");
-	widgets.document_buttons[31] = lookup_widget(main_widgets.window, "print1");
-	widgets.document_buttons[32] = lookup_widget(main_widgets.window, "menu_reload_as1");
-	widgets.document_buttons[33] = lookup_widget(main_widgets.window, "menu_select_all1");
-	widgets.document_buttons[34] = lookup_widget(main_widgets.window, "insert_date1");
-	widgets.document_buttons[35] = lookup_widget(main_widgets.window, "menu_format1");
-	widgets.document_buttons[36] = lookup_widget(main_widgets.window, "menu_open_selected_file1");
-	widgets.document_buttons[37] = lookup_widget(main_widgets.window, "page_setup1");
-	widgets.document_buttons[38] = lookup_widget(main_widgets.window, "find1");
-	widgets.document_buttons[39] = lookup_widget(main_widgets.window, "find_next1");
-	widgets.document_buttons[40] = lookup_widget(main_widgets.window, "find_previous1");
-	widgets.document_buttons[41] = lookup_widget(main_widgets.window, "replace1");
-	widgets.document_buttons[42] = lookup_widget(main_widgets.window, "find_nextsel1");
-	widgets.document_buttons[43] = lookup_widget(main_widgets.window, "find_prevsel1");
-	widgets.document_buttons[44] = lookup_widget(main_widgets.window, "go_to_line1");
+	add_doc_widget("menu_close1");
+	add_doc_widget("close_other_documents1");
+	add_doc_widget("toolbutton15");	/* close */
+	add_doc_widget("menu_change_font1");
+	add_doc_widget("entry1");
+	add_doc_widget("toolbutton18");
+	add_doc_widget("toolbutton20");
+	add_doc_widget("toolbutton21");
+	add_doc_widget("menu_close_all1");
+	add_doc_widget("menu_save_all1");
+	add_doc_widget("toolbutton22");
+	add_doc_widget("toolbutton13"); /* compile_button */
+	add_doc_widget("menu_save_as1");
+	add_doc_widget("toolbutton23");
+	add_doc_widget("menu_count_words1");
+	add_doc_widget("menu_build1");
+	add_doc_widget("add_comments1");
+	add_doc_widget("menu_paste1");
+	add_doc_widget("menu_undo2");
+	add_doc_widget("preferences2");
+	add_doc_widget("menu_reload1");
+	add_doc_widget("menu_document1");
+	add_doc_widget("menu_markers_margin1");
+	add_doc_widget("menu_linenumber_margin1");
+	add_doc_widget("menu_choose_color1");
+	add_doc_widget("menu_zoom_in1");
+	add_doc_widget("menu_zoom_out1");
+	add_doc_widget("normal_size1");
+	add_doc_widget("toolbutton24");
+	add_doc_widget("toolbutton25");
+	add_doc_widget("entry_goto_line");
+	add_doc_widget("treeview6");
+	add_doc_widget("print1");
+	add_doc_widget("menu_reload_as1");
+	add_doc_widget("menu_select_all1");
+	add_doc_widget("insert_date1");
+	add_doc_widget("menu_format1");
+	add_doc_widget("menu_open_selected_file1");
+	add_doc_widget("page_setup1");
+	add_doc_widget("find1");
+	add_doc_widget("find_next1");
+	add_doc_widget("find_previous1");
+	add_doc_widget("replace1");
+	add_doc_widget("find_nextsel1");
+	add_doc_widget("find_prevsel1");
+	add_doc_widget("go_to_line1");
 }
 
 
@@ -624,8 +632,11 @@
 	guint i;
 	gboolean enable = gtk_notebook_get_n_pages(GTK_NOTEBOOK(main_widgets.notebook)) ? TRUE : FALSE;
 
-	for (i = 0; i < G_N_ELEMENTS(widgets.document_buttons); i++)
-		gtk_widget_set_sensitive(widgets.document_buttons[i], enable);
+	for (i = 0; i < widgets.document_buttons->len; i++)
+	{
+		GtkWidget *widget = g_ptr_array_index(widgets.document_buttons, i);
+		gtk_widget_set_sensitive(widget, enable);
+	}
 
 #ifdef HAVE_PLUGINS
 	plugins_update_document_sensitive(enable);


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