The Presentation Manager component of OS/2 is a graphics-oriented display manager, similar in scope to what you see on an Apple Macintosh computer. The calls to the Presentation Manager that your program makes are SAA-defined; i.e. they are the same as those you would use under MVS (when SAA gets here). The Presentation Manager borrows a lot from GDDM, IBM's graphics display package for MVS.
Colin Powell, the IBM Planning Manager for the OS/2 Presentation Manager, talked about PM specifics. PM supports windows, CGA, EGA and VGA displays, and an all-points-addressable (APA) interface. The spooler supports printing and plotting of graphics and alphanumerics. There are picture utilities and a font editor built-in, so you can change the bitmaps for the cursor or other icons that may appear on the screen.
The Presentation Manager adheres to SAA, but provides a number of other facilities so that you can use some of the hardware features specific to PCs ("though this may lessen portability of an SAA application"). While the PM provides a common interface for users (icons, pull-down menus, windows), it does not enforce the use of them.
PM supplies a shell program that is the first program to run on OS/2. It launches user programs, does spooler control, provides a clipboard, a command line, and window control. The functions provided by the PM shell aren't magic; they can be called directly by any application program via the application program interface (API).
Each application has at least one "main window", and perhaps many. Main windows are independent of each other, have pull-down menus (like Macintosh), and are generally long-lived. A transient type of window is the "dialog box", which only appears to solicit specific action from the user. Dialog boxes appear on the screen on top of the main window that "owns" it. Properties that an application can assign to windows are: position on screen, size, color, visibility and pointer shape. The pointer is a cursor that moves about the screen in response to mouse motion; each window can associate a unique shape with the pointer, e.g. when the pointer passes between windows it might change from an "arrow" shape to an "hourglass" shape (as on the Macintosh).
The API for the Presentation Manager supports four "device contexts". A "device" can be a bitmap, a window, a printer or a disk file, with no change in code required to switch devices. The input side of the API allows you to read either mouse or keyboard, or sense window-related events.
The "presentation space" that you write to is sort of a virtual window. It is infinitely large; when it is mapped into a real window (or printer) it is clipped to the appropriate size. You can write directly into the screen buffer via specialized calls to the Presentation Manager; this was provided in order to support high-performance applications.
PM supports both text and graphic fonts; typographic fonts allow you to print text strings side-by-side with graphic information. These fonts are either fixed or proportionally spaced.
Graphic objects are either RETAINED or NON-RETAINED. "Retained" means that OS/2 will remember the picture and re-draw it when the user moves a window (or makes it disappear and reappear). "Non-retained" objects require the application program to re-draw the picture when some window activity takes place.