[Squeak-ja: 3042] PluggableTextMorphをつまむ方法

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 3042] PluggableTextMorphをつまむ方法

kubo-o
以前からPluggableTextMorphの扱い方を
この場で皆さんに教えて頂き、
KJ法みたいなものを実現したいと頑張っている者です。
お陰様でだいぶん理解が進み、
カードを作り、内容を書き込み・書き換え、
それをある場所に格納するところまではきました。
そこで次に、カードをmouseでつまんで移動する仕方が
判らないのです。
つまり、
PluggableTextMorph
  on: self
  text: #text
  accept: #text:
  readSelection: nil
  menu: nil
は動くのですが、ここに
handlesMouseDown:やmouseDown:を
作用させるにはどうすればよいのでしょうか。
上のon:selfの「selfを自分のクラスのinstanceで
置き換えるのかとも思うのですが、
よく判っていません。
そもそもon:はどういう機能を持つのでしょうか。
どうか宜しくお願い致します。
久保 道


Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 3044] Re: PluggableTextMorphをつまむ方法

Masato Sumi
久保さん、ごきげんよう。鷲見です。

on: のところに挿入する引数は、このカード(a PluggableTextMorph)に
入力された内容を別のオブジェクト(モデルと呼ぶ)で管理しているときに
それを当てはめます。たとえば、

| model field |
model := ProcessBrowser new.
model openAsMorph.

field := PluggableTextMorph
   on: model
   text: #selectedMethod
   accept: nil
   readSelection: nil
   menu: nil.
field center: Point fromUser.
field openInWorld.

というスクリプトを評価して、クリックして指定した場所に a Pluggable-
TextMorph を設置してから、同時に開くプロセスブラウザの右手のリスト
から適当な項目を選んだときに起こることを観察してみてください。

この仕組みはカードを動かす目的とは直接関係ないので、たとえば、
alt/cmd + ドラッグでの移動を使う…というのではダメでしょうか。

あるいは、カードを a PluggableTextMorph だけではなく、a Rectangle-
Morph のようなクリックしてピックアップできるタイプのモーフのサブ
モーフとして a PlugableTextMorph を組み合わせた、複合モーフのクラスとして
新しく定義する…という方法もあるかもしれません。

06/07/12 に kubo-o<[hidden email]> さんは書きました:
> handlesMouseDown:やmouseDown:を
> 作用させるにはどうすればよいのでしょうか。
> 上のon:selfの「selfを自分のクラスのinstanceで
> 置き換えるのかとも思うのですが、
> よく判っていません。
> そもそもon:はどういう機能を持つのでしょうか。
> どうか宜しくお願い致します。
> 久保 道

--
Masato Sumi
Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 3047] Re: PluggableTextMorphをつまむ方法

kubo-o
鷲見さん、早速ありがとうございました。
on:のはたらきについてはよく判りました。
もう一つの方のことですが、a Rectangle-Morph のようなクリックしてピックアップ
できるタイプのモーフでないと、PluggableTextMorphは直接にはmouseでつかめない
のでしょうか。
はじめにworld上でopenInHnadをやるときだけはつかめていますが。
on:などの引数付きのPluggableTextMorphに、なにか他の引数を追加すれば、
eventhandlingが使えるのでしょうか。
久保 道

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]]On Behalf Of Masato Sumi
Sent: Wednesday, July 12, 2006 5:20 PM
To: Squeak discussion in Japanese
Subject: [Squeak-ja: 3044] Re: PluggableTextMorphをつまむ方法


久保さん、ごきげんよう。鷲見です。

on: のところに挿入する引数は、このカード(a PluggableTextMorph)に
入力された内容を別のオブジェクト(モデルと呼ぶ)で管理しているときに
それを当てはめます。たとえば、

| model field |
model := ProcessBrowser new.
model openAsMorph.

field := PluggableTextMorph
   on: model
   text: #selectedMethod
   accept: nil
   readSelection: nil
   menu: nil.
field center: Point fromUser.
field openInWorld.

というスクリプトを評価して、クリックして指定した場所に a Pluggable-
TextMorph を設置してから、同時に開くプロセスブラウザの右手のリスト
から適当な項目を選んだときに起こることを観察してみてください。

この仕組みはカードを動かす目的とは直接関係ないので、たとえば、
alt/cmd + ドラッグでの移動を使う…というのではダメでしょうか。

あるいは、カードを a PluggableTextMorph だけではなく、a Rectangle-
Morph のようなクリックしてピックアップできるタイプのモーフのサブ
モーフとして a PlugableTextMorph を組み合わせた、複合モーフのクラスとして
新しく定義する…という方法もあるかもしれません。

06/07/12 に kubo-o<[hidden email]> さんは書きました:
> handlesMouseDown:やmouseDown:を
> 作用させるにはどうすればよいのでしょうか。
> 上のon:selfの「selfを自分のクラスのinstanceで
> 置き換えるのかとも思うのですが、
> よく判っていません。
> そもそもon:はどういう機能を持つのでしょうか。
> どうか宜しくお願い致します。
> 久保 道

--
Masato Sumi

Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 3048] Re: PluggableTextMorphをつまむ方法

Koji Yokokawa
横川です。
ちょこっと補足。

鷲見さんのアイデアの実装例はこんな感じです。
カードの周りに余白を作って、そこをつまめるようにしました。
クラスは新しく定義してませんが、クラスを作ったときもレイアウトの方法は同
じものが使えます。

> あるいは、カードを a PluggableTextMorph だけではなく、a Rectangle-
> Morph のようなクリックしてピックアップできるタイプのモーフのサブ
> モーフとして a PlugableTextMorph を組み合わせた、複合モーフのクラスとして
> 新しく定義する…という方法もあるかもしれません。

----
| model field card |
model := ProcessBrowser new.
model openAsMorph.

field := PluggableTextMorph
   on: model
   text: #selectedMethod
   accept: nil
   readSelection: nil
   menu: nil.
field center: Point fromUser.
card := BorderedMorph new.
card layoutPolicy: ProportionalLayout new.
card addMorph: field
        fullFrame: (LayoutFrame
                fractions: (0 @ 0 corner: 1.0 @ 1.0)
                offsets: (10 @ 10 corner: -10 @ -10)).
card extent: 100@100.
card color: Color white.
card openInWorld.

----


On Wed, 12 Jul 2006 22:19:55 +0900
"kubo-o" <[hidden email]> wrote:

> 鷲見さん、早速ありがとうございました。
> on:のはたらきについてはよく判りました。
> もう一つの方のことですが、a Rectangle-Morph のようなクリックしてピックアップ
> できるタイプのモーフでないと、PluggableTextMorphは直接にはmouseでつかめない
> のでしょうか。
> はじめにworld上でopenInHnadをやるときだけはつかめていますが。
> on:などの引数付きのPluggableTextMorphに、なにか他の引数を追加すれば、
> eventhandlingが使えるのでしょうか。
> 久保 道
>
> -----Original Message-----
> From: [hidden email]
> [mailto:[hidden email]]On Behalf Of Masato Sumi
> Sent: Wednesday, July 12, 2006 5:20 PM
> To: Squeak discussion in Japanese
> Subject: [Squeak-ja: 3044] Re: PluggableTextMorphをつまむ方法
>
>
> 久保さん、ごきげんよう。鷲見です。
>
> on: のところに挿入する引数は、このカード(a PluggableTextMorph)に
> 入力された内容を別のオブジェクト(モデルと呼ぶ)で管理しているときに
> それを当てはめます。たとえば、
>
> | model field |
> model := ProcessBrowser new.
> model openAsMorph.
>
> field := PluggableTextMorph
>    on: model
>    text: #selectedMethod
>    accept: nil
>    readSelection: nil
>    menu: nil.
> field center: Point fromUser.
> field openInWorld.
>
> というスクリプトを評価して、クリックして指定した場所に a Pluggable-
> TextMorph を設置してから、同時に開くプロセスブラウザの右手のリスト
> から適当な項目を選んだときに起こることを観察してみてください。
>
> この仕組みはカードを動かす目的とは直接関係ないので、たとえば、
> alt/cmd + ドラッグでの移動を使う…というのではダメでしょうか。
>
> あるいは、カードを a PluggableTextMorph だけではなく、a Rectangle-
> Morph のようなクリックしてピックアップできるタイプのモーフのサブ
> モーフとして a PlugableTextMorph を組み合わせた、複合モーフのクラスとして
> 新しく定義する…という方法もあるかもしれません。
>
> 06/07/12 に kubo-o<[hidden email]> さんは書きました:
> > handlesMouseDown:やmouseDown:を
> > 作用させるにはどうすればよいのでしょうか。
> > 上のon:selfの「selfを自分のクラスのinstanceで
> > 置き換えるのかとも思うのですが、
> > よく判っていません。
> > そもそもon:はどういう機能を持つのでしょうか。
> > どうか宜しくお願い致します。
> > 久保 道
>
> --
> Masato Sumi

-- !
Koji Yokokawa <[hidden email]>
    http://yengawa.com/
    ^self new!