[Goodies-commits] r2681 - in xfce4-places-plugin/trunk: . panel-plugin

Diego Ongaro ongardie at xfce.org
Sun Apr 8 09:11:48 CEST 2007


Author: ongardie
Date: 2007-04-08 07:11:48 +0000 (Sun, 08 Apr 2007)
New Revision: 2681

Modified:
   xfce4-places-plugin/trunk/ChangeLog
   xfce4-places-plugin/trunk/panel-plugin/places.c
   xfce4-places-plugin/trunk/panel-plugin/places.h
Log:
2007-04-08	Diego Ongaro <ongardie at gmail.com>

* Added Recent Documents via GtkRecentChooserMenu


Modified: xfce4-places-plugin/trunk/ChangeLog
===================================================================
--- xfce4-places-plugin/trunk/ChangeLog	2007-04-07 15:07:40 UTC (rev 2680)
+++ xfce4-places-plugin/trunk/ChangeLog	2007-04-08 07:11:48 UTC (rev 2681)
@@ -1,3 +1,7 @@
+2007-04-08	Diego Ongaro <ongardie at gmail.com>
+
+	* Added Recent Documents via GtkRecentChooserMenu
+
 2007-04-07	Diego Ongaro <ongardie at gmail.com>
 
 	* Added BookmarksVisitor struct

Modified: xfce4-places-plugin/trunk/panel-plugin/places.c
===================================================================
--- xfce4-places-plugin/trunk/panel-plugin/places.c	2007-04-07 15:07:40 UTC (rev 2680)
+++ xfce4-places-plugin/trunk/panel-plugin/places.c	2007-04-08 07:11:48 UTC (rev 2681)
@@ -163,12 +163,29 @@
     pd->panel_menu = gtk_menu_new();
     pd->panel_menu_open = FALSE;
     
+    // System, Volumes, User Bookmarks
+
     BookmarksVisitor *visitor = g_new0(BookmarksVisitor, 1);
     visitor->pass_thru = pd;
     visitor->item = places_build_menu_item;
     visitor->separator = places_build_menu_separator;
     places_bookmarks_visit(pd->bookmarks, visitor);
 
+    // Recent Documents
+
+    places_build_menu_separator(pd);
+
+    GtkWidget *recent_menu = gtk_recent_chooser_menu_new();
+    g_signal_connect(recent_menu, "item-activated", 
+                     G_CALLBACK(places_cb_recent_item_activated), pd);
+    
+    GtkWidget *recent_item = gtk_image_menu_item_new_with_label(_("Recent Documents"));
+    gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(recent_item), 
+                                  gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU));
+    gtk_menu_item_set_submenu(GTK_MENU_ITEM(recent_item), recent_menu);
+    gtk_menu_shell_append(GTK_MENU_SHELL(pd->panel_menu), recent_item);
+
+
     gtk_widget_show_all(pd->panel_menu);
 
     // This helps allocate resources beforehand so it'll pop up faster the first time
@@ -241,6 +258,15 @@
 
 /********** Gtk Callbacks **********/
 
+static void
+places_cb_recent_item_activated(GtkRecentChooser *chooser, PlacesData *pd)
+{
+    gchar *uri = gtk_recent_chooser_get_current_uri(chooser);
+    places_load_thunar(uri);
+    g_free(uri);
+}
+
+
 static gboolean
 places_cb_size_changed(XfcePanelPlugin *plugin, int size, PlacesData *pd)
 {

Modified: xfce4-places-plugin/trunk/panel-plugin/places.h
===================================================================
--- xfce4-places-plugin/trunk/panel-plugin/places.h	2007-04-07 15:07:40 UTC (rev 2680)
+++ xfce4-places-plugin/trunk/panel-plugin/places.h	2007-04-08 07:11:48 UTC (rev 2681)
@@ -52,6 +52,7 @@
 static void places_ui_redraw(PlacesData*);
 
 // GTK Callbacks
+static void places_cb_recent_item_activated(GtkRecentChooser*, PlacesData*);
 static gboolean places_cb_size_changed(XfcePanelPlugin*, int, PlacesData*);
 static void places_cb_menu_position(GtkMenu*, int*, int*, gboolean*, PlacesData*);
 static void places_cb_menu_close(GtkMenuShell*, PlacesData*);




More information about the Goodies-commits mailing list