changeset 2355:f03beaca8e81 trunk

[svn] - ui_fileinfopopup.c uses gtk code, no more glade in it
author giacomo
date Wed, 17 Jan 2007 08:13:07 -0800
parents fea1b8594cd8
children 4b2c7d9523e7
files ChangeLog src/audacious/glade/Makefile src/audacious/glade/fileinfo_popup.glade src/audacious/ui_fileinfopopup.c
diffstat 4 files changed, 149 insertions(+), 500 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Jan 17 04:09:20 2007 -0800
+++ b/ChangeLog	Wed Jan 17 08:13:07 2007 -0800
@@ -1,3 +1,10 @@
+2007-01-17 12:09:20 +0000  Giacomo Lozito <james@develia.org>
+  revision [3718]
+  - removed other obsolete (and annoying) gdk_window_set_hints calls
+  trunk/src/audacious/ui_main.c |   15 +++------------
+  1 file changed, 3 insertions(+), 12 deletions(-)
+
+
 2007-01-17 11:11:48 +0000  Giacomo Lozito <james@develia.org>
   revision [3716]
   - added audacious_menu_main_show(x,y,button,time) in util.h, convenience function to display the audacious main popup menu
--- a/src/audacious/glade/Makefile	Wed Jan 17 04:09:20 2007 -0800
+++ b/src/audacious/glade/Makefile	Wed Jan 17 08:13:07 2007 -0800
@@ -5,7 +5,6 @@
 
 OBJECTIVE_DATA = \
 	fileinfo.glade:$(gladexmldir) \
-	fileinfo_popup.glade:$(gladexmldir) \
 	prefswin.glade:$(gladexmldir) \
 	addfiles.glade:$(gladexmldir)
 
--- a/src/audacious/glade/fileinfo_popup.glade	Wed Jan 17 04:09:20 2007 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,465 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-
-<widget class="GtkWindow" id="win_pl_popup">
-  <property name="border_width">6</property>
-  <property name="title" translatable="yes">Artist Popup</property>
-  <property name="type">GTK_WINDOW_POPUP</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">False</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_CENTER</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-
-  <child>
-    <widget class="GtkHBox" id="hbox1">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-	<widget class="GtkImage" id="image_artwork">
-	  <property name="visible">True</property>
-	  <property name="xalign">0.5</property>
-	  <property name="yalign">0</property>
-	  <property name="xpad">0</property>
-	  <property name="ypad">0</property>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkVSeparator" id="vseparator1">
-	  <property name="visible">True</property>
-	</widget>
-	<packing>
-	  <property name="padding">6</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkTable" id="table1">
-	  <property name="visible">True</property>
-	  <property name="n_rows">7</property>
-	  <property name="n_columns">2</property>
-	  <property name="homogeneous">False</property>
-	  <property name="row_spacing">6</property>
-	  <property name="column_spacing">6</property>
-
-	  <child>
-	    <widget class="GtkLabel" id="d_label_title">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">&lt;i&gt;Title&lt;/i&gt;</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">True</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">1</property>
-	      <property name="top_attach">0</property>
-	      <property name="bottom_attach">1</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="d_label_artist">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">&lt;i&gt;Artist&lt;/i&gt;</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">True</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">1</property>
-	      <property name="top_attach">1</property>
-	      <property name="bottom_attach">2</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="d_label_album">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">&lt;i&gt;Album&lt;/i&gt;</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">True</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">1</property>
-	      <property name="top_attach">2</property>
-	      <property name="bottom_attach">3</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label_title">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes"></property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">1</property>
-	      <property name="right_attach">2</property>
-	      <property name="top_attach">0</property>
-	      <property name="bottom_attach">1</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label_artist">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes"></property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">1</property>
-	      <property name="right_attach">2</property>
-	      <property name="top_attach">1</property>
-	      <property name="bottom_attach">2</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label_album">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes"></property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">1</property>
-	      <property name="right_attach">2</property>
-	      <property name="top_attach">2</property>
-	      <property name="bottom_attach">3</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="d_label_genre">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">&lt;i&gt;Genre&lt;/i&gt;</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">True</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">1</property>
-	      <property name="top_attach">3</property>
-	      <property name="bottom_attach">4</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label_genre">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes"></property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">1</property>
-	      <property name="right_attach">2</property>
-	      <property name="top_attach">3</property>
-	      <property name="bottom_attach">4</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="d_label_year">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">&lt;i&gt;Year&lt;/i&gt;</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">True</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">1</property>
-	      <property name="top_attach">4</property>
-	      <property name="bottom_attach">5</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="d_label_track">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">&lt;i&gt;Track Number&lt;/i&gt;</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">True</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">1</property>
-	      <property name="top_attach">5</property>
-	      <property name="bottom_attach">6</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="d_label_length">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">&lt;i&gt;Track Length&lt;/i&gt;</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">True</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">1</property>
-	      <property name="top_attach">6</property>
-	      <property name="bottom_attach">7</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label_year">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes"></property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">1</property>
-	      <property name="right_attach">2</property>
-	      <property name="top_attach">4</property>
-	      <property name="bottom_attach">5</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label_track">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes"></property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">1</property>
-	      <property name="right_attach">2</property>
-	      <property name="top_attach">5</property>
-	      <property name="bottom_attach">6</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label_length">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes"></property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">1</property>
-	      <property name="right_attach">2</property>
-	      <property name="top_attach">6</property>
-	      <property name="bottom_attach">7</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
--- a/src/audacious/ui_fileinfopopup.c	Wed Jan 17 04:09:20 2007 -0800
+++ b/src/audacious/ui_fileinfopopup.c	Wed Jan 17 08:13:07 2007 -0800
@@ -25,10 +25,8 @@
 #include <glib.h>
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
-#include <glade/glade.h>
 #include <string.h>
 
-#include "glade.h"
 #include "titlestring.h"
 #include "ui_fileinfopopup.h"
 #include "main.h"
@@ -36,28 +34,26 @@
 
 
 static void
-filepopup_entry_set_text(GtkWidget *filepopup_win, const char *entry, const char *text)
+filepopup_entry_set_text(GtkWidget *filepopup_win, const char *entry_name, const char *text)
 {
-	GladeXML *xml = g_object_get_data(G_OBJECT(filepopup_win), "glade-xml");
-	GtkWidget *widget = glade_xml_get_widget(xml, entry);
+  GtkWidget *widget = g_object_get_data(G_OBJECT(filepopup_win), entry_name);
 
-	if (xml == NULL || widget == NULL)
-		return;
+  if (widget == NULL)
+    return;
 
-	gtk_label_set_text(GTK_LABEL(widget), text);
+  gtk_label_set_text( GTK_LABEL(widget) , text );
 }
 
 static void
-filepopup_entry_set_image(GtkWidget *filepopup_win, const char *entry, const char *text)
+filepopup_entry_set_image(GtkWidget *filepopup_win, const char *entry_name, const char *text)
 {
-	GladeXML *xml = g_object_get_data(G_OBJECT(filepopup_win), "glade-xml");
-	GtkWidget *widget = glade_xml_get_widget(xml, entry);
+	GtkWidget *widget = g_object_get_data(G_OBJECT(filepopup_win), entry_name);
 	GdkPixbuf *pixbuf;
 	int width, height;
 	double aspect;
 	GdkPixbuf *pixbuf2;
 
-	if (xml == NULL || widget == NULL)
+	if (widget == NULL)
 		return;
 
 	pixbuf = gdk_pixbuf_new_from_file(text, NULL);
@@ -90,12 +86,11 @@
 }
 
 static void
-filepopup_entry_set_text_free(GtkWidget *filepopup_win, const char *entry, char *text)
+filepopup_entry_set_text_free(GtkWidget *filepopup_win, const char *entry_name, char *text)
 {
-	GladeXML *xml = g_object_get_data(G_OBJECT(filepopup_win), "glade-xml");
-	GtkWidget *widget = glade_xml_get_widget(xml, entry);
+	GtkWidget *widget = g_object_get_data(G_OBJECT(filepopup_win), entry_name);
 
-	if (xml == NULL || widget == NULL)
+	if (widget == NULL)
 		return;
 
 	gtk_label_set_text(GTK_LABEL(widget), text);
@@ -268,34 +263,147 @@
 GtkWidget *
 audacious_fileinfopopup_create(void)
 {
-	const gchar *glade_file = DATA_DIR "/glade/fileinfo_popup.glade";
-	GladeXML *xml;
-	GtkWidget *widget;
-	GtkWidget *filepopup_win;
+  GtkWidget *filepopup_win;
+  GtkWidget *filepopup_hbox;
+  GtkWidget *filepopup_data_image;
+  GtkWidget *filepopup_data_table;
+  GtkWidget *filepopup_data_info_header[7];
+  GtkWidget *filepopup_data_info_label[7];
+  gchar *markup;
+
+  filepopup_win = gtk_window_new( GTK_WINDOW_POPUP );
+  gtk_window_set_decorated( GTK_WINDOW(filepopup_win), FALSE );
+  gtk_container_set_border_width( GTK_CONTAINER(filepopup_win) , 6 );
+  gtk_window_set_transient_for( GTK_WINDOW(filepopup_win) , GTK_WINDOW(mainwin) );
+
+  filepopup_hbox = gtk_hbox_new( FALSE , 0 );
+  gtk_container_add( GTK_CONTAINER(filepopup_win) , filepopup_hbox );
+
+  filepopup_data_image = gtk_image_new();
+  gtk_misc_set_alignment( GTK_MISC(filepopup_data_image) , 0.5 , 0 );
+  gtk_image_set_from_file( GTK_IMAGE(filepopup_data_image) , DATA_DIR "/images/audio.png" );
+  g_object_set_data( G_OBJECT(filepopup_win) , "image_artwork" , filepopup_data_image );
+  g_object_set_data( G_OBJECT(filepopup_win) , "last_artwork" , NULL );
+  gtk_box_pack_start( GTK_BOX(filepopup_hbox) , filepopup_data_image , FALSE , FALSE , 0 );
+
+  gtk_box_pack_start( GTK_BOX(filepopup_hbox) , gtk_vseparator_new() , FALSE , FALSE , 6 );
 
-	xml = glade_xml_new_or_die(_("Track Information Popup"), glade_file, NULL, NULL);
+  filepopup_data_table = gtk_table_new( 7 , 2 , FALSE );
+  gtk_table_set_row_spacings( GTK_TABLE(filepopup_data_table) , 6 );
+  gtk_table_set_col_spacings( GTK_TABLE(filepopup_data_table) , 6 );
+  gtk_box_pack_start( GTK_BOX(filepopup_hbox) , filepopup_data_table , TRUE , TRUE , 0 );
 
-	glade_xml_signal_autoconnect(xml);
+  /* title */
+  filepopup_data_info_header[0] = gtk_label_new("");
+  filepopup_data_info_label[0] = gtk_label_new("");
+  gtk_misc_set_alignment( GTK_MISC(filepopup_data_info_header[0]) , 0 , 0.5 );
+  gtk_misc_set_alignment( GTK_MISC(filepopup_data_info_label[0]) , 0 , 0.5 );
+  markup = g_markup_printf_escaped( "<span style=\"italic\">%s</span>" , _("Title") );
+  gtk_label_set_markup( GTK_LABEL(filepopup_data_info_header[0]) , markup );
+  g_free( markup );
+  g_object_set_data( G_OBJECT(filepopup_win) , "label_title" , filepopup_data_info_label[0] );
+  gtk_table_attach( GTK_TABLE(filepopup_data_table) , filepopup_data_info_header[0] ,
+    0 , 1 , 0 , 1 , GTK_FILL , 0 , 0 , 0 );
+  gtk_table_attach( GTK_TABLE(filepopup_data_table) , filepopup_data_info_label[0] ,
+    1 , 2 , 0 , 1 , GTK_FILL , 0 , 0 , 0 );
+
+  /* artist */
+  filepopup_data_info_header[1] = gtk_label_new("");
+  filepopup_data_info_label[1] = gtk_label_new("");
+  gtk_misc_set_alignment( GTK_MISC(filepopup_data_info_header[1]) , 0 , 0.5 );
+  gtk_misc_set_alignment( GTK_MISC(filepopup_data_info_label[1]) , 0 , 0.5 );
+  markup = g_markup_printf_escaped( "<span style=\"italic\">%s</span>" , _("Artist") );
+  gtk_label_set_markup( GTK_LABEL(filepopup_data_info_header[1]) , markup );
+  g_free( markup );
+  g_object_set_data( G_OBJECT(filepopup_win) , "label_artist" , filepopup_data_info_label[1] );
+  gtk_table_attach( GTK_TABLE(filepopup_data_table) , filepopup_data_info_header[1] ,
+    0 , 1 , 1 , 2 , GTK_FILL , 0 , 0 , 0 );
+  gtk_table_attach( GTK_TABLE(filepopup_data_table) , filepopup_data_info_label[1] ,
+    1 , 2 , 1 , 2 , GTK_FILL , 0 , 0 , 0 );
 
-	filepopup_win = glade_xml_get_widget(xml, "win_pl_popup");
-	g_object_set_data(G_OBJECT(filepopup_win), "glade-xml", xml);
-	gtk_window_set_transient_for(GTK_WINDOW(filepopup_win), GTK_WINDOW(mainwin));
+  /* album */
+  filepopup_data_info_header[2] = gtk_label_new("");
+  filepopup_data_info_label[2] = gtk_label_new("");
+  gtk_misc_set_alignment( GTK_MISC(filepopup_data_info_header[2]) , 0 , 0.5 );
+  gtk_misc_set_alignment( GTK_MISC(filepopup_data_info_label[2]) , 0 , 0.5 );
+  markup = g_markup_printf_escaped( "<span style=\"italic\">%s</span>" , _("Album") );
+  gtk_label_set_markup( GTK_LABEL(filepopup_data_info_header[2]) , markup );
+  g_free( markup );
+  g_object_set_data( G_OBJECT(filepopup_win) , "label_album" , filepopup_data_info_label[2] );
+  gtk_table_attach( GTK_TABLE(filepopup_data_table) , filepopup_data_info_header[2] ,
+    0 , 1 , 2 , 3 , GTK_FILL , 0 , 0 , 0 );
+  gtk_table_attach( GTK_TABLE(filepopup_data_table) , filepopup_data_info_label[2] ,
+    1 , 2 , 2 , 3 , GTK_FILL , 0 , 0 , 0 );
+
+  /* genre */
+  filepopup_data_info_header[3] = gtk_label_new("");
+  filepopup_data_info_label[3] = gtk_label_new("");
+  gtk_misc_set_alignment( GTK_MISC(filepopup_data_info_header[3]) , 0 , 0.5 );
+  gtk_misc_set_alignment( GTK_MISC(filepopup_data_info_label[3]) , 0 , 0.5 );
+  markup = g_markup_printf_escaped( "<span style=\"italic\">%s</span>" , _("Genre") );
+  gtk_label_set_markup( GTK_LABEL(filepopup_data_info_header[3]) , markup );
+  g_free( markup );
+  g_object_set_data( G_OBJECT(filepopup_win) , "label_genre" , filepopup_data_info_label[3] );
+  gtk_table_attach( GTK_TABLE(filepopup_data_table) , filepopup_data_info_header[3] ,
+    0 , 1 , 3 , 4 , GTK_FILL , 0 , 0 , 0 );
+  gtk_table_attach( GTK_TABLE(filepopup_data_table) , filepopup_data_info_label[3] ,
+    1 , 2 , 3 , 4 , GTK_FILL , 0 , 0 , 0 );
 
-	widget = glade_xml_get_widget(xml, "image_artwork");
-	gtk_image_set_from_file(GTK_IMAGE(widget), DATA_DIR "/images/audio.png");
-	g_object_set_data( G_OBJECT(filepopup_win) , "last_artwork" , NULL );
+  /* year */
+  filepopup_data_info_header[4] = gtk_label_new("");
+  filepopup_data_info_label[4] = gtk_label_new("");
+  gtk_misc_set_alignment( GTK_MISC(filepopup_data_info_header[4]) , 0 , 0.5 );
+  gtk_misc_set_alignment( GTK_MISC(filepopup_data_info_label[4]) , 0 , 0.5 );
+  markup = g_markup_printf_escaped( "<span style=\"italic\">%s</span>" , _("Year") );
+  gtk_label_set_markup( GTK_LABEL(filepopup_data_info_header[4]) , markup );
+  g_free( markup );
+  g_object_set_data( G_OBJECT(filepopup_win) , "label_year" , filepopup_data_info_label[4] );
+  gtk_table_attach( GTK_TABLE(filepopup_data_table) , filepopup_data_info_header[4] ,
+    0 , 1 , 4 , 5 , GTK_FILL , 0 , 0 , 0 );
+  gtk_table_attach( GTK_TABLE(filepopup_data_table) , filepopup_data_info_label[4] ,
+    1 , 2 , 4 , 5 , GTK_FILL , 0 , 0 , 0 );
 
-	return filepopup_win;
+  /* Track Number */
+  filepopup_data_info_header[5] = gtk_label_new("");
+  filepopup_data_info_label[5] = gtk_label_new("");
+  gtk_misc_set_alignment( GTK_MISC(filepopup_data_info_header[5]) , 0 , 0.5 );
+  gtk_misc_set_alignment( GTK_MISC(filepopup_data_info_label[5]) , 0 , 0.5 );
+  markup = g_markup_printf_escaped( "<span style=\"italic\">%s</span>" , _("Track Number") );
+  gtk_label_set_markup( GTK_LABEL(filepopup_data_info_header[5]) , markup );
+  g_free( markup );
+  g_object_set_data( G_OBJECT(filepopup_win) , "label_tracknum" , filepopup_data_info_label[5] );
+  gtk_table_attach( GTK_TABLE(filepopup_data_table) , filepopup_data_info_header[5] ,
+    0 , 1 , 5 , 6 , GTK_FILL , 0 , 0 , 0 );
+  gtk_table_attach( GTK_TABLE(filepopup_data_table) , filepopup_data_info_label[5] ,
+    1 , 2 , 5 , 6 , GTK_FILL , 0 , 0 , 0 );
+
+  /* Track Length */
+  filepopup_data_info_header[6] = gtk_label_new("");
+  filepopup_data_info_label[6] = gtk_label_new("");
+  gtk_misc_set_alignment( GTK_MISC(filepopup_data_info_header[6]) , 0 , 0.5 );
+  gtk_misc_set_alignment( GTK_MISC(filepopup_data_info_label[6]) , 0 , 0.5 );
+  markup = g_markup_printf_escaped( "<span style=\"italic\">%s</span>" , _("Track Length") );
+  gtk_label_set_markup( GTK_LABEL(filepopup_data_info_header[6]) , markup );
+  g_free( markup );
+  g_object_set_data( G_OBJECT(filepopup_win) , "label_tracklen" , filepopup_data_info_label[6] );
+  gtk_table_attach( GTK_TABLE(filepopup_data_table) , filepopup_data_info_header[6] ,
+    0 , 1 , 6 , 7 , GTK_FILL , 0 , 0 , 0 );
+  gtk_table_attach( GTK_TABLE(filepopup_data_table) , filepopup_data_info_label[6] ,
+    1 , 2 , 6 , 7 , GTK_FILL , 0 , 0 , 0 );
+
+  /* this will realize all widgets contained in filepopup_hbox */
+  gtk_widget_show_all(filepopup_hbox);
+
+  return filepopup_win;
 }
 
 void
 audacious_fileinfopopup_destroy(GtkWidget *filepopup_win)
 {
-	gchar *last_artwork = g_object_get_data( G_OBJECT(filepopup_win) , "last_artwork" );
-	if ( last_artwork != NULL ) g_free(last_artwork);
-	g_object_unref( g_object_get_data(G_OBJECT(filepopup_win), "glade-xml") );
-	gtk_widget_destroy( filepopup_win );
-	return;
+  gchar *last_artwork = g_object_get_data( G_OBJECT(filepopup_win) , "last_artwork" );
+  if ( last_artwork != NULL ) g_free(last_artwork);
+  gtk_widget_destroy( filepopup_win );
+  return;
 }
 
 void