[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

10.7 Themes

テーマとフレームスタイルは今のところほとんど同じものですが、ちょっとだけ 違うのはテーマは必要なときにシステムから読み込む仕組を提供していることで す。後のバージョンではテーマが他のユーザーインターフェースでの設定法を含 むこともあるでしょうが、今のところその見込みはないでしょう。

フレームスタイルが必要なとき、もしまだ利用可能でない(すなわち、そのスタ イルについて add-frame-style 関数が呼ばれていない)ならば、ウィン ドウマネージャがシステムから同名のテーマを読み込もうとします。

各テーマはディレクトリに保存され、このディレクトリはテーマ自身と同名でな ければいけません。このディレクトリ内には `theme.jl'`theme.jlc' という名前の Lisp スクリプトファイルがなければいけませ ん。このスクリプトは評価可能で、同名のテーマのフレームスタイルを (add-frame-style の呼出しにより)提供するべきです。

そのテーマスクリプトが評価されている間に image-load-path 変数には そのテーマディレクトリが最初の項目として含むように設定されます。これでディ レクトリ内に保存されているどの画像ファイルも make-image 関数を使っ て確実に読み込まれるようになります。

rep はモジュールシステムを持たないのでテーマ内で定義されるどの変数もそれ らのユニーク性を確実にするためにテーマの名前の接頭辞をつけなければなりま せん。例えばテーマ foo においては変数 bar は実際には foo:bar と呼ばれます。

けれどもたいていはグローバルな変数か関数の宣言を避けるために rep の構文 スコープを使うことができます。ただ唯一、defcustom によってカスタ マイズオプションを定義するときだけは普通は例外となります。これらはグロー バルに見えなければなりせん。

テーマは一般にはとてもむとんちゃくにとらえられているので sawfish はすべ てのテーマのコードをとても制限された環境内で評価します。アイデアはテーマ がウィンドウマネージャの外観だけに影響を及ぼすようにすることです。このこ とにも関わらず、なおも悪意のあるテーマによってウィンドウマネージャがロッ クされ、クラッシュする可能性があります。最初の場合については SIGINT シグナルを送ることでロックしないようにします。たぶんテーマ はユーザ環境に影響を与えることはできませんが、保証はありません ...

Variable: theme-load-path
ディレクトリ名のリストで、テーマディレクトリの場所を検索するパスを提供し ます。デフォルトではユーザのテーマディレクトリとシステムのディレクトリを 含んでいます。

Variable: user-theme-directory
ユーザのテーマディレクトリの名前でデフォルトでは `~/.sawmill/themes' です。

Variable: system-theme-directory
システムのテーマディレクトリ名です。



This document was generated by SATO Satoru on October, 28 2000 using texi2html