Autore: Fabio Di Matteo
Ultima revisione: 21/10/2011
WebKitGTK+ e' il porting sulle Gtk+ del famoso motore di rendering Webkite grazie ad esso vedremo come realizzare velocemente un semplice Browser per web.
Ecco il risultato:
Il codice sottostante altro non fa che visualizzare una finestra contenenteo una pagina web grazie a webkit. La finestra viene realizzata grazie alle librerie Gtk+ .
microb.c
#include <webkit/webkit.h> #include <JavaScriptCore/JavaScript.h> int main (int argc, gchar* argv[]) { //Gli oggetti della nostra gui GtkWidget* window; GtkWidget* vbox; GtkWidget* scrolled; //L'area che usera' webkit per il rendering GtkWidget* web_view; //Inizializzo i thread di gtk if (!g_thread_supported ()) g_thread_init (NULL); gtk_init_check (&argc, &argv); //Creo la finestra, gli assegno un titolo, dimenzioni e associo la //chiusura della finestra con la callback per l'uscita dal programma window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Micro Browser"); gtk_window_set_default_size (GTK_WINDOW (window), 1000, 800); g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); //Aggiungo un contenitore alla finestra vbox = gtk_vbox_new (FALSE, 4); gtk_container_add (GTK_CONTAINER (window), vbox); //Aggiungo il widget "gtk_scrolled_window_new" che permette di aggiungere //le scrollbar alla finestra principale se il contenuto lo richiede scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), scrolled, TRUE, TRUE, 0); //Inizializzo webkit creando l'area che fara il rendering delle pagine web_view = webkit_web_view_new (); //Fisso webkit al nostro "gtk_scrolled_window_new" gtk_container_add (GTK_CONTAINER (scrolled), web_view); //Instanzio un puntatore per la richiesta di rete con l'uri WebKitNetworkRequest *myNetworkRequest= webkit_network_request_new ("https://www.freemedialab.org"); //Lancio la richiesta di rete a webkit webkit_web_view_load_request(WEBKIT_WEB_VIEW (web_view), myNetworkRequest ); //Mostro tutto avviando il ciclo principale delle Gtk gtk_widget_show_all (window); gtk_main (); return 0; }
Per compilare il progetto basta dare il seguente comando (assicurandosi di avere installato i runtime e i pacchetti di sviluppo delle librerie Gtk+ e WebKitGTK+) :
gcc microb.c -o microb `pkg-config --cflags --libs webkitgtk-3.0` -Wall -O1 -g
Oppure servirsi di questo Makefile
CPP = gcc OPTS = `pkg-config --cflags --libs webkitgtk-3.0` -Wall -O1 -g all: $(CPP) microb.c -o microb $(OPTS) clean: rm microb
Il nostro wiki installa solamente cookie tecnici necessari al funzionamento della piattaforma "Dokuwiki". Niente analitics, statistiche, tracciamenti o altro.