ruby-****@lists*****
ruby-****@lists*****
2003年 5月 19日 (月) 22:20:06 JST
------------------------- REMOTE_ADDR = 61.26.70.211 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/?%BD%F8%CA%B8 ------------------------- = 序文 GTK(GIMP Toolkit)はグラフィカルユーザインタフェースを作成するためのライブラリである。 GTKはLGPLに基いてライセンスされている。 そのため、GTKはオープンソフトウェア、フリーソフトウェアは勿論、商用のフリーでないソフトウェアの開発にも、ライセンスやロイヤリティに煩わされることなく利用できる。 GTKは元々General Image Manipulaton Program (GIMP)の開発用に作られたのでGIMP Toolkitと呼ばれている。 しかし、今ではGNU Network Object Model Environment (GNOME)を含む、たくさんのソフトウェアプロジェクトで使われている。 GTKはGDK(GIMP Drawing Kit)とgdk-pixbufの上に実装されている。 GDKは、基本的には、基礎となるウィンドウ関数(X Window systemではXLibにあたる)へアクセスする低レベル関数を包むラッパー(Wrapper)である。 gdk-pixbufはクライアントサイドの画像操作用ライブラリである。 GTKの最初の作者は以下のとおり。 * Peter Mattis ((<URL:mailto:petm****@xcf*****>)) * Spencer Kimball ((<URL:mailto:spenc****@xcf*****>)) * Josh MacDonald ((<URL:mailto:jmacd****@xcf*****>)) 現在のGTKのメンテナは以下のとおり. * Owen Taylor ((<URL:mailto:otayl****@redha*****>)) * Tim Janik ((<URL:mailto:timj****@gtk*****>)) GTKは本質的に、オブジェクト指向に基いたAPI(application programmers interface)である。 GTKは全てC言語で書かれているが、実装にはクラスやコールバック関数(関数へのポインタ)といったアイデアが使われている。 更に、Glibという第3のコンポーネントがある。 これは、標準的な関数呼び出しの代替機能をいくつか、それと連結リスト操作などの追加機能を提供している。 代替関数はGTKの可搬性を高めるために使われていて、g_strerror()のように、あるUNIXシステムでは韭標準であったり、使用できなかったりする関数を代替する。 また、デバッグ機能を持ったg_malloc()のように、libc版関数の機能を拡張するためにも使われている。 GLibバージョン2.0では,GTKのクラス階層の基礎となる型体系(type system)や,GTK全体で用いられているシグナルシステム,様々なプラットフォームで異なるネイティブスレッドAPIを抽象化するスレッドAPI,モジュールをロードするための機構が導入されました. 最後のコンポーネントはPangoです. GTKは国際化されたテキスト出力のためにPangoライブラリを用いています. このチュートリアルではGTKのRubyバインディング,Ruby/GTK2について紹介する。 他にも、C,C++, Guile, Perl, Python, TOM, Ada95, Object C, Free Pascal, Eiffel,Java,C#といった、沢山の言語に対するGTKバインディングが存在する。 Ruby以外の言語からGTKを使いたい場合は、先にこれらのバインディングのドキュメントを見てほしい。 ドキュメントによっては、重要な事(初心者がまず最初に学ぶべきこと)を、当然のように説明なしで書いているかもしれない。 その場合はこのドキュメントに戻って参照していただきたい。 また、wxWindowsやVのようなクロスプラットフォーム用APIもあり、対象プラットフォーム上でGTKを使うことができる。 繰り返しになるが、それぞれのドキュメントをまず調べてほしい。 このチュートリアルは出来るだけたくさんRuby/GTK2の機能を説明する事を目的としているが、まだまだ完璧とは言えない。 このチュートリアルでは読者がRubyをよく知っていて、Rubyのプログラムが書けることを前提にしている。 Xのプログラミング経験があれば、内容の理解に随分役に立つだろうが、必ずしも必要ではない。 もし、初めてのウィジェットセットとしてGTKを学ぶなら、是非このチュートリアルを見つけた経緯や、これを読んでどんな問題があったかをコメントしてほしい。 GTKには他にもC++、Objective C, ADA, Guileや他の言語へのバインディングもあるが、ここでは言及しない。 このドキュメントは「作成中」である。 このドキュメントでGTKを学ぶ際にぶつかった問題については、こちらまでご連絡頂けると幸いである。 また、チュートリアルの改良案も歓迎する。 詳しくは((<寄稿>))を参照していただきたい。 ------------------------- = 序文 == GTKについて GTK(GIMP Toolkit)はグラフィカルユーザインタフェースを作成するためのライブラリである. GTKはLGPLに基いてライセンスされている. そのため,GTKはオープンソフトウェア,フリーソフトウェアは勿論,商用のフリーでないソフトウェアの開発にも,ライセンスやロイヤリティに煩わされることなく利用できる. GTKは元々General Image Manipulaton Program (GIMP)の開発用に作られたのでGIMP Toolkitと呼ばれている. しかし,今ではGNU Network Object Model Environment (GNOME)を含む,たくさんのソフトウェアプロジェクトで使われている. GTKはGDK(GIMP Drawing Kit)とgdk-pixbufの上に実装されている. GDKは,基本的には,基礎となるウィンドウ関数(X Window systemではXLibにあたる)へアクセスする低レベル関数を包むラッパー(Wrapper)である. gdk-pixbufはクライアントサイドの画像操作用ライブラリである. GTKの最初の作者は以下のとおり. * Peter Mattis ((<URL:mailto:petm****@xcf*****>)) * Spencer Kimball ((<URL:mailto:spenc****@xcf*****>)) * Josh MacDonald ((<URL:mailto:jmacd****@xcf*****>)) 現在のGTKのメンテナは以下のとおり. * Owen Taylor ((<URL:mailto:otayl****@redha*****>)) * Tim Janik ((<URL:mailto:timj****@gtk*****>)) GTKは本質的に,オブジェクト指向に基いたAPI(application programmers interface)である. GTKは全てC言語で書かれているが,実装にはクラスやコールバック関数(関数へのポインタ)といったアイデアが使われている. 更に,Glibという第3のコンポーネントがある. これは,標準的な関数呼び出しの代替機能をいくつか,それと連結リスト操作などの追加機能を提供している. 代替関数はGTKの可搬性を高めるために使われていて,g_strerror()のように,あるUNIXシステムでは韭標準であったり,使用できなかったりする関数を代替する. また,デバッグ機能を持ったg_malloc()のように,libc版関数の機能を拡張するためにも使われている. GLibバージョン2.0では,GTKのクラス階層の基礎となる型体系(type system)や,GTK全体で用いられているシグナルシステム,様々なプラットフォームで異なるネイティブスレッドAPIを抽象化するスレッドAPI,モジュールをロードするための機構が導入されました. 最後のコンポーネントはPangoである. GTKは国際化されたテキスト出力のためにPangoライブラリを用いている. == Ruby-GNOME2について Rubyは「お手軽なオブジェクト指向プログラミングのためのスクリプト言語」である. Rubyの文法はシンプルで,エラー処理を容易にする例外処理機能を持っている. 演算子はメソッド呼出しのシンタックスシュガーなので簡単に再定義することができる. Rubyは真のオブジェクト指向言語なので,Rubyの中ではすべてがオブジェクトである. Rubyは多くのUNIXやDOS,Windows,Macなど様々な環境で動作する. Rubyの作者は * Yukihiro Matsumoto (Matz) である. Ruby-GNOME2はRubyからGTKやGNOMEの各種ライブラリを利用するためのバインディングである. Ruby-GNOME2を用いることで,あなたのRubyスクリプトのためのGUIフロントエンドを作成することができる. Ruby-GNOME2の作者は * Masahiro Sakai * Masao Mutoh * Takehiro Kubo である. == このチュートリアルについて このチュートリアルではRuby-GNOME2の一部であるRuby/GTK2について紹介する. Ruby/GTK2はGTKのRubyバインディングである. 他にも,C,C++, Guile, Perl, Python, TOM, Ada95, Object C, Free Pascal, Eiffel,Java,C#といった,沢山の言語に対するGTKバインディングが存在する. Ruby以外の言語からGTKを使いたい場合は,先にこれらのバインディングのドキュメントを見てほしい. ドキュメントによっては,重要な事(初心者がまず最初に学ぶべきこと)を,当然のように説明なしで書いているかもしれない. その場合はこのドキュメントに戻って参照していただきたい. また,wxWindowsやVのようなクロスプラットフォーム用APIもあり,対象プラットフォーム上でGTKを使うことができる. 繰り返しになるが,それぞれのドキュメントをまず調べてほしい. このチュートリアルは出来るだけたくさんRuby/GTK2の機能を説明する事を目的としているが,まだまだ完璧とは言えない. このチュートリアルでは読者がRubyをよく知っていて,Rubyのプログラムが書けることを前提にしている. Xのプログラミング経験があれば,内容の理解に随分役に立つだろうが,必ずしも必要ではない. もし,初めてのウィジェットセットとしてGTKを学ぶなら,是非このチュートリアルを見つけた経緯や,これを読んでどんな問題があったかをコメントしてほしい. GTKには他にもC++,Objective C, ADA, Guileや他の言語へのバインディングもあるが,ここでは言及しない. このドキュメントは「作成中」である. このドキュメントでGTKを学ぶ際にぶつかった問題については,こちらまでご連絡頂けると幸いである. また,チュートリアルの改良案も歓迎する. 詳しくは((<寄稿>))を参照していただきたい.