[easytag] Use GtkGrid instead of GtkTable with GTK+ 3



commit a57d0ee350c2dd2b9b04bdd98a7633a0113f2ccf
Author: Florian MÃllner <fmuellner gnome org>
Date:   Sun Feb 10 23:59:55 2013 +0100

    Use GtkGrid instead of GtkTable with GTK+ 3
    
    In GTK+-3, GtkTable has been deprecated in favor of the new GtkGrid
    widget, so add some compatibility code to mimick the new API and use
    that throughout the code base.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=693569

 src/cddb.c        |   49 +++++++------
 src/easytag.c     |  211 +++++++++++++++++++++++++++++++----------------------
 src/gtk2_compat.c |   46 +++++++++++-
 src/gtk2_compat.h |   20 +++++-
 src/misc.c        |   31 ++++----
 src/prefs.c       |  188 ++++++++++++++++++++++++++----------------------
 src/scan.c        |   34 ++++----
 7 files changed, 351 insertions(+), 228 deletions(-)
---
diff --git a/src/cddb.c b/src/cddb.c
index 808f00d..0b75d33 100644
--- a/src/cddb.c
+++ b/src/cddb.c
@@ -428,10 +428,10 @@ void Open_Cddb_Window (void)
     Frame = gtk_frame_new(_("Search In:"));
     gtk_box_pack_start(GTK_BOX(notebookvbox),Frame,FALSE,TRUE,0);
 
-    Table = gtk_table_new(7,4,FALSE);
+    Table = et_grid_new (7,4);
     gtk_container_add(GTK_CONTAINER(Frame),Table);
-    gtk_table_set_row_spacings(GTK_TABLE(Table),1);
-    gtk_table_set_col_spacings(GTK_TABLE(Table),1);
+    gtk_grid_set_row_spacing (GTK_GRID (Table), 1);
+    gtk_grid_set_column_spacing (GTK_GRID (Table), 1);
 
     /* Translators: This option is for the previous 'search in' option. For
      * instance, translate this as "Search in:" "All fields". */
@@ -449,12 +449,12 @@ void Open_Cddb_Window (void)
     /* Translators: This option is for the previous 'search in' option. For
      * instance, translate this as "Search in:" "Other". */
     CddbSearchInOtherField     = gtk_check_button_new_with_label(_("Other"));
-    gtk_table_attach(GTK_TABLE(Table),CddbSearchInAllFields,     0,1,0,1,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),Separator,                 1,2,0,1,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),CddbSearchInArtistField,   2,3,0,1,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),CddbSearchInTitleField,    3,4,0,1,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),CddbSearchInTrackNameField,4,5,0,1,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),CddbSearchInOtherField,    5,6,0,1,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), CddbSearchInAllFields, 0, 0, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), Separator, 1, 0, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), CddbSearchInArtistField, 2, 0, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), CddbSearchInTitleField, 3, 0, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), CddbSearchInTrackNameField, 4, 0, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), CddbSearchInOtherField, 5, 0, 1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(CddbSearchInAllFields), CDDB_SEARCH_IN_ALL_FIELDS);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(CddbSearchInArtistField), CDDB_SEARCH_IN_ARTIST_FIELD);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(CddbSearchInTitleField), CDDB_SEARCH_IN_TITLE_FIELD);
@@ -468,7 +468,7 @@ void Open_Cddb_Window (void)
     g_signal_connect(G_OBJECT(CddbSearchInOtherField), "toggled", G_CALLBACK(Cddb_Set_Search_Button_Sensitivity),NULL);
 
     CddbSeparatorH = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
-    gtk_table_attach(GTK_TABLE(Table),CddbSeparatorH,0,7,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), CddbSeparatorH, 0, 1, 6, 1);
 
     /* Translators: This option is for the previous 'search in' option. For
      * instance, translate this as "Search in:" "All Categories". */
@@ -504,18 +504,21 @@ void Open_Cddb_Window (void)
     /* Translators: This option is for the previous 'search in' option. For
      * instance, translate this as "Search in:" "Soundtrack". */
     CddbSearchInSoundtrackCategory = gtk_check_button_new_with_label(_("Soundtrack"));
-    gtk_table_attach(GTK_TABLE(Table),CddbSearchInAllCategories,     0,1,2,4,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),CddbSeparatorV,                1,2,2,4,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),CddbSearchInBluesCategory,     2,3,2,3,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),CddbSearchInClassicalCategory, 3,4,2,3,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),CddbSearchInCountryCategory,   4,5,2,3,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),CddbSearchInFolkCategory,      5,6,2,3,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),CddbSearchInJazzCategory,      6,7,2,3,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),CddbSearchInMiscCategory,      2,3,3,4,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),CddbSearchInNewageCategory,    3,4,3,4,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),CddbSearchInReggaeCategory,    4,5,3,4,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),CddbSearchInRockCategory,      5,6,3,4,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),CddbSearchInSoundtrackCategory,6,7,3,4,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), CddbSearchInAllCategories, 0, 2, 1, 2);
+    gtk_grid_attach (GTK_GRID (Table), CddbSeparatorV, 1, 2, 1, 2);
+    gtk_grid_attach (GTK_GRID (Table), CddbSearchInBluesCategory, 2, 2, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), CddbSearchInClassicalCategory, 3, 2, 1,
+                     1);
+    gtk_grid_attach (GTK_GRID (Table), CddbSearchInCountryCategory, 4, 2, 1,
+                     1);
+    gtk_grid_attach (GTK_GRID (Table), CddbSearchInFolkCategory, 5, 2, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), CddbSearchInJazzCategory, 6, 2, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), CddbSearchInMiscCategory, 2, 3, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), CddbSearchInNewageCategory, 3, 3, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), CddbSearchInReggaeCategory, 4, 3, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), CddbSearchInRockCategory, 5, 3, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), CddbSearchInSoundtrackCategory, 6, 3, 1,
+                     1);
     gtk_label_set_line_wrap(GTK_LABEL(gtk_bin_get_child(GTK_BIN(CddbSearchInAllCategories))),TRUE); // Wrap label of the check button.
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(CddbSearchInAllCategories),     CDDB_SEARCH_IN_ALL_CATEGORIES);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(CddbSearchInBluesCategory),     CDDB_SEARCH_IN_BLUES_CATEGORY);
@@ -546,7 +549,7 @@ void Open_Cddb_Window (void)
 
     // Button to display/hide the categories
     CddbShowCategoriesButton = gtk_toggle_button_new_with_label(_("Categories"));
-    gtk_table_attach(GTK_TABLE(Table),CddbShowCategoriesButton,6,7,0,1,GTK_FILL,GTK_FILL,4,0);
+    gtk_grid_attach (GTK_GRID (Table), CddbShowCategoriesButton, 6, 0, 1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(CddbShowCategoriesButton),CDDB_SHOW_CATEGORIES);
     g_signal_connect(G_OBJECT(CddbShowCategoriesButton),"toggled", G_CALLBACK(Cddb_Show_Categories_Button_Toggled),NULL);
 
diff --git a/src/easytag.c b/src/easytag.c
index ff5264f..92d6603 100644
--- a/src/easytag.c
+++ b/src/easytag.c
@@ -493,56 +493,60 @@ Create_File_Area (void)
     /*
      *  File Infos
      */
-    HeaderInfosTable = gtk_table_new(3,5,FALSE);
+    HeaderInfosTable = et_grid_new(3,5);
     gtk_container_add(GTK_CONTAINER(VBox),HeaderInfosTable);
     gtk_container_set_border_width(GTK_CONTAINER(HeaderInfosTable),2);
-    gtk_table_set_row_spacings(GTK_TABLE(HeaderInfosTable),1);
-    gtk_table_set_col_spacings(GTK_TABLE(HeaderInfosTable),2);
+    gtk_grid_set_row_spacing (GTK_GRID (HeaderInfosTable), 1);
+    gtk_grid_set_column_spacing (GTK_GRID (HeaderInfosTable), 2);
 
     VersionLabel = gtk_label_new(_("Encoder:"));
-    gtk_table_attach_defaults(GTK_TABLE(HeaderInfosTable),VersionLabel,0,1,0,1);
+    gtk_grid_attach (GTK_GRID (HeaderInfosTable), VersionLabel, 0, 0, 1, 1);
     VersionValueLabel = gtk_label_new("");
-    gtk_table_attach_defaults(GTK_TABLE(HeaderInfosTable),VersionValueLabel,1,2,0,1);
+    gtk_grid_attach (GTK_GRID (HeaderInfosTable), VersionValueLabel, 1, 0, 1,
+                     1);
     gtk_misc_set_alignment(GTK_MISC(VersionLabel),1,0.5);
     gtk_misc_set_alignment(GTK_MISC(VersionValueLabel),0,0.5);
 
     BitrateLabel = gtk_label_new(_("Bitrate:"));
-    gtk_table_attach_defaults(GTK_TABLE(HeaderInfosTable),BitrateLabel,0,1,1,2);
+    gtk_grid_attach (GTK_GRID (HeaderInfosTable), BitrateLabel, 0, 1, 1, 1);
     BitrateValueLabel = gtk_label_new("");
-    gtk_table_attach_defaults(GTK_TABLE(HeaderInfosTable),BitrateValueLabel,1,2,1,2);
+    gtk_grid_attach (GTK_GRID (HeaderInfosTable), BitrateValueLabel, 1, 1, 1,
+                     1);
     gtk_misc_set_alignment(GTK_MISC(BitrateLabel),1,0.5);
     gtk_misc_set_alignment(GTK_MISC(BitrateValueLabel),0,0.5);
 
     /* Translators: Please try to keep this string as short as possible as it
      * is shown in a narrow column. */
     SampleRateLabel = gtk_label_new(_("Freq.:"));
-    gtk_table_attach_defaults(GTK_TABLE(HeaderInfosTable),SampleRateLabel,0,1,2,3);
+    gtk_grid_attach (GTK_GRID (HeaderInfosTable), SampleRateLabel, 0, 2, 1, 1);
     SampleRateValueLabel = gtk_label_new("");
-    gtk_table_attach_defaults(GTK_TABLE(HeaderInfosTable),SampleRateValueLabel,1,2,2,3);
+    gtk_grid_attach (GTK_GRID (HeaderInfosTable), SampleRateValueLabel, 1, 2,
+                     1, 1);
     gtk_misc_set_alignment(GTK_MISC(SampleRateLabel),1,0.5);
     gtk_misc_set_alignment(GTK_MISC(SampleRateValueLabel),0,0.5);
 
     Separator = gtk_separator_new(GTK_ORIENTATION_VERTICAL);
-    gtk_table_attach(GTK_TABLE(HeaderInfosTable),Separator,2,3,0,4,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (HeaderInfosTable), Separator, 2, 0, 1, 4);
 
     ModeLabel = gtk_label_new(_("Mode:"));
-    gtk_table_attach_defaults(GTK_TABLE(HeaderInfosTable),ModeLabel,3,4,0,1);
+    gtk_grid_attach (GTK_GRID (HeaderInfosTable), ModeLabel, 3, 0, 1, 1);
     ModeValueLabel = gtk_label_new("");
-    gtk_table_attach_defaults(GTK_TABLE(HeaderInfosTable),ModeValueLabel,4,5,0,1);
+    gtk_grid_attach (GTK_GRID (HeaderInfosTable), ModeValueLabel, 4, 0, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(ModeLabel),1,0.5);
     gtk_misc_set_alignment(GTK_MISC(ModeValueLabel),0,0.5);
 
     SizeLabel = gtk_label_new(_("Size:"));
-    gtk_table_attach_defaults(GTK_TABLE(HeaderInfosTable),SizeLabel,3,4,1,2);
+    gtk_grid_attach (GTK_GRID (HeaderInfosTable), SizeLabel, 3, 1, 1, 1);
     SizeValueLabel = gtk_label_new("");
-    gtk_table_attach_defaults(GTK_TABLE(HeaderInfosTable),SizeValueLabel,4,5,1,2);
+    gtk_grid_attach (GTK_GRID (HeaderInfosTable), SizeValueLabel, 4, 1, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(SizeLabel),1,0.5);
     gtk_misc_set_alignment(GTK_MISC(SizeValueLabel),0,0.5);
 
     DurationLabel = gtk_label_new(_("Duration:"));
-    gtk_table_attach_defaults(GTK_TABLE(HeaderInfosTable),DurationLabel,3,4,2,3);
+    gtk_grid_attach (GTK_GRID (HeaderInfosTable), DurationLabel, 3, 2, 1, 1);
     DurationValueLabel = gtk_label_new("");
-    gtk_table_attach_defaults(GTK_TABLE(HeaderInfosTable),DurationValueLabel,4,5,2,3);
+    gtk_grid_attach (GTK_GRID (HeaderInfosTable), DurationValueLabel, 4, 2, 1,
+                     1);
     gtk_misc_set_alignment(GTK_MISC(DurationLabel),1,0.5);
     gtk_misc_set_alignment(GTK_MISC(DurationValueLabel),0,0.5);
 
@@ -611,23 +615,25 @@ Create_Tag_Area (void)
     gtk_frame_set_shadow_type(GTK_FRAME(Frame),GTK_SHADOW_NONE); // Hide the Frame
 
 
-    Table = gtk_table_new(11,11,FALSE);
+    Table = et_grid_new (11, 11);
     gtk_container_add(GTK_CONTAINER(Frame),Table);
     gtk_container_set_border_width(GTK_CONTAINER(Table),2);
 
     /* Title */
     TitleLabel = gtk_label_new(_("Title:"));
-    gtk_table_attach(GTK_TABLE(Table),TitleLabel,0,1,0,1,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), TitleLabel, 0, 0, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     gtk_misc_set_alignment(GTK_MISC(TitleLabel),1,0.5);
 
     TitleEntry = gtk_entry_new();
-    gtk_table_attach(GTK_TABLE(Table),TitleEntry,1,10,0,1,
-                     GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), TitleEntry, 1, 0, 9, 1, TRUE, TRUE,
+                         TablePadding, TablePadding);
     gtk_widget_set_size_request(TitleEntry, 150, -1);
 
     TitleMButton = gtk_button_new();
     gtk_widget_set_size_request(TitleMButton,MButtonSize,MButtonSize);
-    gtk_table_attach(GTK_TABLE(Table),TitleMButton,10,11,0,1,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), TitleMButton, 10, 0, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     g_signal_connect(G_OBJECT(TitleMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(TitleMButton,_("Tag selected files with this title"));
 
@@ -637,16 +643,18 @@ Create_Tag_Area (void)
 
     /* Artist */
     ArtistLabel = gtk_label_new(_("Artist:"));
-    gtk_table_attach(GTK_TABLE(Table),ArtistLabel,0,1,1,2,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), ArtistLabel, 0, 1, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     gtk_misc_set_alignment(GTK_MISC(ArtistLabel),1,0.5);
 
     ArtistEntry = gtk_entry_new();
-    gtk_table_attach(GTK_TABLE(Table),ArtistEntry,1,10,1,2,
-                     GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), ArtistEntry, 1, 1, 9, 1, TRUE, TRUE,
+                         TablePadding,TablePadding);
 
     ArtistMButton = gtk_button_new();
     gtk_widget_set_size_request(ArtistMButton,MButtonSize,MButtonSize);
-    gtk_table_attach(GTK_TABLE(Table),ArtistMButton,10,11,1,2,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), ArtistMButton, 10, 1, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     g_signal_connect(G_OBJECT(ArtistMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(ArtistMButton,_("Tag selected files with this artist"));
 
@@ -655,16 +663,18 @@ Create_Tag_Area (void)
 
     /* Album Artist */
     AlbumArtistLabel = gtk_label_new(_("Album artist:"));
-    gtk_table_attach(GTK_TABLE(Table),AlbumArtistLabel,0,1,2,3,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), AlbumArtistLabel, 0, 2, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     gtk_misc_set_alignment(GTK_MISC(AlbumArtistLabel),1,0.5);
 
     AlbumArtistEntry = gtk_entry_new();
-    gtk_table_attach(GTK_TABLE(Table),AlbumArtistEntry,1,10,2,3,
-                     GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), AlbumArtistEntry, 1, 2, 9, 1, TRUE,
+                         TRUE, TablePadding, TablePadding);
 
     AlbumArtistMButton = gtk_button_new();
     gtk_widget_set_size_request(AlbumArtistMButton,MButtonSize,MButtonSize);
-    gtk_table_attach(GTK_TABLE(Table),AlbumArtistMButton,10,11,2,3,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), AlbumArtistMButton, 10, 2, 1, 1,
+                         FALSE, FALSE, TablePadding, TablePadding);
     g_signal_connect(G_OBJECT(AlbumArtistMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(AlbumArtistMButton,_("Tag selected files with this album artist"));
 
@@ -673,17 +683,19 @@ Create_Tag_Area (void)
 
     /* Album */
     AlbumLabel = gtk_label_new(_("Album:"));
-    gtk_table_attach(GTK_TABLE(Table),AlbumLabel,0,1,3,4,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), AlbumLabel, 0, 3, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     gtk_misc_set_alignment(GTK_MISC(AlbumLabel),1,0.5);
 
     AlbumEntry = gtk_entry_new();
-    gtk_table_attach(GTK_TABLE(Table),AlbumEntry,1,7,3,4,
-                     GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), AlbumEntry, 1, 3, 6, 1, TRUE, TRUE,
+                         TablePadding,TablePadding);
 
     AlbumMButton = gtk_button_new();
     //gtk_widget_set_size_request(AlbumMButton, 10, 10);
     gtk_widget_set_size_request(AlbumMButton,MButtonSize,MButtonSize);
-    gtk_table_attach(GTK_TABLE(Table),AlbumMButton,7,8,3,4,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), AlbumMButton, 7, 3, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     g_signal_connect(G_OBJECT(AlbumMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(AlbumMButton,_("Tag selected files with this album name"));
 
@@ -692,12 +704,13 @@ Create_Tag_Area (void)
 
     /* Disc Number */
     DiscNumberLabel = gtk_label_new(_("CD:"));
-    gtk_table_attach(GTK_TABLE(Table),DiscNumberLabel,8,9,3,4,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), DiscNumberLabel, 8, 3, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     gtk_misc_set_alignment(GTK_MISC(DiscNumberLabel),1,0.5);
 
     DiscNumberEntry = gtk_entry_new();
-    gtk_table_attach(GTK_TABLE(Table),DiscNumberEntry,9,10,3,4,
-                     GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), DiscNumberEntry, 9, 3, 1, 1, TRUE,
+                         TRUE, TablePadding, TablePadding);
     gtk_widget_set_size_request(DiscNumberEntry,30,-1);
     // FIX ME should allow to type only something like : 1/3
     //g_signal_connect(G_OBJECT(GTK_ENTRY(DiscNumberEntry)),"insert_text",G_CALLBACK(Insert_Only_Digit),NULL);
@@ -705,7 +718,8 @@ Create_Tag_Area (void)
     DiscNumberMButton = gtk_button_new();
     //gtk_widget_set_size_request(DiscNumberMButton, 10, 10);
     gtk_widget_set_size_request(DiscNumberMButton,MButtonSize,MButtonSize);
-    gtk_table_attach(GTK_TABLE(Table),DiscNumberMButton,10,11,3,4,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), DiscNumberMButton, 10, 3, 1, 1,
+                         FALSE, FALSE, TablePadding, TablePadding);
     g_signal_connect(G_OBJECT(DiscNumberMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(DiscNumberMButton,_("Tag selected files with this disc number"));
 
@@ -714,13 +728,14 @@ Create_Tag_Area (void)
 
     /* Year */
     YearLabel = gtk_label_new(_("Year:"));
-    gtk_table_attach(GTK_TABLE(Table),YearLabel,0,1,4,5,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), YearLabel, 0, 4, 1, 1, FALSE, FALSE,
+                         TablePadding, TablePadding);
     gtk_misc_set_alignment(GTK_MISC(YearLabel),1,0.5);
 
     YearEntry = gtk_entry_new();
     gtk_entry_set_max_length(GTK_ENTRY(YearEntry), 4);
-    gtk_table_attach(GTK_TABLE(Table),YearEntry,1,2,4,5,
-                     GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), YearEntry, 1, 4, 1, 1, TRUE, TRUE,
+                         TablePadding, TablePadding);
     gtk_widget_set_size_request(YearEntry,37,-1);
     g_signal_connect(G_OBJECT(YearEntry),"insert_text",G_CALLBACK(Insert_Only_Digit),NULL);
     g_signal_connect(G_OBJECT(YearEntry),"activate",G_CALLBACK(Parse_Date),NULL);
@@ -728,19 +743,22 @@ Create_Tag_Area (void)
 
     YearMButton = gtk_button_new();
     gtk_widget_set_size_request(YearMButton,MButtonSize,MButtonSize);
-    gtk_table_attach(GTK_TABLE(Table),YearMButton,2,3,4,5,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), YearMButton, 2, 4, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     g_signal_connect(G_OBJECT(YearMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(YearMButton,_("Tag selected files with this year"));
 
     /* Small vertical separator */
     Separator = gtk_separator_new(GTK_ORIENTATION_VERTICAL);
-    gtk_table_attach(GTK_TABLE(Table),Separator,3,4,4,5,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), Separator, 3, 4, 1, 1, FALSE, FALSE,
+                         TablePadding,TablePadding);
 
 
     /* Track and Track total */
     TrackMButtonSequence = gtk_button_new();
     gtk_widget_set_size_request(TrackMButtonSequence,MButtonSize,MButtonSize);
-    gtk_table_attach(GTK_TABLE(Table),TrackMButtonSequence,4,5,4,5,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), TrackMButtonSequence, 4, 4, 1, 1,
+                         FALSE, FALSE, TablePadding, TablePadding);
     g_signal_connect(G_OBJECT(TrackMButtonSequence),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(TrackMButtonSequence,_("Number selected tracks sequentially. "
                                                      "Starts at 01 in each subdirectory."));
@@ -752,7 +770,8 @@ Create_Tag_Area (void)
     gtk_widget_set_can_focus(TrackMButtonSequence,FALSE);   // To have enough space to display the icon
 
     TrackLabel = gtk_label_new(_("Track #:"));
-    gtk_table_attach(GTK_TABLE(Table),TrackLabel,5,6,4,5,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), TrackLabel, 5, 4, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     gtk_misc_set_alignment(GTK_MISC(TrackLabel),1,0.5);
 
     if (TrackEntryComboModel != NULL)
@@ -762,8 +781,8 @@ Create_Tag_Area (void)
 
     TrackEntryCombo = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(TrackEntryComboModel));
     gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(TrackEntryCombo),MISC_COMBO_TEXT);
-    gtk_table_attach(GTK_TABLE(Table),TrackEntryCombo,6,7,4,5,
-                     GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), TrackEntryCombo, 6, 4, 1, 1, TRUE,
+                         TRUE, TablePadding, TablePadding);
     gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(TrackEntryCombo),3); // Three columns to display track numbers list
 
     gtk_widget_set_size_request(TrackEntryCombo,50,-1);
@@ -771,12 +790,14 @@ Create_Tag_Area (void)
         G_CALLBACK(Insert_Only_Digit),NULL);
 
     Label = gtk_label_new("/");
-    gtk_table_attach(GTK_TABLE(Table),Label,7,8,4,5,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), Label, 7, 4, 1, 1, FALSE, FALSE,
+                         TablePadding, TablePadding);
     gtk_misc_set_alignment(GTK_MISC(Label),0.5,0.5);
 
     TrackMButtonNbrFiles = gtk_button_new();
     gtk_widget_set_size_request(TrackMButtonNbrFiles,MButtonSize,MButtonSize);
-    gtk_table_attach(GTK_TABLE(Table),TrackMButtonNbrFiles,8,9,4,5,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), TrackMButtonNbrFiles, 8, 4, 1, 1,
+                         FALSE, FALSE, TablePadding, TablePadding);
     g_signal_connect(G_OBJECT(TrackMButtonNbrFiles),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(TrackMButtonNbrFiles,_("Set the number of files, in the same directory of the displayed file, to the selected tracks."));
     // Pixmap into TrackMButtonNbrFiles button
@@ -787,15 +808,16 @@ Create_Tag_Area (void)
     gtk_widget_set_can_focus(TrackMButtonNbrFiles,FALSE); // To have enough space to display the icon
 
     TrackTotalEntry = gtk_entry_new();
-    gtk_table_attach(GTK_TABLE(Table),TrackTotalEntry,9,10,4,5,
-                     GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), TrackTotalEntry, 9, 4, 1, 1, TRUE,
+                         TRUE, TablePadding, TablePadding);
     gtk_widget_set_size_request(TrackTotalEntry,30,-1);
     g_signal_connect(G_OBJECT(GTK_ENTRY(TrackTotalEntry)),"insert_text",
         G_CALLBACK(Insert_Only_Digit),NULL);
 
     TrackMButton = gtk_button_new();
     gtk_widget_set_size_request(TrackMButton,MButtonSize,MButtonSize);
-    gtk_table_attach(GTK_TABLE(Table),TrackMButton,10,11,4,5,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), TrackMButton, 10, 4, 1, 1, FALSE,
+                         FALSE,TablePadding,TablePadding);
     g_signal_connect(G_OBJECT(TrackMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(TrackMButton,_("Tag selected files with this number of tracks"));
 
@@ -804,7 +826,8 @@ Create_Tag_Area (void)
 
     /* Genre */
     GenreLabel = gtk_label_new(_("Genre:"));
-    gtk_table_attach(GTK_TABLE(Table),GenreLabel,0,1,5,6,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), GenreLabel, 0, 5, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     gtk_misc_set_alignment(GTK_MISC(GenreLabel),1,0.5);
 
     if (GenreComboModel != NULL)
@@ -820,14 +843,15 @@ Create_Tag_Area (void)
     gtk_entry_completion_set_text_column(completion, 0);
     gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(GenreComboModel), MISC_COMBO_TEXT, Combo_Alphabetic_Sort, NULL, NULL);
     gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(GenreComboModel), MISC_COMBO_TEXT, GTK_SORT_ASCENDING);
-    gtk_table_attach(GTK_TABLE(Table),GenreCombo,1,10,5,6,
-                     GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), GenreCombo, 1, 5, 9, 1, TRUE, TRUE,
+                         TablePadding, TablePadding);
     Load_Genres_List_To_UI();
     gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(GenreCombo),2); // Two columns to display genres list
 
     GenreMButton = gtk_button_new();
     gtk_widget_set_size_request(GenreMButton,MButtonSize,MButtonSize);
-    gtk_table_attach(GTK_TABLE(Table),GenreMButton,10,11,5,6,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), GenreMButton, 10, 5, 1, 1, FALSE,
+                         FALSE,TablePadding,TablePadding);
     g_signal_connect(G_OBJECT(GenreMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(GenreMButton,_("Tag selected files with this genre"));
 
@@ -836,16 +860,17 @@ Create_Tag_Area (void)
 
     /* Comment */
     CommentLabel = gtk_label_new(_("Comment:"));
-    gtk_table_attach(GTK_TABLE(Table),CommentLabel,0,1,6,7,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), CommentLabel, 0, 6, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     gtk_misc_set_alignment(GTK_MISC(CommentLabel),1,0.5);
 
     CommentEntry = gtk_entry_new();
-    gtk_table_attach(GTK_TABLE(Table),CommentEntry,1,10,6,7,
-                     GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), CommentEntry, 1, 6, 9, 1, TRUE,
+                         TRUE, TablePadding, TablePadding);
 
     // Use of a text view instead of an entry...
     /******ScrollWindow = gtk_scrolled_window_new(NULL,NULL);
-    gtk_table_attach(GTK_TABLE(Table),ScrollWindow,1,10,5,6,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full(GTK_GRID(Table),ScrollWindow,1,5,9,1,FALSE,FALSE,TablePadding,TablePadding);
     gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(ScrollWindow), GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
     gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(ScrollWindow), GTK_SHADOW_IN);
     gtk_widget_set_size_request(ScrollWindow,-1,52); // Display ~3 lines...
@@ -858,7 +883,8 @@ Create_Tag_Area (void)
 
     CommentMButton = gtk_button_new();
     gtk_widget_set_size_request(CommentMButton,MButtonSize,MButtonSize);
-    gtk_table_attach(GTK_TABLE(Table),CommentMButton,10,11,6,7,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), CommentMButton, 10, 6, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     g_signal_connect(G_OBJECT(CommentMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(CommentMButton,_("Tag selected files with this comment"));
 
@@ -870,16 +896,18 @@ Create_Tag_Area (void)
 
     /* Composer (name of the composers) */
     ComposerLabel = gtk_label_new(_("Composer:"));
-    gtk_table_attach(GTK_TABLE(Table),ComposerLabel,0,1,7,8,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), ComposerLabel, 0, 7, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     gtk_misc_set_alignment(GTK_MISC(ComposerLabel),1,0.5);
 
     ComposerEntry = gtk_entry_new();
-    gtk_table_attach(GTK_TABLE(Table),ComposerEntry,1,10,7,8,
-                     GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), ComposerEntry, 1, 7, 9, 1, TRUE,
+                         TRUE, TablePadding, TablePadding);
 
     ComposerMButton = gtk_button_new();
     gtk_widget_set_size_request(ComposerMButton,MButtonSize,MButtonSize);
-    gtk_table_attach(GTK_TABLE(Table),ComposerMButton,10,11,7,8,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), ComposerMButton, 10, 7, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     g_signal_connect(G_OBJECT(ComposerMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(ComposerMButton,_("Tag selected files with this composer"));
 
@@ -890,16 +918,18 @@ Create_Tag_Area (void)
     /* Translators: Original Artist / Performer. Please try to keep this string
      * as short as possible, as it must fit into a narrow column. */
     OrigArtistLabel = gtk_label_new(_("Orig. artist:"));
-    gtk_table_attach(GTK_TABLE(Table),OrigArtistLabel,0,1,8,9,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), OrigArtistLabel, 0, 8, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     gtk_misc_set_alignment(GTK_MISC(OrigArtistLabel),1,0.5);
 
     OrigArtistEntry = gtk_entry_new();
-    gtk_table_attach(GTK_TABLE(Table),OrigArtistEntry,1,10,8,9,
-                     GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), OrigArtistEntry, 1, 8, 9, 1, TRUE,
+                         TRUE,TablePadding,TablePadding);
 
     OrigArtistMButton = gtk_button_new();
     gtk_widget_set_size_request(OrigArtistMButton,MButtonSize,MButtonSize);
-    gtk_table_attach(GTK_TABLE(Table),OrigArtistMButton,10,11,8,9,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), OrigArtistMButton, 10, 8, 1, 1,
+                         FALSE, FALSE, TablePadding, TablePadding);
     g_signal_connect(G_OBJECT(OrigArtistMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(OrigArtistMButton,_("Tag selected files with this original artist"));
 
@@ -909,16 +939,18 @@ Create_Tag_Area (void)
 
     /* Copyright */
     CopyrightLabel = gtk_label_new(_("Copyright:"));
-    gtk_table_attach(GTK_TABLE(Table),CopyrightLabel,0,1,9,10,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), CopyrightLabel, 0, 9, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     gtk_misc_set_alignment(GTK_MISC(CopyrightLabel),1,0.5);
 
     CopyrightEntry = gtk_entry_new();
-    gtk_table_attach(GTK_TABLE(Table),CopyrightEntry,1,10,9,10,
-                     GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), CopyrightEntry, 1, 9, 9, 1, TRUE,
+                         TRUE, TablePadding, TablePadding);
 
     CopyrightMButton = gtk_button_new();
     gtk_widget_set_size_request(CopyrightMButton,MButtonSize,MButtonSize);
-    gtk_table_attach(GTK_TABLE(Table),CopyrightMButton,10,11,9,10,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), CopyrightMButton, 10, 9, 1, 1,
+                         FALSE, FALSE, TablePadding, TablePadding);
     g_signal_connect(G_OBJECT(CopyrightMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(CopyrightMButton,_("Tag selected files with this copyright"));
 
@@ -928,16 +960,18 @@ Create_Tag_Area (void)
 
     /* URL */
     URLLabel = gtk_label_new(_("URL:"));
-    gtk_table_attach(GTK_TABLE(Table),URLLabel,0,1,10,11,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), URLLabel, 0, 10, 1, 1, FALSE, FALSE,
+                         TablePadding, TablePadding);
     gtk_misc_set_alignment(GTK_MISC(URLLabel),1,0.5);
 
     URLEntry = gtk_entry_new();
-    gtk_table_attach(GTK_TABLE(Table),URLEntry,1,10,10,11,
-                     GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), URLEntry, 1, 10, 9, 1, TRUE, TRUE,
+                         TablePadding, TablePadding);
 
     URLMButton = gtk_button_new();
     gtk_widget_set_size_request(URLMButton,MButtonSize,MButtonSize);
-    gtk_table_attach(GTK_TABLE(Table),URLMButton,10,11,10,11,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), URLMButton, 10, 10, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     g_signal_connect(G_OBJECT(URLMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(URLMButton,_("Tag selected files with this URL"));
 
@@ -947,16 +981,18 @@ Create_Tag_Area (void)
 
     /* Encoded by */
     EncodedByLabel = gtk_label_new(_("Encoded by:"));
-    gtk_table_attach(GTK_TABLE(Table),EncodedByLabel,0,1,11,12,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), EncodedByLabel, 0, 11, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     gtk_misc_set_alignment(GTK_MISC(EncodedByLabel),1,0.5);
 
     EncodedByEntry = gtk_entry_new();
-    gtk_table_attach(GTK_TABLE(Table),EncodedByEntry,1,10,11,12,
-                     GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), EncodedByEntry, 1, 11, 9, 1, TRUE,
+                         TRUE, TablePadding, TablePadding);
 
     EncodedByMButton = gtk_button_new();
     gtk_widget_set_size_request(EncodedByMButton,MButtonSize,MButtonSize);
-    gtk_table_attach(GTK_TABLE(Table),EncodedByMButton,10,11,11,12,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), EncodedByMButton, 10, 11, 1, 1,
+                         FALSE, FALSE, TablePadding, TablePadding);
     g_signal_connect(G_OBJECT(EncodedByMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(EncodedByMButton,_("Tag selected files with this encoder name"));
 
@@ -1030,21 +1066,22 @@ Create_Tag_Area (void)
     gtk_container_set_border_width(GTK_CONTAINER(Frame), 0);
     gtk_frame_set_shadow_type(GTK_FRAME(Frame),GTK_SHADOW_NONE); // Hide the Frame
 
-    Table = gtk_table_new(3,5,FALSE);
+    Table = et_grid_new (3, 5);
     gtk_container_add(GTK_CONTAINER(Frame),Table);
     gtk_container_set_border_width(GTK_CONTAINER(Table),2);
 
     /* Picture */
     PictureLabel = gtk_label_new(_("Pictures:"));
-    gtk_table_attach(GTK_TABLE(Table),PictureLabel,0,1,0,1,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), PictureLabel, 0, 0, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     gtk_misc_set_alignment(GTK_MISC(PictureLabel),1,0.5);
 
     // Scroll window for PictureEntryView
     PictureScrollWindow = gtk_scrolled_window_new(NULL, NULL);
     gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(PictureScrollWindow),
                                    GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-    gtk_table_attach(GTK_TABLE(Table), PictureScrollWindow, 1,4,0,1,
-                     GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), PictureScrollWindow, 1, 0, 3, 1,
+                         TRUE, TRUE, TablePadding, TablePadding);
 
     PictureEntryModel = gtk_list_store_new(PICTURE_COLUMN_COUNT,
                                            GDK_TYPE_PIXBUF,
@@ -1090,14 +1127,16 @@ Create_Tag_Area (void)
 
     // The mini button for picture
     PictureMButton = gtk_button_new();
-    gtk_table_attach(GTK_TABLE(Table),PictureMButton,4,5,0,1,0,0,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), PictureMButton, 4, 0, 1, 1, FALSE,
+                         FALSE, TablePadding, TablePadding);
     gtk_widget_set_size_request(PictureMButton,MButtonSize,MButtonSize);
     g_signal_connect(G_OBJECT(PictureMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
     gtk_widget_set_tooltip_text(PictureMButton,_("Tag selected files with these pictures"));
 
     // Picture action buttons
     hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4);
-    gtk_table_attach(GTK_TABLE(Table),hbox,1,4,1,2,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
+    et_grid_attach_full (GTK_GRID (Table), hbox, 1, 1, 3, 1, FALSE, FALSE,
+                         TablePadding, TablePadding);
 
     PictureAddButton = gtk_button_new();
     Icon = gtk_image_new_from_stock(GTK_STOCK_ADD, GTK_ICON_SIZE_SMALL_TOOLBAR);
diff --git a/src/gtk2_compat.c b/src/gtk2_compat.c
index f8408ac..1afe16e 100644
--- a/src/gtk2_compat.c
+++ b/src/gtk2_compat.c
@@ -20,6 +20,33 @@
 
 #if !GTK_CHECK_VERSION(3,0,0)
 
+void et_grid_attach_full (GtkGrid *grid, GtkWidget *child, gint left, gint top,
+                          gint width, gint height, gboolean hexpand,
+                          gboolean vexpand, gint hmargin, gint vmargin)
+{
+    GtkAttachOptions xoptions = GTK_FILL;
+    GtkAttachOptions yoptions = GTK_FILL;
+
+    if (hexpand)
+    {
+        xoptions |= GTK_EXPAND;
+    }
+    if (vexpand)
+    {
+        yoptions |= GTK_EXPAND;
+    }
+
+    gtk_table_attach (grid, child, left, left + width, top, top + height,
+                      xoptions, yoptions, hmargin, vmargin);
+}
+
+void gtk_grid_attach (GtkGrid *grid, GtkWidget *child, gint left, gint top,
+                      gint width, gint height)
+{
+    et_grid_attach_full (grid, child, left, top, width, height, FALSE, FALSE,
+                         0, 0);
+}
+
 GtkWidget *gtk_box_new(GtkOrientation orientation,gint padding)
 {
     if (orientation==GTK_ORIENTATION_HORIZONTAL)
@@ -48,4 +75,21 @@ GtkWidget *gtk_separator_new(GtkOrientation orientation)
     return gtk_vseparator_new();
 }
 
-#endif /* !GTK_CHECK_VERSION(3,0,0) */
+#else /* GTK_CHECK_VERSION(3,0,0) */
+
+void et_grid_attach_full (GtkGrid *grid, GtkWidget *child, gint left, gint top,
+                          gint width, gint height, gboolean hexpand,
+                          gboolean vexpand, gint hmargin, gint vmargin)
+{
+    g_object_set (G_OBJECT(child),
+                  "hexpand", hexpand,
+                  "vexpand", vexpand,
+                  "margin-left", hmargin,
+                  "margin-right", hmargin,
+                  "margin-top", vmargin,
+                  "margin-bottom", vmargin,
+                  NULL);
+    gtk_grid_attach (grid, child, left, top, width, height);
+}
+
+#endif /* GTK_CHECK_VERSION(3,0,0) */
diff --git a/src/gtk2_compat.h b/src/gtk2_compat.h
index bd62749..058af62 100644
--- a/src/gtk2_compat.h
+++ b/src/gtk2_compat.h
@@ -28,12 +28,30 @@ G_BEGIN_DECLS
 #define GTK_SCROLLABLE(x) GTK_TREE_VIEW(x)
 #define gtk_scrollable_get_vadjustment(x) gtk_tree_view_get_vadjustment(x)
 
+#define GTK_GRID(x) GTK_TABLE(x)
+#define GtkGrid GtkTable
+
+#define et_grid_new(r, c) gtk_table_new((r),(c),FALSE)
+
+#define gtk_grid_set_row_spacing gtk_table_set_row_spacings
+#define gtk_grid_set_column_spacing gtk_table_set_col_spacings
+void gtk_grid_attach (GtkGrid *grid, GtkWidget *child, gint left, gint top,
+                      gint width, gint height);
+
 GtkWidget *gtk_box_new(GtkOrientation orientation, gint padding);
 GtkWidget *gtk_button_box_new(GtkOrientation orientation);
 GtkWidget *gtk_paned_new(GtkOrientation orientation);
 GtkWidget *gtk_separator_new(GtkOrientation orientation);
 
-#endif /* !GTK_CHECK_VERSION(3,0,0) */
+#else /* GTK_CHECK_VERSION(3,0,0) */
+
+#define et_grid_new(r,c) gtk_grid_new()
+
+#endif /* GTK_CHECK_VERSION(3,0,0) */
+
+void et_grid_attach_full (GtkGrid *grid, GtkWidget *child, gint left, gint top,
+                          gint width, gint height, gboolean hexpand,
+                          gboolean vexpand, gint hmargin, gint vmargin);
 
 G_END_DECLS
 
diff --git a/src/misc.c b/src/misc.c
index b0a1799..dcac782 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -1972,11 +1972,11 @@ void Open_Search_File_Window (void)
     gtk_box_pack_start(GTK_BOX(VBox),Frame,TRUE,TRUE,0);
     gtk_container_set_border_width(GTK_CONTAINER(Frame),2);
 
-    Table = gtk_table_new(3,6,FALSE);
+    Table = et_grid_new (3, 6);
     gtk_container_add(GTK_CONTAINER(Frame),Table);
     gtk_container_set_border_width(GTK_CONTAINER(Table), 2);
-    gtk_table_set_row_spacings(GTK_TABLE(Table),4);
-    gtk_table_set_col_spacings(GTK_TABLE(Table),4);
+    gtk_grid_set_row_spacing (GTK_GRID (Table), 4);
+    gtk_grid_set_column_spacing (GTK_GRID (Table), 4);
 
     // Words to search
     if (!SearchStringModel)
@@ -1986,11 +1986,11 @@ void Open_Search_File_Window (void)
 
     Label = gtk_label_new(_("Search:"));
     gtk_misc_set_alignment(GTK_MISC(Label),1.0,0.5);
-    gtk_table_attach(GTK_TABLE(Table),Label,0,1,0,1,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), Label, 0, 0, 1, 1);
     SearchStringCombo = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(SearchStringModel));
     gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(SearchStringCombo),MISC_COMBO_TEXT);
     gtk_widget_set_size_request(GTK_WIDGET(SearchStringCombo),200,-1);
-    gtk_table_attach(GTK_TABLE(Table),SearchStringCombo,1,5,0,1,GTK_EXPAND|GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), SearchStringCombo, 1, 0, 4, 1);
     // History List
     Load_Search_File_List(SearchStringModel, MISC_COMBO_TEXT);
     gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(SearchStringCombo))),"");
@@ -2003,7 +2003,7 @@ void Open_Search_File_Window (void)
     // Where...
     Label = gtk_label_new(_("In:"));
     gtk_misc_set_alignment(GTK_MISC(Label),1.0,0.5);
-    gtk_table_attach(GTK_TABLE(Table),Label,0,1,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), Label, 0, 1, 1, 1);
     /* Translators: This option is for the previous 'in' option. For instance,
      * translate this as "Search" "In:" "the Filename". */
     SearchInFilename = gtk_check_button_new_with_label(_("the Filename"));
@@ -2013,24 +2013,27 @@ void Open_Search_File_Window (void)
      * grammatical problem (which uses one word to say "in the tag" like here)
      */
     SearchInTag = gtk_check_button_new_with_label(_("the Tag"));
-    gtk_table_attach(GTK_TABLE(Table),SearchInFilename,1,2,1,2,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),SearchInTag,2,3,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), SearchInFilename, 1, 1, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), SearchInTag, 2, 1, 1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(SearchInFilename),SEARCH_IN_FILENAME);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(SearchInTag),SEARCH_IN_TAG);
 
     Separator = gtk_separator_new(GTK_ORIENTATION_VERTICAL);
-    gtk_table_attach(GTK_TABLE(Table),Separator,3,4,1,2,GTK_FILL,GTK_FILL,4,0);
+    et_grid_attach_full (GTK_GRID (Table), Separator, 3, 1, 1, 1, FALSE, FALSE,
+                         4, 0);
 
     // Property of the search
     SearchCaseSensitive = gtk_check_button_new_with_label(_("Case sensitive"));
-    gtk_table_attach(GTK_TABLE(Table),SearchCaseSensitive,4,5,1,2,GTK_EXPAND|GTK_FILL,GTK_FILL,0,0);
+    et_grid_attach_full (GTK_GRID (Table), SearchCaseSensitive, 4, 1, 1, 1,
+                         TRUE, FALSE, 0, 0);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(SearchCaseSensitive),SEARCH_CASE_SENSITIVE);
 
     // Results list
     ScrollWindow = gtk_scrolled_window_new(NULL,NULL);
     gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(ScrollWindow),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
     gtk_widget_set_size_request(GTK_WIDGET(ScrollWindow), -1, 130);
-    gtk_table_attach(GTK_TABLE(Table),ScrollWindow,0,6,2,3,GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,0,0);
+    et_grid_attach_full (GTK_GRID (Table), ScrollWindow, 0, 2, 5, 1, TRUE,
+                         TRUE, 0, 0);
 
     SearchResultListModel = gtk_list_store_new(SEARCH_COLUMN_COUNT,
                                                G_TYPE_STRING, /* Filename */
@@ -2230,7 +2233,7 @@ void Open_Search_File_Window (void)
 
     // Button to run the search
     Button = gtk_button_new_from_stock(GTK_STOCK_FIND);
-    gtk_table_attach(GTK_TABLE(Table),Button,5,6,0,1,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), Button, 5, 0, 1, 1);
     gtk_widget_set_can_default(Button,TRUE);
     gtk_widget_grab_default(Button);
     g_signal_connect(G_OBJECT(Button),"clicked", G_CALLBACK(Search_File),NULL);
@@ -2238,12 +2241,12 @@ void Open_Search_File_Window (void)
 
     // Button to cancel
     Button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
-    gtk_table_attach(GTK_TABLE(Table),Button,5,6,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), Button, 5, 1, 1, 1);
     g_signal_connect(G_OBJECT(Button),"clicked", G_CALLBACK(Destroy_Search_File_Window),NULL);
 
     // Status bar
     SearchStatusBar = gtk_statusbar_new();
-    //gtk_table_attach(GTK_TABLE(Table),SearchStatusBar,0,6,3,4,GTK_FILL,GTK_FILL,0,0);
+    /*gtk_grid_attach (GTK_GRID (Table), SearchStatusBar, 0, 3, 5, 1);*/
     gtk_box_pack_start(GTK_BOX(VBox),SearchStatusBar,FALSE,TRUE,0);
     SearchStatusBarContext = gtk_statusbar_get_context_id(GTK_STATUSBAR(SearchStatusBar),"Messages");
     gtk_statusbar_push(GTK_STATUSBAR(SearchStatusBar),SearchStatusBarContext,_("Ready to searchâ"));
diff --git a/src/prefs.c b/src/prefs.c
index 8f12323..154ae26 100644
--- a/src/prefs.c
+++ b/src/prefs.c
@@ -331,14 +331,14 @@ void Open_OptionsWindow (void)
     /* Message Dialog Position */
     Frame = gtk_frame_new (_("Message Dialog Position"));
     gtk_box_pack_start(GTK_BOX(VBox),Frame,FALSE,FALSE,0);
-    Table = gtk_table_new(2,2,FALSE);
+    Table = et_grid_new (2, 2);
     gtk_container_add(GTK_CONTAINER(Frame),Table);
-    //gtk_table_set_row_spacings(GTK_TABLE(Table),2);
-    gtk_table_set_col_spacings(GTK_TABLE(Table),4);
+    /*gtk_grid_set_row_spacing (GTK_GRID (Table), 2);*/
+    gtk_grid_set_column_spacing (GTK_GRID (Table), 4);
 
 
     MessageBoxPositionNone = gtk_radio_button_new_with_label(NULL,_("No particular position"));
-    gtk_table_attach(GTK_TABLE(Table),MessageBoxPositionNone,0,1,0,1,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), MessageBoxPositionNone, 0, 0, 1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(MessageBoxPositionNone),
         MESSAGE_BOX_POSITION_NONE);
     gtk_widget_set_tooltip_text(MessageBoxPositionNone,_("Let the Window Manager "
@@ -347,7 +347,8 @@ void Open_OptionsWindow (void)
     MessageBoxPositionCenterOnParent = gtk_radio_button_new_with_label(
         gtk_radio_button_get_group(GTK_RADIO_BUTTON(MessageBoxPositionNone)),
         _("Center of the main window"));
-    gtk_table_attach(GTK_TABLE(Table),MessageBoxPositionCenterOnParent,1,2,0,1,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), MessageBoxPositionCenterOnParent, 1, 0,
+                     1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(MessageBoxPositionCenterOnParent),
         MESSAGE_BOX_POSITION_CENTER_ON_PARENT);
     gtk_widget_set_tooltip_text(MessageBoxPositionCenterOnParent,_("Windows should "
@@ -356,7 +357,7 @@ void Open_OptionsWindow (void)
     MessageBoxPositionCenter = gtk_radio_button_new_with_label(
         gtk_radio_button_get_group(GTK_RADIO_BUTTON(MessageBoxPositionNone)),
         _("Center of the screen"));
-    gtk_table_attach(GTK_TABLE(Table),MessageBoxPositionCenter,0,1,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), MessageBoxPositionCenter, 0, 1, 1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(MessageBoxPositionCenter),
         MESSAGE_BOX_POSITION_CENTER);
     gtk_widget_set_tooltip_text(MessageBoxPositionCenter,_("Windows should be placed "
@@ -365,7 +366,7 @@ void Open_OptionsWindow (void)
     MessageBoxPositionMouse = gtk_radio_button_new_with_label(
         gtk_radio_button_get_group(GTK_RADIO_BUTTON(MessageBoxPositionNone)),
         _("Mouse position"));
-    gtk_table_attach(GTK_TABLE(Table),MessageBoxPositionMouse,1,2,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), MessageBoxPositionMouse, 1, 1, 1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(MessageBoxPositionMouse),
         MESSAGE_BOX_POSITION_MOUSE);
     gtk_widget_set_tooltip_text(MessageBoxPositionMouse,_("Windows should be placed "
@@ -522,23 +523,23 @@ void Open_OptionsWindow (void)
     gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0);
     gtk_container_set_border_width(GTK_CONTAINER(hbox), 2);***/
 
-    Table = gtk_table_new(4,2,FALSE);
+    Table = et_grid_new (4, 2);
     gtk_box_pack_start(GTK_BOX(vbox),Table,FALSE,FALSE,0);
-    //gtk_table_set_row_spacings(GTK_TABLE(Table),2);
-    gtk_table_set_col_spacings(GTK_TABLE(Table),2);
+    /*gtk_grid_set_row_spacing (GTK_GRID (Table), 2);*/
+    gtk_grid_set_column_spacing (GTK_GRID (Table), 2);
 
     /* Rules for character set */
     Label = gtk_label_new(_("Rules to apply if some characters can't be converted to "
         "the system character encoding when writing filename:"));
-    gtk_table_attach(GTK_TABLE(Table),Label,0,2,0,1,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), Label, 0, 0, 2, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
 
     Label = gtk_label_new("    ");
-    gtk_table_attach(GTK_TABLE(Table),Label,0,1,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), Label, 0, 1, 1, 1);
 
     FilenameCharacterSetOther = gtk_radio_button_new_with_label(NULL,_("Try another "
         "character encoding"));
-    gtk_table_attach(GTK_TABLE(Table),FilenameCharacterSetOther,1,2,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), FilenameCharacterSetOther, 1, 1, 1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FilenameCharacterSetOther),FILENAME_CHARACTER_SET_OTHER);
     gtk_widget_set_tooltip_text(FilenameCharacterSetOther,_("With this option, it will "
         "try the conversion to the encoding associated to your locale (for example: "
@@ -548,7 +549,8 @@ void Open_OptionsWindow (void)
     FilenameCharacterSetApproximate = gtk_radio_button_new_with_label(
         gtk_radio_button_get_group(GTK_RADIO_BUTTON(FilenameCharacterSetOther)),
         _("Force using the system character encoding and activate the transliteration"));
-    gtk_table_attach(GTK_TABLE(Table),FilenameCharacterSetApproximate,1,2,2,3,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), FilenameCharacterSetApproximate, 1, 2,
+                     1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FilenameCharacterSetApproximate),FILENAME_CHARACTER_SET_APPROXIMATE);
     gtk_widget_set_tooltip_text(FilenameCharacterSetApproximate,_("With this option, when "
         "a character cannot be represented in the target character set, it can be "
@@ -557,7 +559,8 @@ void Open_OptionsWindow (void)
     FilenameCharacterSetDiscard = gtk_radio_button_new_with_label(
         gtk_radio_button_get_group(GTK_RADIO_BUTTON(FilenameCharacterSetOther)),
         _("Force using the system character encoding and silently discard some characters"));
-    gtk_table_attach(GTK_TABLE(Table),FilenameCharacterSetDiscard,1,2,3,4,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), FilenameCharacterSetDiscard, 1, 3, 1,
+                     1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FilenameCharacterSetDiscard),FILENAME_CHARACTER_SET_DISCARD);
     gtk_widget_set_tooltip_text(FilenameCharacterSetDiscard,_("With this option, when "
         "a character cannot be represented in the target character set, it will "
@@ -625,40 +628,40 @@ void Open_OptionsWindow (void)
     gtk_box_pack_start(GTK_BOX(vbox),Separator,FALSE,FALSE,0);
 
     /* Tag field focus */
-    Table = gtk_table_new(2,3,FALSE);
+    Table = et_grid_new (2, 3);
     gtk_box_pack_start(GTK_BOX(vbox),Table,FALSE,FALSE,0);
-    //gtk_table_set_row_spacings(GTK_TABLE(Table),2);
-    gtk_table_set_col_spacings(GTK_TABLE(Table),2);
+    /*gtk_grid_set_row_spacing (GTK_GRID (Table), 2);*/
+    gtk_grid_set_column_spacing (GTK_GRID (Table), 2);
 
     Label = gtk_label_new(_("Tag field focus when switching files in list with "
         "shortcuts Page Up/Page Down:"));
-    gtk_table_attach(GTK_TABLE(Table),Label,0,2,0,1,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), Label, 0, 0, 2, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
 
     Label = gtk_label_new("    ");
-    gtk_table_attach(GTK_TABLE(Table),Label,0,1,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), Label, 0, 1, 1, 1);
 
     SetFocusToSameTagField = gtk_radio_button_new_with_label(NULL,
         _("Keep focus to the same tag field"));
-    gtk_table_attach(GTK_TABLE(Table),SetFocusToSameTagField,1,2,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), SetFocusToSameTagField, 1, 1, 1, 1);
     //gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(SetFocusToSameTagField),SET_FOCUS_TO_SAME_TAG_FIELD);
 
     SetFocusToFirstTagField = gtk_radio_button_new_with_label(
         gtk_radio_button_get_group(GTK_RADIO_BUTTON(SetFocusToSameTagField)),
         _("Return focus to the first tag field (i.e. 'Title' field)"));
-    gtk_table_attach(GTK_TABLE(Table),SetFocusToFirstTagField,1,2,2,3,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), SetFocusToFirstTagField, 1, 2, 1, 1);
     //gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(SetFocusToFirstTagField),SET_FOCUS_TO_FIRST_TAG_FIELD);
     
     /* Tag Splitting */
     Frame = gtk_frame_new (_("Tag Splitting"));
     gtk_box_pack_start(GTK_BOX(VBox),Frame,FALSE,FALSE,0);
 
-    Table = gtk_table_new(5,2,FALSE);
+    Table = et_grid_new (5, 2);
     gtk_container_add(GTK_CONTAINER(Frame),Table);
-    gtk_table_set_col_spacings(GTK_TABLE(Table),2);
+    gtk_grid_set_column_spacing (GTK_GRID (Table), 2);
     
     Label = gtk_label_new(_("For Vorbis tags, selected fields will be split at dashes and saved as separate tags"));
-    gtk_table_attach(GTK_TABLE(Table),Label,0,2,0,1,GTK_FILL,GTK_FILL,0,1);
+    gtk_grid_attach (GTK_GRID (Table), Label, 0, 0, 2, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
 
     VorbisSplitFieldTitle = gtk_check_button_new_with_label(_("Title"));
@@ -669,13 +672,13 @@ void Open_OptionsWindow (void)
     VorbisSplitFieldComposer = gtk_check_button_new_with_label(_("Composer"));
     VorbisSplitFieldOrigArtist = gtk_check_button_new_with_label(_("Original artist"));
 
-    gtk_table_attach(GTK_TABLE(Table),VorbisSplitFieldTitle,0,1,1,2,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),VorbisSplitFieldArtist,0,1,2,3,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),VorbisSplitFieldAlbum,0,1,3,4,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),VorbisSplitFieldGenre,0,1,4,5,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),VorbisSplitFieldComment,1,2,1,2,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),VorbisSplitFieldComposer,1,2,2,3,GTK_FILL,GTK_FILL,0,0);
-    gtk_table_attach(GTK_TABLE(Table),VorbisSplitFieldOrigArtist,1,2,3,4,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), VorbisSplitFieldTitle, 0, 1, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), VorbisSplitFieldArtist, 0, 2, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), VorbisSplitFieldAlbum, 0, 3, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), VorbisSplitFieldGenre, 0, 4, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), VorbisSplitFieldComment, 1, 1, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), VorbisSplitFieldComposer, 1, 2, 1, 1);
+    gtk_grid_attach (GTK_GRID (Table), VorbisSplitFieldOrigArtist, 1, 3, 1, 1);
 
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(VorbisSplitFieldTitle), VORBIS_SPLIT_FIELD_TITLE);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(VorbisSplitFieldArtist), VORBIS_SPLIT_FIELD_ARTIST);
@@ -707,14 +710,14 @@ void Open_OptionsWindow (void)
     gtk_container_add(GTK_CONTAINER(Frame),vbox);
     gtk_container_set_border_width(GTK_CONTAINER(vbox),2);
 
-    Table = gtk_table_new(3,2,FALSE);
+    Table = et_grid_new (3, 2);
     gtk_box_pack_start(GTK_BOX(vbox),Table,FALSE,FALSE,0);
-    gtk_table_set_row_spacings(GTK_TABLE(Table),2);
-    gtk_table_set_col_spacings(GTK_TABLE(Table),2);
+    gtk_grid_set_row_spacing (GTK_GRID (Table), 2);
+    gtk_grid_set_column_spacing (GTK_GRID (Table), 2);
 
     /* Write ID3 tags in FLAC files */
     WriteId3TagsInFlacFiles = gtk_check_button_new_with_label(_("Write ID3 tags in FLAC files (in addition to FLAC tag)"));
-    gtk_table_attach(GTK_TABLE(Table),WriteId3TagsInFlacFiles,0,1,0,1,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), WriteId3TagsInFlacFiles, 0, 0, 1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(WriteId3TagsInFlacFiles),WRITE_ID3_TAGS_IN_FLAC_FILE);
     gtk_widget_set_tooltip_text(WriteId3TagsInFlacFiles,_("If activated, ID3 tags will be "
         "also added in the FLAC file (according the two rules above, plus the FLAC tag). "
@@ -722,7 +725,7 @@ void Open_OptionsWindow (void)
 
     /* Strip tag when fields (managed by EasyTAG) are empty */
     StripTagWhenEmptyFields = gtk_check_button_new_with_label(_("Strip tags if all fields are set to blank"));
-    gtk_table_attach(GTK_TABLE(Table),StripTagWhenEmptyFields,0,1,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), StripTagWhenEmptyFields, 0, 1, 1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(StripTagWhenEmptyFields),STRIP_TAG_WHEN_EMPTY_FIELDS);
     gtk_widget_set_tooltip_text(StripTagWhenEmptyFields,_("As ID3v2 tags may contain other data than "
         "Title, Artist, Album, Year, Track, Genre or Comment (as an attached picture, lyricsâ), "
@@ -731,26 +734,28 @@ void Open_OptionsWindow (void)
 
     /* Convert old ID3v2 tag version */
     ConvertOldId3v2TagVersion = gtk_check_button_new_with_label(_("Automatically convert old ID3v2 tag versions"));
-    gtk_table_attach(GTK_TABLE(Table),ConvertOldId3v2TagVersion,0,1,2,3,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), ConvertOldId3v2TagVersion, 0, 2, 1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ConvertOldId3v2TagVersion),CONVERT_OLD_ID3V2_TAG_VERSION);
     gtk_widget_set_tooltip_text(ConvertOldId3v2TagVersion,_("If activated, an old ID3v2 tag version (as "
         "ID3v2.2) will be updated to the ID3v2.3 version."));
 
     /* Use CRC32 */
     FileWritingId3v2UseCrc32 = gtk_check_button_new_with_label(_("Use CRC32"));
-    gtk_table_attach(GTK_TABLE(Table),FileWritingId3v2UseCrc32,1,2,0,1,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), FileWritingId3v2UseCrc32, 1, 0, 1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileWritingId3v2UseCrc32),FILE_WRITING_ID3V2_USE_CRC32);
     gtk_widget_set_tooltip_text(FileWritingId3v2UseCrc32,_("Set CRC32 in the ID3v2 tags"));
 
     /* Use Compression */
     FileWritingId3v2UseCompression = gtk_check_button_new_with_label(_("Use Compression"));
-    gtk_table_attach(GTK_TABLE(Table),FileWritingId3v2UseCompression,1,2,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), FileWritingId3v2UseCompression, 1, 1, 1,
+                     1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileWritingId3v2UseCompression),FILE_WRITING_ID3V2_USE_COMPRESSION);
     gtk_widget_set_tooltip_text(FileWritingId3v2UseCompression,_("Set Compression in the ID3v2 tags"));
 	
     /* Write Genre in text */
     FileWritingId3v2TextOnlyGenre = gtk_check_button_new_with_label(_("Write Genre in text only"));
-    gtk_table_attach(GTK_TABLE(Table),FileWritingId3v2TextOnlyGenre,1,2,2,3,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), FileWritingId3v2TextOnlyGenre, 1, 2, 1,
+                     1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileWritingId3v2TextOnlyGenre),FILE_WRITING_ID3V2_TEXT_ONLY_GENRE);
     gtk_widget_set_tooltip_text(FileWritingId3v2TextOnlyGenre,_("Don't use ID3v1 number references in genre tag. Enable this if you see numbers as genre in your music player."));	
 
@@ -769,14 +774,14 @@ void Open_OptionsWindow (void)
     gtk_container_add(GTK_CONTAINER(Frame),vbox);
     gtk_container_set_border_width(GTK_CONTAINER(vbox),2);
 
-    Table = gtk_table_new(8,6,FALSE);
+    Table = et_grid_new (8, 6);
     gtk_box_pack_start(GTK_BOX(vbox),Table,FALSE,FALSE,0);
-    gtk_table_set_row_spacings(GTK_TABLE(Table),2);
-    gtk_table_set_col_spacings(GTK_TABLE(Table),2);
+    gtk_grid_set_row_spacing (GTK_GRID (Table), 2);
+    gtk_grid_set_column_spacing (GTK_GRID (Table), 2);
 
     /* Write ID3v2 tag */
     FileWritingId3v2WriteTag = gtk_check_button_new_with_label(_("Write ID3v2 tag"));
-    gtk_table_attach(GTK_TABLE(Table),FileWritingId3v2WriteTag,0,5,0,1,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), FileWritingId3v2WriteTag, 0, 0, 5, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileWritingId3v2WriteTag),FILE_WRITING_ID3V2_WRITE_TAG);
     gtk_widget_set_tooltip_text(FileWritingId3v2WriteTag,_("If activated, an ID3v2.4 tag will be added or "
         "updated at the beginning of the MP3 files. Else it will be stripped."));
@@ -786,7 +791,7 @@ void Open_OptionsWindow (void)
 #ifdef ENABLE_ID3LIB
     /* ID3v2 tag version */
     LabelId3v2Version = gtk_label_new(_("Version:"));
-    gtk_table_attach(GTK_TABLE(Table),LabelId3v2Version,0,2,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), LabelId3v2Version, 0, 1, 2, 1);
     gtk_misc_set_alignment(GTK_MISC(LabelId3v2Version),0,0.5);
 
     EventBox = gtk_event_box_new();
@@ -799,7 +804,7 @@ void Open_OptionsWindow (void)
     gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(FileWritingId3v2VersionCombo), "ID3v2.3");
     gtk_combo_box_set_active(GTK_COMBO_BOX(FileWritingId3v2VersionCombo),
         FILE_WRITING_ID3V2_VERSION_4 ? 0 : 1);
-    gtk_table_attach(GTK_TABLE(Table),EventBox,2,4,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), EventBox, 2, 1, 2, 1);
     g_signal_connect_after(G_OBJECT(FileWritingId3v2VersionCombo),"changed",
         G_CALLBACK(Change_Id3_Settings_Toggled),NULL);
 #endif
@@ -807,17 +812,18 @@ void Open_OptionsWindow (void)
 
     /* Charset */
     LabelId3v2Charset = gtk_label_new(_("Charset:"));
-    gtk_table_attach(GTK_TABLE(Table),LabelId3v2Charset,0,5,2,3,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), LabelId3v2Charset, 0, 2, 5, 1);
     gtk_misc_set_alignment(GTK_MISC(LabelId3v2Charset),0,0.5);
 
     Label = gtk_label_new("        ");
-    gtk_table_attach(GTK_TABLE(Table),Label,0,1,3,4,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), Label, 0, 3, 1, 1);
 
     // Unicode
     FileWritingId3v2UseUnicodeCharacterSet = gtk_radio_button_new_with_label(NULL, _("Unicode "));
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileWritingId3v2UseUnicodeCharacterSet),
         FILE_WRITING_ID3V2_USE_UNICODE_CHARACTER_SET);
-    gtk_table_attach(GTK_TABLE(Table),FileWritingId3v2UseUnicodeCharacterSet,1,2,3,4,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), FileWritingId3v2UseUnicodeCharacterSet,
+                     1, 3, 1, 1);
 
     EventBox = gtk_event_box_new();
     FileWritingId3v2UnicodeCharacterSetCombo = gtk_combo_box_text_new();
@@ -830,7 +836,7 @@ void Open_OptionsWindow (void)
     else
         gtk_combo_box_set_active(GTK_COMBO_BOX(FileWritingId3v2UnicodeCharacterSetCombo),
             strcmp(FILE_WRITING_ID3V2_UNICODE_CHARACTER_SET, "UTF-8") ? 1 : 0);
-    gtk_table_attach(GTK_TABLE(Table),EventBox,2,4,3,4,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), EventBox, 2, 3, 2, 1);
     g_signal_connect_after(G_OBJECT(FileWritingId3v2UseUnicodeCharacterSet),"toggled",
         G_CALLBACK(Change_Id3_Settings_Toggled),NULL);
 
@@ -838,7 +844,8 @@ void Open_OptionsWindow (void)
     FileWritingId3v2UseNoUnicodeCharacterSet = gtk_radio_button_new_with_label(
         gtk_radio_button_get_group(GTK_RADIO_BUTTON(FileWritingId3v2UseUnicodeCharacterSet)),
         _("Other"));
-    gtk_table_attach(GTK_TABLE(Table),FileWritingId3v2UseNoUnicodeCharacterSet,1,2,4,5,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table),
+                     FileWritingId3v2UseNoUnicodeCharacterSet, 1, 4, 1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileWritingId3v2UseNoUnicodeCharacterSet),
         !FILE_WRITING_ID3V2_USE_UNICODE_CHARACTER_SET);
 
@@ -850,18 +857,20 @@ void Open_OptionsWindow (void)
 
     Charset_Populate_Combobox(GTK_COMBO_BOX(FileWritingId3v2NoUnicodeCharacterSetCombo), 
         FILE_WRITING_ID3V2_NO_UNICODE_CHARACTER_SET);
-    gtk_table_attach(GTK_TABLE(Table),EventBox,2,5,4,5,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach(GTK_GRID(Table),EventBox,2,4,3,1);
     g_signal_connect_after(G_OBJECT(FileWritingId3v2UseNoUnicodeCharacterSet),"toggled",
         G_CALLBACK(Change_Id3_Settings_Toggled),NULL);
     
     // ID3v2 Additional iconv() options
     LabelAdditionalId3v2IconvOptions = gtk_label_new(_("Additional settings for iconv():"));
-    gtk_table_attach(GTK_TABLE(Table),LabelAdditionalId3v2IconvOptions,2,5,5,6,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), LabelAdditionalId3v2IconvOptions, 2, 5,
+                     3, 1);
     gtk_misc_set_alignment(GTK_MISC(LabelAdditionalId3v2IconvOptions),0,0.5);
 
     FileWritingId3v2IconvOptionsNo = gtk_radio_button_new_with_label(NULL,
         _("No"));
-    gtk_table_attach(GTK_TABLE(Table),FileWritingId3v2IconvOptionsNo,2,3,6,7,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), FileWritingId3v2IconvOptionsNo, 2, 6, 1,
+                     1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileWritingId3v2IconvOptionsNo),FILE_WRITING_ID3V2_ICONV_OPTIONS_NO);
     gtk_widget_set_tooltip_text(FileWritingId3v2IconvOptionsNo,_("With this option, when "
         "a character cannot be represented in the target character set, it isn't changed. "
@@ -869,7 +878,8 @@ void Open_OptionsWindow (void)
     FileWritingId3v2IconvOptionsTranslit = gtk_radio_button_new_with_label(
         gtk_radio_button_get_group(GTK_RADIO_BUTTON(FileWritingId3v2IconvOptionsNo)),
         _("//TRANSLIT"));
-    gtk_table_attach(GTK_TABLE(Table),FileWritingId3v2IconvOptionsTranslit,3,4,6,7,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), FileWritingId3v2IconvOptionsTranslit, 3,
+                     6, 1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileWritingId3v2IconvOptionsTranslit),FILE_WRITING_ID3V2_ICONV_OPTIONS_TRANSLIT);
     gtk_widget_set_tooltip_text(FileWritingId3v2IconvOptionsTranslit,_("With this option, when "
         "a character cannot be represented in the target character set, it can be "
@@ -878,7 +888,8 @@ void Open_OptionsWindow (void)
     FileWritingId3v2IconvOptionsIgnore = gtk_radio_button_new_with_label(
         gtk_radio_button_get_group(GTK_RADIO_BUTTON(FileWritingId3v2IconvOptionsNo)),
         _("//IGNORE"));
-    gtk_table_attach(GTK_TABLE(Table),FileWritingId3v2IconvOptionsIgnore,4,5,6,7,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), FileWritingId3v2IconvOptionsIgnore, 4,
+                     6, 1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileWritingId3v2IconvOptionsIgnore),FILE_WRITING_ID3V2_ICONV_OPTIONS_IGNORE);
     gtk_widget_set_tooltip_text(FileWritingId3v2IconvOptionsIgnore,_("With this option, when "
         "a character cannot be represented in the target character set, it will "
@@ -892,15 +903,15 @@ void Open_OptionsWindow (void)
     gtk_container_add(GTK_CONTAINER(Frame),vbox);
     gtk_container_set_border_width(GTK_CONTAINER(vbox),2);
 
-    Table = gtk_table_new(6,5,FALSE);
+    Table = et_grid_new (6, 5);
     gtk_box_pack_start(GTK_BOX(vbox),Table,FALSE,FALSE,0);
-    gtk_table_set_row_spacings(GTK_TABLE(Table),2);
-    gtk_table_set_col_spacings(GTK_TABLE(Table),2);
+    gtk_grid_set_row_spacing (GTK_GRID (Table), 2);
+    gtk_grid_set_column_spacing (GTK_GRID (Table), 2);
 
 
     /* Write ID3v1 tag */
     FileWritingId3v1WriteTag = gtk_check_button_new_with_label(_("Write ID3v1.x tag"));
-    gtk_table_attach(GTK_TABLE(Table),FileWritingId3v1WriteTag,0,4,0,1,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), FileWritingId3v1WriteTag, 0, 0, 4, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileWritingId3v1WriteTag),FILE_WRITING_ID3V1_WRITE_TAG);
     gtk_widget_set_tooltip_text(FileWritingId3v1WriteTag,_("If activated, an ID3v1 tag will be added or "
         "updated at the end of the MP3 files. Else it will be stripped."));
@@ -909,28 +920,30 @@ void Open_OptionsWindow (void)
 
     /* Id3V1 writing character set */
     LabelId3v1Charset = gtk_label_new(_("Charset:"));
-    gtk_table_attach(GTK_TABLE(Table),LabelId3v1Charset,0,4,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), LabelId3v1Charset, 0, 1, 4, 1);
     gtk_misc_set_alignment(GTK_MISC(LabelId3v1Charset),0,0.5);
 
     Label = gtk_label_new("        ");
-    gtk_table_attach(GTK_TABLE(Table),Label,0,1,2,3,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), Label, 0, 2, 1, 1);
 
     EventBox = gtk_event_box_new();
     FileWritingId3v1CharacterSetCombo = gtk_combo_box_text_new();
     gtk_container_add(GTK_CONTAINER(EventBox),FileWritingId3v1CharacterSetCombo);
-    gtk_table_attach(GTK_TABLE(Table),EventBox,1,4,2,3,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), EventBox, 1, 2, 3, 1);
     gtk_widget_set_tooltip_text(EventBox,_("Character set used to write ID3v1 tag data "
         "in the file."));
     Charset_Populate_Combobox(GTK_COMBO_BOX(FileWritingId3v1CharacterSetCombo), FILE_WRITING_ID3V1_CHARACTER_SET);
 
     /* ID3V1 Additional iconv() options*/
     LabelAdditionalId3v1IconvOptions = gtk_label_new(_("Additional settings for iconv():"));
-    gtk_table_attach(GTK_TABLE(Table),LabelAdditionalId3v1IconvOptions,1,4,3,4,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), LabelAdditionalId3v1IconvOptions, 1, 3,
+                     3, 1);
     gtk_misc_set_alignment(GTK_MISC(LabelAdditionalId3v1IconvOptions),0,0.5);
 
     FileWritingId3v1IconvOptionsNo = gtk_radio_button_new_with_label(NULL,
         _("No"));
-    gtk_table_attach(GTK_TABLE(Table),FileWritingId3v1IconvOptionsNo,1,2,4,5,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), FileWritingId3v1IconvOptionsNo, 1, 4, 1,
+                     1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileWritingId3v1IconvOptionsNo),FILE_WRITING_ID3V1_ICONV_OPTIONS_NO);
     gtk_widget_set_tooltip_text(FileWritingId3v1IconvOptionsNo,_("With this option, when "
         "a character cannot be represented in the target character set, it isn't changed. "
@@ -938,7 +951,8 @@ void Open_OptionsWindow (void)
     FileWritingId3v1IconvOptionsTranslit = gtk_radio_button_new_with_label(
         gtk_radio_button_get_group(GTK_RADIO_BUTTON(FileWritingId3v1IconvOptionsNo)),
         _("//TRANSLIT"));
-    gtk_table_attach(GTK_TABLE(Table),FileWritingId3v1IconvOptionsTranslit,2,3,4,5,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), FileWritingId3v1IconvOptionsTranslit, 2,
+                     4, 1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileWritingId3v1IconvOptionsTranslit),FILE_WRITING_ID3V1_ICONV_OPTIONS_TRANSLIT);
     gtk_widget_set_tooltip_text(FileWritingId3v1IconvOptionsTranslit,_("With this option, when "
         "a character cannot be represented in the target character set, it can be "
@@ -947,7 +961,8 @@ void Open_OptionsWindow (void)
     FileWritingId3v1IconvOptionsIgnore = gtk_radio_button_new_with_label(
         gtk_radio_button_get_group(GTK_RADIO_BUTTON(FileWritingId3v1IconvOptionsNo)),
         _("//IGNORE"));
-    gtk_table_attach(GTK_TABLE(Table),FileWritingId3v1IconvOptionsIgnore,3,4,4,5,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), FileWritingId3v1IconvOptionsIgnore, 3,
+                     4, 1, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileWritingId3v1IconvOptionsIgnore),FILE_WRITING_ID3V1_ICONV_OPTIONS_IGNORE);
     gtk_widget_set_tooltip_text(FileWritingId3v1IconvOptionsIgnore,_("With this option, when "
         "a character cannot be represented in the target character set, it will "
@@ -960,18 +975,19 @@ void Open_OptionsWindow (void)
     gtk_container_add(GTK_CONTAINER(Frame),vbox);
     gtk_container_set_border_width(GTK_CONTAINER(vbox), 2);
 
-    Table = gtk_table_new(4,2,FALSE);
+    Table = et_grid_new(4,2);
     gtk_box_pack_start(GTK_BOX(vbox),Table,FALSE,FALSE,0);
     //gtk_container_set_border_width(GTK_CONTAINER(Table), 2);
-    //gtk_table_set_row_spacings(GTK_TABLE(Table),2);
-    gtk_table_set_col_spacings(GTK_TABLE(Table),2);
+    /*gtk_grid_set_row_spacing (GTK_GRID (Table), 2);*/
+    gtk_grid_set_column_spacing (GTK_GRID (Table), 2);
 
     // "File Reading Charset" Check Button + Combo
     UseNonStandardId3ReadingCharacterSet = gtk_check_button_new_with_label(_(
         "Non-standard:"));
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(UseNonStandardId3ReadingCharacterSet),
         USE_NON_STANDARD_ID3_READING_CHARACTER_SET);
-    gtk_table_attach(GTK_TABLE(Table),UseNonStandardId3ReadingCharacterSet,0,1,0,1,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), UseNonStandardId3ReadingCharacterSet, 0,
+                     0, 1, 1);
     gtk_widget_set_tooltip_text(UseNonStandardId3ReadingCharacterSet,
         _("This character set will be used when reading the tag data, to convert "
         "each string found in an ISO-8859-1 field in the tag (for ID3v2 or/and ID3v1 tag).\n"
@@ -989,7 +1005,7 @@ void Open_OptionsWindow (void)
     EventBox = gtk_event_box_new();
     FileReadingId3v1v2CharacterSetCombo = gtk_combo_box_text_new();
     gtk_container_add(GTK_CONTAINER(EventBox),FileReadingId3v1v2CharacterSetCombo);
-    gtk_table_attach(GTK_TABLE(Table),EventBox,2,3,0,1,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), EventBox, 2, 0, 1, 1);
 
     gtk_widget_set_tooltip_text(EventBox,_("Character set used to read tag data "
         "in the file."));
@@ -1331,55 +1347,55 @@ void Open_OptionsWindow (void)
     Frame = gtk_frame_new (_("Proxy Settings"));
     gtk_box_pack_start(GTK_BOX(VBox),Frame,FALSE,FALSE,0);
 
-    Table = gtk_table_new(3,5,FALSE);
+    Table = et_grid_new (3, 5);
     gtk_container_add(GTK_CONTAINER(Frame),Table);
-    gtk_table_set_row_spacings(GTK_TABLE(Table),2);
-    gtk_table_set_col_spacings(GTK_TABLE(Table),4);
+    gtk_grid_set_row_spacing (GTK_GRID (Table), 2);
+    gtk_grid_set_column_spacing (GTK_GRID (Table), 4);
     gtk_container_set_border_width(GTK_CONTAINER(Table), 2);
 
     CddbUseProxy = gtk_check_button_new_with_label(_("Use a proxy"));
-    gtk_table_attach(GTK_TABLE(Table),CddbUseProxy,0,5,0,1,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), CddbUseProxy, 0, 0, 5, 1);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(CddbUseProxy),CDDB_USE_PROXY);
     gtk_widget_set_tooltip_text(CddbUseProxy,_("Set active the settings of the proxy server."));
 
     Label = gtk_label_new("     ");
-    gtk_table_attach(GTK_TABLE(Table),Label,0,1,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), Label, 0, 1, 1, 1);
 
     Label = gtk_label_new(_("Host Name:"));
-    gtk_table_attach(GTK_TABLE(Table),Label,1,2,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), Label, 1, 1, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),1,0.5);
     CddbProxyName = gtk_entry_new();
-    gtk_table_attach(GTK_TABLE(Table),CddbProxyName,2,3,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), CddbProxyName, 2, 1, 1, 1);
     if (CDDB_PROXY_NAME)
         gtk_entry_set_text(GTK_ENTRY(CddbProxyName),CDDB_PROXY_NAME);
     gtk_widget_set_tooltip_text(CddbProxyName,_("Name of the proxy server."));
     Label = gtk_label_new (_("Port:"));
-    gtk_table_attach(GTK_TABLE(Table),Label,3,4,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), Label, 3, 1, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),1,0.5);
     CddbProxyPort = gtk_entry_new();
     gtk_widget_set_size_request(GTK_WIDGET(CddbProxyPort), 45, -1);
     gtk_entry_set_max_length(GTK_ENTRY(CddbProxyPort),5);
-    gtk_table_attach(GTK_TABLE(Table),CddbProxyPort,4,5,1,2,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), CddbProxyPort, 4, 1, 1, 1);
     gtk_widget_set_tooltip_text(CddbProxyPort,_("Port of the proxy server."));
     sprintf(temp,"%i",CDDB_PROXY_PORT);
     gtk_entry_set_text(GTK_ENTRY(CddbProxyPort),temp);
     g_signal_connect(G_OBJECT(CddbProxyPort),"insert_text",G_CALLBACK(Insert_Only_Digit),NULL);
     g_signal_connect(G_OBJECT(CddbUseProxy),"toggled",G_CALLBACK(Cddb_Use_Proxy_Toggled),NULL);
     Label = gtk_label_new(_("User Name:"));
-    gtk_table_attach(GTK_TABLE(Table),Label,1,2,2,3,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), Label, 1, 2, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),1,0.5);
     CddbProxyUserName = gtk_entry_new();
     if (CDDB_PROXY_USER_NAME)
         gtk_entry_set_text(GTK_ENTRY(CddbProxyUserName),CDDB_PROXY_USER_NAME);
-    gtk_table_attach(GTK_TABLE(Table),CddbProxyUserName,2,3,2,3,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), CddbProxyUserName, 2, 2, 1, 1);
     gtk_widget_set_tooltip_text(CddbProxyUserName,_("Name of user for the the proxy server."));
     Label = gtk_label_new(_("User Password:"));
-    gtk_table_attach(GTK_TABLE(Table),Label,3,4,2,3,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), Label, 3, 2, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),1,0.5);
     CddbProxyUserPassword = gtk_entry_new();
     if (CDDB_PROXY_USER_PASSWORD)
         gtk_entry_set_text(GTK_ENTRY(CddbProxyUserPassword),CDDB_PROXY_USER_PASSWORD);
-    gtk_table_attach(GTK_TABLE(Table),CddbProxyUserPassword,4,5,2,3,GTK_FILL,GTK_FILL,0,0);
+    gtk_grid_attach (GTK_GRID (Table), CddbProxyUserPassword, 4, 2, 1, 1);
     gtk_entry_set_visibility(GTK_ENTRY(CddbProxyUserPassword),FALSE);
     gtk_widget_set_tooltip_text(CddbProxyUserPassword,_("Password of user for the the proxy server."));
     Cddb_Use_Proxy_Toggled();
diff --git a/src/scan.c b/src/scan.c
index 4c8cc63..842552a 100644
--- a/src/scan.c
+++ b/src/scan.c
@@ -2841,56 +2841,56 @@ void Open_ScannerWindow (gint scanner_type)
     LegendFrame = gtk_frame_new (_("Legend"));
     gtk_box_pack_start(GTK_BOX(ScanVBox),LegendFrame,FALSE,FALSE,0);
     /* Legend labels */
-    Table = gtk_table_new (3, 6, FALSE);
+    Table = et_grid_new (3, 6);
     gtk_container_add(GTK_CONTAINER(LegendFrame),Table);
     gtk_container_set_border_width(GTK_CONTAINER(Table),4);
     Label = gtk_label_new(_("%a: artist"));
-    gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,0,1);
+    gtk_grid_attach (GTK_GRID (Table), Label, 0, 0, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
     Label = gtk_label_new(_("%z: album artist"));
-    gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,1,2);
+    gtk_grid_attach (GTK_GRID (Table), Label, 0, 1, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
     Label = gtk_label_new(_("%b: album"));
-    gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,2,3);
+    gtk_grid_attach (GTK_GRID (Table), Label, 0, 2, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
     Label = gtk_label_new(_("%c: comment"));
-    gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,3,4);
+    gtk_grid_attach (GTK_GRID (Table), Label, 0, 3, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
     Label = gtk_label_new(_("%p: composer"));
-    gtk_table_attach_defaults (GTK_TABLE (Table), Label, 0, 1, 4, 5);
+    gtk_grid_attach (GTK_GRID (Table), Label, 0, 4, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
     Label = gtk_label_new(_("%r: copyright"));
-    gtk_table_attach_defaults (GTK_TABLE (Table), Label, 0, 1, 5, 6);
+    gtk_grid_attach (GTK_GRID (Table), Label, 0, 5, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
     Label = gtk_label_new(_("%d: disc number"));
-    gtk_table_attach_defaults(GTK_TABLE(Table),Label,1,2,0,1);
+    gtk_grid_attach (GTK_GRID (Table), Label, 1, 0, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
     Label = gtk_label_new(_("%e: encoded by"));
-    gtk_table_attach_defaults(GTK_TABLE(Table),Label,1,2,1,2);
+    gtk_grid_attach (GTK_GRID (Table), Label, 1, 1, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
     Label = gtk_label_new(_("%g: genre"));
-    gtk_table_attach_defaults(GTK_TABLE(Table),Label,1,2,2,3);
+    gtk_grid_attach (GTK_GRID (Table), Label, 1, 2, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
     Label = gtk_label_new(_("%i: ignored"));
-    gtk_table_attach_defaults(GTK_TABLE(Table),Label,1,2,3,4);
+    gtk_grid_attach (GTK_GRID (Table), Label, 1, 3, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
     Label = gtk_label_new(_("%l: number of tracks"));
-    gtk_table_attach_defaults(GTK_TABLE(Table),Label,1,2,4,5);
+    gtk_grid_attach (GTK_GRID (Table), Label, 1, 4, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
     Label = gtk_label_new(_("%o: orig. artist"));
-    gtk_table_attach_defaults (GTK_TABLE (Table), Label, 1, 2, 5, 6);
+    gtk_grid_attach (GTK_GRID (Table), Label, 1, 5, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
     Label = gtk_label_new(_("%n: track"));
-    gtk_table_attach_defaults (GTK_TABLE (Table), Label, 2, 3, 0, 1);
+    gtk_grid_attach (GTK_GRID (Table), Label, 2, 0, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
     Label = gtk_label_new(_("%t: title"));
-    gtk_table_attach_defaults (GTK_TABLE (Table), Label, 2, 3, 1, 2);
+    gtk_grid_attach (GTK_GRID (Table), Label, 2, 1, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
     Label = gtk_label_new(_("%u: URL"));
-    gtk_table_attach_defaults (GTK_TABLE (Table), Label, 2, 3, 2, 3);
+    gtk_grid_attach (GTK_GRID (Table), Label, 2, 2, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
     Label = gtk_label_new(_("%y: year"));
-    gtk_table_attach_defaults (GTK_TABLE (Table), Label, 2, 3, 3, 4);
+    gtk_grid_attach (GTK_GRID (Table), Label, 2, 3, 1, 1);
     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
 
     /*


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]