Mercurial > audlegacy
annotate audacious/ui_fileinfo.c @ 1565:88c0aabb4286 trunk
[svn] - remove static version
author | nenolod |
---|---|
date | Thu, 10 Aug 2006 20:41:43 -0700 |
parents | 06329cbf186a |
children | 15d92c51bde6 |
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 | |
1459 | 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
1262 | 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 "urldecode.h" | |
51 #include "util.h" | |
52 #include "dnd.h" | |
53 #include "libaudacious/configdb.h" | |
54 #include "libaudacious/titlestring.h" | |
55 | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
56 #include "playlist.h" |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
57 |
1262 | 58 #include "mainwin.h" |
59 #include "ui_playlist.h" | |
60 #include "skinwin.h" | |
61 #include "build_stamp.h" | |
62 #include "ui_fileinfo.h" | |
1284 | 63 #include "ui_playlist.h" |
1262 | 64 |
65 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
|
66 GtkWidget *filepopup_win; |
1341 | 67 GdkPixbuf *filepopup_pixbuf; |
1262 | 68 |
69 static void | |
70 fileinfo_entry_set_text(const char *entry, const char *text) | |
71 { | |
72 GladeXML *xml = g_object_get_data(G_OBJECT(fileinfo_win), "glade-xml"); | |
73 GtkWidget *widget = glade_xml_get_widget(xml, entry); | |
74 | |
75 if (xml == NULL || widget == NULL) | |
76 return; | |
77 | |
78 gtk_entry_set_text(GTK_ENTRY(widget), text); | |
79 } | |
80 | |
81 static void | |
82 fileinfo_entry_set_text_free(const char *entry, char *text) | |
83 { | |
84 GladeXML *xml = g_object_get_data(G_OBJECT(fileinfo_win), "glade-xml"); | |
85 GtkWidget *widget = glade_xml_get_widget(xml, entry); | |
86 | |
87 if (xml == NULL || widget == NULL) | |
88 return; | |
89 | |
90 gtk_entry_set_text(GTK_ENTRY(widget), text); | |
91 | |
92 g_free(text); | |
93 } | |
94 | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
95 static void |
1296 | 96 fileinfo_entry_set_image(const char *entry, const char *text) |
97 { | |
98 GladeXML *xml = g_object_get_data(G_OBJECT(fileinfo_win), "glade-xml"); | |
99 GtkWidget *widget = glade_xml_get_widget(xml, entry); | |
1299 | 100 GdkPixbuf *pixbuf; |
1296 | 101 |
102 if (xml == NULL || widget == NULL) | |
103 return; | |
104 | |
1299 | 105 pixbuf = gdk_pixbuf_new_from_file(text, NULL); |
106 | |
107 if (pixbuf == NULL) | |
108 return; | |
109 | |
110 if (gdk_pixbuf_get_height(GDK_PIXBUF(pixbuf)) > 150) | |
111 { | |
112 GdkPixbuf *pixbuf2 = gdk_pixbuf_scale_simple(GDK_PIXBUF(pixbuf), 150, 150, GDK_INTERP_BILINEAR); | |
113 g_object_unref(G_OBJECT(pixbuf)); | |
114 pixbuf = pixbuf2; | |
115 } | |
116 | |
117 gtk_image_set_from_pixbuf(GTK_IMAGE(widget), GDK_PIXBUF(pixbuf)); | |
1326 | 118 g_object_unref(G_OBJECT(pixbuf)); |
1296 | 119 } |
120 | |
121 static void | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
122 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
|
123 { |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
124 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
|
125 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
|
126 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
127 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
|
128 return; |
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 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
|
131 } |
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 static void |
1296 | 134 filepopup_entry_set_image(const char *entry, const char *text) |
135 { | |
136 GladeXML *xml = g_object_get_data(G_OBJECT(filepopup_win), "glade-xml"); | |
137 GtkWidget *widget = glade_xml_get_widget(xml, entry); | |
1299 | 138 GdkPixbuf *pixbuf; |
1296 | 139 |
140 if (xml == NULL || widget == NULL) | |
141 return; | |
142 | |
1299 | 143 pixbuf = gdk_pixbuf_new_from_file(text, NULL); |
144 | |
145 if (pixbuf == NULL) | |
146 return; | |
147 | |
148 if (gdk_pixbuf_get_height(GDK_PIXBUF(pixbuf)) > 150) | |
149 { | |
150 GdkPixbuf *pixbuf2 = gdk_pixbuf_scale_simple(GDK_PIXBUF(pixbuf), 150, 150, GDK_INTERP_BILINEAR); | |
151 g_object_unref(G_OBJECT(pixbuf)); | |
152 pixbuf = pixbuf2; | |
153 } | |
154 | |
155 gtk_image_set_from_pixbuf(GTK_IMAGE(widget), GDK_PIXBUF(pixbuf)); | |
1326 | 156 g_object_unref(G_OBJECT(pixbuf)); |
1296 | 157 } |
158 | |
159 static void | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
160 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
|
161 { |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
162 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
|
163 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
|
164 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
165 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
|
166 return; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
167 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
168 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
|
169 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
170 g_free(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 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
173 static gboolean |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
174 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
|
175 { |
1312 | 176 gint x, y, pos; |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
177 TitleInput *tuple; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
178 static gint prev_x = 0, prev_y = 0, ctr = 0; |
1300
a5c4e748d557
[svn] - don't call filepopup_show_for_tuple() more than once
nenolod
parents:
1299
diff
changeset
|
179 gboolean skip = FALSE; |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
180 |
1401
3bc53d7f9012
[svn] - now filepopup_pointer_check_iter() returns immediately if cfg.show_filepopup_for_tuple is FALSE.
yaz
parents:
1389
diff
changeset
|
181 if (!cfg.show_filepopup_for_tuple || playlistwin_is_shaded() |
3bc53d7f9012
[svn] - now filepopup_pointer_check_iter() returns immediately if cfg.show_filepopup_for_tuple is FALSE.
yaz
parents:
1389
diff
changeset
|
182 || playlistwin_list->pl_tooltips == FALSE |
1341 | 183 || gdk_window_at_pointer(NULL, NULL) != GDK_WINDOW(playlistwin->window) |
1331
8e3f13cc95ff
[svn] - Don't show popups if the pointer isn't even in the playlist window.
nhjm449
parents:
1330
diff
changeset
|
184 || gdk_window_at_pointer(NULL, NULL) == NULL) |
1284 | 185 { |
186 ctr = 0; | |
1389
c19443be579d
[svn] ensure that the fileinfo popup in playlist disappears when the cursor is moved again
giacomo
parents:
1371
diff
changeset
|
187 if ( filepopup_win->window != NULL && |
c19443be579d
[svn] ensure that the fileinfo popup in playlist disappears when the cursor is moved again
giacomo
parents:
1371
diff
changeset
|
188 gdk_window_is_viewable(GDK_WINDOW(filepopup_win->window)) ) |
c19443be579d
[svn] ensure that the fileinfo popup in playlist disappears when the cursor is moved again
giacomo
parents:
1371
diff
changeset
|
189 filepopup_hide(NULL); |
1284 | 190 return TRUE; |
191 } | |
192 | |
1286 | 193 gdk_window_get_pointer(playlistwin->window, &x, &y, NULL); |
194 | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
195 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
|
196 ctr++; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
197 else |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
198 { |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
199 ctr = 0; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
200 prev_x = x; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
201 prev_y = y; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
202 filepopup_hide(NULL); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
203 return TRUE; |
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 |
1300
a5c4e748d557
[svn] - don't call filepopup_show_for_tuple() more than once
nenolod
parents:
1299
diff
changeset
|
206 if (filepopup_win->window == NULL) |
a5c4e748d557
[svn] - don't call filepopup_show_for_tuple() more than once
nenolod
parents:
1299
diff
changeset
|
207 skip = TRUE; |
a5c4e748d557
[svn] - don't call filepopup_show_for_tuple() more than once
nenolod
parents:
1299
diff
changeset
|
208 |
a5c4e748d557
[svn] - don't call filepopup_show_for_tuple() more than once
nenolod
parents:
1299
diff
changeset
|
209 if (ctr >= 20 && (skip == TRUE || gdk_window_is_viewable(GDK_WINDOW(filepopup_win->window)) != TRUE)) |
1283
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 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
|
212 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
213 if (pos == -1) |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
214 { |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
215 filepopup_hide(NULL); |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
216 return TRUE; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
217 } |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
218 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
219 tuple = playlist_get_tuple(pos); |
1401
3bc53d7f9012
[svn] - now filepopup_pointer_check_iter() returns immediately if cfg.show_filepopup_for_tuple is FALSE.
yaz
parents:
1389
diff
changeset
|
220 filepopup_show_for_tuple(tuple); |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
221 } |
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 return TRUE; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
224 } |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
225 |
1267 | 226 void fileinfo_hide(gpointer unused) |
227 { | |
228 gtk_widget_hide(fileinfo_win); | |
229 | |
230 /* Clear it out. */ | |
231 fileinfo_entry_set_text("entry_title", ""); | |
232 fileinfo_entry_set_text("entry_artist", ""); | |
233 fileinfo_entry_set_text("entry_album", ""); | |
234 fileinfo_entry_set_text("entry_comment", ""); | |
235 fileinfo_entry_set_text("entry_genre", ""); | |
236 fileinfo_entry_set_text("entry_year", ""); | |
237 fileinfo_entry_set_text("entry_track", ""); | |
238 fileinfo_entry_set_text("entry_location", ""); | |
1307
63d30ae1db33
[svn] - reset the album art back to the default icon
nenolod
parents:
1306
diff
changeset
|
239 |
63d30ae1db33
[svn] - reset the album art back to the default icon
nenolod
parents:
1306
diff
changeset
|
240 fileinfo_entry_set_image("image_artwork", DATA_DIR "/images/audio.png"); |
1267 | 241 } |
242 | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
243 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
|
244 { |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
245 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
|
246 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
247 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
|
248 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
|
249 filepopup_entry_set_text("label_album", ""); |
1296 | 250 filepopup_entry_set_text("label_genre", ""); |
251 filepopup_entry_set_text("label_track", ""); | |
252 filepopup_entry_set_text("label_year", ""); | |
253 filepopup_entry_set_text("label_length", ""); | |
1297 | 254 |
1307
63d30ae1db33
[svn] - reset the album art back to the default icon
nenolod
parents:
1306
diff
changeset
|
255 filepopup_entry_set_image("image_artwork", DATA_DIR "/images/audio.png"); |
63d30ae1db33
[svn] - reset the album art back to the default icon
nenolod
parents:
1306
diff
changeset
|
256 |
1297 | 257 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
|
258 } |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
259 |
1262 | 260 void |
261 create_fileinfo_window(void) | |
262 { | |
1263 | 263 const gchar *glade_file = DATA_DIR "/glade/fileinfo.glade"; |
1262 | 264 GladeXML *xml; |
265 GtkWidget *widget; | |
266 | |
267 xml = glade_xml_new_or_die(_("Track Information Window"), glade_file, NULL, NULL); | |
268 | |
269 glade_xml_signal_autoconnect(xml); | |
270 | |
271 fileinfo_win = glade_xml_get_widget(xml, "fileinfo_win"); | |
272 g_object_set_data(G_OBJECT(fileinfo_win), "glade-xml", xml); | |
273 gtk_window_set_transient_for(GTK_WINDOW(fileinfo_win), GTK_WINDOW(mainwin)); | |
274 | |
275 widget = glade_xml_get_widget(xml, "image_artwork"); | |
276 gtk_image_set_from_file(GTK_IMAGE(widget), DATA_DIR "/images/audio.png"); | |
1267 | 277 |
278 widget = glade_xml_get_widget(xml, "btn_close"); | |
279 g_signal_connect(G_OBJECT(widget), "clicked", (GCallback) fileinfo_hide, NULL); | |
1262 | 280 } |
281 | |
282 void | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
283 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
|
284 { |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
285 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
|
286 GladeXML *xml; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
287 GtkWidget *widget; |
1287
e778f43a74fb
[svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents:
1286
diff
changeset
|
288 |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
289 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
|
290 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
291 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
|
292 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
293 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
|
294 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
|
295 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
|
296 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
297 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
|
298 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
|
299 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
300 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
|
301 } |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
302 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
303 void |
1262 | 304 fileinfo_show_for_tuple(TitleInput *tuple) |
305 { | |
1402
1abfc389ecc6
[svn] fileinfo_show_for_tuple() sometimes causes "Invalid UTF-8 string"
yaz
parents:
1401
diff
changeset
|
306 gchar *tmp = NULL; |
1296 | 307 |
1262 | 308 if (tuple == NULL) |
309 return; | |
310 | |
311 gtk_widget_realize(fileinfo_win); | |
312 | |
313 fileinfo_entry_set_text("entry_title", tuple->track_name); | |
314 fileinfo_entry_set_text("entry_artist", tuple->performer); | |
315 fileinfo_entry_set_text("entry_album", tuple->album_name); | |
316 fileinfo_entry_set_text("entry_comment", tuple->comment); | |
317 fileinfo_entry_set_text("entry_genre", tuple->genre); | |
1402
1abfc389ecc6
[svn] fileinfo_show_for_tuple() sometimes causes "Invalid UTF-8 string"
yaz
parents:
1401
diff
changeset
|
318 |
1abfc389ecc6
[svn] fileinfo_show_for_tuple() sometimes causes "Invalid UTF-8 string"
yaz
parents:
1401
diff
changeset
|
319 tmp = g_strdup_printf("%s/%s", tuple->file_path, tuple->file_name); |
1abfc389ecc6
[svn] fileinfo_show_for_tuple() sometimes causes "Invalid UTF-8 string"
yaz
parents:
1401
diff
changeset
|
320 if(tmp){ |
1abfc389ecc6
[svn] fileinfo_show_for_tuple() sometimes causes "Invalid UTF-8 string"
yaz
parents:
1401
diff
changeset
|
321 fileinfo_entry_set_text_free("entry_location", str_to_utf8(tmp)); |
1abfc389ecc6
[svn] fileinfo_show_for_tuple() sometimes causes "Invalid UTF-8 string"
yaz
parents:
1401
diff
changeset
|
322 g_free(tmp); |
1abfc389ecc6
[svn] fileinfo_show_for_tuple() sometimes causes "Invalid UTF-8 string"
yaz
parents:
1401
diff
changeset
|
323 tmp = NULL; |
1abfc389ecc6
[svn] fileinfo_show_for_tuple() sometimes causes "Invalid UTF-8 string"
yaz
parents:
1401
diff
changeset
|
324 } |
1262 | 325 |
326 if (tuple->year != 0) | |
327 fileinfo_entry_set_text_free("entry_year", g_strdup_printf("%d", tuple->year)); | |
328 | |
329 if (tuple->track_number != 0) | |
330 fileinfo_entry_set_text_free("entry_track", g_strdup_printf("%d", tuple->track_number)); | |
331 | |
1371
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
332 tmp = fileinfo_recursive_get_image(tuple->file_path, 0); |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
333 |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
334 if(tmp) |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
335 { |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
336 fileinfo_entry_set_image("image_artwork", tmp); |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
337 g_free(tmp); |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
338 } |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
339 |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
340 gtk_widget_show(fileinfo_win); |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
341 } |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
342 |
1413 | 343 static gboolean |
344 cover_name_filter(const gchar *name, const gchar *filter, const gboolean ret_on_empty) | |
345 { | |
346 gboolean result = FALSE; | |
347 gchar **splitted; | |
348 gchar *current; | |
349 gchar *lname; | |
350 gint i; | |
351 | |
352 if (!filter || strlen(filter) == 0) { | |
353 return ret_on_empty; | |
354 } | |
355 | |
356 splitted = g_strsplit(filter, ",", 0); | |
357 | |
358 lname = g_strdup(name); | |
359 g_strdown(lname); | |
360 | |
361 for (i = 0; !result && (current = splitted[i]); i++) { | |
362 gchar *stripped = g_strstrip(g_strdup(current)); | |
363 g_strdown(stripped); | |
364 | |
365 result = result || strstr(lname, stripped); | |
366 | |
367 g_free(stripped); | |
368 } | |
369 | |
370 g_free(lname); | |
371 g_strfreev(splitted); | |
372 | |
373 return result; | |
374 } | |
375 | |
376 /* Check wether it's an image we want */ | |
377 static gboolean | |
378 is_front_cover_image(const gchar *name) | |
379 { | |
380 char *ext; | |
381 | |
382 ext = strrchr(name, '.'); | |
383 if (!ext) { | |
384 /* No file extension */ | |
385 return FALSE; | |
386 } | |
387 | |
388 if (g_strcasecmp(ext, ".jpg") != 0 && | |
389 g_strcasecmp(ext, ".jpeg") != 0 && | |
390 g_strcasecmp(ext, ".png") != 0) { | |
391 /* No recognized file extension */ | |
392 return FALSE; | |
393 } | |
394 | |
395 return cover_name_filter(name, cfg.cover_name_include, TRUE) && | |
396 !cover_name_filter(name, cfg.cover_name_exclude, FALSE); | |
397 } | |
398 | |
1371
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
399 gchar* |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
400 fileinfo_recursive_get_image(const gchar* path, gint depth) |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
401 { |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
402 GDir *d; |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
403 |
1429
a360afd8df52
[svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents:
1413
diff
changeset
|
404 if (cfg.recurse_for_cover && depth > cfg.recurse_for_cover_depth) |
1371
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
405 return NULL; |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
406 |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
407 d = g_dir_open(path, 0, NULL); |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
408 |
1306
d44e5df149dc
[svn] - not sure what all of that cur_dir stuff was, but I think somebody was smoking crack
nenolod
parents:
1304
diff
changeset
|
409 if (d) |
1303 | 410 { |
1306
d44e5df149dc
[svn] - not sure what all of that cur_dir stuff was, but I think somebody was smoking crack
nenolod
parents:
1304
diff
changeset
|
411 const gchar *f = g_dir_read_name(d); |
1371
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
412 |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
413 while (f) |
1306
d44e5df149dc
[svn] - not sure what all of that cur_dir stuff was, but I think somebody was smoking crack
nenolod
parents:
1304
diff
changeset
|
414 { |
1371
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
415 gchar *newpath = g_strdup_printf("%s/%s", path, f); |
1413 | 416 |
417 if (is_front_cover_image(f)) | |
1303 | 418 { |
1413 | 419 /* We found a suitable file in the current |
420 * directory, use that. The string will be | |
421 * freed by the caller */ | |
1371
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
422 return newpath; |
1303 | 423 } |
1306
d44e5df149dc
[svn] - not sure what all of that cur_dir stuff was, but I think somebody was smoking crack
nenolod
parents:
1304
diff
changeset
|
424 else |
d44e5df149dc
[svn] - not sure what all of that cur_dir stuff was, but I think somebody was smoking crack
nenolod
parents:
1304
diff
changeset
|
425 { |
1429
a360afd8df52
[svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents:
1413
diff
changeset
|
426 f = g_dir_read_name(d); |
a360afd8df52
[svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents:
1413
diff
changeset
|
427 if (cfg.recurse_for_cover) |
1371
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
428 { |
1429
a360afd8df52
[svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents:
1413
diff
changeset
|
429 /* File/directory wasn't suitable, try and recurse into it. |
a360afd8df52
[svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents:
1413
diff
changeset
|
430 * This should either return a filename for a image file, |
a360afd8df52
[svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents:
1413
diff
changeset
|
431 * or NULL if there was no suitable file, or 'f' wasn't a dir. |
a360afd8df52
[svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents:
1413
diff
changeset
|
432 */ |
a360afd8df52
[svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents:
1413
diff
changeset
|
433 gchar *tmp = fileinfo_recursive_get_image(newpath, depth+1); |
a360afd8df52
[svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents:
1413
diff
changeset
|
434 |
a360afd8df52
[svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents:
1413
diff
changeset
|
435 if(tmp) |
a360afd8df52
[svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents:
1413
diff
changeset
|
436 { |
a360afd8df52
[svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents:
1413
diff
changeset
|
437 g_free(newpath); |
a360afd8df52
[svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents:
1413
diff
changeset
|
438 return tmp; |
a360afd8df52
[svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents:
1413
diff
changeset
|
439 } |
1371
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
440 } |
1306
d44e5df149dc
[svn] - not sure what all of that cur_dir stuff was, but I think somebody was smoking crack
nenolod
parents:
1304
diff
changeset
|
441 } |
1303 | 442 } |
1371
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
443 |
1306
d44e5df149dc
[svn] - not sure what all of that cur_dir stuff was, but I think somebody was smoking crack
nenolod
parents:
1304
diff
changeset
|
444 g_dir_close(d); |
1296 | 445 } |
1371
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
446 |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
447 return NULL; |
1262 | 448 } |
1267 | 449 |
450 void | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
451 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
|
452 { |
1296 | 453 gchar *tmp; |
1312 | 454 gint x, y, x_off = 3, y_off = 3, h, w; |
1296 | 455 |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
456 if (tuple == NULL) |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
457 return; |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
458 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
459 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
|
460 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
461 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
|
462 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
|
463 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
|
464 filepopup_entry_set_text("label_genre", tuple->genre); |
1309
816ea8bbde1c
[svn] - if tuple->length == -1 then don't show a length
nenolod
parents:
1307
diff
changeset
|
465 |
816ea8bbde1c
[svn] - if tuple->length == -1 then don't show a length
nenolod
parents:
1307
diff
changeset
|
466 if (tuple->length != -1) |
816ea8bbde1c
[svn] - if tuple->length == -1 then don't show a length
nenolod
parents:
1307
diff
changeset
|
467 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
|
468 |
e778f43a74fb
[svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents:
1286
diff
changeset
|
469 if (tuple->year != 0) |
e778f43a74fb
[svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents:
1286
diff
changeset
|
470 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
|
471 |
e778f43a74fb
[svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents:
1286
diff
changeset
|
472 if (tuple->track_number != 0) |
e778f43a74fb
[svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents:
1286
diff
changeset
|
473 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
|
474 |
1371
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
475 tmp = fileinfo_recursive_get_image(tuple->file_path, 0); |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
476 |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
477 if(tmp) |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
478 { |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
479 filepopup_entry_set_image("image_artwork", tmp); |
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
480 g_free(tmp); |
1296 | 481 } |
1371
ca4f3115d33c
[svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents:
1358
diff
changeset
|
482 |
1312 | 483 gdk_window_get_pointer(NULL, &x, &y, NULL); |
484 gtk_window_get_size(GTK_WINDOW(filepopup_win), &w, &h); | |
485 if (gdk_screen_width()-(w+3) < x) x_off = (w*-1)-3; | |
486 if (gdk_screen_height()-(h+3) < y) y_off = (h*-1)-3; | |
487 gtk_window_move(GTK_WINDOW(filepopup_win), x + x_off, y + y_off); | |
488 | |
1283
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
489 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
|
490 } |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
491 |
19b1d3f22e10
[svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents:
1270
diff
changeset
|
492 void |
1269 | 493 fileinfo_show_for_path(gchar *path) |
1267 | 494 { |
495 TitleInput *tuple = input_get_song_tuple(path); | |
496 | |
497 if (tuple == NULL) | |
1268 | 498 return input_file_info_box(path); |
1267 | 499 |
500 fileinfo_show_for_tuple(tuple); | |
501 | |
502 bmp_title_input_free(tuple); | |
503 } |