<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>I would like Cuis to have a configurable WindowManager that takes
      care of window positioning, etc, but also let you choose the class
      of window to use by making SystemWindow wrap their contents, and
      not have subclasses of it for the different applications. So, it
      would be composition over inheritance. Like, instead of a
      SystemBrowserWindow, have MySystemWindow open: Browser, and the
      window system class (MySystemWindow) is configured by the
      WindowManager.</p>
    <p>It can be done, and I have prototyped it, but I didn't take it to
      the end.</p>
    <p>     Mariano    <br>
    </p>
    <div class="moz-cite-prefix">El 10/2/25 a las 07:20, Luciano
      Notarfrancesco via Cuis-dev escribió:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAL5GDyrkhiKoe5u2ycURGrCO3UAaJQwZh3i4preRMWZ7mhs_Tg@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div>
        <div>
          <div dir="auto"
style="font-family:-apple-system,helveticaneue;font-size:16px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;background-color:rgba(0,0,0,0);border-color:rgb(0,0,0);color:rgb(0,0,0)">It
            seems several of us have already implemented different
            versions of the “window manager” thing to replace some of
            the default behavior of windows, do tiling, create or change
            global keyboard shortcuts, implement virtual pages or
            screens, etc. I made my own tiling window manager just as I
            like it, and I disable the taskbar and use something else
            instead (a small widget to show in which page you are, and
            which pages have opened windows).</div>
          <div dir="auto"
style="font-family:-apple-system,helveticaneue;font-size:16px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;background-color:rgba(0,0,0,0);border-color:rgb(0,0,0);color:rgb(0,0,0)"><br>
          </div>
          <div dir="auto"
style="font-family:-apple-system,helveticaneue;font-size:16px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;background-color:rgba(0,0,0,0);border-color:rgb(0,0,0);color:rgb(0,0,0)">I
            think, perhaps, at some point we could have some object
            grouping together these things, with a default in the base
            image (like Themes), and packages could implement different
            ways of managing windows. I have a WindowManagerMorph class 
            <div style="font-family:-apple-system,helveticaneue"
              dir="auto"><a
href="https://github.com/len/Cuis-Smalltalk-DWM/blob/9b0f0b95aca31f8a8b3c8dee95fabedfcfc9c55d/Morphic-DWM.pck.st#L586"
                style="font-family:-apple-system,helveticaneue"
                moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/len/Cuis-Smalltalk-DWM/blob/9b0f0b95aca31f8a8b3c8dee95fabedfcfc9c55d/Morphic-DWM.pck.st#L586</a><span
style="font-family:-apple-system,helveticaneue;background-color:rgba(0,0,0,0);border-color:rgb(0,0,0);color:rgb(0,0,0)"> that
                receives messages when windows are opened or closed (and
                could do window positioning ), and receives keystroke
                events (possibly handling them before any other morph,
                in order to implement global shortcuts). I think these
                three messages are the main “hooks” I needed to add,
                perhaps other people need others. Opinions?</span></div>
          </div>
        </div>
        <br>
      </div>
      <div dir="auto">Cheers,<br>
      </div>
      <div dir="auto">Luciano</div>
      <div dir="auto"><br>
      </div>
      <div dir="auto">
        <div class="gmail_quote gmail_quote_container" dir="auto">
          <div dir="ltr" class="gmail_attr">On Mon, Feb 10, 2025 at
            02:41 Mark Volkmann via Cuis-dev <<a
              href="mailto:cuis-dev@lists.cuis.st"
              moz-do-not-send="true" class="moz-txt-link-freetext">cuis-dev@lists.cuis.st</a>>
            wrote:<br>
          </div>
          <blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">
            <div dir="ltr">
              <div>Checkout my WindowManager package at <a
href="https://github.com/mvolkmann/Cuis-Smalltalk-WindowManager"
                  target="_blank" moz-do-not-send="true"
                  class="moz-txt-link-freetext">https://github.com/mvolkmann/Cuis-Smalltalk-WindowManager</a>.
                This addresses two issues. The first is where windows
                are opened. The second is the ability to save and
                restore window locations and sizes. The README explains
                all of this and there is a link to a video at the bottom
                of the README that demonstrates all the features.</div>
            </div>
            <div dir="ltr">
              <div><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"
style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)">R. Mark
                                Volkmann</font></div>
                            <div><span style="font-size:12.8px"><font
                                  face="arial, helvetica, sans-serif"
style="font-family:arial,helvetica,sans-serif;color:rgb(0,0,0)">Object
                                  Computing, Inc.</font></span></div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            -- <br>
            Cuis-dev mailing list<br>
            <a href="mailto:Cuis-dev@lists.cuis.st" target="_blank"
              moz-do-not-send="true" class="moz-txt-link-freetext">Cuis-dev@lists.cuis.st</a><br>
            <a href="https://lists.cuis.st/mailman/listinfo/cuis-dev"
              rel="noreferrer" target="_blank" moz-do-not-send="true"
              class="moz-txt-link-freetext">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
          </blockquote>
        </div>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
    </blockquote>
  </body>
</html>