<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Mark,<br>
<br>
Thanks for this initiative. I've just pushed your comments.<br>
<br>
Cheers!<br>
<br>
On 4/2/2025 4:11 PM, Mark Volkmann via Cuis-dev wrote:
<blockquote
cite="mid:CAFfRWnXXm4zE==J4LY-bKB0aZOqMOPEm01vNYnsFFcuxWEN5_w@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>As a follow up to the Cuis meeting today, here's my initial
progress on two of the comments. I want to get some feedback
on this before I add more comments to the methods of this
class. Fire away!</div>
<div><br>
</div>
<div>For the TextModelMorph class I have the following:</div>
<div><br>
</div>
<div><font face="monospace">This is a morph that enables users
to view and edit text.<br>
<br>
The main features of this class include:</font></div>
<div><font face="monospace">- using either a TextModel or
TextProvider to hold the text being edited<br>
- styling and text wrapping (provided by InnerTextMorph)<br>
- scrolling with scrollbars (provided by superclass
PluggableScrollPane)<br>
<br>
There are two approaches for creating instances. One
approach is to hold the text value in a TextModel object.
The class methods withModel: and withText: support this. The
other approach is to hold the text value in a TextProvider.
The class methods that begin with textProvider: support
this. For examples, see the method comments in those class
methods.<br>
<br>
The default background color is white. A border is only
displayed when it has focus. One way to make its bounds
apparent when it doesn't have focus is to set the background
color of the parent component. Another way is to set the
background color of this morph.<br>
<br>
By default, words that would extend past the right side wrap
to the next line. To prevent wrapping, send an instance
#wrapFlag: with an argument of false.<br>
<br>
The default size is 200 by 100, set in the initialize method
of the superclass PluggableMorph. Depending on the font, the
default size displays around four lines of wrapping text
with around 17 characters per line. To change the size, send
an instance #morphExtent: with a Point argument that
specifies a width and height. The size should include space
for scroll bars if they may be needed. Setting the height to
zero causes it to actually be set to the height required for
a single line in the current font.</font><br>
<font face="monospace"><br>
Related classes include TextModel, TextProvider,
PluggableScrollPane, and InnerTextMorph.<br>
</font></div>
<div><br>
</div>
<div>For the class method testProvider:textGetter:textSetter: I
have this:</div>
<div><br>
</div>
<div><font face="monospace"> Answer a new instance that gets the
text from aTextProvider.<br>
<br>
aTextProvider must have corresponding getter and setter
methods<br>
that manage the text to be edited.<br>
For example, we can use an instance of the Exception class<br>
which has the methods messageText and messageText:.<br>
<br>
Select and evaluate the code below.<br>
In the Inspector that appears, select the messageText
instance variable.<br>
In the TextModelMorph that appears, change the text</font></div>
<div><font face="monospace">and note how it updates in the
Inspector.<br>
<br>
| exception morph |<br>
exception := Exception new.<br>
exception messageText: 'initial'.<br>
exception inspect.<br>
morph := TextModelMorph textProvider: exception textGetter:
#messageText textSetter: #messageText:.<br>
morph acceptOnAny: true.<br>
morph openInWorld.</font><br>
<br>
</div>
<span class="gmail_signature_prefix">-- </span><br>
<div dir="ltr" class="gmail_signature"
data-smartmail="gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr">
<div><font face="arial, helvetica, sans-serif">R.
Mark Volkmann</font></div>
<div><span style="font-size: 12.8px;"><font
face="arial, helvetica, sans-serif">Object
Computing, Inc.</font></span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">--
Juan Vuletich
cuis.st
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich
linkedin.com/in/juan-vuletich-75611b3
twitter.com/JuanVuletich</pre>
</body>
</html>