diff -r c88244670b08 -r 800e6485ad15 maemo-ui/src/mmyth_epg_grid_view.c --- a/maemo-ui/src/mmyth_epg_grid_view.c Fri Jan 05 19:27:27 2007 +0000 +++ b/maemo-ui/src/mmyth_epg_grid_view.c Tue Jul 03 21:26:55 2007 +0100 @@ -7,7 +7,9 @@ #include "mmyth_epg_grid_view.h" #include "mmyth_epg_grid_widget.h" -/* Service genre */ +/* + * Service genre + */ #define GENRE_MIN 0 #define GENRE_MAX 10 #define GENRE_UNDEFINED 0 @@ -24,190 +26,218 @@ #define NRO_HOURS 3 -/* Function prototypes*/ -static void update_service_details(MMythEpgGridWidget *object, - gpointer arg1, gpointer user_data); -static gboolean key_press_epg_grid_view(GtkWidget * widget, - GdkEventKey * event, +/* + * Function prototypes + */ +static void update_service_details(MMythEpgGridWidget * object, + gpointer arg1, gpointer user_data); +static gboolean key_press_epg_grid_view(GtkWidget * widget, + GdkEventKey * event, gpointer user_data); static GtkWidget *mmyth_epg_grid_widget = NULL; -/* is a GtkEventBox */ +/* + * is a GtkEventBox + */ static GtkWidget *program_details_area = NULL; static GtkWidget *details_main_hbox = NULL; static GtkWidget *details_vbox = NULL; static GtkWidget *details_logo_vbox = NULL; -/* update signal callback from MMythEpgGridWidget */ +/* + * update signal callback from MMythEpgGridWidget + */ static void -update_service_details(MMythEpgGridWidget *object, gpointer arg1, gpointer user_data) +update_service_details(MMythEpgGridWidget * object, gpointer arg1, + gpointer user_data) { - g_return_if_fail(arg1 != NULL); + g_return_if_fail(arg1 != NULL); - EpgGridItem *epg_grid_item = (EpgGridItem *) arg1; - - gchar sel_prog_desc[100] = ""; - gchar time_buffer[50]; + EpgGridItem *epg_grid_item = (EpgGridItem *) arg1; - /* FIXME: get first content from content_list*/ - GMythProgramInfo *proginfo = (GMythProgramInfo *) epg_grid_item->proginfo; + gchar sel_prog_desc[100] = ""; + gchar time_buffer[50]; - if(proginfo) { - GString *prog_name = proginfo->title; - GString *service_name = proginfo->chanid; - - if(details_vbox != NULL) - gtk_container_remove (GTK_CONTAINER (details_main_hbox), details_vbox); - - /* update service description */ + /* + * FIXME: get first content from content_list + */ + GMythProgramInfo *proginfo = + (GMythProgramInfo *) epg_grid_item->proginfo; + + if (proginfo) { + GString *prog_name = proginfo->title; + GString *service_name = proginfo->chanid; + + if (details_vbox != NULL) + gtk_container_remove(GTK_CONTAINER(details_main_hbox), + details_vbox); + + /* + * update service description + */ strcat(sel_prog_desc, service_name->str); strcat(sel_prog_desc, ""); - - GtkWidget *fst_line_lbl = gtk_label_new(NULL); - gtk_misc_set_alignment (GTK_MISC(fst_line_lbl), 0.0, 0.0); - gtk_label_set_markup(GTK_LABEL(fst_line_lbl), sel_prog_desc); - /* freeing char[] */ + GtkWidget *fst_line_lbl = gtk_label_new(NULL); + gtk_misc_set_alignment(GTK_MISC(fst_line_lbl), 0.0, 0.0); + gtk_label_set_markup(GTK_LABEL(fst_line_lbl), sel_prog_desc); + + /* + * freeing char[] + */ sel_prog_desc[0] = 0; strcat(sel_prog_desc, "\t"); - strcat(sel_prog_desc, prog_name->str); - - struct tm loctime_start, loctime_end; - + strcat(sel_prog_desc, prog_name->str); + + struct tm loctime_start, + loctime_end; + // Convert it to local time representation. - /* FIXME: conversion from time to localtime is different - in different machines */ - long int schedule_start_time = proginfo->startts->tv_sec; - long int schedule_end_time = proginfo->endts->tv_sec; - + /* + * FIXME: conversion from time to localtime is different in + * different machines + */ + long int schedule_start_time = proginfo->startts->tv_sec; + long int schedule_end_time = proginfo->endts->tv_sec; + if (localtime_r(&schedule_start_time, &loctime_start) == NULL) { - g_warning ("localtime_r error in mmyth_epg_grid_view!\n"); + g_warning("localtime_r error in mmyth_epg_grid_view!\n"); } - - #if 0 - fprintf (stderr, asctime (loctime_start)); - #endif - - strftime (time_buffer, 100, " %H:%M - ", &loctime_start); - strcat(sel_prog_desc, time_buffer ); - +#if 0 + fprintf(stderr, asctime(loctime_start)); +#endif + + strftime(time_buffer, 100, " %H:%M - ", &loctime_start); + strcat(sel_prog_desc, time_buffer); + if (localtime_r(&schedule_end_time, &loctime_end) == NULL) { - g_warning ("localtime_r error in mmyth_epg_grid_view!\n"); + g_warning("localtime_r error in mmyth_epg_grid_view!\n"); } +#if 0 + fprintf(stderr, asctime(loctime_end)); +#endif - #if 0 - fprintf (stderr, asctime (loctime_end)); - #endif - - strftime (time_buffer, 100, "%H:%M\n", &loctime_end); - strcat(sel_prog_desc, time_buffer ); - - GtkWidget *snd_line_lbl = gtk_label_new(NULL); - gtk_misc_set_alignment (GTK_MISC(snd_line_lbl), 0.0, 0.0); - gtk_label_set_markup(GTK_LABEL(snd_line_lbl), sel_prog_desc); - + strftime(time_buffer, 100, "%H:%M\n", &loctime_end); + strcat(sel_prog_desc, time_buffer); + + GtkWidget *snd_line_lbl = gtk_label_new(NULL); + gtk_misc_set_alignment(GTK_MISC(snd_line_lbl), 0.0, 0.0); + gtk_label_set_markup(GTK_LABEL(snd_line_lbl), sel_prog_desc); + // add the current selected program description to the label details_vbox = gtk_vbox_new(FALSE, 0); - GtkWidget *fst_line_hbox = gtk_hbox_new(FALSE, 0); - - gtk_box_pack_start (GTK_BOX (fst_line_hbox), - fst_line_lbl, FALSE, FALSE, 6); - gtk_box_pack_start (GTK_BOX (details_vbox), - fst_line_hbox, FALSE, FALSE, 0); - gtk_box_pack_start (GTK_BOX (details_vbox), - snd_line_lbl, FALSE, FALSE, 0); - gtk_box_pack_start (GTK_BOX (details_main_hbox), - details_vbox, FALSE, FALSE, 0); - + GtkWidget *fst_line_hbox = gtk_hbox_new(FALSE, 0); + + gtk_box_pack_start(GTK_BOX(fst_line_hbox), + fst_line_lbl, FALSE, FALSE, 6); + gtk_box_pack_start(GTK_BOX(details_vbox), + fst_line_hbox, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(details_vbox), + snd_line_lbl, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(details_main_hbox), + details_vbox, FALSE, FALSE, 0); + gtk_widget_show_all(details_main_hbox); - } + } } -/* Callback for hardware keys */ -static gboolean -key_press_epg_grid_view(GtkWidget * widget, +/* + * Callback for hardware keys + */ +static gboolean +key_press_epg_grid_view(GtkWidget * widget, GdkEventKey * event, gpointer user_data) { - MMythEpgGridWidget *mmyth_epg_grid_widget = (MMythEpgGridWidget *) user_data; + MMythEpgGridWidget *mmyth_epg_grid_widget = + (MMythEpgGridWidget *) user_data; - return mmyth_epg_grid_widget_key_press(mmyth_epg_grid_widget, widget, event); + return mmyth_epg_grid_widget_key_press(mmyth_epg_grid_widget, widget, + event); } -GtkWidget * -epg_grid_view_new (MMythUi* mmyth_ui) +GtkWidget * +epg_grid_view_new(MMythUi * mmyth_ui) { - GtkWidget *scrolled_window; - scrolled_window = gtk_scrolled_window_new (NULL, NULL); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), - GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); - - gtk_widget_modify_bg(scrolled_window, GTK_STATE_NORMAL, &main_bg_color); - - GtkWidget *main_vbox = gtk_vbox_new (FALSE, 0); - //gtk_container_set_border_width(main_vbox, 4); - - GtkWidget *details_event_box = gtk_event_box_new(); - gtk_widget_modify_bg(details_event_box, GTK_STATE_NORMAL, &main_bg_color); - - program_details_area = gtk_vbox_new (FALSE, 0); - gtk_container_add (GTK_CONTAINER (details_event_box), - program_details_area); - gtk_container_set_border_width(GTK_CONTAINER (program_details_area), 4); + GtkWidget *scrolled_window; + scrolled_window = gtk_scrolled_window_new(NULL, NULL); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), + GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); - details_main_hbox = gtk_hbox_new (FALSE, 10); + gtk_widget_modify_bg(scrolled_window, GTK_STATE_NORMAL, + &main_bg_color); - gtk_box_pack_start (GTK_BOX (program_details_area), - details_main_hbox, FALSE, FALSE, 0); - - details_logo_vbox = gtk_vbox_new (FALSE, 0); - - GtkWidget *details_desc_vbox = gtk_vbox_new (FALSE, 0); + GtkWidget *main_vbox = gtk_vbox_new(FALSE, 0); + // gtk_container_set_border_width(main_vbox, 4); - gtk_box_pack_start (GTK_BOX (details_main_hbox), - details_desc_vbox, FALSE, FALSE, 0); - gtk_box_pack_start (GTK_BOX (details_main_hbox), - details_logo_vbox, FALSE, FALSE, 0); - - gtk_widget_set_size_request (program_details_area, -1, 120); - + GtkWidget *details_event_box = gtk_event_box_new(); + gtk_widget_modify_bg(details_event_box, GTK_STATE_NORMAL, + &main_bg_color); + + program_details_area = gtk_vbox_new(FALSE, 0); + gtk_container_add(GTK_CONTAINER(details_event_box), + program_details_area); + gtk_container_set_border_width(GTK_CONTAINER(program_details_area), 4); + + details_main_hbox = gtk_hbox_new(FALSE, 10); + + gtk_box_pack_start(GTK_BOX(program_details_area), + details_main_hbox, FALSE, FALSE, 0); + + details_logo_vbox = gtk_vbox_new(FALSE, 0); + + GtkWidget *details_desc_vbox = gtk_vbox_new(FALSE, 0); + + gtk_box_pack_start(GTK_BOX(details_main_hbox), + details_desc_vbox, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(details_main_hbox), + details_logo_vbox, FALSE, FALSE, 0); + + gtk_widget_set_size_request(program_details_area, -1, 120); + mmyth_epg_grid_widget = mmyth_epg_grid_widget_new(); - g_signal_connect(mmyth_epg_grid_widget, "selection_updated", - G_CALLBACK (update_service_details), NULL); + g_signal_connect(mmyth_epg_grid_widget, "selection_updated", + G_CALLBACK(update_service_details), NULL); - /* select by default the first service */ - /* depends on mount services */ + /* + * select by default the first service + */ + /* + * depends on mount services + */ if (MMYTH_EPG_GRID_WIDGET(mmyth_epg_grid_widget)->epg_view_model) { - GList *fst_service = (GList *) - MMYTH_EPG_GRID_WIDGET(mmyth_epg_grid_widget)->epg_view_model->data; - mmyth_epg_grid_widget_update_service(MMYTH_EPG_GRID_WIDGET(mmyth_epg_grid_widget), - fst_service); + GList *fst_service = (GList *) + MMYTH_EPG_GRID_WIDGET(mmyth_epg_grid_widget)->epg_view_model-> + data; + mmyth_epg_grid_widget_update_service(MMYTH_EPG_GRID_WIDGET + (mmyth_epg_grid_widget), + fst_service); } - - gtk_box_pack_start (GTK_BOX (main_vbox), - details_event_box, FALSE, FALSE, 0); - gtk_box_pack_start (GTK_BOX (main_vbox), - gtk_hseparator_new(), FALSE, FALSE, 0); - gtk_box_pack_start (GTK_BOX (main_vbox), - mmyth_epg_grid_widget, FALSE, FALSE, 0); - gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), - main_vbox); - - /* Add hardware button listener to application */ - g_signal_connect(mmyth_ui->main_window, "key_press_event", - G_CALLBACK (key_press_epg_grid_view), mmyth_epg_grid_widget); + gtk_box_pack_start(GTK_BOX(main_vbox), + details_event_box, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(main_vbox), + gtk_hseparator_new(), FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(main_vbox), + mmyth_epg_grid_widget, FALSE, FALSE, 0); - gtk_widget_show_all (scrolled_window); - + gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW + (scrolled_window), main_vbox); + + /* + * Add hardware button listener to application + */ + g_signal_connect(mmyth_ui->main_window, "key_press_event", + G_CALLBACK(key_press_epg_grid_view), + mmyth_epg_grid_widget); + + gtk_widget_show_all(scrolled_window); + return scrolled_window; } /* -DVBHScheduleEvent * -mmyth_epg_grid_view_get_selected_schedule() -{ - return mmyth_epg_grid_get_selected_schedule - (MMYTH_EPG_GRID_WIDGET(mmyth_epg_grid_widget)); -} -*/ + * DVBHScheduleEvent * mmyth_epg_grid_view_get_selected_schedule() { + * return mmyth_epg_grid_get_selected_schedule + * (MMYTH_EPG_GRID_WIDGET(mmyth_epg_grid_widget)); } + */