Abstract |
This report presents the issues that arize during the design and the implementation phases of the graphical part of Labyrinth: we present the choices made in various design and algorithmic issues and we describe in detail the way that the selected algorithms were implemented. The Labyrinth System is a general-purpose, open core for building graphical and CAD tools. It provides a set of mechanisms for the design of graphical objects, and their interconnection in hierarchical networks of cells. Its graphical part is responsible for interfacing with the user, which means: handling the input devices and drawing the graphical objects on the screen. In this report we present the decisions made so that the graphical part of the system would have a good response time to the user commands. We also present the selection and re-drawing mechanisms of the system. The user is able to select cells on the screen in order to modify their characteristics. After the modification one or more cells may need to be re-drawn. The above two mechanisms are based on the existence of bounding boxes for the design's cells. We also analize the way Labyrinth supports multiple colors, line-styles, fonts, and we describe how widgets can be used as cells. We also present the Labyrinth PostScript generation mechanism. Finally, in this report we present how the system can be modified in order to support overlapping cells. The notion that one cell is "on top of" another affects both the selection and the re-drawing of the cells of a drawing.
|