<div dir="ltr">Tim,
<br><br>> One of the articles on Morphic says you can create composite morphs either programatically,
<br>> using addMorph, or using drag and drop from the Objects menu of the morphic World. I have
<br>> done the latter, because it is easier to design my layout that way. Once that has been done,
<br>> how do I address the submorph from a browser? If I inspect my button submorph, for example
<br>>, all it will tell me about it is "a ScriptableButton<Button>(13647<wbr>54)". I have no idea how to
<br>> access that object in order to do anything with it. This is the crux of my questions.
<br><br>This is, in my opinion, the most significant limitation of Morphic for
<br>interactive GUI creation. In the original Morphic in Self the way to
<br>handle this was to simply search through all your submorphs for the one
<br>you were interested in, usually by comparing the morphType string. In
<br>Squeak we can add properties to Morphs very easily so that would be one
<br>way to tag it. Something like:
<br><br>| stopButton |
<br>stopButton := nil.
<br>self submorphsDo: [ :m | (m hasProperty: #stopButton) ifTrue: [
<br>                               stopButton := m ] ].
<br>stopButton ifNotNilDo: [ :b | b ... ].
<br><br>Code like this will work even if there are no stopButtons at all and if
<br>you add more than one the code will just use the last one and ignore the
<br>others.
<br><br>After creating the button you have to get its halo and use the red
<br>button (menu) with the debug->inspect morph option to set the
<br>#stopButton property.
<br><br>An alternative to using specially created properties is to depend on the
<br>morph's name. In your case it is "a ScriptableButton<Button>(13647<wbr>54)"..
<br>So:
<br><br>self subMorphsDo: [ :m | (m name includesSubString: 'Button') ifTrue:
<br>...
<br><br>should work for you as long as there is only one button.
<br><br>-- Jecel
<div class="gmail_extra"><br><div class="gmail_quote">Thank you, Jecel, for trying to help me solve my problem. However, my plan is to have multiple sibling morphs for both the buttons and the texts.<br><br></div><div class="gmail_quote">So, I am diving in to trying to use addMorph: programatically to add submorphs to my display. This allows me to hold a reference to each submorph in named variables, through which I should then be able to specify state changes and act on events to and from my submorphs.<br><br></div><div class="gmail_quote">Maybe my mindset is just too old fashioned. Back in the 90's, I programmed MVC applications in VisualWorks. I thought Morphic was supposed to be much easier to use than MVC, but so far, I have not been able to figure out how to control my objects in Morphic.<br><br></div><div class="gmail_quote">Tim Cuthbertson<br></div><br></div></div>