Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/5/84; site osu-eddie.UUCP Path: utzoo!watmath!clyde!cbosgd!osu-eddie!elwell From: elwell@osu-eddie.UUCP (Clayton M. Elwell) Newsgroups: net.micro.mac,net.micro.amiga Subject: Portable User Interface Library Update Message-ID: <1115@osu-eddie.UUCP> Date: Tue, 14-Jan-86 16:14:47 EST Article-I.D.: osu-eddi.1115 Posted: Tue Jan 14 16:14:47 1986 Date-Received: Wed, 15-Jan-86 01:23:21 EST Reply-To: elwell@osu-eddie.UUCP (Clayton M. Elwell) Organization: Ohio State Univ., CIS Dept., Cols, Oh. Lines: 50 Xref: watmath net.micro.mac:4076 net.micro.amiga:1538 The Portable User Interface Library (henceforth referred to as "PL"; I hate typing the whole thing out) is progressing nicely. For the curious, I will detail the one major problem I have run into, and the solution I came up with. If anyone is (a) violently opposed to this approach, and (b) able to suggest a better alternative (this is important), please send me mail with details before I get knee-deep in code. First, I'll define two useful terms. A ``persistent window'' is a window that remains on the screen until it is explicitly removed by the user. Document windows, etc. are good examples of persistent windows. Temporary windows are things like alerts, modal dialogs, pop-up and pull-down menus, etc. Here is the problem: On multitasking systems, such as Intuition, Microsoft Windows, Sunwindows, the Apple Lisa Office System (R.I.P.), etc., each application has its own persistent window, while on the Mac and GEM, each application usually has several persistent windows. What this boils down to is a difference in philosophy about who controls the desktop. To illustrate, let's imagine you have a (hypothetical) program called ``PL Paint'' which lets you edit, save, & print bitmapped pages. If this program acted like MacPaint and opened up three or so windows (a palette, a tool chest, and a document window), it would work fine on a Mac, but would get confusing real fast on a Sun or Amiga, since you could easily get confused if you were running two instances at once. Since that would be a reasonable thing to do in many circumstances, that is obviously not The Right Way. After doing (a) some deep thinking about this, and (b) a lot of playing around with existing systems, including Sunwindows, Smalltalk-80, Xerox XDE, Microsoft Windows, GEM, the Mac, and Interlisp-D, I have come to a conclusion. The right way to approach the problem is to use a concept that is used in all multitasking systems and some Mac/GEM programs. This is the concept of a ``pane''. A good example for Mac users is MacDraw. Each document window is split into several parts: the tool chest, the document, the rulers, etc. Controls such as scroll bars can also be thought of as special-purpose panes. Because of the reasons mentioned above, PL will encourage the following windowing behavior: a program should have one persistent window per open document (or more accurately, per user context) which should be split up into panes if necessary. This way you get the benefits of multiple windows without losing track of what windows are associated with which document or application. Comments? Suggestions? Words of Wisdom? (No religious flames please. If you object, defend your answer :-)) -- -- Clayton Elwell Elwell@Ohio-State.CSNET Elwell%Ohio-State@CSNET-RELAY.ARPA ...!cbosgd!osu-eddie!elwell