4 * Created on: 2009-10-12
7 #include <hildon/hildon.h>
8 #include "album_screen.h"
9 #include "jamendo_api.h"
10 #include "track_listview.h"
12 #include "http_utils.h"
14 GtkWidget* album_screen_new(Album* album) {
23 /* Create the main window */
24 win = hildon_stackable_window_new();
25 gtk_window_set_title(GTK_WINDOW(win), album->name);
26 hildon_gtk_window_set_progress_indicator(GTK_WINDOW(win),1);
28 while(gtk_events_pending()) gtk_main_iteration();
30 /* Setting a label in the new window */
31 label = gtk_label_new("");
32 gchar* markup = g_markup_printf_escaped("<span size='x-large'>%s</span>\n<span size='large'>%s</span>",album->name,album->artist_name);
33 gtk_label_set_markup(GTK_LABEL(label),markup);
36 gchar* image_name = album_get_image(album,200);
37 GdkPixbuf* pixbuf = http_get_image(image_name,200,-1);
39 image = gtk_image_new_from_pixbuf(pixbuf);
40 g_object_unref(pixbuf);
42 cover_box = gtk_vbox_new(FALSE, 0);
43 gtk_box_pack_start(GTK_BOX(cover_box), image, TRUE, TRUE, 0);
44 gtk_box_pack_start(GTK_BOX(cover_box), label, TRUE, TRUE, 0);
46 track_list = jamendo_get_album_tracks(album);
47 player_set_track_list(track_list);
48 treeview = track_listview_create(track_list, TRACK_LISTVIEW_NAME);
49 // track list not freed automatically as player uses it
50 //g_signal_connect_swapped(G_OBJECT(treeview), "destroy", G_CALLBACK(track_list_free), track_list);
52 track_box = hildon_pannable_area_new();
53 hildon_pannable_area_add_with_viewport(HILDON_PANNABLE_AREA(track_box), treeview);
55 GtkWidget* main_box = gtk_hbox_new(TRUE,0);
56 gtk_box_pack_start(GTK_BOX(main_box), cover_box, TRUE,TRUE,0);
57 gtk_box_pack_start(GTK_BOX(main_box), track_box, TRUE,TRUE,0);
58 gtk_container_add(GTK_CONTAINER(win), main_box);
61 hildon_gtk_window_set_progress_indicator(GTK_WINDOW(win),0);
63 hildon_program_add_window(hildon_program_get_instance(),HILDON_WINDOW(win));
65 gtk_widget_show(player_toolbar_create());