GTKLauncherのコードを参考に作成。
コード:
#include <gtk/gtk.h>
#include <webkit/webkit.h>
#include <iostream>
static WebKitWebView* web_view;
static GtkWidget* create_browser()
{
GtkWidget* scrolled_window = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
web_view = WEBKIT_WEB_VIEW(webkit_web_view_new());
gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(web_view));
return scrolled_window;
}
static void destroy_cb(GtkWidget* widget, gpointer data)
{
gtk_main_quit();
}
static GtkWidget* create_window()
{
GtkWidget* window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
gtk_widget_set_name (window, "GtkLauncher");
g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (destroy_cb), NULL);
return window;
}
int main(int argc, char* argv[]){
//テスト出力
std::cout<< "START PROCESS" << std::endl;
//↓スタート
gtk_init(&argc, &argv);
GtkWidget* vbox = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox), create_browser(), TRUE, TRUE, 0);
GtkWidget* _main_window;
_main_window = create_window();
gtk_container_add(GTK_CONTAINER(_main_window),vbox);
webkit_web_view_open(web_view, "http://www.google.com/");
//↓おまじない**********************
gtk_widget_grab_focus(GTK_WIDGET(web_view));
gtk_widget_show_all(_main_window);
gtk_main();
//**********************************
return 0;
}
コンパイルする:
$ g++ -o brow brow.cc `pkg-config --cflags --libs gtk+-2.0` `pkg-config --cflags --libs webkit-1.0`
なんせこんなことしたの今回が初めてだからよく分からないが
error while loading shared libraries: libwebkit-1.0.so.1: cannot open shared object file: No such file or directory
こんなエラーが出た。
調べてみるとライブラリが認識されていないために起きるエラーらしい。そこで
$lfconfig$sudo ldconfig
を実行
再コンパイルしてみるとエラーは出なくなった。
出来たのはこんな感じ↓
…Javascriptも動くブラウザをこうも簡単に作れるのはすごい。感動した。