![MIT 150 | Project Athena - X Window System Users and Developers Conference, Day 1 [3/4] 1/14/1987](https://data.docslib.org/img/3a60ab92a6e30910dab9bd827208bcff-1.webp)
MIT 150 | Project Athena - X Window System Users and Developers Conference, Day 1 [3/4] 1/14/1987 [MUSIC PLAYING] PALAY: My name is Andrew Palay I work at the Information Technology Center at Carnegie Mellon University. For those who don't know, the Information Technology Center is a joint project between Carnegie Mellon University and IBM. It also has some funding from the National Science Foundation. This talk is going to cover the Andrew toolkit. I'd like to begin this talk by providing a short example of what the toolkit's all about. In particular, how I made this slide. And actually some of the other slides. So I basically had the editor. In this case, I had typed in the text. And I selected a spot of the text and essentially asked to add a raster. This particular place, I added a raster. This object that we add into these will be referred to, and are referred to by the toolkit, as insets. The inset comes up as its default size, given that I've added nothing to it. I then request to read a known raster from the file, And this point, in this case the ITC logo. If you note, the actual inset itself hasn't increased in size to accommodate the raster image. The user has control over that size, can actually make it larger or smaller. Later in the talk, another slide you will see actually has a drawing. In this case, I selected areas that I wanted the drawing, actually created the drawing in place. In this case, I had the editing functions of the drawing editor. And finally, in order to have this critique, I was able to send this document to various people asking them for comments. They are then able to take this file, edit the file, the objects themselves are fully editable when they arrive. And then send them back to me. Basic concept behind the Andrew toolkit, first of all, is a toolkit for building user interface applications. As with all toolkits, it has to provide a set of basic components for building those applications. Components such as scrollbars, text, dialog boxes, the basic sort of components for laying out objects on the screen. This toolkit, however, attempts to go further. It has this architecture for quality supporting cooperating components. In this case, as I said, the components are called insets. For example, we wanted to be able to build a system that allowed you to have a text document with embedded insets, such as tables, drawings, rasters. Also, we wanted to be able to have a table editor, which provided the same functionality. So that I could place in text, drawings, rasters, et cetera, within a table. We also wanted the insets to be able to be used to provide-- to allow the user to build more complex insets. We wanted this functionality both for the programmer and for the end user. In building a system in this way-- and I'll discuss the details a little bit later-- the line between what is an application and what is an inset blurs. The goal here is for people to build insets, which just happen to be able to run as applications. I can use a drawing inset as a drawing application. But others can use those insets to suit their needs. Another key feature of this system is that we want it to be extensible. The basic facility for extending the toolkit is we allow for dynamic loading of code into running applications. So for example, in the Music department, a professor, or a programmer, could develop an inset that allowed you to edit musical scores. Or perhaps even to play musical scores. Those insets could then be deposited within text files, just as I deposited the raster in the previous example. Just as easily as I included the raster image. It's done in a way that I do not have to change the running application for the text object. No additional work on my part, as the creator of the text object, would have to be done. Another goal of the toolkit is Windows system independence. Our emphasis has basically been on X11. However, we believe we want to bring this functionality to other systems. Systems such as the Macintosh and OS/2. Some of the current insets, or applications, however you want to look at it, that are available in the system-- the system comes with a multimedia editor, it's called EZ. We have a TypeScript facility which is similar to xterm, under X11. A fairly complete help system, the ability to preview ditroff output files, handle mail. A system monitor, called Console-- which I'll show a little bit about-- text, and a mode for editing C files. The second group on this slide are a set of other objects, basically they're-- are part of the toolkit, but they for the most part, have to be labeled as sample objects. They're not as complete as the ones above. They are a demonstration of the functionality of the system, but they do require more work. So here's a sample image of the screen. The window manager that's being shown here is a window manager written at the Asus development in Cambridge, it's called CWM, it will be made available with the X11, for X11. The BE2 app, or excuse me, the Andrew toolkit applications-- it has an older name, it's disappearing-- run as any other X applications with whatever window manager you want. They can be run under an overlapping window manager. Three applications being shown here are Console in the upper corner, the TypeScript, and the editor, EZ itself, in this case, editing a text file. Here's a larger view of the text component in the toolkit. Text components, displays multiple fonts, indentation, different justification styles, it's optimized for display on the screen. The text is rewrapped automatically when the size of the window changes. It does automatic justification on the fly as you type characters. It also, however, provides-- as do most of the components in the system-- a way to print them on paper. In this case, this is the C text object. For Emacs users, that's essentially equivalent to electric C mode. It's just specialization of the text object that understands about the C code, will rewrap lines when they get too long with proper indentation. Comments are displayed in italics. Procedure headings are displayed in bold, making it much more easy for users to read and edit the text. Again the drawing editor. More or less in the flavor of MacDraw, not yet to the functionality of MacDraw, It has some other features that MacDraw doesn't have, but we'll leave those for another talk. The system also comes with a table object, table inset. In this case, it's showing off the spreadsheet capability of that table. That table can then be embedded in text. I could have actually created a table within this text, in this case, a letter. The user can then come in, and in this case, as can be seen, it selected the cell showing the gas expenses for one of the people. It is actually displaying the value of the cell in the message line, showing the user actually editing the spreadsheet in place. Similarly, there's equations insets. In this case, we have equations within text. The equation inset understands about the mathematical structure of equations. You can cut out various pieces, paste them in, and they understand the relationship to other expressions within the equation. The goal of BE2 is essentially to allow the user to combine these things in rather interesting fashions. In this case, I kind of was looking around, and decided what would be nice is to have a, more or less a electronic version of the CRC math reference guide. This case, an example of a table describing an Pascal's Triangle. Now this is really trying to describe it completely. The text along the left side would probably describe-- have a prose description of Pascal's Triangle, but in this case, it more or less describes what the table is. It also contains an equation, set of equations describing the triangle. The object over here is actually an animation inset. I can click in that area, I can tell it to animate, and it actually shows building Pascal's Triangle on the fly. And finally, in the lower right-hand corner, is a spreadsheet implementation of Pascal's Triangle. The other thing with this slide is that we can basically arbitrarily nest insets within each other. So we have a table, which contains various insets, which in itself is contained within text. As I said, the system comes with a Help system. The Help system allows you to get information on a variety of Unix programs and overview documentation of the system. As a matter of fact, it provides you complete access to all Unix man pages. And, for the most part, has reduced the need, at least on the CMU campus, for producing printed hard copy help information. Users in this case, for example, can go over into the Programs area, click on an item-- in this case, I clicked on EZ-- and it brought up the help information for the editor. The mail system we have on the CMU campus provides access to both mail and bulletin boards. And on the CMU campus, the number of bulletin boards, as can be seen in the very top of the screen, is about 1,450, all accessible via a single program.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages20 Page
-
File Size-