GTK (ツールキット)

GTK (以前は GTK+, The GIMP Toolkit) は、クロスプラットフォームのウィジェット・ツールキット（GUIツールキット）である。当初は、GIMPの実装のために開発され、現在は、GNOMEデスクトップ環境のツールキット等として広く利用されている。

GTKはGNUプロジェクトの一部であり、GNU LGPLの元で開発されているオープンソースなフリーソフトウェアである。

GTKアプリケーションは、GNOMEに限らずKDEなどのGTKベースでないデスクトップ環境でも動作する。GNOMEライブラリを使用することにより、GNOMEデスクトップ環境のさまざまな機能を使用したアプリケーションを開発することができるが、GTKだけでアプリケーションを構成することも可能。

GTKは、主にFreeBSDやLinuxディストリビューションといったオープンソースのOS向けのソフトウェアに多く利用されているが、WindowsやmacOSにも移植されている。

2019年、「GTK」に改名することが決まった。

プログラミング言語 
Qtと違ってGTKはC言語を使うが、オブジェクト指向のパラダイムで普通デザインする。また、公式にC++ (gtkmm)、Perl (gtk2-perl)、Python (PyGTK)、C#(Gtk#)、Java (Java-GNOME)、JavaScript、Vala、非公式にFortran (gtk-fortran)、Ruby (Ruby/Gtk2)、PHP (PHP-GTK)、Pascal、Lua、Haskell、FreeBASICといった言語でもバインディングを用いることにより開発が可能である。

テーマ（ルックアンドフィール） 
ユーザーがGTKの見た目を変えられる。これはテーマエンジンを切り替えることで実現されていて、多くのテーマが提供されている。これらのテーマの中にはmacOSのAquaやWindowsやMotifやQt等の他の有名なツールキットやプラットホームをまねた見た目を提供するのもある。

歴史

Linux/Unix 
GTKは当初、Motifの代替として、GIMPのために設計され、用いられた。Peter MattisはMotifに失望し、彼自身のGUIツールキット、GIMP toolkitが書かれた。これはGIMP 0.60のリリースでMotifを置き換えることに成功した。最終的にGTKは書き直され、オブジェクト指向となり、GTK+に名前が変更された。これはGIMPの0.99リリースで最初に使われた。GTKはその後、GNOME Foundationによってメンテナンス対応がなされGNOMEデスクトップ環境で使われるようになった。

GTK 2.0.0リリースシリーズは、Pangoを使った改善されたテキストのレンダリング新しいテーマエンジンやさらに柔軟なAPIなどを含んでいた。バージョン2.8から、GTK 2はベクターグラフィックスの描画のためのライブラリとしてCairoに依存するようになっている。

GTK 3.0.0は、修正されたインプットデバイスの取り扱いや、CSSのような構文で書かれたテーマのサポート、他の開かれているGTKアプリケーションからの情報受け取り機能などを含んでいる。

macOS 
macOSでは、QuartzバックエンドのGTKを利用することができる。

Windows 
 GTK 2.24.10と3.6.4のあと、インストーラー付きのWindows向け開発はGNOMEによって中止された。MSYS2 on Windowsをインストールするのが、実際にGTKを使うためにはよい手段である。
 GTK 2.24.10と3.6.4はインターネット上で利用可能だが、バグが多く実際のバージョンよりも限られたものとなっている。
 64ビット版Windows向けのバージョンはTom Schoonjansによって準備され、2.24.32と3.22.30を利用することができる。

GTK2 
GTK2とはGTK1の次のバージョンのGTKとして開発されたツールキットである。Pangoによる多言語テキスト出力、新テーマエンジン、(ATK)によるアクセシビリティサポートの向上、UTF-8によるUnicode環境への移行などがされている。GTK2はGTK1と互換性がないので、GTK1用のプログラムをGTK2環境で動かすにはGTK2用にソースコード等を修正する必要がある。いくつかのアプリケーションは軽量さや組み込みアプリケーションに適しているなどの理由からオリジナルバージョンを使いつづけGTK1のままで使われているのもある。

インプットメソッドが必要な日本語などの言語のためにimmoduleというプラグインスタイルのフレームワークが用意されており、XIMやIIIMFを利用するための仕組みも、それぞれこのimmoduleの1つとして実装されている。

GTK2を利用したソフトウェア 

 GIMP
 Inkscape
 Mozilla Firefox
 Mozilla Thunderbird
 Sylpheed (メールソフト)
 Web (ウェブブラウザ)
 風博士 (ウェブブラウザ)
 mikutter (Twitterクライアント)
 各種GNOME 2アプリケーション - GNOME環境はGTKをベースにしており、GNOMEアプリケーションはツールキットとしてGTKを使用している。

GTK2 immodule のさまざまな実装 
 im-canna - かんなのimmodule
 im-freewnn - FreeWnnのimmodule
 im-perl - Perlで入力メソッドを記述するためのimmodule
 im-euro - 'euro'をユーロ記号に変換して、欧米人に入力メソッドをわかりやすく説明するためのimmodule
 im-ja - im-cannaベースに、手書き入力などさまざまな日本語入力に対応
 im-ime - Windows専用のimmodule。Windows上のIMEでのインライン日本語入力に対応
 im-xim - XIMのimmodule
 im-iiim - IIIMFのimmodule
 im-uim - uimのimmodule

出典

関連項目 

 ウィジェット・ツールキット
 GLib
 FLTK
 Gtk#
 GTK-Qt
 gtkmm

外部リンク 
  公式ウェブサイト
 GNOME – Simple, beautiful, elegant. GNOMEオフィシャルサイト
 日本ＧＮＯＭＥユーザー会 / Japan GNOME Users Group(APIリファレンス・チュートリアル等の日本語訳)

GNOME
X Window System
オープンソースソフトウェア
API
GNUプロジェクト
ウィジェット・ツールキット