Ruby/GtkEmbedMoz--これは、Ruby/GtkEmbedMoz プロジェクトで開発されているモジュールに、 skipstone,Galeonのソースコードから適当な関数を見付けて付け加えたものです。 自分の使いたい機能を実現することを優先しているため変更が汚く、仕様も定まって いないのでこのモジュールをそのまま使うのは控えた方が良いかもしれませんが、 このようなことがrubyでできると言う参考にしてもらえるとありがたいと思っています。
Unix環境などで、gtk+を用いたMozillaが必要です。コンパイラのバージョンなどに よって動作する/しないが変わってくる(可能性がある)ので、できるだけ自分で ビルドしたものを使うことをお薦めします。Mozilla 1.0での動作は確認していません。
1.6より前のバージョンでの動作は確認していません。
Mozillaがgtk+1、gtk+2のどちらでコンパイルされているかによって決まります。 2002/12/29現在では、gtk+2でコンパイルされたバイナリは公式には出回っていません。
作者は
の環境で動作を確認しています。
最新版は20030315です。
Mozillaの開発用のヘッダをインストールします。rpmを使う場合は、
パッケージが必要になります。
環境変数 LD_LIBRARY_PATH に mozilla のインストールされているディレクトリを 指定します。(これがないとうまくコンパイルできない場合があるようです。)
例えば
% export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/mozilla-x.y.z
とします。
extconf.rbを実行してMakefileを作成します。
% ruby extconf.rb --with-mozilla-include-dir=wwww --with-mozilla-lib-dir=xxxx --with-ruby-glib-src-dir=yyyy --with-ruby-gtk-src-dir=zzzz
各オプションは次のような意味を持ちます。
Mozillaのヘッダファイルがあるディレクトリを指定します。
Mozillaの共有ライブラリファイルがあるディレクトリを指定します。
gtk2を使う場合に, ruby-gtk2のソースコードを展開したディレクトリ中の glibディレクトリの位置を指定します。
ruby-gnome(またはruby-gtk2)のソースコードを展開したディレクトリ中の gtkディレクトリの位置を指定します。
ruby-gtk2を使ってコンパイルをします。
例えば、次のようにオプションを指定します。
% ruby extconf.rb --with-mozilla-include-dir=/usr/include/mozilla-1.2.1/ --with-mozilla-lib-dir=/usr/lib/mozilla-1.2.1/ --with-ruby-glib-src-dir=../ruby-gnome-all-0.30/gtk/src/ --with-ruby-gtk-src-dir=../ruby-gnome-all-0.30/gtk/src/
makeコマンドを用いてコンパイルおよびインストールを行います。% make % su --rootになる-- # make install
テストプログラムを実行するには、環境変数LD_PRELOADを設定する必要があります。
% export LD_PRELOAD=libpthread.so #bash他の場合 % setenv LD_PRELOAD libpthread.so #tcshの場合
sampleディレクトリにあるtest.rbを実行します。引数に適当な
URLを指定しないとエラーになるので気をつけて下さい。
% test.rb http://www.yahoo.com/
これでyahooのサイトが表示されれば成功です。
GtkMozEmbedのdom_key_pressイベントが起こった場合にイテレータを評価し
ます。単純にsignal_connectしたのではイベントのkey, modなどの値を直接求める
ことができないのでこのようなメソッドを用います。
GtkMozEmbedのdom_key_pressイベントが起こった場合にイテレータを評価します。
このメソッドもGtk::EmbedMoz.dom_key_pressと同じ理由で追加されています。
GtkMozEmbedのnew_windowイベントが起こった場合にイテレータを評価し
ます。イテレータの返した値を新しく生成されたWindowとして扱います。
pref_nameで指定された設定項目に、valueで指定された値をセットします。
pref_nameで指定された設定項目の値を整数値として取得します。
pref_nameで指定された設定項目の値をBool値として取得します。
pref_nameで指定された設定項目の値を文字列として取得します。
変更のあった設定項目をprefs.jsファイルに書き込みます。
表示領域をlines行だけ上側にスクロールします。
表示領域をlines行だけ下側にスクロールします。
表示領域を水平方向にwピクセル,垂直方向にhピクセル分だけスクロールします。
ドキュメント内の文字列を検索します。
Gtk+2.0でのコンパイル
ruby-gtk2モジュールを使ってコンパイルできるようにしました。
もともとlbで使うために拡張したモジュールなので、 もし使うのであればそちらを使ってやって下さい。
これ以上機能を追加してもforkしたプロジェクトがたくさんできるだけになってしまうので特に予定はありません。本家のプロジェクトに協力してください。
参照元のソースコードのライセンスに従ってGPLで配布します。