Scrolling Benchmark
- From: haithem rahmani <haithem rahmani gmail com>
- To: gtk-app-devel-list gnome org
- Subject: Scrolling Benchmark
- Date: Mon, 15 Mar 2010 16:31:08 +0100
Hi all,
I'm working on webkitGtk and I'm trying to benchmark web page scrolling
what I did is the following :
- created a webview and used the "webkit_web_view_load_uri" to load the
uri.
- inserted this webview object inside a scrolledwindow
- attached a "scroll-chid" callback to this scrolledwindow
- the scroll-child callback calls " webkit_web_view_move_cursor" to trigger
the page scrolling , well this what I understood
but this callback is not working.
any help please? here is the full dirty source code.
the code compiles and runs if someone can test to check that
the page does not get scrolled to the desired position.
thanks indeed for your help.
#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;
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);
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);
}
--
Say: He is God, the One and Only;
God, the Eternal, Absolute;
He begetteth not, nor is He begotten;
And there is none like unto Him.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]