WindowクラスとWindow+クラス

GUIの基本となっているウィンドウは、Mopsでは既定クラスライブラリとして実装されています。特に何のアクションもせずとも、Mops上で直ちに利用できます。68k MopsとPowerMopsでは若干仕様がずれている部分もあるようです。申し訳ありませんがPowerMopsでの話としてお読みください。

ウィンドウには表題のようにWindowクラスとWindow+クラスの二つが準備されています。基本的な部分がWindowクラスで定義されており、Window+クラスはそれを継承して一部のメソッドをオーバーライドした下位クラス(subclass、C++では派生クラス(derived class)と言いますね)です。

WINDOWクラスは、それを直接使うことはあまりないでしょう。コンテンツ部分で何かをするための機構はWINDOW+クラスで初めて追加されているからです。まあ、使って使えないことはありませんが。

WINDOW+クラスは、コンテンツ部分にVIEWを貼付ける機構を持っています。View(ヴュー)というのは、長方形の透明シートみたいなものを想像すればよく、そこに何かを描いたりする時のために、現在の大きさをリアルタイムで計算して、中身の位置を調整したりする機構です。Viewクラスとして実装されています。Viewは景観とか外観とかいう意味ですね。他の言語(Tcl/Tkとか)のクラスライブラリだと、ウィンドウもViewの一部なんだそうですが、MopsではWindowはViewと区別されています。

Windowクラス、Window+クラスともに、簡単に試してみるためにTEST:というメソッドが定義されています。これで窓を出してみましょう。

Windowクラスでは、
WINDOW ww \ Windowクラスのインスタンス化
Test: ww
というコードをMopsウィンドウからEnterすれば、 小さなウィンドウがでるはずです。

Window+クラスでは、
WINDOW+ ww+   \ Window+クラスのインスタンス化
View vv   \ Viewクラスのインスタンス化
vv Test: ww+   \ vvのオブジェクトアドレスがパラメタ
というコードのEnterで、前よりは大きめのウィンドウがでるはずです。

関連項目:






最終更新:2018年12月25日 14:44