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

Diego Ongaro ongardie at xfce.org
Sat Apr 7 08:26:17 CEST 2007


Author: ongardie
Date: 2007-04-07 06:26:16 +0000 (Sat, 07 Apr 2007)
New Revision: 2678

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

* Added BookmarksVisitor struct



Modified: xfce4-places-plugin/trunk/ChangeLog
===================================================================
--- xfce4-places-plugin/trunk/ChangeLog	2007-04-07 06:05:18 UTC (rev 2677)
+++ xfce4-places-plugin/trunk/ChangeLog	2007-04-07 06:26:16 UTC (rev 2678)
@@ -1,3 +1,7 @@
+2007-04-07	Diego Ongaro <ongardie at gmail.com>
+
+	* Added BookmarksVisitor struct
+
 2007-04-06	Diego Ongaro <ongardie at gmail.com>
 
 	* Improved consistency with Thunar for user bookmarks

Modified: xfce4-places-plugin/trunk/panel-plugin/model.c
===================================================================
--- xfce4-places-plugin/trunk/panel-plugin/model.c	2007-04-07 06:05:18 UTC (rev 2677)
+++ xfce4-places-plugin/trunk/panel-plugin/model.c	2007-04-07 06:26:16 UTC (rev 2678)
@@ -49,14 +49,12 @@
 
 void
 places_bookmarks_visit(Bookmarks *b,
-                       gpointer pass_thru, 
-                       BOOKMARK_ITEM_FUNC(item_func),
-                       BOOKMARK_SEPARATOR_FUNC(separator_func))
+                       BookmarksVisitor *visitor)
 {
-    places_bookmarks_system_visit  (b->system,  pass_thru, item_func, separator_func);
-    places_bookmarks_volumes_visit (b->volumes, pass_thru, item_func, separator_func);
-    separator_func                 (pass_thru);
-    places_bookmarks_user_visit    (b->user,    pass_thru, item_func, separator_func);
+    places_bookmarks_system_visit  (b->system,  visitor);
+    places_bookmarks_volumes_visit (b->volumes, visitor);
+    visitor->separator             (visitor->pass_thru);
+    places_bookmarks_user_visit    (b->user,    visitor);
 }
 
 gboolean

Modified: xfce4-places-plugin/trunk/panel-plugin/model.h
===================================================================
--- xfce4-places-plugin/trunk/panel-plugin/model.h	2007-04-07 06:05:18 UTC (rev 2677)
+++ xfce4-places-plugin/trunk/panel-plugin/model.h	2007-04-07 06:26:16 UTC (rev 2678)
@@ -22,9 +22,6 @@
 
 #include <glib.h>
 
-#define BOOKMARK_ITEM_FUNC(symbol)      void (*symbol) (gpointer, const gchar*, const gchar*, const gchar*)
-#define BOOKMARK_SEPARATOR_FUNC(symbol) void (*symbol) (gpointer)
-
 typedef struct
 {
     gchar           *label;
@@ -34,16 +31,20 @@
     gpointer        *data;
 } BookmarkInfo;
 
+typedef struct
+{
+    gpointer   pass_thru;
+    void       (*item)        (gpointer, const gchar*, const gchar*, const gchar*);
+    void       (*separator)   (gpointer);
+} BookmarksVisitor;
+
 typedef struct _Bookmarks Bookmarks;
 
 Bookmarks*
 places_bookmarks_init();
 
 void
-places_bookmarks_visit(Bookmarks *b,
-                       gpointer pass_thru, 
-                       BOOKMARK_ITEM_FUNC(item_func),
-                       BOOKMARK_SEPARATOR_FUNC(separator_func));
+places_bookmarks_visit(Bookmarks *b, BookmarksVisitor *visitor);
 
 gboolean
 places_bookmarks_changed(Bookmarks *b);

Modified: xfce4-places-plugin/trunk/panel-plugin/model_system.c
===================================================================
--- xfce4-places-plugin/trunk/panel-plugin/model_system.c	2007-04-07 06:05:18 UTC (rev 2677)
+++ xfce4-places-plugin/trunk/panel-plugin/model_system.c	2007-04-07 06:26:16 UTC (rev 2678)
@@ -101,9 +101,7 @@
 
 void
 places_bookmarks_system_visit(BookmarksSystem *b,
-                              gpointer pass_thru, 
-                              BOOKMARK_ITEM_FUNC(item_func),
-                              BOOKMARK_SEPARATOR_FUNC(separator_func))
+                              BookmarksVisitor *visitor)
 {
     guint k;
     BookmarkInfo *bi;
@@ -111,7 +109,7 @@
     for(k=0; k < b->bookmarks->len; k++){
         bi = g_ptr_array_index(b->bookmarks, k);
         if(bi->show)
-            item_func(pass_thru, bi->label, bi->uri, bi->icon);
+            visitor->item(visitor->pass_thru, bi->label, bi->uri, bi->icon);
     }
 }
 

Modified: xfce4-places-plugin/trunk/panel-plugin/model_system.h
===================================================================
--- xfce4-places-plugin/trunk/panel-plugin/model_system.h	2007-04-07 06:05:18 UTC (rev 2677)
+++ xfce4-places-plugin/trunk/panel-plugin/model_system.h	2007-04-07 06:26:16 UTC (rev 2678)
@@ -29,10 +29,7 @@
 places_bookmarks_system_init();
 
 void
-places_bookmarks_system_visit(BookmarksSystem *b,
-                              gpointer pass_thru, 
-                              BOOKMARK_ITEM_FUNC(item_func),
-                              BOOKMARK_SEPARATOR_FUNC(separator_func));
+places_bookmarks_system_visit(BookmarksSystem *b, BookmarksVisitor *visitor);
 
 gboolean
 places_bookmarks_system_changed(BookmarksSystem *b);

Modified: xfce4-places-plugin/trunk/panel-plugin/model_user.c
===================================================================
--- xfce4-places-plugin/trunk/panel-plugin/model_user.c	2007-04-07 06:05:18 UTC (rev 2677)
+++ xfce4-places-plugin/trunk/panel-plugin/model_user.c	2007-04-07 06:26:16 UTC (rev 2678)
@@ -163,10 +163,7 @@
 }
 
 void
-places_bookmarks_user_visit(BookmarksUser *b,
-                            gpointer pass_thru, 
-                            BOOKMARK_ITEM_FUNC(item_func),
-                            BOOKMARK_SEPARATOR_FUNC(separator_func))
+places_bookmarks_user_visit(BookmarksUser *b,  BookmarksVisitor *visitor)
 {
     guint k;
     BookmarkInfo *bi;
@@ -174,7 +171,7 @@
     for(k=0; k < b->bookmarks->len; k++){
         bi = g_ptr_array_index(b->bookmarks, k);
         if(bi->show)
-            item_func(pass_thru, bi->label, bi->uri, bi->icon);
+            visitor->item(visitor->pass_thru, bi->label, bi->uri, bi->icon);
     }
 }
 

Modified: xfce4-places-plugin/trunk/panel-plugin/model_user.h
===================================================================
--- xfce4-places-plugin/trunk/panel-plugin/model_user.h	2007-04-07 06:05:18 UTC (rev 2677)
+++ xfce4-places-plugin/trunk/panel-plugin/model_user.h	2007-04-07 06:26:16 UTC (rev 2678)
@@ -30,10 +30,7 @@
 places_bookmarks_user_init(const BookmarksSystem *system);
 
 void
-places_bookmarks_user_visit(BookmarksUser *b,
-                            gpointer pass_thru, 
-                            BOOKMARK_ITEM_FUNC(item_func),
-                            BOOKMARK_SEPARATOR_FUNC(separator_func));
+places_bookmarks_user_visit(BookmarksUser *b, BookmarksVisitor *visitor);
 
 gboolean
 places_bookmarks_user_changed(BookmarksUser *b);

Modified: xfce4-places-plugin/trunk/panel-plugin/model_volumes.c
===================================================================
--- xfce4-places-plugin/trunk/panel-plugin/model_volumes.c	2007-04-07 06:05:18 UTC (rev 2677)
+++ xfce4-places-plugin/trunk/panel-plugin/model_volumes.c	2007-04-07 06:26:16 UTC (rev 2678)
@@ -229,17 +229,14 @@
 }
 
 void
-places_bookmarks_volumes_visit(BookmarksVolumes *b,
-                               gpointer pass_thru, 
-                               BOOKMARK_ITEM_FUNC(item_func),
-                               BOOKMARK_SEPARATOR_FUNC(separator_func))
+places_bookmarks_volumes_visit(BookmarksVolumes *b, BookmarksVisitor *visitor)
 {
     guint k;
     BookmarkInfo *bi;
     
     for(k=0; k < b->bookmarks->len; k++){
         bi = g_ptr_array_index(b->bookmarks, k);
-        item_func(pass_thru, bi->label, bi->uri, bi->icon);
+        visitor->item(visitor->pass_thru, bi->label, bi->uri, bi->icon);
     }
 }
 

Modified: xfce4-places-plugin/trunk/panel-plugin/model_volumes.h
===================================================================
--- xfce4-places-plugin/trunk/panel-plugin/model_volumes.h	2007-04-07 06:05:18 UTC (rev 2677)
+++ xfce4-places-plugin/trunk/panel-plugin/model_volumes.h	2007-04-07 06:26:16 UTC (rev 2678)
@@ -29,10 +29,7 @@
 places_bookmarks_volumes_init();
 
 void
-places_bookmarks_volumes_visit(BookmarksVolumes *b,
-                               gpointer pass_thru, 
-                               BOOKMARK_ITEM_FUNC(item_func),
-                               BOOKMARK_SEPARATOR_FUNC(separator_func));
+places_bookmarks_volumes_visit(BookmarksVolumes *b, BookmarksVisitor *visitor);
 
 gboolean
 places_bookmarks_volumes_changed(BookmarksVolumes *b);

Modified: xfce4-places-plugin/trunk/panel-plugin/places.c
===================================================================
--- xfce4-places-plugin/trunk/panel-plugin/places.c	2007-04-07 06:05:18 UTC (rev 2677)
+++ xfce4-places-plugin/trunk/panel-plugin/places.c	2007-04-07 06:26:16 UTC (rev 2678)
@@ -163,9 +163,11 @@
     pd->panel_menu = gtk_menu_new();
     pd->panel_menu_open = FALSE;
     
-    places_bookmarks_visit(pd->bookmarks, pd, 
-                           places_build_menu_item, 
-                           places_build_menu_separator);
+    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);
 
     gtk_widget_show_all(pd->panel_menu);
 




More information about the Goodies-commits mailing list