言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

CBook 設計メモ

昨日のプレゼンの前に出したメールをかいつまんで書きます。

CBook の目的

ユーザがプレゼンを作る事為の小さな道具箱を提供する事です。ユーザはこれをそのまま使ってプレゼンを作ってもいいですし、道具をバラバラにして自分だけの道具を作っても良いです。

問題

今の Squeak にはプレゼンの為の様々な道具、本や mpeg プレイヤ、音楽演奏などが詰まっていますが、どれもバラバラで、etoys から統一的に使う事が出来ません。

また、etoys で新たに変わったプレゼンを作ろうと思ってもサンプルがシステムの中に無いので難しいです。Smalltalk の世界なら、Smalltalk ライブラリ自体が貴重なサンプルですが、etoys にはそういう物がありません。

CBook の 設計

  • CBook は、ウィンドウ、プレゼン、アニメーションという三つのビューを持ち、切り替えて使います。ある CBook は他の CBook の中に貼り付ける事が出来て、それでアニメーションのある本を作る事が出来ます。
  • CBook 自体が、(今のところ)擬似的に etoys で作られています。CBook の next タイルは、"increase by" を使った出来合いのスクリプトで、ユーザはこれを編集して next の振る舞いを変化させる事が出来ます。また、ウィンドウ、プレゼンビューにつくボタンも、Tweak スクリプトとして実装されています。
  • 最終的な目標としては、CBook を、完全な etoys アプリケーションにする事です。最も基本的な部品、カーソルによって表示が変わるモジュールやリスト表示部分のみをクラスベースで記述し、UI の操作は etoys で記述します。また、カーソルの操作を多くのモジュールで共通化させ、アニメーション、プレゼンテーション、ムービーや音楽、ケダマなどを同じように操作出来るようにします。