自作PCの状況&WebKitライブラリの試食
以前のエントリで紹介したPCですが、リビング動画閲覧用&リモート(VNC)開発環境になってきました。
これが今のデスクトップのスクリーンショットです。
構成としては、x86_64のUbuntu 9.10を入れて、最新のEclipse、CDT、VNC、SMPlayer、VLC等を入れてます。
Eclipseについて
Eclipseは主にC/C++開発環境として使おうと思います(Androidはそのうち)。EclipseCDTも正しくインストールすれば「Ctrl」+「Shift」+「F」でJavaのようにC/C++のソースコードも自動フォーマットしてくれるので便利です。
今の設定では「K&Rスタイル」に自動整形してくれる設定にしています。
この環境でなんか開発してみよう(WebKitライブラリの試食)
今回はこの開発PCを使いブラウザのオープンソースライブラリ「libwebkit」を使って、特定のURLをフルスクリーンで表示するプログラムを作ってみようと思います。
libwebkit-1.0はUbuntuのリポジトリにあるのでaptで入ります。
GTKを使いますが、順序としてはGTKウインドウを作り、webkitオブジェクトをGTKウィジェットとして作成し、それをGTKウインドウに渡すだけでOKです。数十行のコードですが、各行の処理はコメントを見れば判ると思います。
/* * Webkitデモプログラム * ビルド方法 (Ubuntu 9.10) * sudo apt-get install build-essential libwebkit-dev libgtk2.0-dev * gcc -Wall -O1 -g -o wktest wktest.c `pkg-config --cflags --libs webkit-1.0` * */ #include// キーイベントハンドラ関数 void my_keyevent(GtkWidget *widget, GdkEvent *event, gpointer data) { GdkEventKey *kevent = (GdkEventKey *) event; if (kevent->keyval == 0xFF1B) { // ESCボタンを押されたら終了 gtk_main_quit(); } } // main関数 int main(int argc, gchar* argv[]) { GtkWidget* window; // メインウインドウ // GTKの初期化 if (!g_thread_supported()) g_thread_init(NULL); gtk_init_check(&argc, &argv); // GTKウインドウを作る window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW (window), "WebKitGTK+ Demo");// タイトルを設定 gtk_window_set_default_size(GTK_WINDOW (window), 640, 480);// デフォルトのサイズを設定 gtk_window_fullscreen(window);// GTKウインドウをフルスクリーン化 gtk_signal_connect(window, "key_press_event", my_keyevent, NULL);// キーイベント関数を登録する gtk_signal_connect(window, "destroy", gtk_main_quit, NULL);// 閉じるボタンを押したときはgtk_main_quitを実行して終了する // GTKウィジェット関連の登録 GtkWidget* vbox; GtkWidget* scrolled; GtkWidget* web_view; vbox = gtk_vbox_new(FALSE, 0); // vboxの作成 scrolled = gtk_scrolled_window_new(NULL, NULL); // スクロールの作成 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); web_view = webkit_web_view_new();// WebKitウィジェットの作成 gtk_container_add(GTK_CONTAINER (scrolled), web_view); webkit_web_view_open(web_view, "http://www.google.com/");// URLをセットする gtk_box_pack_start(GTK_BOX(vbox), scrolled, TRUE, TRUE, 0); // スクロールの登録 gtk_container_add(GTK_CONTAINER(window), vbox); // vboxの登録 // 全ウィジェットを可視化しGTKメイン関数に入る gtk_widget_show_all(window); gtk_main(); return 0; }
これを実行するとブラウザが全画面で起動します(終了はESC)
「これが俺のブラウザOSだ!」(JOJO4部仗助風)
WebKitというとAndroidやiPhone用のライブラリと思われがちですが、通常のLinux(C/C++)でも簡単に利用できます。