#ifndef MMYTH_UI_H_
#define MMYTH_UI_H_

#include <gtk/gtk.h>
#include <gst/gst.h>

#include "config.h"

#ifdef MAEMO_PLATFORM
#include "hildon-widgets/hildon-program.h"
#include "hildon-widgets/hildon-window.h"
#endif

#include "mmyth_uicommon.h"
#include "mmyth_recordui.h"
#include "mmyth_schedulerui.h"
#include "mmyth_tvplayer.h"

/*
 * GMyth specific includes 
 */
#include <gmyth/gmyth_backendinfo.h>

typedef struct _MMythUi {

    /*
     * The main application window 
     */
    GtkWidget      *main_window;
    MMythUiCommon  *current_uicommon;

    /*
     * Main widget components 
     */
    GtkWidget      *main_hbox;
    GtkWidget      *video_alignment;
    GdkPixbuf      *logo;

    /*
     * Main widgets grouping 
     */
    MMythUiCommon  *main_uicommon;
    MMythUiCommon  *video_uicommon;
    MMythUiCommon  *epg_grid_uicommon;
    MMythUiCommon  *record_uicommon;
    MMythUiCommon  *schedule_uicommon;

    GMythBackendInfo *backend_info;

    GtkWidget      *videow;
    int             idle_id;
    // GstTagList *tagcache;

    MMythRecordUI  *mmyth_recordui;
    MMythSchedulerUI *mmyth_schedulerui;

#ifdef MAEMO_PLATFORM
    HildonProgram  *program;
    GtkMenu        *main_menu;
    GtkWidget      *menu_setup;
#endif

    MMythTVPlayer  *tvplayer;

} MMythUi;

GdkPixbuf      *icon_sports,
               *icon_news,
               *icon_movies,
               *icon_shows;
GdkColor        main_bg_color;

void            mmyth_set_main_widget(MMythUi * mmyth_ui,
                                      MMythUiCommon * new_ui);
// void mmyth_play_selected(GtkButton * button, gpointer user_data);

#ifdef MAEMO_PLATFORM
MMythUi        *mmyth_ui_initialize(HildonProgram * program,
                                    GtkWidget * main_window);
#else
MMythUi        *mmyth_ui_initialize(GtkWidget * main_window);
#endif

void            mmyth_ui_finalize(MMythUi * mmyth_ui);

void            mmyth_ui_set_widget(MMythUi * mmyth_ui,
                                    MMythUiCommon * new_uicommon);

GtkWidget      *mmyth_ui_get_video_widget(MMythUi * mmyth_ui);

#endif                          /* MMYTH_UI_H_ */