Recent Changes - Search:

Navigation

Cy/VOS

Wiki

Users

LayerGUI

Authors: Chani, Telcontar
Category: Not certain right now, maybe Components
See also: Universal Interface, low-level window manager, Interface PostScript, message passing, Dispatcher, Session Manager, User/LayerGUI, Boot UI framework

Introduction

LayerGUI is the concept that describes the layered set of services that make up graphical user interaction in Cy/VOS. In its fullest sense, LayerGUI will provide software with an adaptable and flexible graphical rendition of Universal Interface on any hardware. The low-level window manager will be responsible for managing the layout of the screen and the appearance will be rendered using Interface PostScript. The user window environment will be responsible for the decisions made in how to draw and arrange windows and their content.

Like UNIX (and to an extent, Symbian OS), the graphical interface will be separate from the kernel and an optional part of the operating system, allowing it to supplement the system but not creating a dependence upon it. The GUI will be based on Cy/VOS's internal message passing API, and will be formed of a heirarchical set of standardized interfaces serviced by pluggable components. The windowing system will act as a Universal Interface dispatch binding, set up by the Session Manager, for interactive processes to forward their interaction requests to.

Cy/VOS will not necessarily have an "official" GUI, since it is designed to target many platforms with radically different capabilities, but the APIs should be the same (although, since it's built in hierarchical levels, some devices may support more levels than others).

Implementation

The current plan for the Cy/VOS GUI is a stack of layers. Each layer builds atop the layer below it, although the layers do not necessarily stack all the way up.

The following layers are defined:

Layer 0

Layer 0 is so named because it is not actually a part of the GUI at all, but a set of core OS components used to support the GUI. Layer 0 consists of the following:

  • Generic IPC system. All window management is carried out over this system, as are all associated information resources, including sound, clipboards, and the like. The Dispatcher will play an important part in this service.
  • Raw kernel device drivers for framebuffers and input devices.

Layer 1

Layer 1 of the GUI is designed to support the following:

  • Direct framebuffer access
  • Connection management and distribution of remote framebuffers
  • Control of window composition and multi-window placement and rendering

Layer 2

Layer 2 of the GUI is designed for the following:

  • Rendering of GUI widgets
  • Window management and decoration

Layer 3

Layer 3 of the GUI is responsible for the following:

  • Common controls
  • Session management
  • Program-in-program embedding

(Note that some of the ordering above is inconsistent with Universal Interface and Interface PostScript and overlaps other ideas. Because the original LayerGUI description predates these newer concepts it remains to be decided which order prevails.)

The following programs are currently suggested for implementing the different layers:

Edit - History - Print - Recent Changes - Search
Page last modified on June 16, 2006, at 02:45 AM