28. LablTk ライブラリ: Tcl/Tk GUI インタフェース

labltk ライブラリは Objective Caml のプログラムから Tcl/Tk にアクセスする方法を提供します。このインタフェースは自動的に生成されます。関数の動作の詳細は、Tcl/Tk の本や man ページを参照してください。様々な関数の型を調べるためには ocamlbrowser を使うことをおすすめします。関数はライブラリ自身の最もよいドキュメントです。

labltk ライブラリを使用するプログラムは以下のようにリンクしてください。

ocamlc other options -I +labltk labltk.cma other files
ocamlopt other options -I +labltk labltk.cmxa other files
  
[注意]Unix

labltk ライブラリは Tcl 7.5/Tk4.1 から Tcl/Tk 8.4 までの Tcl/Tk がインストールされたすべてのシステムで使用することができます。ベータ版には互換性に問題があるものもありますので注意してください。

もしライブラリが正しくコンパイルされなかったら、configure スクリプトを -tkdefs switches をつけてもう一度実行してください。 swiches は、tcl.htk.h への C 言語と同じスタイルのインクルードパスのリストです。例えば '-I/usr/local/include/tcl8.4 -I/usr/local/include/tk8.4' などです。

labltk ライブラリをトップレベルから使いやすくするためのスクリプトがインストールされています。

labltk

これは labltk ライブラリを含んだトップレベル環境で、様々なモジュールを使えるようにパスがあらかじめセットされています。 この環境には UnixStr ライブラリへのコードも含まれています。 labltk は、 ocaml コマンドが使える場所ならどこでも置き換えて使うことができます。

[注意]Windows

labltk ライブラリは、 Tcl/Tk 8.4 が使えるようにあらかじめコンパイルされています。 あなたはまず始めに Tcl/Tk 8.4 をインストールしなくてはいけません。Tcl/Tk 8.4 は http://www.activestate.com/products/ActiveTcl/ からダウンロードすることができます。インストールが終わったら、(Tcl のインストール先の bin ディレクトリから) tcl84.dlltk84.dll をあなたのパスに含まれるディレクトリに置かなくてはいけません。

トップレベル環境は使えませんが、通常のトップレベル環境から次のコマンドを入力することでライブラリをロードすることができます。

# #directory "+labltk";;
# #load "labltk.cma";;
    

コマンドラインから直接ロードすることもできます。

C:\ocaml\bin> ocaml -I +labltk labltk.cma
    

labltk ライブラリは多くのモジュールから構成されています。

    Bell                Imagebitmap         Place
    Button              Imagephoto          Radiobutton
    Canvas              Label               Scale
    Checkbutton         Listbox             Scrollbar
    Clipboard           Menu                Selection
    Dialog              Menubutton          Text
    Entry               Message             Tk
    Focus               Option              Tkwait
    Frame               Optionmenu          Toplevel
    Grab                Pack                Winfo
    Grid                Palette             Wm
  

これらのモジュールについてここで詳細を述べるのは現実的ではありませんので、 Tk モジュールの中のいくつかの基本的な関数を述べることにします。ただし、その他の多くのモジュールについての情報は Tcl の、それぞれの man ページで得ることができます。