#include <webkit/webkit.h>
static void destroy(GtkWidget *, gpointer);
static gboolean deleteEvent(GtkWidget*, GdkEvent*, gpointer);
static void scroll_child (GtkScrolledWindow *sw, GtkScrollType st, gboolean b, gpointer p);

int main(int argc , char ** argv)
{
    GtkWidget *window, *label, *webview;
    GtkWidget *scrolled;
    GtkWidget *vbox;
    GtkAdjustment  *vscroll;
    gdouble up, down ,ps, val;
    GtkRange *range;
    gchar *uri;
        // Initalize GTK+
    g_thread_init (NULL);
    gtk_init (&argc, &argv);

    if (argc == 1)
	{
       g_print("error : missing url!!!\n");
       return 1;
    } 
	else
       uri = argv[1];

    // create Window
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

    gtk_container_set_border_width(GTK_CONTAINER(window), 10);
    gtk_widget_set_size_request(window, 720, 576);
    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER_ALWAYS);

    scrolled = gtk_scrolled_window_new (NULL, NULL);
    gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled),
                                  GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);

    //create a webview
    webview = webkit_web_view_new();
    //
    webkit_web_view_load_uri(WEBKIT_WEB_VIEW (webview), uri);

    gtk_container_add (GTK_CONTAINER (scrolled), webview);

    gtk_container_add(GTK_CONTAINER(window), scrolled);

    range = GTK_RANGE(GTK_SCROLLED_WINDOW(scrolled)->vscrollbar);

    g_signal_connect(G_OBJECT(scrolled), "scroll-child", G_CALLBACK(scroll_child),NULL);
    g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(destroy),NULL);
    g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(deleteEvent),NULL);

    gtk_widget_show_all(window);

    gtk_main();
    return 0;
}


static void destroy(GtkWidget *w, gpointer data)
{
    gtk_main_quit();
}

static gboolean deleteEvent(GtkWidget* w, GdkEvent* e, gpointer data)
{
   return FALSE;
}
static void scroll_child (GtkScrolledWindow *sw, GtkScrollType st, gboolean b, gpointer p)
{
     GList *gl = gtk_container_get_children(GTK_CONTAINER(sw));

     WebKitWebView *wv =  WEBKIT_WEB_VIEW(gl->data);
     webkit_web_view_move_cursor(wv, GTK_MOVEMENT_PAGES, 1);
}
