5 #include <webkit/webkit.h>
21 static void sn_create_gui(struct sn_app *app);
22 static void sn_init_defaults(struct sn_app *app);
23 static void sn_title_changed(GObject *obj, GParamSpec *pspec, gpointer app);
27 sn_create_gui(struct sn_app *app)
29 app->gui.window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
30 g_signal_connect(G_OBJECT(app->gui.window), "delete_event",
31 G_CALLBACK(gtk_main_quit), NULL);
32 g_signal_connect(G_OBJECT(app->gui.window), "destroy",
33 G_CALLBACK(gtk_main_quit), NULL);
34 gtk_window_set_has_resize_grip(GTK_WINDOW(app->gui.window), FALSE);
35 gtk_window_set_title(GTK_WINDOW(app->gui.window), "sn");
37 app->gui.web_view = webkit_web_view_new();
38 webkit_web_view_set_full_content_zoom(WEBKIT_WEB_VIEW(app->gui.web_view),
40 webkit_web_view_set_zoom_level(WEBKIT_WEB_VIEW(app->gui.web_view),
42 g_signal_connect(G_OBJECT(app->gui.web_view), "notify::title",
43 G_CALLBACK(sn_title_changed), app);
45 app->gui.scroll = gtk_scrolled_window_new(NULL, NULL);
47 gtk_container_add(GTK_CONTAINER(app->gui.scroll), app->gui.web_view);
48 gtk_container_add(GTK_CONTAINER(app->gui.window), app->gui.scroll);
50 gtk_widget_show_all(app->gui.window);
54 sn_init_defaults(struct sn_app *app)
56 app->global_zoom = 1.0;
60 sn_title_changed(GObject *obj, GParamSpec *pspec, gpointer data)
63 WebKitWebView *view = WEBKIT_WEB_VIEW(obj);
64 struct sn_app *app = data;
68 t = webkit_web_view_get_title(view);
69 gtk_window_set_title(GTK_WINDOW(app->gui.window), (t == NULL ? "sn" : t));
73 main(int argc, char **argv)
78 gtk_init(&argc, &argv);
79 sn_init_defaults(&app);
81 while ((opt = getopt(argc, argv, "z:")) != -1)
86 app.global_zoom = atof(optarg);
93 fprintf(stderr, "Usage: sn [OPTIONS] <URI>\n");
98 webkit_web_view_load_uri(WEBKIT_WEB_VIEW(app.gui.web_view), argv[optind]);