Thanks to everyone that responded.
It appears that although Squeak is moving in a direction of more conventional development tools it's still in that transitional phase. In a sense I don't want conventional, but I do want usable.
From the suggestions I can see that things that BobsUI and Tweak offer
possibilities (thanks Simon). I will have to investigate further.
I can also see that creating small functional morphs and just have them free-range in the project space has advantages for what I am doing (thanks Herbert). One perennial problem with standard builders or even coded layouts is real estate and having only what you need visible. Even using layout managers does not solve this problem unless there is only one resizable window. For a complex display with fixed areas of widgets , graphic areas for graphs etc, a tree view and tabbed panes for all sorts of applets and options it becomes very hard to get a good looking display under all circumstances so just having fragments that work together could be a good move.
Alexandre suggests using Seaside. Funny you should say that. I have looked at Seaside before and ran through the latest tutorial a few days ago. I like it a lot and the idea that a web app is easier to develop and more flexible than a desktop app certainly turns conventional thinking on its head. I need to dig deeper into this.
Dave makes some suggestions about interfacing which I need to try out. Do I take it that squeak has built in distribution facilities?
Of the things that didn't get answered I thing there are two:
1. If I build a morph, say just a bunch of buttons to control one aspect of my interface how do I generate code from that or do I just write code in the first place? 2. How do I get rid of morphs that give continuous 'message not understood' every time I mouse over them?
Thanks
Bob
*** Confidentiality Notice *** Proprietary/Confidential Information belonging to CGI Group Inc. and its affiliates may be contained in this message. If you are not a recipient indicated or intended in this message (or responsible for delivery of this message to such person), or you think for any reason that this message may have been addressed to you in error, you may not use or copy or deliver this message to anyone else. In such case, you should destroy this message and are asked to notify the sender by reply email.
Hello Bob,
BCCEc> I can also see that creating small functional morphs BCCEc> andjust have them free-range in the project space has
I like free-range morphs especially as free-range eggs are unavailable nowadays due to birds influenza (or whatever "Vogelgrippe" translates to).
BCCEc> Dave makes some suggestions about interfacing which I BCCEc> needto try out. Do I take it that squeak has built in BCCEc> distribution facilities?
Are you talking about deployment facilities, then no.
BCCEc> If I build a morph, say just a bunch of buttons to BCCEc> control one aspect of my interface how do I generate code from BCCEc> that or do I just write code in the first place?How do I
If I understand you right you should look into the pluggable morphs demo. (google for PluggableMorphsDemo.pr and load it from the world menu. Your data class (the target) needs to implement the message that is plugged into the button's actionSelector. (Careful, I write this from memory, the project really helps.)
BCCEc> get rid of morphs that give continuous 'message not BCCEc> understood' every time I mouse over them?
World submorphs explore in a workspace gets you an explorer. There you mark the line with the offending morph and in the small text pane at the bottom you type self delete and do it. Hope that works, I'm too new to help if a morph doesn't understand delete any more.
As I often clutter my screen with homespun morphs I always have a code fragment in a workspace:
World submorphs do: [:each | (each isKindOf: Markierung) ifTrue: [each delete]. (each isKindOf: Beweglich) ifTrue: [each delete]. (each isKindOf: FussballTimer) ifTrue: [each delete]. (each isKindOf: Collrect) ifTrue: [each delete]. (each isKindOf: PolygonMorph) ifTrue: [each delete] ]
I told you, I clutter my screen :-)) I know it's really cluttered when I have to write (each isKindOf: SystemWindow) ifFalse: ....
Cheers,
Herbert mailto:herbertkoenig@gmx.net
squeak-dev@lists.squeakfoundation.org