#include <gtk/gtk.h>
#include <stdio.h>      /* standard I/O                */
#include <stdlib.h>     /* for exit   - 1 occurrence   */
#include <unistd.h>
#include <string.h>


//int ge0,ge1,lsgfx,lsmem,lsalu,lsfpu,lscomp,lscompress,lsmedia;
//double x;
FILE *fp;
//gchar *str1, *str2;

static gboolean delete_event( GtkWidget *widget,
                              GdkEvent  *event,
                              gpointer   data )
{
    gtk_main_quit ();
    return FALSE;
}

int main( int   argc,
          char *argv[] )
{
    GtkWidget *window;
    GtkWidget *button;
    GtkWidget *table;
    GtkWidget *view;
    GtkTextBuffer *buffer;	

	gtk_init (&argc, &argv);
	window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title (GTK_WINDOW (window), "lsbench benchmark results");

	g_signal_connect (G_OBJECT (window), "delete_event",
		      G_CALLBACK (delete_event), NULL);
	gtk_container_set_border_width (GTK_CONTAINER (window), 10);
	table = gtk_table_new (2, 10, FALSE);

	gtk_container_add (GTK_CONTAINER (window), table);

    gchar str0[25]="Results from last runs:";
    gchar str1[20];
    gchar str01[30]="Memory Index:             ";
    gchar str02[30]="ALU Index:                   ";
    gchar str03[30]="FPU Index:                   ";   
    gchar str04[30]="Compile Index:            ";
    gchar str05[30]="Compression Index:    ";
    gchar str06[30]="Media Index:               ";
    gchar str07[4]="";
    gchar str08[25]="Reopen window to refresh!";

	view = gtk_text_view_new ();
	buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
	gtk_text_buffer_set_text (buffer,str0, -1);
	gtk_table_attach_defaults (GTK_TABLE (table), view, 0, 1, 0, 1);
	gtk_widget_show (view);

        view = gtk_text_view_new ();
        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
        gtk_text_buffer_set_text (buffer,str1, -1);
        gtk_table_attach_defaults (GTK_TABLE (table), view, 0, 1, 1, 2);
        gtk_widget_show (view);


	view = gtk_text_view_new ();
	buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
        fp=fopen("memdir/lsmem.log", "r");
        fscanf(fp, "%s", str1);
        fclose(fp);
	strcat(str01, str1);
	gtk_text_buffer_set_text (buffer,str01, -1);
	gtk_table_attach_defaults (GTK_TABLE (table), view, 0, 1, 2, 3);
 	gtk_widget_show (view);

        view = gtk_text_view_new ();
        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
	fp=fopen("aludir/lsalu.log", "r");
        fscanf(fp, "%s", str1);
        fclose(fp);
	strcat(str02, str1);
        gtk_text_buffer_set_text (buffer,str02, -2);
        gtk_table_attach_defaults (GTK_TABLE (table), view, 0, 1, 3, 4);
	gtk_widget_show (view);

        view = gtk_text_view_new ();
        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
        fp=fopen("fpudir/lsfpu.log", "r");  
        fscanf(fp, "%s", str1);  
        fclose(fp);
	strcat(str03, str1);  
        gtk_text_buffer_set_text (buffer,str03, -1);
        gtk_table_attach_defaults (GTK_TABLE (table), view, 0, 1, 4, 5);
	gtk_widget_show (view);

        view = gtk_text_view_new ();
        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
        fp=fopen("compiledir/lscompile.log", "r");
        fscanf(fp, "%s", str1);
        fclose(fp);
	strcat(str04, str1);
        gtk_text_buffer_set_text (buffer,str04, -1);
        gtk_table_attach_defaults (GTK_TABLE (table), view, 0, 1, 5, 6);
	gtk_widget_show (view);
        
	view = gtk_text_view_new ();
        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
        fp=fopen("compressiondir/lscompress.log", "r");
        fscanf(fp, "%s", str1);
        fclose(fp);
	strcat(str05, str1);
        gtk_text_buffer_set_text (buffer,str05, -1);
        gtk_table_attach_defaults (GTK_TABLE (table), view, 0, 1, 6, 7);
	gtk_widget_show (view);
        
	view = gtk_text_view_new ();
        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
        fp=fopen("mediadir/lsmedia.log", "r");
        fscanf(fp, "%s", str1);
        fclose(fp);
	strcat(str06, str1);
        gtk_text_buffer_set_text (buffer,str06, -1);
        gtk_table_attach_defaults (GTK_TABLE (table), view, 0, 1, 7, 8);
	gtk_widget_show (view);

        view = gtk_text_view_new ();
        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
        gtk_text_buffer_set_text (buffer,str07, -1);
        gtk_table_attach_defaults (GTK_TABLE (table), view, 0, 1, 8, 9);
        gtk_widget_show (view);


        view = gtk_text_view_new ();
        buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
        gtk_text_buffer_set_text (buffer,str08, -1);
        gtk_table_attach_defaults (GTK_TABLE (table), view, 0, 1, 9, 10);
        gtk_widget_show (view);



    button = gtk_button_new_with_label ("close");
    g_signal_connect_swapped (G_OBJECT (button), "clicked",
                              G_CALLBACK (delete_event),
                              G_OBJECT (window));
	gtk_table_attach_defaults (GTK_TABLE (table), button, 0, 1, 10, 11);
    gtk_widget_show (button);

    gtk_widget_show (table);

    gtk_widget_show (window);
    
    /* Rest in gtk_main and wait for the fun to begin! */
    gtk_main ();

    return 0;
}
