自作PCの状況&WebKitライブラリの試食

以前のエントリで紹介したPCですが、リビング動画閲覧用&リモート(VNC)開発環境になってきました。
これが今のデスクトップのスクリーンショットです。

構成としては、x86_64のUbuntu 9.10を入れて、最新のEclipse、CDT、VNCSMPlayerVLC等を入れてます。

Eclipseについて

Eclipseは主にC/C++開発環境として使おうと思います(Androidはそのうち)。EclipseCDTも正しくインストールすれば「Ctrl」+「Shift」+「F」でJavaのようにC/C++ソースコードも自動フォーマットしてくれるので便利です。
今の設定では「K&Rスタイル」に自動整形してくれる設定にしています。

Eclipse設定時のメモ(超簡易メモ、AndroidSDKのインストールは除外)

この環境でなんか開発してみよう(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というとAndroidiPhone用のライブラリと思われがちですが、通常のLinux(C/C++)でも簡単に利用できます。

参考コード

http://webkitgtk.org/gcds.c