<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi Brenda,</p>
    <p>Welcome to the Cuis community!</p>
    <p>This is very nice. I've just pushed your code to our main GitHub
      repo. I also added your initials and name as a known Cuis
      contributor.</p>
    <p>Thank you!</p>
    <div class="moz-cite-prefix">On 2025-12-05 12:00 AM, BRENDA BARLETTA
      via Cuis-dev wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAB1wbqd+80Qvuuys4BaMrMGVEMOn7=qoUx+02GvurhNH497a_w@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr">
          <div dir="ltr">
            <p>Hello, everyone.</p>
            <p>I'm from <b>FIUBA,</b> currently taking the <b>Software
                Engineering I </b>course under Professor Luciano
              Leveroni. I have been working to improve the user
              experience within Cuis by enhancing the existing Theme
              Customizer.<br>
              <br>
              I noticed that, while users can personalize a theme, the
              configuration is ephemeral; any work done is either lost
              immediately upon switching back to a default theme or
              unintentionally overwritten upon subsequent customization.
              This gap meant that any custom theme effort (which
              requires the user to manually select, find the hexadecimal
              codes for, and enter each color one-by-one) was
              non-reusable. I propose the attached ChangeSet, which
              introduces a theme lifecycle management system, which
              allows custom themes to be <b>named, saved, and recalled</b>.  <br>
              <br>
              I thought of personalized themes as configuration data
              stored in a class-side <b>Dictionary</b> (savedThemes is
              a Class-Side Instance Variable of PersonalizedTheme
              class). This treats user themes as <b>globally accessible
                configuration data</b> that must be singular for the
              entire Cuis image. This approach prevents class hierarchy
              bloat (by avoiding the creation of new Theme subclasses
              for every saved configuration).<br>
              <br>
              The decision to store user themes as <b>dynamic data</b> and
              integrate it into the <code><font
                  face="arial, sans-serif">PersonalizedTheme</font></code>
              class structure was driven by the desire to provide a
              better user experience, maintaining the ThemeCustomizer's
              non-coding path for saving configurations, in contrast to
              the existing model of <b>one class per theme</b> (which
              actually forces the user to write SmallTalk code to make a
              new theme and save it).<br>
              <br>
              In terms of user interface changes:</p>
          </div>
        </div>
        <blockquote style="margin:0 0 0 40px;border:none;padding:0px">
          <div dir="ltr">
            <div dir="ltr">
              <p>1. The Theme Customizer window now includes a set of
                control buttons: a <b>"Save Theme"</b> button, which
                prompts the user to enter a name for the current
                configuration, and the standard <b>"Cancel"</b> button
                to close the ThemeCustomizer window.<br>
                <br>
                2. A new <b>"Manage Themes"</b> button opens a
                comprehensive menu, allowing users to view all their
                saved themes. From this menu, users can either instantly
                apply a theme or <b>permanently delete</b> a saved
                configuration.<br>
                <br>
                3. All user-defined themes are dynamically added to the
                <b>World > Preferences > Themes</b> menu, ensuring
                immediate accessibility after saving, exactly like the
                default system themes.</p>
            </div>
          </div>
        </blockquote>
        <div dir="ltr">
          <div dir="ltr">
            <p><b><br>
                Regarding the Attached ChangeSets and Installation:<br>
                <br>
              </b>I have attached <b>two separate ChangeSet files</b>
              which collectively contain the full feature. This
              separation was necessary due to the architectural division
              of the changes:</p>
            <ul>
              <li>
                <p><b>File 1: </b><code><font face="arial, sans-serif"><b><a
                          href="http://Theme-class-changeTheme.cs.st"
                          moz-do-not-send="true">Theme-class-changeTheme.cs.st</a></b>,
                      c</font></code>ontains the modification to the
                  base <b>theme </b><font face="arial, sans-serif"><b><code><font
                          face="arial, sans-serif">class >>
                          changeTheme. </font></code></b></font>This
                  file can be loaded independently in any Cuis image.</p>
              </li>
              <li>
                <p><b>File 2: <code><font face="arial, sans-serif"><a
href="http://ThemeCustomizer-AddSavingAndManagement.cs.st"
                          moz-do-not-send="true">ThemeCustomizer-AddSavingAndManagement.cs.st</a>,</font></code></b> contains
                  the new logic added to both <b>PersonalizedTheme </b>and
                  <b>ThemeCustomizerWindow</b> classes<b>. </b>This file
                  is intended to be applied <b>after</b> the <b><code><font
                        face="arial, sans-serif">Theme-Themes</font></code></b>
                  package has been loaded (via <font
                    face="arial, sans-serif"><code><font
                        face="arial, sans-serif">World > Preferences
                        > Load Themes</font></code>)</font>, as the
                  new changes depend on classes defined there.</p>
              </li>
            </ul>
            <p><br>
              <b>For successful loading, please ensure the Theme-Themes
                package is loaded before filing in </b><code
                style="font-weight:bold"><font face="arial, sans-serif">ThemeCustomizer-AddSavingAndManagement.cs</font>.</code><b>st</b><br>
            </p>
            <p><span class="gmail-"></span></p>
            <p>Thank you for your time!</p>
          </div>
        </div>
      </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>