<div dir="ltr">We already have the WindowColorRegistry, so we could extend that to have background color<div><br></div><div>Best,</div><div>Karl</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 12, 2016 at 5:40 PM, Chris Muller <span dir="ltr">&lt;<a href="mailto:asqueaker@gmail.com" target="_blank">asqueaker@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">&gt; ScrollPanes should not have any knowlegde about SystemWindow. So storing the<br>
&gt; preference in SystemWindow &gt;&gt; #backgroundColor is not an option.<br>
<br>
+1, but that is tangential to our discussion at the moment -- we just<br>
want to establish our &quot;design&quot; for enabling the ability to have<br>
different color sets.<br>
<br>
&gt; It would make sense, however, to attach individual preference to those major<br>
&gt; widgets. So that ScrollPane has its own #backgroundColor.<br>
<br>
Use-case #1 is:  I&#39;m working during the day, I want a brighter,<br>
black-on-white scheme, when night comes, I want to &quot;one-click&quot; switch<br>
to a white-on-black scheme **without changing or having to<br>
double-manage** any of my other Preferences in the system -- they<br>
remain untouched.<br>
<br>
I&#39;m concerned that individual preferences scattered across a bunch of<br>
global class vars would inhibit my use-case above.  Are you saying I<br>
would have to go into Preferernces panel and change the 30-50<br>
&quot;individual preferences&quot; to go to night mode?  To have &quot;color themes&quot;<br>
someone would have to write a methods to update all the globals,<br>
something like this:<br>
<br>
    ScrollPane backgroundColor: ...<br>
    ScrollPane foregroundColor: ...<br>
    SystemWindow titlebarBackgroundColor: ...<br>
    SystemWindow titlebarForegroundColor: ...<br>
    UserDialogBoxMorph backgroundColor: ...<br>
    UserDialogBoxMorph foregroundColor: ...<br>
<br>
And what package would such methods be written in?  They have to<br>
reference the entire system, so there would be dependency issues.<br>
Every time we discover a new thing needing color we&#39;ll have to update<br>
this method...<br>
<br>
That&#39;s why I think we store colors into ColorSchemes which can be<br>
swapped out whole and grow organically instead of a bunch of<br>
class-vars.  I don&#39;t care about exact the implementation details, just<br>
that we make something flexible and easy to use and maintain, not<br>
brittle.  Please.<br>
<br>
</blockquote></div><br></div>