Mercurial > audlegacy
annotate audacious/ui_fileinfo.c @ 1299:ead95abdf9bc trunk
[svn] - downsize images larger than 150px
author | nenolod |
---|---|
date | Sun, 18 Jun 2006 22:14:56 -0700 |
parents | 61b576d80cbb |
children | a5c4e748d557 |
rev | line source |
---|---|
1262 | 1 /* |
2 * Audacious: A cross-platform multimedia player | |
3 * Copyright (c) 2006 William Pitcock, Tony Vroon, George Averill, | |
4 * Giacomo Lozito, Derek Pomery and Yoshiki Yazawa. | |
5 * | |
6 * This program is free software; you can redistribute it and/or modify | |
7 * it under the terms of the GNU General Public License as published by | |
8 * the Free Software Foundation; either version 2 of the License, or | |
9 * (at your option) any later version. | |
10 * | |
11 * This program is distributed in the hope that it will be useful, | |
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 * GNU General Public License for more details. | |
15 * | |
16 * You should have received a copy of the GNU General Public License | |
17 * along with this program; if not, write to the Free Software | |
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
19 */ | |
20 | |
21 #ifdef HAVE_CONFIG_H | |
22 # include "config.h" | |
23 #endif | |
24 | |
25 #include <glib.h> | |
26 #include <glib/gi18n.h> | |
27 #include <gtk/gtk.h> | |
28 #include <glade/glade.h> | |
29 #include <string.h> | |
30 #include <stddef.h> | |
31 #include <stdio.h> | |
32 #include <sys/types.h> | |
33 #include <dirent.h> | |
34 #include <unistd.h> | |
35 #include <errno.h> | |
36 #include <sys/types.h> | |
37 #include <sys/stat.h> | |
38 | |
39 #include "glade.h" | |
40 | |
41 #include "plugin.h" | |
42 #include "pluginenum.h" | |
43 #include "input.h" | |
44 #include "effect.h" | |
45 #include "general.h" | |
46 #include "output.h" | |
47 #include "visualization.h" | |
48 | |
49 #include "main.h" | |
50 #include "skin.h" | |
51 #include "urldecode.h" | |
52 #include "util.h" | |
53 #include "dnd.h" | |
54 #include "libaudacious/configdb.h" | |
55 #include "libaudacious/titlestring.h" | |
56 | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
57 #include "playlist.h" |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
58 |
1262 | 59 #include "mainwin.h" |
60 #include "ui_playlist.h" | |
61 #include "skinwin.h" | |
62 #include "playlist_list.h" | |
63 #include "build_stamp.h" | |
64 #include "ui_fileinfo.h" | |
1284 | 65 #include "ui_playlist.h" |
1262 | 66 |
67 GtkWidget *fileinfo_win; | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
68 GtkWidget *filepopup_win; |
1262 | 69 |
1296 | 70 /* XXX: possible cover names, we need a better solution than this */ |
71 static gchar *artwork_fn[] = { "cover.jpg", "Cover.jpg", "cover.JPG", "Cover.JPG", NULL }; | |
72 | |
1262 | 73 static void |
74 fileinfo_entry_set_text(const char *entry, const char *text) | |
75 { | |
76 GladeXML *xml = g_object_get_data(G_OBJECT(fileinfo_win), "glade-xml"); | |
77 GtkWidget *widget = glade_xml_get_widget(xml, entry); | |
78 | |
79 if (xml == NULL || widget == NULL) | |
80 return; | |
81 | |
82 gtk_entry_set_text(GTK_ENTRY(widget), text); | |
83 } | |
84 | |
85 static void | |
86 fileinfo_entry_set_text_free(const char *entry, char *text) | |
87 { | |
88 GladeXML *xml = g_object_get_data(G_OBJECT(fileinfo_win), "glade-xml"); | |
89 GtkWidget *widget = glade_xml_get_widget(xml, entry); | |
90 | |
91 if (xml == NULL || widget == NULL) | |
92 return; | |
93 | |
94 gtk_entry_set_text(GTK_ENTRY(widget), text); | |
95 | |
96 g_free(text); | |
97 } | |
98 | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
99 static void |
1296 | 100 fileinfo_entry_set_image(const char *entry, const char *text) |
101 { | |
102 GladeXML *xml = g_object_get_data(G_OBJECT(fileinfo_win), "glade-xml"); | |
103 GtkWidget *widget = glade_xml_get_widget(xml, entry); | |
1299 | 104 GdkPixbuf *pixbuf; |
1296 | 105 |
106 if (xml == NULL || widget == NULL) | |
107 return; | |
108 | |
1299 | 109 pixbuf = gdk_pixbuf_new_from_file(text, NULL); |
110 | |
111 if (pixbuf == NULL) | |
112 return; | |
113 | |
114 if (gdk_pixbuf_get_height(GDK_PIXBUF(pixbuf)) > 150) | |
115 { | |
116 GdkPixbuf *pixbuf2 = gdk_pixbuf_scale_simple(GDK_PIXBUF(pixbuf), 150, 150, GDK_INTERP_BILINEAR); | |
117 g_object_unref(G_OBJECT(pixbuf)); | |
118 pixbuf = pixbuf2; | |
119 } | |
120 | |
121 gtk_image_set_from_pixbuf(GTK_IMAGE(widget), GDK_PIXBUF(pixbuf)); | |
1296 | 122 } |
123 | |
124 static void | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
125 filepopup_entry_set_text(const char *entry, const char *text) |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
126 { |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
127 GladeXML *xml = g_object_get_data(G_OBJECT(filepopup_win), "glade-xml"); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
128 GtkWidget *widget = glade_xml_get_widget(xml, entry); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
129 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
130 if (xml == NULL || widget == NULL) |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
131 return; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
132 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
133 gtk_label_set_text(GTK_LABEL(widget), text); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
134 } |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
135 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
136 static void |
1296 | 137 filepopup_entry_set_image(const char *entry, const char *text) |
138 { | |
139 GladeXML *xml = g_object_get_data(G_OBJECT(filepopup_win), "glade-xml"); | |
140 GtkWidget *widget = glade_xml_get_widget(xml, entry); | |
1299 | 141 GdkPixbuf *pixbuf; |
1296 | 142 |
143 if (xml == NULL || widget == NULL) | |
144 return; | |
145 | |
1299 | 146 pixbuf = gdk_pixbuf_new_from_file(text, NULL); |
147 | |
148 if (pixbuf == NULL) | |
149 return; | |
150 | |
151 if (gdk_pixbuf_get_height(GDK_PIXBUF(pixbuf)) > 150) | |
152 { | |
153 GdkPixbuf *pixbuf2 = gdk_pixbuf_scale_simple(GDK_PIXBUF(pixbuf), 150, 150, GDK_INTERP_BILINEAR); | |
154 g_object_unref(G_OBJECT(pixbuf)); | |
155 pixbuf = pixbuf2; | |
156 } | |
157 | |
158 gtk_image_set_from_pixbuf(GTK_IMAGE(widget), GDK_PIXBUF(pixbuf)); | |
1296 | 159 } |
160 | |
161 static void | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
162 filepopup_entry_set_text_free(const char *entry, char *text) |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
163 { |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
164 GladeXML *xml = g_object_get_data(G_OBJECT(filepopup_win), "glade-xml"); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
165 GtkWidget *widget = glade_xml_get_widget(xml, entry); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
166 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
167 if (xml == NULL || widget == NULL) |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
168 return; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
169 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
170 gtk_label_set_text(GTK_LABEL(widget), text); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
171 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
172 g_free(text); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
173 } |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
174 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
175 static gboolean |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
176 filepopup_pointer_check_iter(gpointer unused) |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
177 { |
1298
61b576d80cbb
[svn] nitpicks, whee! just so I can see the popup when snapped against screen edge.
nemo
parents:
1297
diff
changeset
|
178 gint x, y, x_off = 3, y_off = 3, h, w, pos; |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
179 TitleInput *tuple; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
180 static gint prev_x = 0, prev_y = 0, ctr = 0; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
181 |
1292
3137c50451e2
[svn] - entirely unwire tooltips if the playlist is shaded
nenolod
parents:
1288
diff
changeset
|
182 if (playlistwin_is_shaded() || playlistwin_list->pl_tooltips == FALSE) |
1284 | 183 { |
184 ctr = 0; | |
185 return TRUE; | |
186 } | |
187 | |
1286 | 188 gdk_window_get_pointer(playlistwin->window, &x, &y, NULL); |
189 | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
190 if (prev_x == x && prev_y == y) |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
191 ctr++; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
192 else |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
193 { |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
194 ctr = 0; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
195 prev_x = x; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
196 prev_y = y; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
197 filepopup_hide(NULL); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
198 return TRUE; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
199 } |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
200 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
201 if (ctr >= 20) |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
202 { |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
203 pos = playlist_list_get_playlist_position(playlistwin_list, x, y); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
204 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
205 if (pos == -1) |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
206 { |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
207 filepopup_hide(NULL); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
208 return TRUE; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
209 } |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
210 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
211 tuple = playlist_get_tuple(pos); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
212 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
213 gdk_window_get_pointer(NULL, &x, &y, NULL); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
214 filepopup_show_for_tuple(tuple); |
1298
61b576d80cbb
[svn] nitpicks, whee! just so I can see the popup when snapped against screen edge.
nemo
parents:
1297
diff
changeset
|
215 gtk_window_get_size(GTK_WINDOW(filepopup_win), &w, &h); |
61b576d80cbb
[svn] nitpicks, whee! just so I can see the popup when snapped against screen edge.
nemo
parents:
1297
diff
changeset
|
216 if (gdk_screen_width()-(w+3) < x) x_off = (w*-1)-3; |
61b576d80cbb
[svn] nitpicks, whee! just so I can see the popup when snapped against screen edge.
nemo
parents:
1297
diff
changeset
|
217 if (gdk_screen_height()-(h+3) < y) y_off = (h*-1)-3; |
61b576d80cbb
[svn] nitpicks, whee! just so I can see the popup when snapped against screen edge.
nemo
parents:
1297
diff
changeset
|
218 gtk_window_move(GTK_WINDOW(filepopup_win), x + x_off, y + y_off); |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
219 } |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
220 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
221 return TRUE; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
222 } |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
223 |
1267 | 224 void fileinfo_hide(gpointer unused) |
225 { | |
226 gtk_widget_hide(fileinfo_win); | |
227 | |
228 /* Clear it out. */ | |
229 fileinfo_entry_set_text("entry_title", ""); | |
230 fileinfo_entry_set_text("entry_artist", ""); | |
231 fileinfo_entry_set_text("entry_album", ""); | |
232 fileinfo_entry_set_text("entry_comment", ""); | |
233 fileinfo_entry_set_text("entry_genre", ""); | |
234 fileinfo_entry_set_text("entry_year", ""); | |
235 fileinfo_entry_set_text("entry_track", ""); | |
236 fileinfo_entry_set_text("entry_location", ""); | |
237 } | |
238 | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
239 void filepopup_hide(gpointer unused) |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
240 { |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
241 gtk_widget_hide(filepopup_win); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
242 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
243 filepopup_entry_set_text("label_title", ""); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
244 filepopup_entry_set_text("label_artist", ""); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
245 filepopup_entry_set_text("label_album", ""); |
1296 | 246 filepopup_entry_set_text("label_genre", ""); |
247 filepopup_entry_set_text("label_track", ""); | |
248 filepopup_entry_set_text("label_year", ""); | |
249 filepopup_entry_set_text("label_length", ""); | |
250 filepopup_entry_set_image("image_artwork", DATA_DIR "/images/audio.png"); | |
1297 | 251 |
252 gtk_window_resize(GTK_WINDOW(filepopup_win), 1, 1); | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
253 } |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
254 |
1262 | 255 void |
256 create_fileinfo_window(void) | |
257 { | |
1263 | 258 const gchar *glade_file = DATA_DIR "/glade/fileinfo.glade"; |
1262 | 259 GladeXML *xml; |
260 GtkWidget *widget; | |
261 | |
262 xml = glade_xml_new_or_die(_("Track Information Window"), glade_file, NULL, NULL); | |
263 | |
264 glade_xml_signal_autoconnect(xml); | |
265 | |
266 fileinfo_win = glade_xml_get_widget(xml, "fileinfo_win"); | |
267 g_object_set_data(G_OBJECT(fileinfo_win), "glade-xml", xml); | |
268 gtk_window_set_transient_for(GTK_WINDOW(fileinfo_win), GTK_WINDOW(mainwin)); | |
269 | |
270 widget = glade_xml_get_widget(xml, "image_artwork"); | |
271 gtk_image_set_from_file(GTK_IMAGE(widget), DATA_DIR "/images/audio.png"); | |
1267 | 272 |
273 widget = glade_xml_get_widget(xml, "btn_close"); | |
274 g_signal_connect(G_OBJECT(widget), "clicked", (GCallback) fileinfo_hide, NULL); | |
1262 | 275 } |
276 | |
277 void | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
278 create_filepopup_window(void) |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
279 { |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
280 const gchar *glade_file = DATA_DIR "/glade/fileinfo_popup.glade"; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
281 GladeXML *xml; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
282 GtkWidget *widget; |
1287
e778f43a74fb
[svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents:
1286
diff
changeset
|
283 |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
284 xml = glade_xml_new_or_die(_("Track Information Popup"), glade_file, NULL, NULL); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
285 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
286 glade_xml_signal_autoconnect(xml); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
287 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
288 filepopup_win = glade_xml_get_widget(xml, "win_pl_popup"); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
289 g_object_set_data(G_OBJECT(filepopup_win), "glade-xml", xml); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
290 gtk_window_set_transient_for(GTK_WINDOW(filepopup_win), GTK_WINDOW(mainwin)); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
291 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
292 widget = glade_xml_get_widget(xml, "image_artwork"); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
293 gtk_image_set_from_file(GTK_IMAGE(widget), DATA_DIR "/images/audio.png"); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
294 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
295 g_timeout_add(50, filepopup_pointer_check_iter, NULL); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
296 } |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
297 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
298 void |
1262 | 299 fileinfo_show_for_tuple(TitleInput *tuple) |
300 { | |
1296 | 301 gchar *tmp; |
302 gint i; | |
303 | |
1262 | 304 if (tuple == NULL) |
305 return; | |
306 | |
307 gtk_widget_realize(fileinfo_win); | |
308 | |
309 fileinfo_entry_set_text("entry_title", tuple->track_name); | |
310 fileinfo_entry_set_text("entry_artist", tuple->performer); | |
311 fileinfo_entry_set_text("entry_album", tuple->album_name); | |
312 fileinfo_entry_set_text("entry_comment", tuple->comment); | |
313 fileinfo_entry_set_text("entry_genre", tuple->genre); | |
1270 | 314 fileinfo_entry_set_text_free("entry_location", g_strdup_printf("%s/%s", tuple->file_path, tuple->file_name)); |
1262 | 315 |
316 if (tuple->year != 0) | |
317 fileinfo_entry_set_text_free("entry_year", g_strdup_printf("%d", tuple->year)); | |
318 | |
319 if (tuple->track_number != 0) | |
320 fileinfo_entry_set_text_free("entry_track", g_strdup_printf("%d", tuple->track_number)); | |
321 | |
1296 | 322 for (i = 0; artwork_fn[i] != NULL; i++) |
323 { | |
324 tmp = g_strdup_printf("%s/%s", tuple->file_path, artwork_fn[i]); | |
325 | |
326 if (g_file_test(tmp, G_FILE_TEST_EXISTS)) | |
327 fileinfo_entry_set_image("image_artwork", tmp); | |
328 | |
329 g_free(tmp); | |
330 } | |
331 | |
1262 | 332 gtk_widget_show(fileinfo_win); |
333 } | |
1267 | 334 |
335 void | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
336 filepopup_show_for_tuple(TitleInput *tuple) |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
337 { |
1296 | 338 gchar *tmp; |
339 gint i; | |
340 | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
341 if (tuple == NULL) |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
342 return; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
343 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
344 gtk_widget_realize(filepopup_win); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
345 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
346 filepopup_entry_set_text("label_title", tuple->track_name); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
347 filepopup_entry_set_text("label_artist", tuple->performer); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
348 filepopup_entry_set_text("label_album", tuple->album_name); |
1287
e778f43a74fb
[svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents:
1286
diff
changeset
|
349 filepopup_entry_set_text("label_genre", tuple->genre); |
1288 | 350 filepopup_entry_set_text_free("label_length", g_strdup_printf("%d:%02d", tuple->length / 60000, (tuple->length / 1000) % 60)); |
1287
e778f43a74fb
[svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents:
1286
diff
changeset
|
351 |
e778f43a74fb
[svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents:
1286
diff
changeset
|
352 if (tuple->year != 0) |
e778f43a74fb
[svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents:
1286
diff
changeset
|
353 filepopup_entry_set_text_free("label_year", g_strdup_printf("%d", tuple->year)); |
e778f43a74fb
[svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents:
1286
diff
changeset
|
354 |
e778f43a74fb
[svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents:
1286
diff
changeset
|
355 if (tuple->track_number != 0) |
e778f43a74fb
[svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents:
1286
diff
changeset
|
356 filepopup_entry_set_text_free("label_track", g_strdup_printf("%d", tuple->track_number)); |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
357 |
1296 | 358 for (i = 0; artwork_fn[i] != NULL; i++) |
359 { | |
360 tmp = g_strdup_printf("%s/%s", tuple->file_path, artwork_fn[i]); | |
361 | |
362 if (g_file_test(tmp, G_FILE_TEST_EXISTS)) | |
363 filepopup_entry_set_image("image_artwork", tmp); | |
364 | |
365 g_free(tmp); | |
366 } | |
367 | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
368 gtk_widget_show(filepopup_win); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
369 } |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
370 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
371 void |
1269 | 372 fileinfo_show_for_path(gchar *path) |
1267 | 373 { |
374 TitleInput *tuple = input_get_song_tuple(path); | |
375 | |
376 if (tuple == NULL) | |
1268 | 377 return input_file_info_box(path); |
1267 | 378 |
379 fileinfo_show_for_tuple(tuple); | |
380 | |
381 bmp_title_input_free(tuple); | |
382 } |