[Squeak-ja: 2911] PluggableTextMorphについて

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

[Squeak-ja: 2911] PluggableTextMorphについて

kubo-o
教えて下さった皆様、
ありがとうございました。
ヒントをもとに勉強させていただきます。
「サクサクSmallTalk」、もう品切れだそうですね。
幸い1冊あったので買って読んでいます。
依存性については、いかにもオブジェクト指向らしい
仕組みだと、うれしくなります。
そこでまた一つ、教えて下さい。
PluggableTextMorphをキャンセルするため、
左上に×印のマークがありますが、
あれをつくる方法です。
よろしくお願い致します。
久保 道



Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 2912] Re: PluggableTextMorphについて

Thoru Yamamoto
やまもとです。

> PluggableTextMorphをキャンセルするため、
> 左上に×印のマークがありますが、

どうやらPluggableListとウィンドウ(SystemWindow)を
混同されているのでわ?

で、久保さんの投稿をきっかけに
おいらもPluggableListがよくわからんちんで
いままでなかなか使えなかったのですが
これをきっかけに再お勉強、再トライしてみますた。
左がサブクラスを表示するPluggableListMorphで
右ペインが左ペインで選択したクラスのメソッドを表示する
PluggableTextMorphでする。
それらをSystemWindowにaddMorphしています。

TestWindow new initialize openAViewOnMe

でWindowがひらくです。

とりあえず思ったとおりにはどうさしているのですが
問題がありましたらごめん。<ご指摘大歓迎。
ここにソースコード書くの勇気いりまする・・・・(汗)



以下ソースコード。
'From Squeakland.396-Nihongo7.29 of 18 March 2005 [latest update: #100] on 7
April 2006 at 4:55:52 pm'!
Object subclass: #TestWindow
        instanceVariableNames: 'list selectedIndex contents'
        classVariableNames: ''
        poolDictionaries: ''
        category: 'ThoruTest'!

!TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 20:04'!
contents
        ^ contents! !

!TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 19:50'!
initialize
        list _ (Collection withAllSubclasses collect: [ :each | each name])
                                        asSortedCollection: [ :a :b | a = b].
        selectedIndex _ 1.! !

!TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 19:50'!
list
        ^list! !

!TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 19:50'!
listIndex
        ^selectedIndex! !

!TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/6/2006 00:23'!
listIndex: anInteger
        selectedIndex _ anInteger.
        contents _ (Smalltalk at: (list at: selectedIndex)) organization
allMethodSelectors asString.

        self changed: #listIndex.
        self changed: #contents! !

!TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 20:12'!
listMenu: aMenu
        | targetClass differentMenu className |
        className _ list
                at: selectedIndex
                ifAbsent: [
                        ^aMenu add: 'nothing selected' target: self selector: #beep
                ].
        targetClass _ Smalltalk
                at: className
                ifAbsent: [
                        ^aMenu add: 'that class is history!!!!' target: self selector: #beep
                ].
        differentMenu _ DumberMenuMorph new.
        differentMenu
                add: 'browse' target: targetClass selector: #browse;
                add: 'inspect' target: targetClass selector: #inspect;
                add: 'explore' target: targetClass selector: #explore.
        ^ differentMenu! !

!TestWindow methodsFor: 'as yet unclassified' stamp: 'ty 4/5/2006 20:16'!
openAViewOnMe
        | window aListMorph aTextMorph |

        aListMorph _ PluggableListMorph
                on: self
                list: #list
                selected: #listIndex
                changeSelected: #listIndex:
                menu: #listMenu:.
        aListMorph color: Color white.
        aTextMorph _ PluggableTextMorph
                on: self
                text: #contents
                accept: #acceptContents
                readSelection: nil
                menu: nil.
        window _ SystemWindow labelled: 'ThoruTest'.
        window
                color: Color white;
                setWindowColor: (Color r: 0.645 g: 0.645 b: 1.0);
                addMorph: aListMorph
                frame: (0@0 corner: 0.3@1);
                addMorph: aTextMorph
                frame: (0.3@0 corner: 1@1).
        window extent: 400@200.
        ^ window openInHand
!
]style[(13 399 104 100)f2b,f2,f4,f2! !



-------------------------------
Thoru Yamamoto
mail :    [hidden email]
www:    http://www.thoruman.com
-------------------------------


Reply | Threaded
Open this post in threaded view
|

[Squeak-ja: 2913] Re: PluggableTextMorphについて

Thoru Yamamoto
やまもとです


>> PluggableTextMorphをキャンセルするため、
>> 左上に×印のマークがありますが、

>どうやらPluggableListとウィンドウ(SystemWindow)を
>混同されているのでわ?



「PluggableTextMorphとSystemWindow」をですね・・・。




-------------------------------
Thoru Yamamoto
mail :    [hidden email]
www:    http://www.thoruman.com
-------------------------------