[Xfce4-commits] [apps/xfburn] 17/42: Recreated Toolbar in the MainWindow

noreply at xfce.org noreply at xfce.org
Tue Oct 15 02:22:00 CEST 2019


This is an automated email from the git hooks/post-receive script.

k   a   t   a   n   a   s   t   e   e   l       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository apps/xfburn.

commit ee3cad88028927bbd1d282d93509476b1e1f16b2
Author: Rene Kjellerup <rk.katana.steel at gmail.com>
Date:   Thu Dec 6 16:10:02 2018 -0800

    Recreated Toolbar in the MainWindow
    
    replaced ExoToolbar with a GTK3 Toolbar
    
    added bit of adjustments to the welcome tab
    
    fixed a conversion error from GstDiscoverer to GstObject
    when it inherits from GObject
---
 .gitignore                            |   1 +
 xfburn/xfburn-audio-composition.c     | 115 +++++++++++++++++----------------
 xfburn/xfburn-compositions-notebook.c |   2 +-
 xfburn/xfburn-compositions-notebook.h |   2 +-
 xfburn/xfburn-data-composition.c      | 118 +++++++++++++++++++---------------
 xfburn/xfburn-main-window.c           | 116 +++++++++++++++++++++++----------
 xfburn/xfburn-main-window.h           |   2 +
 xfburn/xfburn-transcoder-gst.c        |   2 +-
 xfburn/xfburn-utils.c                 |   4 +-
 xfburn/xfburn-welcome-tab.c           |  15 ++++-
 xfburn/xfburn-welcome-tab.h           |   2 +-
 11 files changed, 230 insertions(+), 149 deletions(-)

diff --git a/.gitignore b/.gitignore
index 05f5aeb..5400799 100644
--- a/.gitignore
+++ b/.gitignore
@@ -50,3 +50,4 @@ xfburn/.deps
 docs/xfburn.1
 core
 core.*
+.vscode
diff --git a/xfburn/xfburn-audio-composition.c b/xfburn/xfburn-audio-composition.c
index f43a4ec..9ad988e 100644
--- a/xfburn/xfburn-audio-composition.c
+++ b/xfburn/xfburn-audio-composition.c
@@ -126,14 +126,14 @@ static void save_to_file (XfburnComposition *composition);
 
 //static gint song_tree_sortfunc (GtkTreeModel * model, GtkTreeIter * a, GtkTreeIter * b, gpointer user_data);
 
-static void action_clear (GtkAction *, XfburnAudioComposition *);
-static void action_info (GtkAction *, XfburnAudioComposition *);
-static void action_remove_selection (GtkAction *, XfburnAudioComposition *);
+static void action_clear (GSimpleAction *, GVariant*, XfburnAudioComposition *);
+static void action_info (GSimpleAction *, GVariant*, XfburnAudioComposition *);
+static void action_remove_selection (GSimpleAction *, GVariant*, XfburnAudioComposition *);
 #if 0 /* CDTEXT */
-static void action_rename_selection_artist (GtkAction *, XfburnAudioComposition *);
-static void action_rename_selection_title (GtkAction *, XfburnAudioComposition *);
+static void action_rename_selection_artist (GSimpleAction *, GVariant*, XfburnAudioComposition *);
+static void action_rename_selection_title (GSimpleAction *, GVariant*, XfburnAudioComposition *);
 #endif /* CDTEXT */
-static void action_add_selected_files (GtkAction *, XfburnAudioComposition *);
+static void action_add_selected_files (GSimpleAction *, GVariant*, XfburnAudioComposition *);
 
 static void tracks_changed (XfburnAudioComposition *ac);
 static gboolean cb_treeview_button_pressed (GtkTreeView * treeview, GdkEventButton * event, XfburnAudioComposition * dc);
@@ -183,8 +183,8 @@ typedef struct
   void *thread_params;
   GHashTable *warned_about;
   
-  GtkActionGroup *action_group;
-  GtkUIManager *ui_manager;
+  GSimpleActionGroup *action_group;
+  GtkBuilder *ui_manager;
 
   GtkWidget *toolbar;
   GtkWidget *entry_volume_name;
@@ -203,6 +203,17 @@ static guint instances = 0;
 static gchar *did_warn = "Did warn about this already";
 static gchar trans_name[MAX_NAME_LENGTH] = {""};
 
+static const GActionEntry actions[] = {
+  {.name = "add-file", .activate = (gActionCallback)action_add_selected_files},
+  {.name = "remove-file", .activate = (gActionCallback)action_remove_selection},
+  {.name = "clear", .activate = (gActionCallback)action_clear},
+  {.name = "transcoder-info", .activate = (gActionCallback)action_info},
+#if 0 /* CDTEXT */
+  {.name = "rename-artist", .activate = (gActionCallback)action_rename_selection_artist},
+  {.name = "rename-title", .activate = (gActionCallback)action_rename_selection_title},
+#endif /* CDTEXT */
+};
+
 static const GtkActionEntry action_entries[] = {
   {"add-file", "list-add", N_("Add"), NULL, N_("Add the selected file(s) to the composition"),
    G_CALLBACK (action_add_selected_files),},
@@ -307,7 +318,7 @@ xfburn_audio_composition_init (XfburnAudioComposition * composition)
   GtkCellRenderer *cell_artist, *cell_title;
 #endif
   GtkTreeSelection *selection;
-  GtkAction *action = NULL;
+  GSimpleAction *action = NULL;
   GdkScreen *screen;
   GtkIconTheme *icon_theme;
   
@@ -315,7 +326,12 @@ xfburn_audio_composition_init (XfburnAudioComposition * composition)
   const gchar ui_string[] = "<ui> <popup name=\"popup-menu\">"
     "<menuitem action=\"rename-artist\"/>" "<menuitem action=\"rename-title\"/>" "<menuitem action=\"remove-file\"/>" "</popup></ui>";
 #else
-  const gchar ui_string[] = "<ui> <popup name=\"popup-menu\"> <menuitem action=\"remove-file\"/>" "</popup></ui>";
+  // const gchar ui_string[] = "<ui> <popup name=\"popup-menu\"> <menuitem action=\"remove-file\"/>" "</popup></ui>";
+  const gchar ui_string[] = "<interface><menu id=\"popup-menu\">"
+    "<section>"
+    "<item><attribute name=\"label\">Remove</attribute><attribute name=\"action\">win.remove-file</attribute></item>"
+    "</section>"
+    "</menu></interface>";
 #endif /* CDTEXT */
 
   GtkTargetEntry gte_src[] =  { { "XFBURN_TREE_PATHS", GTK_TARGET_SAME_WIDGET, AUDIO_COMPOSITION_DND_TARGET_INSIDE } };
@@ -343,15 +359,13 @@ xfburn_audio_composition_init (XfburnAudioComposition * composition)
     icon_file = gtk_icon_theme_load_icon (icon_theme, "gnome-fs-regular", x, 0, NULL);
 
   /* create ui manager */
-  priv->action_group = gtk_action_group_new ("xfburn-audio-composition");
-  gtk_action_group_set_translation_domain (priv->action_group, GETTEXT_PACKAGE);
-  gtk_action_group_add_actions (priv->action_group, action_entries, G_N_ELEMENTS (action_entries),
+  priv->action_group = g_simple_action_group_new();
+  g_action_map_add_action_entries (G_ACTION_MAP (priv->action_group), actions, G_N_ELEMENTS (actions),
                                 GTK_WIDGET (composition));
-
-  priv->ui_manager = gtk_ui_manager_new ();
-  gtk_ui_manager_insert_action_group (priv->ui_manager, priv->action_group, 0);
-
-  gtk_ui_manager_add_ui_from_string (priv->ui_manager, ui_string, -1, NULL);
+  priv->ui_manager = gtk_builder_new ();
+  gtk_builder_set_translation_domain (priv->ui_manager, GETTEXT_PACKAGE);
+  gtk_builder_add_from_string (priv->ui_manager, ui_string, -1, NULL);
+  gtk_widget_insert_action_group(GTK_WIDGET (composition), "win", G_ACTION_GROUP (priv->action_group));
 
   hbox_toolbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
   gtk_box_pack_start (GTK_BOX (composition), hbox_toolbar, FALSE, TRUE, 0);
@@ -483,8 +497,8 @@ xfburn_audio_composition_init (XfburnAudioComposition * composition)
   g_signal_connect (G_OBJECT (priv->content), "drag-data-received", G_CALLBACK (cb_content_drag_data_rcv),
                     composition);
                     
-  action = gtk_action_group_get_action (priv->action_group, "remove-file");
-  gtk_action_set_sensitive (GTK_ACTION (action), FALSE);
+  action = G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (priv->action_group), "remove-file"));
+  g_simple_action_set_enabled (action, FALSE);
 
   priv->warned_about = g_hash_table_new (g_direct_hash, g_direct_equal);
 }
@@ -598,25 +612,25 @@ cb_selection_changed (GtkTreeSelection *selection, XfburnAudioComposition * dc)
 {
   XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
   gint n_selected_rows;
-  GtkAction *action = NULL;
-  
+  GSimpleAction *action = NULL;
+  GActionMap *map = G_ACTION_MAP (priv->action_group);
   
   n_selected_rows = gtk_tree_selection_count_selected_rows (selection);
   if (n_selected_rows == 0) {
-    action = gtk_action_group_get_action (priv->action_group, "add-file");
-    gtk_action_set_sensitive (GTK_ACTION (action), TRUE);
-    action = gtk_action_group_get_action (priv->action_group, "remove-file");
-    gtk_action_set_sensitive (GTK_ACTION (action), FALSE);  
+    action = G_SIMPLE_ACTION (g_action_map_lookup_action (map, "add-file"));
+    g_simple_action_set_enabled (action, TRUE);
+    action = G_SIMPLE_ACTION (g_action_map_lookup_action (map, "remove-file"));
+    g_simple_action_set_enabled (action, FALSE);
   } else if (n_selected_rows == 1) {
-    action = gtk_action_group_get_action (priv->action_group, "add-file");
-    gtk_action_set_sensitive (GTK_ACTION (action), TRUE);
-    action = gtk_action_group_get_action (priv->action_group, "remove-file");
-    gtk_action_set_sensitive (GTK_ACTION (action), TRUE);
+    action = G_SIMPLE_ACTION (g_action_map_lookup_action (map, "add-file"));
+    g_simple_action_set_enabled (action, TRUE);
+    action = G_SIMPLE_ACTION (g_action_map_lookup_action (map, "remove-file"));
+    g_simple_action_set_enabled (action, TRUE);
   } else {
-    action = gtk_action_group_get_action (priv->action_group, "add-file");
-    gtk_action_set_sensitive (GTK_ACTION (action), FALSE);
-    action = gtk_action_group_get_action (priv->action_group, "remove-file");
-    gtk_action_set_sensitive (GTK_ACTION (action), TRUE);     
+    action = G_SIMPLE_ACTION (g_action_map_lookup_action (map, "add-file"));
+    g_simple_action_set_enabled (action, FALSE);
+    action = G_SIMPLE_ACTION (g_action_map_lookup_action (map, "remove-file"));
+    g_simple_action_set_enabled (action, TRUE);
   }
 }
 
@@ -644,6 +658,7 @@ cb_treeview_button_pressed (GtkTreeView * treeview, GdkEventButton * event, Xfbu
     GtkTreeSelection *selection;
     GtkTreePath *path;
     GtkWidget *menu_popup;
+    GMenuModel *model;
     GtkWidget *menuitem_remove;
 #if 0 /* CDTEXT */
     GtkWidget *menuitem_rename_artist;
@@ -658,28 +673,20 @@ cb_treeview_button_pressed (GtkTreeView * treeview, GdkEventButton * event, Xfbu
       gtk_tree_path_free (path);
     }
 
-    menu_popup = gtk_ui_manager_get_widget (priv->ui_manager, "/popup-menu");
-    menuitem_remove = gtk_ui_manager_get_widget (priv->ui_manager, "/popup-menu/remove-file");
-#if 0 /* CDTEXT */
-    menuitem_rename_artist = gtk_ui_manager_get_widget (priv->ui_manager, "/popup-menu/rename-artist");
-    menuitem_rename_title = gtk_ui_manager_get_widget (priv->ui_manager, "/popup-menu/rename-title");
-#endif /* CDTEXT */
+    model = G_MENU_MODEL (gtk_builder_get_object (priv->ui_manager, "popup-menu"));
+    menu_popup = gtk_menu_new_from_model (model);
+    gtk_widget_insert_action_group(GTK_WIDGET(menu_popup), "win", priv->action_group);
+    menuitem_remove = GTK_WIDGET (gtk_container_get_children (GTK_CONTAINER (menu_popup))->data);
 
     if (gtk_tree_selection_count_selected_rows (selection) >= 1)
       gtk_widget_set_sensitive (menuitem_remove, TRUE);
     else
       gtk_widget_set_sensitive (menuitem_remove, FALSE);
-#if 0 /* CDTEXT */
-    if (gtk_tree_selection_count_selected_rows (selection) == 1) {
-      gtk_widget_set_sensitive (menuitem_rename_artist, TRUE);
-      gtk_widget_set_sensitive (menuitem_rename_title, TRUE);
-    } else {
-      gtk_widget_set_sensitive (menuitem_rename_artist, FALSE);
-      gtk_widget_set_sensitive (menuitem_rename_title, FALSE);
-    }
-#endif /* CDTEXT */
 
-    gtk_menu_popup (GTK_MENU (menu_popup), NULL, NULL, NULL, NULL, event->button, gtk_get_current_event_time ());
+    GdkRectangle r = {event->x, event->y, 1, 1};
+    gtk_menu_popup_at_rect (GTK_MENU (menu_popup),
+        gtk_widget_get_parent_window (GTK_WIDGET (treeview)),
+        &r, GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_NORTH_WEST, NULL);
     return TRUE;
   }
 
@@ -931,7 +938,7 @@ remove_row_reference (GtkTreeRowReference *reference, XfburnAudioCompositionPriv
 }
 
 static void
-action_remove_selection (GtkAction * action, XfburnAudioComposition * dc)
+action_remove_selection (GSimpleAction * action, GVariant * param, XfburnAudioComposition * dc)
 {
   XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
   
@@ -965,7 +972,7 @@ action_remove_selection (GtkAction * action, XfburnAudioComposition * dc)
 
 
 static void
-action_add_selected_files (GtkAction *action, XfburnAudioComposition *dc)
+action_add_selected_files (GSimpleAction * action, GVariant * param, XfburnAudioComposition * dc)
 {
   XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
   XfburnFileBrowser *browser = xfburn_main_window_get_file_browser (xfburn_main_window_get_instance ());
@@ -1044,7 +1051,7 @@ action_add_selected_files (GtkAction *action, XfburnAudioComposition *dc)
 }
 
 static void
-action_clear (GtkAction * action, XfburnAudioComposition * dc)
+action_clear (GSimpleAction * action, GVariant * param, XfburnAudioComposition * dc)
 {
   XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
   
@@ -1058,7 +1065,7 @@ action_clear (GtkAction * action, XfburnAudioComposition * dc)
 }
 
 static void
-action_info (GtkAction * action, XfburnAudioComposition * dc)
+action_info (GSimpleAction * action, GVariant * param, XfburnAudioComposition * dc)
 {
   XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
   
diff --git a/xfburn/xfburn-compositions-notebook.c b/xfburn/xfburn-compositions-notebook.c
index ab9116a..2da487a 100644
--- a/xfburn/xfburn-compositions-notebook.c
+++ b/xfburn/xfburn-compositions-notebook.c
@@ -226,7 +226,7 @@ xfburn_compositions_notebook_add_composition (XfburnCompositionsNotebook *notebo
 }
 
 void
-xfburn_compositions_notebook_add_welcome_tab (XfburnCompositionsNotebook *notebook, GActionGroup *action_group)
+xfburn_compositions_notebook_add_welcome_tab (XfburnCompositionsNotebook *notebook, GActionMap *action_group)
 {
   GtkWidget *welcome_tab = NULL;
   GtkWidget *label;
diff --git a/xfburn/xfburn-compositions-notebook.h b/xfburn/xfburn-compositions-notebook.h
index 8910236..b3e7e4c 100644
--- a/xfburn/xfburn-compositions-notebook.h
+++ b/xfburn/xfburn-compositions-notebook.h
@@ -53,7 +53,7 @@ GType xfburn_compositions_notebook_get_type (void);
 GtkWidget *xfburn_compositions_notebook_new (void);
 
 XfburnComposition *xfburn_compositions_notebook_add_composition (XfburnCompositionsNotebook *notebook, XfburnCompositionType type);
-void xfburn_compositions_notebook_add_welcome_tab (XfburnCompositionsNotebook *notebook, GActionGroup *action_group);
+void xfburn_compositions_notebook_add_welcome_tab (XfburnCompositionsNotebook *notebook, GActionMap *action_group);
 
 void xfburn_compositions_notebook_close_composition (XfburnCompositionsNotebook *notebook);
 
diff --git a/xfburn/xfburn-data-composition.c b/xfburn/xfburn-data-composition.c
index 55ebf15..5958e03 100644
--- a/xfburn/xfburn-data-composition.c
+++ b/xfburn/xfburn-data-composition.c
@@ -114,11 +114,11 @@ static gint directory_tree_sortfunc (GtkTreeModel * model, GtkTreeIter * a, GtkT
 static void set_default_name (XfburnDataComposition * dc);
 static gboolean has_default_name (XfburnDataComposition * dc);
 
-static void action_create_directory (GtkAction *, XfburnDataComposition *);
-static void action_clear (GtkAction *, XfburnDataComposition *);
-static void action_remove_selection (GtkAction *, XfburnDataComposition *);
-static void action_rename_selection (GtkAction *, XfburnDataComposition *);
-static void action_add_or_select (GtkAction *, XfburnDataComposition *);
+static void action_create_directory (GSimpleAction *, GVariant *, XfburnDataComposition *);
+static void action_clear (GSimpleAction *, GVariant *, XfburnDataComposition *);
+static void action_remove_selection (GSimpleAction *, GVariant *, XfburnDataComposition *);
+static void action_rename_selection (GSimpleAction *, GVariant *, XfburnDataComposition *);
+static void action_add_or_select (GSimpleAction *, GVariant *, XfburnDataComposition *);
 static void add_files (gchar * files, XfburnDataComposition *);
 static void add_cb (GtkWidget * widget, gpointer data);
 
@@ -167,8 +167,8 @@ typedef struct
 
   void *thread_params;
   
-  GtkActionGroup *action_group;
-  GtkUIManager *ui_manager;
+  GSimpleActionGroup *action_group;
+  GtkBuilder *ui_manager;
 
   GtkWidget *toolbar;
   GtkWidget *entry_volume_name;
@@ -189,6 +189,15 @@ typedef struct
 static GtkHPanedClass *parent_class = NULL;
 static guint instances = 0;
 
+static const GActionEntry action_entries[] = {
+  {.name = "add-file", .activate = (gActionCallback)action_add_or_select},
+  {.name = "create-dir", .activate = (gActionCallback)action_create_directory},
+  {.name = "remove-file", .activate = (gActionCallback)action_remove_selection},
+  {.name = "clear", .activate = (gActionCallback)action_clear},
+  /*{.name = "import-session", .activate = (gActionCallback)action_remove_selection},*/
+  {.name = "rename-file", .activate = (gActionCallback)action_rename_selection},
+};
+/*
 static const GtkActionEntry action_entries[] = {
   {"add-file", "list-add", N_("Add"), NULL, N_("Add the selected file(s) to the composition"),
    G_CALLBACK (action_add_or_select),},
@@ -199,9 +208,9 @@ static const GtkActionEntry action_entries[] = {
   {"clear", "edit-clear", N_("Clear"), NULL, N_("Clear the content of the composition"),
    G_CALLBACK (action_clear),},
   /*{"import-session", "xfburn-import-session", N_("Import"), NULL, N_("Import existing session"),}, */
-  {"rename-file", "gtk-edit", N_("Rename"), NULL, N_("Rename the selected file"),
+/*  {"rename-file", "gtk-edit", N_("Rename"), NULL, N_("Rename the selected file"),
    G_CALLBACK (action_rename_selection),},
-};
+};*/
 
 static const gchar *toolbar_actions[] = {
   "add-file",
@@ -287,13 +296,17 @@ xfburn_data_composition_init (XfburnDataComposition * composition)
   GtkTreeViewColumn *column_file;
   GtkCellRenderer *cell_icon, *cell_file;
   GtkTreeSelection *selection;
-  GtkAction *action = NULL;
+  GAction *action = NULL;
   GdkScreen *screen;
   GtkIconTheme *icon_theme;
   
-  const gchar ui_string[] = "<ui> <popup name=\"popup-menu\">"
-    "<menuitem action=\"create-dir\"/>" "<separator/>"
-    "<menuitem action=\"rename-file\"/>" "<menuitem action=\"remove-file\"/>" "</popup></ui>";
+  const gchar ui_string[] = "<interface><menu id=\"popup-menu\">"
+    "<section>"
+    "<item><attribute name=\"action\">win.create-dir</attribute><attribute name=\"label\">Create directory</attribute></item>"
+    "</section><section>"
+    "<item><attribute name=\"action\">win.rename-file</attribute><attribute name=\"label\">Rename</attribute></item>"
+    "<item><attribute name=\"action\">win.remove-file</attribute><attribute name=\"label\">Remove</attribute></item>"
+    "</section></menu></interface>";
 
   GtkTargetEntry gte_src[] =  { { "XFBURN_TREE_PATHS", GTK_TARGET_SAME_WIDGET, DATA_COMPOSITION_DND_TARGET_INSIDE } };
   GtkTargetEntry gte_dest[] = { { "XFBURN_TREE_PATHS", GTK_TARGET_SAME_WIDGET, DATA_COMPOSITION_DND_TARGET_INSIDE },
@@ -316,15 +329,14 @@ xfburn_data_composition_init (XfburnDataComposition * composition)
     icon_file = gtk_icon_theme_load_icon (icon_theme, "gnome-fs-regular", x, 0, NULL);
 
   /* create ui manager */
-  priv->action_group = gtk_action_group_new ("xfburn-data-composition");
-  gtk_action_group_set_translation_domain (priv->action_group, GETTEXT_PACKAGE);
-  gtk_action_group_add_actions (priv->action_group, action_entries, G_N_ELEMENTS (action_entries),
+  priv->action_group = g_simple_action_group_new ();
+  g_action_map_add_action_entries (G_ACTION_MAP (priv->action_group), action_entries, G_N_ELEMENTS (action_entries),
                                 GTK_WIDGET (composition));
 
-  priv->ui_manager = gtk_ui_manager_new ();
-  gtk_ui_manager_insert_action_group (priv->ui_manager, priv->action_group, 0);
-
-  gtk_ui_manager_add_ui_from_string (priv->ui_manager, ui_string, -1, NULL);
+  priv->ui_manager = gtk_builder_new ();
+  gtk_builder_set_translation_domain(priv->ui_manager, GETTEXT_PACKAGE);
+  
+  gtk_builder_add_from_string (priv->ui_manager, ui_string, -1, NULL);
 
   hbox_toolbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
   gtk_box_pack_start (GTK_BOX (composition), hbox_toolbar, FALSE, TRUE, 0);
@@ -448,8 +460,8 @@ xfburn_data_composition_init (XfburnDataComposition * composition)
   g_signal_connect (G_OBJECT (priv->content), "drag-data-received", G_CALLBACK (cb_content_drag_data_rcv),
                     composition);
                     
-  action = gtk_action_group_get_action (priv->action_group, "remove-file");
-  gtk_action_set_sensitive (GTK_ACTION (action), FALSE);
+  action = g_action_map_lookup_action (G_ACTION_MAP (priv->action_group), "remove-file");
+  g_simple_action_set_enabled (G_SIMPLE_ACTION (action), FALSE);
 }
 
 static void
@@ -532,31 +544,25 @@ cb_selection_changed (GtkTreeSelection *selection, XfburnDataComposition * dc)
 {
   XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
   gint n_selected_rows;
-  GtkAction *action = NULL;
-  
-  
+  GAction* action[] = {
+    g_action_map_lookup_action (G_ACTION_MAP (priv->action_group), "add-file"),
+    g_action_map_lookup_action (G_ACTION_MAP (priv->action_group), "create-dir"),
+    g_action_map_lookup_action (G_ACTION_MAP (priv->action_group), "remove-file"),
+  };
+    
   n_selected_rows = gtk_tree_selection_count_selected_rows (selection);
   if (n_selected_rows == 0) {
-    action = gtk_action_group_get_action (priv->action_group, "add-file");
-    gtk_action_set_sensitive (GTK_ACTION (action), TRUE);
-    action = gtk_action_group_get_action (priv->action_group, "create-dir");
-    gtk_action_set_sensitive (GTK_ACTION (action), TRUE);  
-    action = gtk_action_group_get_action (priv->action_group, "remove-file");
-    gtk_action_set_sensitive (GTK_ACTION (action), FALSE);  
+    g_simple_action_set_enabled (G_SIMPLE_ACTION (action[0]), TRUE);
+    g_simple_action_set_enabled (G_SIMPLE_ACTION (action[1]), TRUE);
+    g_simple_action_set_enabled (G_SIMPLE_ACTION (action[2]), FALSE);
   } else if (n_selected_rows == 1) {
-    action = gtk_action_group_get_action (priv->action_group, "add-file");
-    gtk_action_set_sensitive (GTK_ACTION (action), TRUE);
-    action = gtk_action_group_get_action (priv->action_group, "create-dir");
-    gtk_action_set_sensitive (GTK_ACTION (action), TRUE);  
-    action = gtk_action_group_get_action (priv->action_group, "remove-file");
-    gtk_action_set_sensitive (GTK_ACTION (action), TRUE);
+    g_simple_action_set_enabled (G_SIMPLE_ACTION (action[0]), TRUE);
+    g_simple_action_set_enabled (G_SIMPLE_ACTION (action[1]), TRUE);
+    g_simple_action_set_enabled (G_SIMPLE_ACTION (action[2]), TRUE);
   } else {
-    action = gtk_action_group_get_action (priv->action_group, "add-file");
-    gtk_action_set_sensitive (GTK_ACTION (action), FALSE);
-    action = gtk_action_group_get_action (priv->action_group, "create-dir");
-    gtk_action_set_sensitive (GTK_ACTION (action), FALSE);  
-    action = gtk_action_group_get_action (priv->action_group, "remove-file");
-    gtk_action_set_sensitive (GTK_ACTION (action), TRUE);     
+    g_simple_action_set_enabled (G_SIMPLE_ACTION (action[0]), FALSE);
+    g_simple_action_set_enabled (G_SIMPLE_ACTION (action[1]), FALSE);
+    g_simple_action_set_enabled (G_SIMPLE_ACTION (action[2]), TRUE);
   }
 }
 
@@ -583,6 +589,7 @@ cb_treeview_button_pressed (GtkTreeView * treeview, GdkEventButton * event, Xfbu
   if ((event->button == 3) && (event->type == GDK_BUTTON_PRESS)) {
     GtkTreeSelection *selection;
     GtkTreePath *path;
+    GMenuModel *model;
     GtkWidget *menu_popup;
     GtkWidget *menuitem_remove;
     GtkWidget *menuitem_rename;
@@ -595,9 +602,13 @@ cb_treeview_button_pressed (GtkTreeView * treeview, GdkEventButton * event, Xfbu
       gtk_tree_path_free (path);
     }
 
-    menu_popup = gtk_ui_manager_get_widget (priv->ui_manager, "/popup-menu");
-    menuitem_remove = gtk_ui_manager_get_widget (priv->ui_manager, "/popup-menu/remove-file");
-    menuitem_rename = gtk_ui_manager_get_widget (priv->ui_manager, "/popup-menu/rename-file");
+    model = G_MENU_MODEL (gtk_builder_get_object (priv->ui_manager, "popup-menu"));
+    menu_popup = gtk_menu_new_from_model (model);
+    gtk_widget_insert_action_group(GTK_WIDGET(menu_popup), "win", priv->action_group);
+    
+    GList *childs = gtk_container_get_children (GTK_CONTAINER (menu_popup));
+    menuitem_remove = GTK_WIDGET (childs->next->next->data);
+    menuitem_rename = GTK_WIDGET (childs->next->data);
 
     if (gtk_tree_selection_count_selected_rows (selection) >= 1)
       gtk_widget_set_sensitive (menuitem_remove, TRUE);
@@ -608,7 +619,10 @@ cb_treeview_button_pressed (GtkTreeView * treeview, GdkEventButton * event, Xfbu
     else
       gtk_widget_set_sensitive (menuitem_rename, FALSE);
 
-    gtk_menu_popup (GTK_MENU (menu_popup), NULL, NULL, NULL, NULL, event->button, gtk_get_current_event_time ());
+    GdkRectangle r = {event->x, event->y, 1, 1};
+    gtk_menu_popup_at_rect (GTK_MENU (menu_popup),
+        gtk_widget_get_parent_window (GTK_WIDGET (treeview)),
+        &r, GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_NORTH_WEST, NULL);
     return TRUE;
   }
 
@@ -730,7 +744,7 @@ cb_adding_done (XfburnAddingProgress *progress, XfburnDataComposition *dc)
 }
 
 static void
-action_rename_selection (GtkAction * action, XfburnDataComposition * dc)
+action_rename_selection (GSimpleAction *action, GVariant *param, XfburnDataComposition *dc)
 {
   XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
   
@@ -754,7 +768,7 @@ action_rename_selection (GtkAction * action, XfburnDataComposition * dc)
 }
 
 static void
-action_create_directory (GtkAction * action, XfburnDataComposition * dc)
+action_create_directory (GSimpleAction *action, GVariant *param, XfburnDataComposition *dc)
 {
   XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
   
@@ -875,7 +889,7 @@ remove_row_reference (GtkTreeRowReference *reference, XfburnDataCompositionPriva
 }
 
 static void
-action_remove_selection (GtkAction * action, XfburnDataComposition * dc)
+action_remove_selection (GSimpleAction *action, GVariant *param, XfburnDataComposition *dc)
 {
   XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
   
@@ -985,7 +999,7 @@ select_files (XfburnDataComposition * dc)
 }
 
 static void
-action_add_or_select (GtkAction *action, XfburnDataComposition *dc)
+action_add_or_select (GSimpleAction *action, GVariant *param, XfburnDataComposition *dc)
 {
   if (xfburn_settings_get_boolean("show-filebrowser", FALSE)) {
     XfburnFileBrowser *browser = xfburn_main_window_get_file_browser (xfburn_main_window_get_instance ());
@@ -1074,7 +1088,7 @@ has_default_name (XfburnDataComposition * dc)
 }
 
 static void
-action_clear (GtkAction * action, XfburnDataComposition * dc)
+action_clear (GSimpleAction *action, GVariant *param, XfburnDataComposition *dc)
 {
   XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
   
diff --git a/xfburn/xfburn-main-window.c b/xfburn/xfburn-main-window.c
index 7233e39..d0d861a 100644
--- a/xfburn/xfburn-main-window.c
+++ b/xfburn/xfburn-main-window.c
@@ -98,21 +98,21 @@ static void action_show_toolbar (GAction * action, GVariant*, XfburnMainWindow *
 static GtkWindowClass *parent_class = NULL;
 // upgrade to 
 static const GActionEntry action_entries[] = {
-  // { "file-menu", NULL, NULL, NULL, NULL },
-  { "new-data-composition", action_new_data_composition, NULL, NULL, NULL },
-  { "new-audio-composition", action_new_audio_composition, NULL, NULL, NULL },
-  { "close-composition", action_close, NULL, NULL, NULL },
-  { "quit", action_quit, NULL, NULL, NULL },
-  // { "edit-menu", NULL, NULL, NULL, NULL },
-  { "preferences", action_preferences, NULL, NULL, NULL },
-  // { "action-menu", NULL, NULL, NULL, NULL },
-  { "refresh", action_refresh_directorybrowser, NULL, NULL, NULL },
-  // { "help-menu", NULL, NULL, NULL, NULL },
-  { "about", action_about, NULL, NULL, NULL },
-  { "blank-disc", action_blank, NULL, NULL, NULL },
-  { "copy-data", action_copy_cd, NULL, NULL, NULL },
-  { "burn-image", action_burn_image, NULL, NULL, NULL },
-  { "burn-dvd", action_burn_dvd_image, NULL, NULL, NULL },
+  // { "file-menu", NULL},
+  { .name = "new-data-composition", .activate = (gActionCallback)action_new_data_composition },
+  { .name = "new-audio-composition", .activate = (gActionCallback)action_new_audio_composition},
+  { .name = "close-composition", .activate = (gActionCallback)action_close},
+  { .name = "quit", .activate = (gActionCallback)action_quit},
+  // { .name = "edit-menu", .activate = NULL},
+  { .name = "preferences", .activate = (gActionCallback)action_preferences},
+  // { "action-menu", NULL},
+  { .name = "refresh", .activate = (gActionCallback)action_refresh_directorybrowser},
+  // { "help-menu", .activate = NULL},
+  { .name = "about", .activate = (gActionCallback)action_about},
+  { .name = "blank-disc", .activate = (gActionCallback)action_blank},
+  { .name = "copy-data", .activate = (gActionCallback)action_copy_cd},
+  { .name = "burn-image", .activate = (gActionCallback)action_burn_image},
+  { .name = "burn-dvd", .activate = (gActionCallback)action_burn_dvd_image},
 };
 
 static const struct {
@@ -165,8 +165,8 @@ static const struct {
 };
 */
 static const GActionEntry toggle_action_entries[] = {
-  { "show-filebrowser", NULL, NULL, "true", action_show_filebrowser },
-  { "show-toolbar", NULL, NULL, "true", action_show_toolbar },
+  { .name = "show-filebrowser", .state = "false", .change_state = (gActionCallback)action_show_filebrowser },
+  { .name = "show-toolbar", .state = "true", .change_state = (gActionCallback)action_show_toolbar },
 };
 /* static const GtkToggleActionEntry toggle_action_entries[] = {
   {"show-filebrowser", NULL, N_("Show file browser"), NULL, N_("Show/hide the file browser"),
@@ -242,6 +242,26 @@ xfburn_main_window_finalize (GObject *obj)
 }
 
 static void
+add_button_to_toolbar(GtkToolbar *toolbar, const gchar *stock, const gchar *text, const gchar *action, const gchar *tooltip)
+{
+  GtkToolItem *item;
+  GtkWidget *icon;
+  GtkWidget *label;
+
+  gchar *markup = g_markup_printf_escaped("<span size=\"small\" weight=\"bold\">%s</span>", text);
+  label = gtk_label_new(NULL);
+  gtk_label_set_markup(GTK_LABEL (label), markup);
+  g_free(markup);
+
+  icon = gtk_image_new_from_icon_name (stock, 0);
+  item = gtk_tool_button_new(icon, text);
+  gtk_tool_item_set_tooltip_text(item, (tooltip == NULL) ? text : tooltip);
+  gtk_tool_button_set_label_widget(GTK_TOOL_BUTTON (item), label);
+  gtk_toolbar_insert(toolbar, item, -1);
+  gtk_actionable_set_action_name (GTK_ACTIONABLE (item), action);
+}
+
+static void
 xfburn_main_window_init (XfburnMainWindow * mainwin)
 {
   XfburnMainWindowPrivate *priv = XFBURN_MAIN_WINDOW_GET_PRIVATE (mainwin);
@@ -266,8 +286,8 @@ xfburn_main_window_init (XfburnMainWindow * mainwin)
 
   priv->action_map = g_simple_action_group_new();
 
-  g_action_map_add_action_entries (priv->action_map, action_entries, G_N_ELEMENTS(action_entries), mainwin);
-  g_action_map_add_action_entries (priv->action_map, toggle_action_entries, G_N_ELEMENTS(toggle_action_entries), mainwin);
+  g_action_map_add_action_entries (G_ACTION_MAP (priv->action_map), action_entries, G_N_ELEMENTS(action_entries), mainwin);
+  g_action_map_add_action_entries (G_ACTION_MAP (priv->action_map), toggle_action_entries, G_N_ELEMENTS(toggle_action_entries), mainwin);
 
   xfce_resource_push_path (XFCE_RESOURCE_DATA, DATADIR);
   file = xfce_resource_lookup (XFCE_RESOURCE_DATA, "xfburn/xfburn.3.ui");
@@ -298,7 +318,7 @@ xfburn_main_window_init (XfburnMainWindow * mainwin)
   
   priv->menubar = gtk_menu_bar_new_from_model (menu_model);
   if (G_LIKELY (priv->menubar != NULL)) {
-    gtk_widget_insert_action_group (priv->menubar, "app", priv->action_map);
+    gtk_widget_insert_action_group (priv->menubar, "app", G_ACTION_GROUP (priv->action_map));
     gtk_box_pack_start (GTK_BOX (vbox), priv->menubar, FALSE, FALSE, 0);
     gtk_widget_show (priv->menubar);
   }
@@ -330,9 +350,34 @@ xfburn_main_window_init (XfburnMainWindow * mainwin)
     g_warning ("Unable to locate xfburn/xfburn-toolbars.ui !");
   }
 */
-  priv->toolbars = gtk_label_new ("placeholder for Gtk3Toolbar");
-  gtk_box_pack_start (GTK_BOX (vbox), priv->toolbars, FALSE, FALSE, 0);
-  gtk_widget_show (priv->toolbars);
+  priv->toolbars = gtk_toolbar_new ();
+//  gtk_orientable_set_orientation (priv->toolbars, GTK_ORIENTATION_HORIZONTAL);
+  gtk_toolbar_set_style(GTK_TOOLBAR (priv->toolbars), GTK_TOOLBAR_BOTH);
+  gtk_widget_insert_action_group (priv->toolbars, "app", G_ACTION_GROUP (priv->action_map));
+
+  add_button_to_toolbar (GTK_TOOLBAR (priv->toolbars),
+    "stock_xfburn-new-data-composition", "New data composition", "app.new-data-composition", NULL);
+
+  add_button_to_toolbar (GTK_TOOLBAR (priv->toolbars),
+    "stock_xfburn-audio-cd", "New audio composition", "app.new-audio-composition", NULL);
+
+  gtk_toolbar_insert (GTK_TOOLBAR (priv->toolbars), gtk_separator_tool_item_new(), -1);
+
+  add_button_to_toolbar (GTK_TOOLBAR (priv->toolbars), 
+    "stock_xfburn-blank-cdrw", "Blank CD-RW", "app.blank-disc", NULL);
+  
+  add_button_to_toolbar (GTK_TOOLBAR (priv->toolbars),
+    "stock_xfburn", "Burn Image", "app.burn-image", NULL);
+
+  gtk_toolbar_insert (GTK_TOOLBAR (priv->toolbars), gtk_separator_tool_item_new(), -1);
+
+  add_button_to_toolbar (GTK_TOOLBAR (priv->toolbars),
+    "view-refresh", "Refresh", "app.refresh", "Refresh file list");
+
+  gtk_box_pack_start (GTK_BOX (vbox), priv->toolbars, FALSE, FALSE, 5);
+  gtk_toolbar_set_icon_size(GTK_TOOLBAR (priv->toolbars), GTK_ICON_SIZE_SMALL_TOOLBAR);
+  gtk_tool_shell_rebuild_menu(GTK_TOOL_SHELL (priv->toolbars));
+  gtk_widget_show_all (priv->toolbars);
 
   /* vpaned */
   priv->vpaned = gtk_paned_new (GTK_ORIENTATION_VERTICAL);
@@ -654,16 +699,17 @@ xfburn_main_window_new (void)
     XfburnMainWindow *win;
     XfburnMainWindowPrivate *priv;
     GAction *action;
+    GActionMap *action_map;
     GList *device = NULL;
     XfburnDeviceList *devlist;
 
     instance = win = XFBURN_MAIN_WINDOW (obj);
     priv = XFBURN_MAIN_WINDOW_GET_PRIVATE (win);
-
+    action_map = G_ACTION_MAP (priv->action_map);
     /* load settings */
-    action = g_action_map_lookup_action (priv->action_map, "show-filebrowser");
+    action = g_action_map_lookup_action (action_map, "show-filebrowser");
     g_action_change_state(action, g_variant_new_boolean (xfburn_settings_get_boolean ("show-filebrowser", FALSE)));
-    action = g_action_map_lookup_action (priv->action_map, "show-toolbar");
+    action = g_action_map_lookup_action (action_map, "show-toolbar");
     g_action_change_state(action, g_variant_new_boolean (xfburn_settings_get_boolean ("show-toolbar", FALSE)));
    /* action = gtk_action_group_get_action (priv->action_group, "save-composition");
     gtk_action_set_sensitive (GTK_ACTION (action), FALSE);*/
@@ -690,20 +736,20 @@ xfburn_main_window_new (void)
     }
 
     if (!priv->support_cdr) {
-      action = g_action_map_lookup_action (priv->action_map, "copy-data");
-      g_simple_action_set_enabled (action, FALSE);
-      action = g_action_map_lookup_action (priv->action_map, "copy-audio");
-      g_simple_action_set_enabled (action, FALSE);
-      action = g_action_map_lookup_action (priv->action_map, "burn-image");
-      g_simple_action_set_enabled (action, FALSE);
+      action = g_action_map_lookup_action (action_map, "copy-data");
+      g_simple_action_set_enabled (G_SIMPLE_ACTION (action), FALSE);
+      action = g_action_map_lookup_action (action_map, "copy-audio");
+      g_simple_action_set_enabled (G_SIMPLE_ACTION (action), FALSE);
+      action = g_action_map_lookup_action (action_map, "burn-image");
+      g_simple_action_set_enabled (G_SIMPLE_ACTION (action), FALSE);
     }
     if (!priv->support_cdrw) {
-      action = g_action_map_lookup_action (priv->action_map, "blank-disc");
-      g_simple_action_set_enabled (action, FALSE);
+      action = g_action_map_lookup_action (action_map, "blank-disc");
+      g_simple_action_set_enabled (G_SIMPLE_ACTION (action), FALSE);
     }
 
     /* show welcome tab */
-    xfburn_compositions_notebook_add_welcome_tab (XFBURN_COMPOSITIONS_NOTEBOOK (priv->compositions_notebook), priv->action_map);
+    xfburn_compositions_notebook_add_welcome_tab (XFBURN_COMPOSITIONS_NOTEBOOK (priv->compositions_notebook), action_map);
   }
 
   return obj;
diff --git a/xfburn/xfburn-main-window.h b/xfburn/xfburn-main-window.h
index 22c0289..160276e 100644
--- a/xfburn/xfburn-main-window.h
+++ b/xfburn/xfburn-main-window.h
@@ -37,6 +37,8 @@ G_BEGIN_DECLS
 #define XFBURN_IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFBURN_TYPE_MAIN_WINDOW))
 #define XFBURN_MAIN_WINDOW_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), XFBURN_TYPE_MAIN_WINDOW, XfburnMainWindowClass))
 
+typedef void (* gActionCallback) (GSimpleAction *,GVariant *,gpointer);
+
 typedef struct 
 {
   GtkWindow window;
diff --git a/xfburn/xfburn-transcoder-gst.c b/xfburn/xfburn-transcoder-gst.c
index d35ed33..e540428 100644
--- a/xfburn/xfburn-transcoder-gst.c
+++ b/xfburn/xfburn-transcoder-gst.c
@@ -235,7 +235,7 @@ xfburn_transcoder_gst_finalize (GObject * object)
   gst_element_set_state (priv->pipeline, GST_STATE_NULL);
 
   gst_object_unref (GST_OBJECT (priv->pipeline));
-  gst_object_unref (GST_OBJECT (priv->discoverer));
+  g_object_unref (G_OBJECT (priv->discoverer));
   priv->pipeline = NULL;
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
diff --git a/xfburn/xfburn-utils.c b/xfburn/xfburn-utils.c
index e3e70e7..71522a6 100644
--- a/xfburn/xfburn-utils.c
+++ b/xfburn/xfburn-utils.c
@@ -49,7 +49,7 @@ xfburn_busy_cursor (GtkWidget * widget)
   cursor = gdk_cursor_new_for_display( gtk_widget_get_display(widget), GDK_WATCH);
   gdk_window_set_cursor (gtk_widget_get_parent_window (widget), cursor);
   g_object_unref (cursor);
-  gdk_flush ();
+  gdk_display_flush (gtk_widget_get_display(widget));
 }
 
 void
@@ -57,7 +57,7 @@ xfburn_default_cursor (GtkWidget * widget)
 {
   g_return_if_fail (widget != NULL);
   gdk_window_set_cursor (gtk_widget_get_parent_window (widget), NULL);
-  gdk_flush ();
+  gdk_display_flush (gtk_widget_get_display(widget));
 }
 
 /*******************/
diff --git a/xfburn/xfburn-welcome-tab.c b/xfburn/xfburn-welcome-tab.c
index 28c032b..882bbdd 100644
--- a/xfburn/xfburn-welcome-tab.c
+++ b/xfburn/xfburn-welcome-tab.c
@@ -121,9 +121,13 @@ xfburn_welcome_tab_init (XfburnWelcomeTab * obj)
   gtk_box_pack_start (GTK_BOX (obj), vbox, FALSE, FALSE, BORDER);
   gtk_widget_show (vbox);
 
+  align = gtk_label_new (NULL);
+  gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
+  gtk_widget_show (align);
+
   label_welcome = gtk_label_new (_("Welcome to Xfburn!"));
-  gtk_box_pack_start (GTK_BOX (vbox), label_welcome, TRUE, FALSE, BORDER);
   gtk_widget_set_valign (GTK_WIDGET (label_welcome), GTK_ALIGN_END);
+  gtk_box_pack_start (GTK_BOX (vbox), label_welcome, FALSE, FALSE, BORDER);
   gtk_widget_show (label_welcome);
 
   table = gtk_grid_new ();
@@ -132,6 +136,13 @@ xfburn_welcome_tab_init (XfburnWelcomeTab * obj)
   gtk_grid_set_column_spacing (GTK_GRID (table), BORDER);
   gtk_widget_show (table);
 
+  align = gtk_label_new (NULL);
+  gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
+  gtk_widget_show (align);
+  align = gtk_label_new (NULL);
+  gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0);
+  gtk_widget_show (align);
+
   /* buttons */
   priv->button_image = create_welcome_button ("stock_xfburn", _("<big>Burn _Image</big>"), _("Burn a prepared compilation, i.e. an .ISO file"));
   gtk_grid_attach (GTK_GRID (table), priv->button_image, 0, 0, 1, 1);
@@ -240,7 +251,7 @@ new_audio_cd (GtkButton *button, XfburnWelcomeTab *tab)
 /*        */
 
 GtkWidget *
-xfburn_welcome_tab_new (XfburnCompositionsNotebook *notebook, GActionGroup *action_group)
+xfburn_welcome_tab_new (XfburnCompositionsNotebook *notebook, GActionMap *action_group)
 {
   GtkWidget *obj;
 
diff --git a/xfburn/xfburn-welcome-tab.h b/xfburn/xfburn-welcome-tab.h
index 6c2446e..d2d5e88 100644
--- a/xfburn/xfburn-welcome-tab.h
+++ b/xfburn/xfburn-welcome-tab.h
@@ -48,7 +48,7 @@ typedef struct
 } XfburnWelcomeTabClass;
 
 GType xfburn_welcome_tab_get_type (void);
-GtkWidget *xfburn_welcome_tab_new (XfburnCompositionsNotebook *notebook, GActionGroup *action_group);
+GtkWidget *xfburn_welcome_tab_new (XfburnCompositionsNotebook *notebook, GActionMap *action_group);
 
 G_END_DECLS
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list