SF.net SVN: geany: [1572] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Fri May 25 14:42:43 UTC 2007


Revision: 1572
          http://svn.sourceforge.net/geany/?rev=1572&view=rev
Author:   eht16
Date:     2007-05-25 07:42:43 -0700 (Fri, 25 May 2007)

Log Message:
-----------
Improve sensitivity of recent files sub menus.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/geany.glade
    trunk/src/callbacks.c
    trunk/src/callbacks.h
    trunk/src/geany.h
    trunk/src/interface.c
    trunk/src/main.c
    trunk/src/ui_utils.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2007-05-25 13:08:17 UTC (rev 1571)
+++ trunk/ChangeLog	2007-05-25 14:42:43 UTC (rev 1572)
@@ -3,6 +3,9 @@
  * data/filetype_extensions.conf, src/filetypes.c, tagmanager/sh.c:
    Add *.ash and *.bash as filetype entensions for filetype SH.
    Add ash and wish to the shebang patterns.
+ * geany.glade, src/callbacks.c, src/callbacks.h, src/geany.h,
+   src/interface.c, src/main.c, src/ui_utils.c:
+   Improve sensitivity of recent files sub menus.
 
 
 2007-05-25  Nick Treleaven  <nick.treleaven at btinternet.com>

Modified: trunk/geany.glade
===================================================================
--- trunk/geany.glade	2007-05-25 13:08:17 UTC (rev 1571)
+++ trunk/geany.glade	2007-05-25 14:42:43 UTC (rev 1572)
@@ -33,10 +33,11 @@
 	  <property name="visible">True</property>
 
 	  <child>
-	    <widget class="GtkMenuItem" id="menuitem1">
+	    <widget class="GtkMenuItem" id="file1">
 	      <property name="visible">True</property>
 	      <property name="label" translatable="yes">_File</property>
 	      <property name="use_underline">True</property>
+	      <signal name="activate" handler="on_file1_activate" last_modification_time="Fri, 25 May 2007 13:28:40 GMT"/>
 
 	      <child>
 		<widget class="GtkMenu" id="menuitem1_menu">

Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c	2007-05-25 13:08:17 UTC (rev 1571)
+++ trunk/src/callbacks.c	2007-05-25 14:42:43 UTC (rev 1572)
@@ -286,6 +286,15 @@
 }
 
 
+void
+on_file1_activate                      (GtkMenuItem     *menuitem,
+                                        gpointer         user_data)
+{
+	gtk_widget_set_sensitive(app->recent_files_menuitem,
+						g_queue_get_length(app->recent_queue) > 0);
+}
+
+
 // edit actions, c&p & co, from menu bar and from popup menu
 void
 on_edit1_activate                      (GtkMenuItem     *menuitem,
@@ -2216,3 +2225,4 @@
 	}
 }
 
+

Modified: trunk/src/callbacks.h
===================================================================
--- trunk/src/callbacks.h	2007-05-25 13:08:17 UTC (rev 1571)
+++ trunk/src/callbacks.h	2007-05-25 14:42:43 UTC (rev 1572)
@@ -608,3 +608,7 @@
 on_menu_toggle_all_additional_widgets1_activate
                                         (GtkMenuItem     *menuitem,
                                         gpointer         user_data);
+
+void
+on_file1_activate                      (GtkMenuItem     *menuitem,
+                                        gpointer         user_data);

Modified: trunk/src/geany.h
===================================================================
--- trunk/src/geany.h	2007-05-25 13:08:17 UTC (rev 1571)
+++ trunk/src/geany.h	2007-05-25 14:42:43 UTC (rev 1572)
@@ -177,6 +177,7 @@
 	GtkWidget			*popup_menu;
 	GtkWidget			*toolbar_menu;
 	GtkWidget			*new_file_menu;
+	GtkWidget			*recent_files_menuitem;
 	GtkWidget			*recent_files_menubar;
 	GtkWidget			*recent_files_toolbar;
 	GtkWidget			*menu_insert_include_item[2];

Modified: trunk/src/interface.c
===================================================================
--- trunk/src/interface.c	2007-05-25 13:08:17 UTC (rev 1571)
+++ trunk/src/interface.c	2007-05-25 14:42:43 UTC (rev 1572)
@@ -33,7 +33,7 @@
   AtkObject *atko;
   GtkWidget *vbox1;
   GtkWidget *menubar1;
-  GtkWidget *menuitem1;
+  GtkWidget *file1;
   GtkWidget *menuitem1_menu;
   GtkWidget *menu_new1;
   GtkWidget *menu_new_with_template1;
@@ -276,12 +276,12 @@
   gtk_widget_show (menubar1);
   gtk_box_pack_start (GTK_BOX (vbox1), menubar1, FALSE, FALSE, 0);
 
-  menuitem1 = gtk_menu_item_new_with_mnemonic (_("_File"));
-  gtk_widget_show (menuitem1);
-  gtk_container_add (GTK_CONTAINER (menubar1), menuitem1);
+  file1 = gtk_menu_item_new_with_mnemonic (_("_File"));
+  gtk_widget_show (file1);
+  gtk_container_add (GTK_CONTAINER (menubar1), file1);
 
   menuitem1_menu = gtk_menu_new ();
-  gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem1), menuitem1_menu);
+  gtk_menu_item_set_submenu (GTK_MENU_ITEM (file1), menuitem1_menu);
 
   menu_new1 = gtk_image_menu_item_new_from_stock ("gtk-new", accel_group);
   gtk_widget_show (menu_new1);
@@ -1252,6 +1252,9 @@
   gtk_widget_show (statusbar);
   gtk_box_pack_start (GTK_BOX (hbox1), statusbar, TRUE, TRUE, 0);
 
+  g_signal_connect ((gpointer) file1, "activate",
+                    G_CALLBACK (on_file1_activate),
+                    NULL);
   g_signal_connect ((gpointer) menu_new1, "activate",
                     G_CALLBACK (on_new1_activate),
                     NULL);
@@ -1567,7 +1570,7 @@
   GLADE_HOOKUP_OBJECT_NO_REF (window1, window1, "window1");
   GLADE_HOOKUP_OBJECT (window1, vbox1, "vbox1");
   GLADE_HOOKUP_OBJECT (window1, menubar1, "menubar1");
-  GLADE_HOOKUP_OBJECT (window1, menuitem1, "menuitem1");
+  GLADE_HOOKUP_OBJECT (window1, file1, "file1");
   GLADE_HOOKUP_OBJECT (window1, menuitem1_menu, "menuitem1_menu");
   GLADE_HOOKUP_OBJECT (window1, menu_new1, "menu_new1");
   GLADE_HOOKUP_OBJECT (window1, menu_new_with_template1, "menu_new_with_template1");

Modified: trunk/src/main.c
===================================================================
--- trunk/src/main.c	2007-05-25 13:08:17 UTC (rev 1571)
+++ trunk/src/main.c	2007-05-25 14:42:43 UTC (rev 1572)
@@ -221,11 +221,9 @@
 				(app->pref_editor_indention_mode != INDENT_NONE));
 	app->ignore_callback = FALSE;
 
-	// connect the toolbar dropdown menus
+	// connect the toolbar dropdown menu for the new button
 	gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(
 			lookup_widget(app->window, "menutoolbutton1")), app->new_file_menu);
-	gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(
-			lookup_widget(app->window, "toolbutton9")), app->recent_files_toolbar);
 
 	// set the tab placements of the notebooks
 	gtk_notebook_set_tab_pos(GTK_NOTEBOOK(app->notebook), app->tab_pos_editor);
@@ -261,9 +259,10 @@
 	app->window = create_window1();
 	app->new_file_menu = gtk_menu_new();
 	app->recent_files_toolbar = gtk_menu_new();
+	app->recent_files_menuitem = lookup_widget(app->window, "recent_files1");
 	app->recent_files_menubar = gtk_menu_new();
-	gtk_menu_item_set_submenu(GTK_MENU_ITEM(lookup_widget(app->window, "recent_files1")),
-		app->recent_files_menubar);
+	gtk_menu_item_set_submenu(GTK_MENU_ITEM(app->recent_files_menuitem),
+							app->recent_files_menubar);
 
 	// store important pointers in the MyApp structure
 	app->toolbar = lookup_widget(app->window, "toolbar1");

Modified: trunk/src/ui_utils.c
===================================================================
--- trunk/src/ui_utils.c	2007-05-25 13:08:17 UTC (rev 1571)
+++ trunk/src/ui_utils.c	2007-05-25 14:42:43 UTC (rev 1572)
@@ -724,11 +724,10 @@
 	guint i;
 	gchar *filename;
 
-	if (g_queue_get_length(app->recent_queue) == 0)
+	if (g_queue_get_length(app->recent_queue) > 0)
 	{
-		gtk_widget_set_sensitive(app->recent_files_menubar, FALSE);
-		gtk_widget_set_sensitive(app->recent_files_toolbar, FALSE);
-		return;
+		gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(
+				lookup_widget(app->window, "toolbutton9")), app->recent_files_toolbar);
 	}
 
 	for (i = 0; i < MIN(app->mru_length, g_queue_get_length(app->recent_queue)); i++)
@@ -852,20 +851,18 @@
 
 static void update_recent_menu()
 {
-	GtkWidget *recent_files_item = lookup_widget(app->window, "recent_files1");
 	GtkWidget *tmp;
+	static GtkMenuToolButton *menu = NULL;
 	gchar *filename;
 	GList *children, *item;
 
-	if (g_queue_get_length(app->recent_queue) == 0)
+	if (menu == NULL)
+		menu = GTK_MENU_TOOL_BUTTON(lookup_widget(app->window, "toolbutton9"));
+
+	if (gtk_menu_tool_button_get_menu(menu) == NULL)
 	{
-		gtk_widget_set_sensitive(recent_files_item, FALSE);
-		return;
+		gtk_menu_tool_button_set_menu(menu, app->recent_files_toolbar);
 	}
-	else if (! GTK_WIDGET_SENSITIVE(recent_files_item))
-	{
-		gtk_widget_set_sensitive(recent_files_item, TRUE);
-	}
 
 	// clean the MRU list before adding an item (menubar)
 	children = gtk_container_get_children(GTK_CONTAINER(app->recent_files_menubar));


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