#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_ */