2007/12/02

CLIM(McCLIM) で Hello World! まで

McCLIM とは CLIM(Common Lisp Interface Manager) のオープンソースの実装です。
CLIM はユーザインターフェイスを構築するためのポータブルの機能階層提供する Lisp をベースとしたプログラミングインターフェースです。
具体的にはウィンドウ、グラフィック、ストリーム指向の入出力などの機能を提供します。

では、Hello World! です。

(eval-when (:compile-toplevel :load-toplevel :execute)
(require :clx)
(require :mcclim))

(in-package :clim-user)

(define-application-frame hello-frame ()
()
(:pane (make-pane 'application-pane :display-function #'display-hello ))
(:geometry :width 400 :height 200))

(defmethod display-hello ((hello-frame hello-frame) stream)
(format stream "Hello World!"))

(run-frame-top-level (make-application-frame 'hello-frame))

define-application-frame でトップレベルのウィンドウを定義します。
ウィンドウ内の部品はペイン(pane)と呼ばれ、application-pane を作り、表示関数に format を使って "Hello World!" を表示するメソッドを指定しています。
CLIM では入出力がストリームベースとなっているため、format のような普通の入出力関数をこのようなところで使うことができるようです。

次のようにしてデモを起動することができます。
(eval-when (:compile-toplevel :load-toplevel :execute)
(require :clx)
(require :mcclim)
(require :clim-examples))
(clim-demo::demodemo)

0 件のコメント: