<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Mar 6, 2016 at 8:36 PM, Chris Muller <span dir="ltr"><<a href="mailto:ma.chris.m@gmail.com" target="_blank">ma.chris.m@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I would really like for Squeak to have a dark theme for 5.1. Marcel,<br>
Karl, and myself, have had a long and slow discussion about this over<br>
the last few months. These are the requirements we are targeting for<br>
Themes:<br>
<br>
1) ability to affect the visual appearance of every UI component of<br>
the system, by setting its various FillStyle's, #borderWidth,<br>
#iconForm's, #font's, etc.<br>
2) ability to swap out one entire visual Theme for another (via<br>
save/load), without affecting any of the non-visual Preferences.<br>
3) ability to easily grow the elements of Theme objects organically<br>
(as we can, for example, with our process for adding a new<br>
Preference).<br>
4) A chain-of-responsibility feature which, upon access of the<br>
value of a particular visual property, if it is not defined by the<br>
app, and not defined by the theme, then it can fallback to use the<br>
value of that property from the fallback theme.<br>
<br>
Marcel came up with a bespoke implementation which can meet the above<br>
requirements in about 30 lines of code across 12 methods.<br>
<br>
I have a commercial need for theming support in Squeak. That's why I<br>
approached Marcel last January to work on this, so we can could come<br>
up with a solution we agree on. Now that we have, I would like to<br>
move forward on this very soon.<br>
<br>
What do y'all think? In the next couple of weeks or so, Marcel, would<br>
you mind if I moved forward with your idea, or did you want to do the<br>
work? Karl, the work you did with your change-set could probably help<br>
us identify many of the accessing places which we'll need to update..<br>
<br>
</blockquote></div>Hi,</div><div class="gmail_extra">feel free to use the change set. </div><div class="gmail_extra">The change set touches many classes and some hard to track down stuff.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Best,</div><div class="gmail_extra">Karl</div><div class="gmail_extra"><br></div></div>