Squeaking Squab
人狼さんと Squeak を楽しく語らう場です。純粋にタイルスクリプティングだけを学びたい人にはちょっと難しい話題で盛り上がってしまうことしばしばですが、ご容赦のうえ読み飛ばしてください。善意でも著しく流れから逸脱したり、先回りされたり、足をひっぱられると困りますが、原則として飛び入りや軽いツッコミなども歓迎します。下のインデックスの下からはじまるやりとりが現在の話題です。最近のやりとりをクリックすることでこのページの最後に移動することができます。
以前の話題がどのように展開したのかはそれぞれのリンクをクリックすることで確認できます。これらのページはログという性格もありますが、相変わらず編集はできるので、ボケやツッコミ、質問や訂正も可能ですし歓迎します。編集が加わればすぐにわかるので見過ごされることはめったにないと思います。逆にこのページは書き換えが頻繁なので、ページの途中を編集すると見落とされる可能性があるので注意してください。なにか書きたいことがあれば、ページ途中に直接書かずに、引用符(>のような全角を推奨します)付きで言及部分を示しながら追記してもらえばすぐに気がついてわかりやすいと思います。
- テーマ決め
- フルスクリーンモードとウインドウモードの切換え
- 起動時画面に見えるものの簡単な説明
- ウインドウ、メニューの扱い方 …とオブジェクト談義ちょっと
- ファイラの使い方 …とメッセージ送信談義ちょっと
- プロジェクトとモーフの扱い方
- サブモーフ化とスタックなど
- モーフの複数選択やサブモーフのレイアウト
- SqueakToys その1 …とクラス-インスタンス談義ちょっと
- SqueakToys その2
- クラスとインスタンス
- スーパークラスとサブクラス …とクラスとインスタンス復習ちょっと
- 開発者用 UI もろもろ
- モーフとプレイヤふたたび …とワークスペース変数、AC04 談義(ぉぃ)ちょっと
- ワークスペースを拡張して Wiki 的機能を仕込む
- Sqewton プロジェクトのプラン
- Genie その1(基本)
- Genie その2(ジェスチャーにコードを割り当てる)
- Genie その3(メニューコマンド、キーボードショートカットを実行する)
メールを介して、絵入りの文章をやりとりするために開発されたのが Gee-Mail です。メールと付いていますが、事実上ワープロの機能を持っています。とりあえず、Gee-Mail の解析を通じて、これまで作った Genie ジェスチャー辞書を Gee-Mail に適用できるように修正しましょう。--sumim - 2003-03-04, 15:47:54
了解です.Gee-Mailって久し振りですね.前回も使いこなしたわけではないので,出来れば軽く復習から入って頂けると助かりますです.--人狼 - 2003-03-04, 17:35:06
書き込み末尾(シグネチャの直後)の改行をお願いします。
Gee-Mail は、Widgets フラップにあります。デスクトップに引き出してから、cmd-クリックで選択し黄色ハローのドラッグで横幅などを決めた後、右手スクロールバーにあるメニューボタン(これは黄ボタンメニューボタンに非ず)から make 1-column book を選択、続けて同じメニューに現われる make a galley of me を選択することで準備が整います。あとは、文字を入力するなり、ペイント画像やドロー形基本図形モーフをドロップインして、絵と文字を混在できる文書を作ってゆけます。サブモーフの TextPlus を選択して cmd-クリック-クリック-クリックくらい(^_^;)、赤ハローメニューから、avoid occlusions を選択すれば、ドロップインしたモーフの形に文章を避けることもできます。--sumim - 2003-03-04, 17:57:17
>書き込み末尾(シグネチャの直後)の改行をお願いします。
すみません,こんな事も忘れてましたです(汗)
>make 1-column book
とは何なのか,
>make a galley of me
とは何なのか,あたりが気になるので調べてみますです.TextPlusを選ぶのにはcmd-クリック-クリック-クリックでした.--人狼 - 2003-03-04, 21:17:47
>調べてみます
どうでしたか。何か分かりましたか? どんなことを調べましたか?--sumim - 2003-03-06, 10:02:12
>どうでしたか。何か分かりましたか? どんなことを調べましたか?
まずは,make 1-column bookメニューを調べてみました.GeeMailMorph>>#makeBookStyleを呼んでいるようですが,GeeMailMorphには該当するメソッドが無かったので,そのスーパークラスのAlansTextPlusMorphを見に行きました.(このAlansって,Alan'sなんでしょうかね)GeeMailの中に指定されたカラム数分のTextPlusMorphを配置しているのですね.Columnの間の幅や,分割数は調整可能のような気がします.
次にmakeGalleyStyleですが,これも同じくAlansTextPlusMorph>>#makeGalleyStyleでした.こちらは,カラムを分解して一つのTextPlusMorphにしているようなのですが…Galleyって飛行機のギャレーではなくて…ゲラ?--人狼 - 2003-03-06, 13:31:09
>このAlansって,Alan'sなんでしょうか
そうです。Gee-Mail はアラン・ケイのために作られたモーフです。--sumim - 2003-03-06, 16:05:12
>Galleyって飛行機のギャレーではなくて…ゲラ?
おっしゃるとおり、おそらく galley proof、ゲラでしょう。つまり、ゲラモードで入力編集をして、make n-column book モードでレイアウトの調整をする…という使い方が想定されているように見えます。ここで、一回、make 1-column book を選択し、ふたたびゲラモードに戻す操作をしたのは、デフォルトのテキストモーフの横幅が十分でなく、abc に置き換えてテキストを入力しようとしてもすぐに改行してしまうからです。もちろん、テキストモーフを直接選択して任意の幅を指定してやるのもよいでしょう。--sumim - 2003-03-06, 16:15:40
ではここで、Gee-Mail 内でジェスチャーをして図形モーフを作っても Gee-Mail のサブモーフにならないのはどうしてかを考えてみましょう。モーフ生成時の内部的処理に関わることなのでちょっと難しいかもしれませんががんばって解析してみてください。--sumim - 2003-03-06, 16:18:32
>がんばって解析してみて
頑張ってみます.ちょっと時間がかかるかも知れませんが,ご容赦を.--人狼 - 2003-03-06, 19:31:10
攻め方など、書いてみてください。--sumim - 2003-03-07, 20:03:45
>攻め方など
〜Morph>>#newで生成していますので,とりあえず#newはどこぞや,と探してMorph>>#newまで辿り着きました.^ super new initializeとあったので,更に深く潜ってみます.と,言っても潜るのは月曜日になりそうです.--人狼 - 2003-03-08, 22:22:33
それだとちょっと厳しいかもしれませんね。Genie ジェスチャーで作られたモーフは駄目で、マウスできちんとドロップインすると問題なくサブモーフ化されるわけですから、Gee-Mail のソースを見てドロップイン時に受け付けるメッセージセレクタに当たりを付けるのがよろしかろうと思います。それが特定できれば、Genie ジェスチャースクリプトにもそれをシミュレートする機構を組み込むことができるかもしれません。--sumim - 2003-03-09, 04:34:46
>ドロップイン時に受け付けるメッセージセレクタに当たりを付ける
確かにおっしゃる通りで,大きな勘違いをしていたようです.まだ,ぼけてますね.済みません.何やら今日明日は仕事がバタバタしておりますので,水曜日にじっくりと潜ってみます.時間がかかって済みません.--人狼 - 2003-03-10, 10:39:13
とりあえず参考までに、私なりの解答例を。#LineMorph#
target handleDropMorph:
(DropEvent new
setPosition:
(coordinates topLeft corner: coordinates bottomRight) center
contents:
(PolygonMorph new
vertices: {coordinates start. coordinates end}
color: Color paleGreen
borderWidth: 5
borderColor: Color black)
hand: ActiveHand)
--sumim - 2003-03-14, 00:46:07
これは、モーフのドロップインをシミュレートしたものですが、もうひとつ、Morph >> #openInWorld のコードをつらつらと眺めていると、openInWorld: が見つかり、これを使えば Gee-Mail へのサブモーフ化もできそうです。逆に、openInWorld では、openInWorld: の引数を無条件に self currentWorld にしているために、Gee-Mail 上で描いてもそのサブモーフにならないことが分かります。openInWorld
self couldOpenInMorphic
ifTrue: [self openInWorld: self currentWorld]
ifFalse: [self openInMVC]
--sumim - 2003-03-18, 12:56:24
このページを編集 (7774 bytes)
|
以下の 4 ページから参照されています。 |
This page has been visited 24359 times.