[Newbies] PluggableTextMorph

Keith McKay keith at clanmckay.co.uk
Mon Aug 28 20:34:55 UTC 2006


Hi

I have found a solution to my problem.

If you send the message allMorphs to a morph it returns a collection
containing all morphs in the composite morph including the receiver.

In this case a PluggableTextMorph would give:

aPluggableTextMorph allMorphs>> an OrderedCollection(a RectangleMorph(1207)
a RectangleMorph(3700) a RectangleMorph(1462) an ImageMorph(2630) a
RectangleMorph(2661) an ImageMorph(3061) a RectangleMorph(299) an
ImageMorph(464) a RectangleMorph(1782) a ScrollBar(1419) a
TextMorphForEditView(2717) a TransformMorph(726) a PluggableTextMorph(127))

I had used submorphs at first but this confused me because it returned #(a
ScrollBar(1109) a TransformMorph(2472)).  But then I found allMorphs which
worked.

I had thought that the PluggableTextMorph contained a TextMorph as a
submorph since it had an instance variable of that name but it turns out
that it is a TextMorphForEditView which I found after browsing the
PluggableTextMorph class.  So knowing that TextMorphForEditView inherits
from TextMorph I knew I could play about with the margins and other layout
properties of TextMorphs. But how to get to the TextMorphForEditView?  The
instance method in Morph held a clue

allMorphs
	"Return a collection containing all morphs in this composite morph
(including the receiver)."

	| all |
	all _ OrderedCollection new: 100.
	self allMorphsDo: [: m | all add: m].
	^ all

The message allMorphsDo: aBlock was the answer!

My solution is..

| aPluggableTextMorph |

aPluggableTextMorph allMorphsDo:[:each | (each isKindOf:
TextMorphForEditView)
						ifTrue:[ each margins:
100 at 100]].

This works well but is it the best way to access submorphs?

Thanks
Keith

-----Original Message-----
From: beginners-bounces at lists.squeakfoundation.org
[mailto:beginners-bounces at lists.squeakfoundation.org] On Behalf Of Keith
McKay
Sent: 27 August 2006 17:03
To: beginners at lists.squeakfoundation.org
Subject: [Newbies] PluggableTextMorph


Hi

I'm looking for some advice on setting the margins in a
PluggableTextMorph(PTM) programaticaly. It can be done easily once the PTM
is open in the World by drilling down to the TextMorph and invoking its menu
using the halos, but I would like the option of initialising them, or adding
as an item to a menu of the PTM.

Am I missing something obvious? Should I just use a TextMorph instead? Hints
rather than solutions would be preferable.

Thanks

Keith
Hamilton, Scotland

-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.11.6/428 - Release Date: 25/08/2006
 

_______________________________________________
Beginners mailing list
Beginners at lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners

-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.11.6/428 - Release Date: 25/08/2006
 

-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.11.6/428 - Release Date: 25/08/2006
 



More information about the Beginners mailing list