<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi Facu,</p>
<p>Wow. This is amazing. Thank you!</p>
<p>Updates 1..4 are now at GitHub. Now we have the pieces to start
thinking what kind of decorations make sense in our browsers. I
still have your change set 10.haveFun from April, and now your
5.haveFun. We need to do something based on them!</p>
<p>Again, Thank You.</p>
<p>Cheers,</p>
<div class="moz-cite-prefix">On 2026-09-22 8:01 PM, Facundo Javier
Gelatti via Cuis-dev wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAC1UKnZ-qcDyz530ZnfcMavntyvar=5hrscCfgGyKKHYFw=rPg@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">Hello!<br>
<br>
This is a follow-up to the changes I sent in April ("Refactoring
proposal for Browser>>classList"). The goal of these
changes is to improve the separation between content and
presentation in the browser. Last time I worked on the class
list, and now the attached changesets apply the same idea to the
message categories and methods lists, by giving each list a
single extension point where the presentation of their items can
be defined.<br>
<br>
I kept the same conventions of the previous changes, where the
messages for the class list were <span
style="font-family:monospace">#classList</span> (returns a
collection of classes), <span style="font-family:monospace">#classItems</span>
(returns labels), and <span style="font-family:monospace">#labelForClass:</span>
(returns the label for each class).<br>
In this case we have something similar: <span
style="font-family:monospace">#messageCategoryList/#messageList</span>
return symbols, <span style="font-family:monospace">#messageCategoryItems/#messageItems</span>
return labels, and <span style="font-family:monospace">#labelForCategory:/#labelForSelector:</span>
return the label specific for one category/selector.<br>
<br>
<div>To help during review, I split the work into small
sequential change sets, each of which also migrates the
windows already open in the image. Here's a summary of the
changes:</div>
<ol>
<li><i>implement_labelForCategory_for_browser</i>: the
extension point for the message categories list.</li>
<li><i>implement_labelForSelector_for_browser</i>: the
extension point for the methods list. The coloring that <span
style="font-family:monospace">CodeFileBrowser</span> used
to do inside <span style="font-family:monospace">#messageList</span>
moves to its <span style="font-family:monospace">#labelForSelector:</span>
override, so the <span style="font-family:monospace">#messageList</span>
override is no longer needed. I also adjusted <span
style="font-family:monospace">#categorizeUnderCategoryAt:selector:</span>
because drag and drop now passes it an item, not a selector.</li>
<li><i>use_labelForSelector_from_ChangeSorter</i>: the <span
style="font-family:monospace">ChangeSorter</span> method
list is now a regular <span style="font-family:monospace">PluggableListMorph</span>
over <span style="font-family:monospace">#messageItems</span>,
so the index methods now translate between the index and <span
style="font-family:monospace">#currentSelector</span>.</li>
<li><i>implement_labelForSelector_for_MethodSet</i>: the same
extension point for <span style="font-family:monospace">MethodSet</span>.
I also included a small cleanup of a redundant assignment in
<span style="font-family:monospace">MessageNames>>messageList</span>.</li>
<li><i>haveFun</i>: this last one is not meant for
integration, but it's useful to test the changes. It
overrides the three label methods to show icons and colors
in all of the lists, to demonstrate what the extension
points make possible.</li>
</ol>
<br>
Cheers!<br>
Facu</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
</blockquote>
<pre class="moz-signature" cols="72">--
Juan Vuletich
<a class="moz-txt-link-abbreviated" href="http://www.cuis.st">www.cuis.st</a>
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich</pre>
</body>
</html>