Return-Path: Received: from RI.CMU.EDU by B.GP.CS.CMU.EDU id aa05334; 5 Feb 96 20:57:58 EST Received: from hilly.harlequin.com by RI.CMU.EDU id aa02747; 5 Feb 96 20:56:00 EST Received: from ensoniq.seattle.harlequin.com by hilly.harlequin.com; Mon, 5 Feb 1996 20:55:27 -0500 Received: from bright.harlequin.com (bright.seattle.harlequin.com) by ensoniq.seattle.harlequin.com; Mon, 5 Feb 1996 17:55:23 -0800 To: gwydion-group@cs.cmu.edu Reply-To: chiles@harlequin.com Subject: [Scott McKay: DUIM spec, rev 1.1] Date: Mon, 05 Feb 1996 17:55:18 -0800 Message-Id: <20201.823571718@bright.seattle.harlequin.com> From: Bill Chiles I think this should have gone to you guys too. It is not much more than what there was previously, but there's a bit more. For anyone paying much attention to the DUIM layer (to the extent that it includes the Silica layer), I thought you might care. Bill ------- Forwarded Message From: Scott McKay Date: Mon, 5 Feb 96 19:47:13 EST Message-Id: <1184.9602060047@bakura.harlequin.com> To: dylan-libraries Subject: DUIM spec, rev 1.1 Here's the latest version DUIM spec outline. Andy and I believe this to be in a pretty final form (modulo issues listed below, including in particular the issue of support OLE), so if you have any comments (difficult, given the fact that there is no English once you get into the functionality!), I hope they don't propose sweeping redesign. - ---------------- DUIM specification outline -- 5 Feb 1996 Version History: 1.0: original [now outline.text.jan29] 1.1: new library organization This document is meant to serve as an outline for a DUIM specification. There are no descriptions for any functions or classes to be found here. There are no helpful descriptions, no motivational material, and no examples. Nonetheless, this might still be useful to people other than the DUIM implementors. The functionality is broken into a number of libraries, and each library is broken into a user-level API module and an internal implementation module. About 2/3 of the functionality is in the user API. Only DUIM core and back-end implementors need to worry about the remaining 1/3. The signatures of the functions aren't fully fleshed out. Note that we have tried to use names for arguments and return values that convey useful type information. No mention is made of sealed vs. open, abstract vs. concrete, etc, for classes or generic functions. The mixin classes obviously exist to provide methods for various generic functions, but none of these methods are documented here. There are a still a few small things missing: - Drag&drop is not modelled - Cut&paste (the clipboard) is not modelled We have done some initial rationality checks, but this task is not yet fully completed in detail. In particular, although we paid attention to a number of other toolkits when designing DUIM, we need to go back and be sure we really covered them. They are: - the UI components of MFC - Tcl/Tk - Fresco - Java's UI library - CAPI/GP/Color (part of LispWorks) We need to support Fresco's superior model for accumulating damage regions, and delaying repainting as late as possible. We need to be sure the UI component of OLE (in particular, OCX's) is fully modelled. The main missing thing here is to make "command loops" be first class objects, so that we can model menu-bar merging. TERMINOLOGY A _sheet_ is the basic unit of "windowing". All sheets have the following attributes: - 'sheet-region', expressed in the sheet's own coordinate system - 'sheet-transform', which maps the sheets coordinate system to the coordinate system of its parent - 'sheet-parent', which is #f if the sheet has no parent - 'sheet-mapped?' flag, which tells if the sheet is visible on a display (ignoring issues of occluding windows) The sheet's transform is an instance of a concrete subclass of . The sheet's region can be an instance of any concrete subclass of , but is usually represented by the particularly efficient region class . Some sheets can also have single or multiple children, in which case they have: - a 'sheet-children' slot - methods to add, remove, and replace a child - methods to map over children The functions that maintain the sheet's region and transform are part of the _sheet geometry_ protocol. Functions that maintain a sheet's parent and children are part of the _sheet genealogy_ protocol. Note that the sheet geometry and genealogy protocols are independent. Adding a child to a sheet that is larger than its parent does _not_ cause the parent's region to grow. You must maintain the region yourself, either by explicitly setting the sheet's region and transform, or by using the layout facilities. _Input sheets_ are sheets that can do input, in which case they have: - a 'sheet-event-queue' slot - methods for 'handle-event' An _event_ is an object representing some sort of event. The most important events are subclasses of (for example, and ). Some sheets can be repainted, in which case they have: - methods for 'handle-repaint' _Output sheets_ can do output, in which case they have: - a 'sheet-medium' slot A _medium_ is an object that wraps up both a drawing surface and some drawing state, including: - default foreground and background - a _brush_, which controls how graphical objects are filled and colored - a _pen_, which controls how paths are stroked - a _text style_, which controls what font to use for text - a _clipping region_ - a user transform - a set of 'draw-xxx' methods Two graphics models are supports: _figure-based graphics_ and _path-based_ graphics. The figure-based graphics functionality includes such functions as 'draw-line' and 'draw-ellipse'. The path-based graphics functionality includes such functions as 'move-to', 'curve-to', 'fill-path', and 'stroke-path'. Output sheets also support _pixmap_ operations, such as 'copy-area'. Pixmaps are a special case of a more general class of _images_. In general, images are a way to describe a representation of a set of colors in a drawing plane. _Patterns_ are a portable kind of image, but there are also specific kinds of images such as , , and so forth. A sheet can be attached to a _display_, which is an object that represents a single display (or screen) on some display server. A display (and all the sheets attached to the display) is associated with a _port_, which is a connection to a display server. The port manages - a primary input device, such as a keyboard - a pointing device, such as a mouse - an event processor, which _dispatches_ events to the appropriate sheet Some sheets participate in layouts, in which case we often refer to them as _panes_. The layout protocol is two-pass; the first pass is the _space composition_ pass (which builds up a set of _space requirement_ objects describing the desired, minimum, and maximum size for each pane), and the second pass is the _space allocation_ pass (which allocates real estate to each pane after solving the constraints that represent the desired size for each pane). (The layout protocol, in effect, serves as glue between the genealigy and geometry protocols.) Some sheets act as "controls", in which case we refer to them as _gadgets_. Examples include push buttons, scroll bars, and sliders. A _frame_ is an object representing some state in a user application, plus the panes in its interface. A frame might include such things as a menu bar, a tool bar, and a status bar. A frame has a top level loop that processes events received by the frame. One important kind of event is a , which is received in response to _commands_. A command is an object representing an interaction with the user. Commands can be arranged in _command tables_, which drive the creation of menu bars. Command tables allow semantic components of applications to be shared among different frames. The look and feel of a frame and its panes are created via a _frame manager_. The frame manager maps an _abstract pane_ (such as ) to a _concrete pane_ (such as ). The frame manager is also responsible for generating the appropriate UI for menus, dialogs, directory choosers, and so forth. The process of creating a native window-system object from an abstract pane is called _mirroring_; the abstract pane is referred to as a _mirrored sheet_ and the native window-system object is referred to as a _mirror_. Mapping a mirrored sheet causes the mirror itself to be mapped. 1. DUIM-Utilities library -- general utilities for the DUIM implementation 1.1 DUIM-Utilities internals and implementation module - uses nothing - exports... Dylan language extensions $unsupplied [Constant] $unfound [Constant] [Type] $most-positive-fixnum [Constant] $most-negative-fixnum [Constant] $pi [Constant] $2pi [Constant] $pi/2 [Constant] inc! (place) [Macro] dec! (place) [Macro] min! (place) [Macro] max! (place) [Macro] ignore (#rest values) => () [Function] dynamic-extent (#rest values) => () [Function] report (condition stream) => () [Generic function] warn (format-string #rest format-args) => () [Function] print-unreadable-object (value, stream, #rest options) body end [Macro] do-print-unreadable-object [Generic function] (object stream continuation #rest options) => () destructuring-let ((pattern ...) = value) body end [Macro] fluid-bind (place = value, ...) body end [Macro] define fluid-variable variable = value [Macro] *multiprocessing?* [Variable] atomic-inc! place [Macro] without-preemption body end [Macro] define protocol name (supers) slots-and-functions end [Macro] with-stack-list (variable = element, ...) body end [Macro] evacuate-list (stack-list) => (list) [Function] with-stack-vector (variable = length, #rest options) body end [Macro] evacuate-vector (stack-vector) => (vector) [Function] gethash (table key) => (value found?) [Generic function] gethash-setter (value table key) => (value) [Generic function] remhash (table key) => () [Generic function] substitute (sequence old new) => (new-sequence) [Generic function] substitute! (sequence old new) => (sequence) [Generic function] insert-at! (sequence item index) => (sequence) [Generic function] remove-at! (sequence index) => (sequence) [Generic function] find-pair (sequence item #key test = \==) => (pair) [Generic function] count (predicate sequence) => (count) [Generic function] make-array-from-contents (sequence) => (array) [Function] fill-array! (array sequence) => (array) [Function] sqrt (x) => (y) [Generic function] log (x) => (y) [Generic function] sin (x) => (y) [Generic function] cos (x) => (y) [Generic function] tan (x) => (y) [Generic function] asin (x) => (y) [Generic function] acos (x) => (y) [Generic function] atan (x) => (y) [Generic function] get-internal-real-time () => (msec) [Function] get-universal-time () => (utime) [Function] decode-universal-time [Function] (utime) => (seconds minutes hours day month year) internal-time-units-per-second () => (ticks) [Function] 2. DUIM-Geometry library -- region and transformation modelling 2.1 DUIM-Geometry API module - uses nothing - creates... Coordinates [Type] $largest-coordinate [Constant] $smallest-coordinate [Constant] coordinate (x) => (coordinate) [Function] fix-coordinate (x) => (integer) [Function] do-coordinates (function coordinates) => () [Generic function] do-endpoint-coordinates (function coordinates) => () [Generic function] Bounding Boxes [Class] superclasses: bounding-box? (object) => (boolean) [Generic function] make-bounding-box (x1 y1 x2 y2) => (bounding-box) [Function] bounding-box (region #key into) => (bounding-box) [Generic function] with-box-edges ((left, top, right, bottom) = region) body end [Macro] box-edges (point) => (left top right bottom) [Generic function] set-box-edges (region left top right bottom) => (bounding-box) [Generic function] box-position (region) => (x y) [Generic function] set-box-position (region x y) => (bounding-box) [Generic function] box-size (region) => (width height) [Generic function] set-box-size (region width height) => (bounding-box) [Generic function] box-left (region) => (left) [Generic function] box-top (region) => (top) [Generic function] box-right (region) => (right) [Generic function] box-bottom (region) => (bottom) [Generic function] box-width (region) => (width) [Generic function] box-height (region) => (height) [Generic function] Simple Regions [Class] superclasses: region? (object) => (boolean) [Generic function] [Class] superclasses: point? (object) => (boolean) [Generic function] [Class] superclasses: path? (object) => (boolean) [Generic function] [Class] superclasses: area? (object) => (boolean) [Generic function] [Class] superclasses: region-set? (object) => (boolean) [Generic function] $everywhere [Constant] $nowhere [Constant] [Class] superclasses: init keywords: x: y: make-point (x y) => (point) [Function] point-position (point) => (x y) [Generic function] point-x (point) => (x) [Generic function] point-y (point) => (y) [Generic function] region-equal (region1 region2) => (boolean) [Generic function] = (region1 region2) => (boolean) [GF method] region-contains-position? (region x y) => (boolean) [Generic function] region-contains-region? (region1 region2) => (boolean) [Generic function] region-intersects-region? (region1 region2) => (boolean) [Generic function] region-union (region1 region2) => (region) [Generic function] region-intersection (region1 region2) => (region) [Generic function] region-difference (region1 region2) => (region) [Generic function] region-empty? (region) => (boolean) [Generic function] do-regions (function region #key (normalize? = #f)) => () [Generic function] region-set-function (region) => (function) [Generic function] region-set-regions (region #key (normalize? = #f)) => (regions) [Generic function] transform-region (transform region) => (region) [Generic function] untransform-region (transform region) => (region) [Generic function] Transformations [Class] superclasses: transform? (object) => (boolean) [Generic function] $identity-transform [Constant] make-transform (mxx mxy myx myy tx ty) => (transform) [Function] make-translation-transform (tx ty) => (transform) [Generic function] make-rotation-transform* [Generic function] (angle #key (origin-x = 0) (origin-y = 0)) => (transform) make-rotation-transform (angle #key origin) => (transform) [Generic function] make-scaling-transform* [Generic function] (mx my #key (origin-x = 0) (origin-y = 0)) => (transform) make-scaling-transform (mx my #key origin) => (transform) [Generic function] make-reflection-transform* (x1 y1 x2 y2) => (transform) [Generic function] make-reflection-transform (point-1 point-2) => (transform) [Generic function] make-3-point-transform* [Generic function] (x1 y1 x2 y2 x3 y3 x1-image y1-image x2-image y2-image x3-image y3-image) => (transform) make-3-point-transform [Generic function] (point-1 point-2 point-3 point-1-image point-2-image point-3-image) => (transform) compose-transforms (transform1 transform2) => (transform) [Generic function] compose-transform-with-translation [Generic function] (transform tx ty) => (transform) compose-transform-with-rotation [Generic function] (transform angle #key origin) => (transform) compose-transform-with-scaling [Generic function] (transform mx my #key origin) => (transform) compose-translation-with-transform [Generic function] (transform tx ty) => (transform) compose-rotation-with-transform [Generic function] (transform angle #key origin) => (transform) compose-scaling-with-transform [Generic function] (transform mx my #key origin) => (transform) invert-transform (transform) => (transform) [Generic function] transform-equal (transform1 transform2) => (boolean) [Generic function] = (transform1 transform2) => (boolean) [GF method] identity-transform? (transform) => (boolean) [Generic function] translation-transform? (transform) => (boolean) [Generic function] invertible-transform? (transform) => (boolean) [Generic function] rectilinear-transform? (transform) => (boolean) [Generic function] reflection-transform? (transform) => (boolean) [Generic function] scaling-transform? (transform) => (boolean) [Generic function] even-scaling-transform? (transform) => (boolean) [Generic function] rigid-transform? (transform) => (boolean) [Generic function] [Class] superclasses: [Class] superclasses: init keywords: points: [Class] superclasses: [Class] superclasses: init keywords: transform: transform-position (transform x y) => (x y) [Generic function] untransform-position (transform x y) => (x y) [Generic function] transform-distance (transform dx dy) => (dx dy) [Generic function] untransform-distance (transform dx dy) => (dx dy) [Generic function] transform-box (transform x1 y1 x2 y2) => (x1 y1 x2 y2) [Generic function] untransform-box (transform x1 y1 x2 y2) => (x1 y1 x2 y2) [Generic function] transform-angles (transform start-angle end-angle) => (start end) [Generic function] untransform-angles (transform start-angle end-angle) => (start end) [Generic function] 2.2 DUIM-Geometry-Internals internals and implementation module - uses DUIM-Utilities - uses DUIM-Geometry, re-exports all - exports... Coordinates transform-coordinates! (transform, x, y, ...) [Macro] transform-distances! (transform, dx, dy, ...) [Macro] convert-to-device-coordinates! (transform, x, y, ...) [Macro] convert-to-device-distances! (transform, dx, dy, ...) [Macro] Bounding Boxes box-left-setter (left region) => (left) [Generic function] box-top-setter (top region) => (top) [Generic function] box-right-setter (right region) => (right) [Generic function] box-bottom-setter (bottom region) => (bottom) [Generic function] box-invalidated? (box) => (invalid?) [Generic function] invalidate-box! (box) => () [Generic function] box-edges-equal (box1 box2) => (boolean) [Generic function] position-difference (x1 y1 x2 y2) => (dx dy) [Function] LTRBs ltrb-equals-ltrb? (left1 top1 right1 bottom1 [Function] left2 top2 right2 bottom2) => (boolean) ltrb-contains-position? (left top right bottom x y) => (boolean) [Function] ltrb-contains-ltrb? (left1 top1 right1 bottom1 [Function] left2 top2 right2 bottom2) => (boolean) ltrb-intersects-ltrb? (left1 top1 right1 bottom1 [Function] left2 top2 right2 bottom2) => (boolean) ltrb-union (left1 top1 right1 bottom1 [Generic function] left2 top2 right2 bottom2 #key (banding = #"x-banding")) => (boxes) ltrb-intersection (left1 top1 right1 bottom1 [Generic function] left2 top2 right2 bottom2) => (box) ltrb-difference (left1 top1 right1 bottom1 [Generic function] left2 top2 right2 bottom2) => (boxes) ltrb-size-equal? (left1 top1 right1 bottom1 [Function] left2 top2 right2 bottom2) => (boolean) ltrb-well-formed? (left top right bottom) => (boolean) [Function] Random Geometry Hacking radians->degrees (radians) => (degrees) [Function] degrees->radians (degrees) => (radians) [Function] position-close-to-line? [Function] (x y x1 y1 x2 y2 #key (thickness = 1)) => (boolean) position-inside-polygon? [Function] (x y position-seq #key (closed? = #t)) => (boolean) position-inside-ellipse? [Function] (x y radius-1-dx radius-1-dy radius-2-dx radius-2-dy) => (boolean) position-on-thick-ellipse? [Function] (x y radius-1-dx radius-1-dy radius-2-dx radius-2-dy #key (thickness = 1)) => (boolean) coordinate-sequence-box [Function] (coord-seq #key (thickness = 0)) => (left top right bottom) elliptical-arc-box [Function] (center-x center-y radius-1-dx radius-1-dy radius-2-dx radius-2-dy start-angle end-angle #key (thickness = 0)) => (left top right bottom) angle-between-angles? (angle angle-1 angle-2) => (boolean) [Function] Simple Regions [Class] superclasses: [Class] superclasses: everywhere? (region) => (boolean) [Generic function] Transformations [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: transform-components (transform) => (mxx mxy myx myy tx ty) [Generic function] transform-coordinate-sequence [Generic function] (transform coords #key copy?) => (coords) Mutable transformations [Class] superclasses: compose-transform-into! (transform into) => (into) [Generic function] compose-translation-into! (tx ty into) => (into) [Generic function] 3. DUIM-Extended-Geometry library -- extended shape modelling 3.1 DUIM-Extended-Geometry API module - uses nothing - creates... Complex Regions [Class] superclasses: polygon? (object) => (boolean) [Generic function] [Class] superclasses: init keywords: coords: points: make-polygon* (coord-seq) => (polygon) [Function] make-polygon (point-seq) => (polygon) [Function] polygon-coordinates (polygon) => (coordinates) [Generic function] polygon-points (polygon) => (points) [Generic function] do-polygon-coordinates (function polygon) => () [Generic function] do-polygon-segments (function polygon) => () [Generic function] [Class] superclasses: polyline? (object) => (boolean) [Generic function] [Class] superclasses: init keywords: coords: points: closed?: make-polyline* (coord-seq #key (closed? = #f)) => (polyline) [Function] make-polyline (point-seq #key (closed? = #f)) => (polyline) [Function] polyline-closed? (polyline) => (boolean) [Generic function] [Class] superclasses: line? (object) => (boolean) [Generic function] [Class] superclasses: init keywords: start-x: start-y: end-x: end-y: points: make-line* (start-x start-y end-x end-y) => (line) [Function] make-line (start-point end-point) => (line) [Function] line-start-point (line) => (point) [Generic function] line-end-point (line) => (point) [Generic function] line-start-position (line) => (x y) [Generic function] line-end-position (line) => (point) [Generic function] [Class] superclasses: rectangle? (object) => (boolean) [Generic function] [Class] superclasses: init keywords: min-x: min-y: max-x: max-y: points: make-rectangle* (x1 y1 x2 y2) => (rectangle) [Function] make-rectangle (min-point max-point) => (rectangle) [Function] rectangle-edges (rectangle) => (x1 y1 x2 y2) [Generic function] rectangle-min-point (rectangle) => (point) [Generic function] rectangle-max-point (rectangle) => (point) [Generic function] rectangle-min-position (rectangle) => (x1 y1) [Generic function] rectangle-max-position (rectangle) => (x2 y2) [Generic function] rectangle-size (rectangle) => (width height) [Generic function] rectangle-width (rectangle) => (width) [Generic function] rectangle-height (rectangle) => (height) [Generic function] [Class] superclasses: ellipse? (object) => (boolean) [Generic function] [Class] superclasses: init keywords: center-x: center-y: center-point: radius-1-dx: radius-1-dy: radius-2-dx: radius-2-dy: start-angle: end-angle: make-ellipse* (center-x center-y [Function] radius-1-dx radius-1-dy radius-2-dx radius-2-dy #key start-angle end-angle) => (ellipse) make-ellipse (center-point [Function] radius-1-dx radius-1-dy radius-2-dx radius-2-dy #key start-angle end-angle) => (ellipse) ellipse-center-position (ellipse) => (x y) [Generic function] ellipse-center-point (ellipse) => (point) [Generic function] ellipse-radii (ellipse) => (r1-dx r1-dy r2-dx d2-dy) [Generic function] ellipse-start-angle (ellipse) => (angle) [Generic function] ellipse-end-angle (ellipse) => (angle) [Generic function] [Class] superclasses: elliptical-arc? (object) => (boolean) [Generic function] [Class] superclasses: init keywords: center-x: center-y: center-point: radius-1-dx: radius-1-dy: radius-2-dx: radius-2-dy: start-angle: end-angle: make-elliptical-arc* (center-x center-y [Function] radius-1-dx radius-1-dy radius-2-dx radius-2-dy #key start-angle end-angle) => (arc) make-elliptical-arc (center-point [Function] radius-1-dx radius-1-dy radius-2-dx radius-2-dy #key start-angle end-angle) => (arc) 3.2 DUIM-Extended-Geometry-Internals API module - uses DUIM-Utilities - uses DUIM-Geometry-Internals - uses DUIM-Extended-Geometry, re-exports all - exports... nothing 4. DUIM-DCs library -- colors, palettes, pens, brushes ("drawing contexts") 4.1 DUIM-DCs API module - uses nothing - adds methods = (color1 color2) => (boolean) [GF method] = (pen1 pen2) => (boolean) [GF method] = (style1 style2) => (boolean) [GF method] - creates... Colors [Class] superclasses: color? (object) => (boolean) [Generic function] make-rgb-color [Function] (red green blue #key (opacity = 1.0)) => (color) make-ihs-color [Function] (intensity hue saturation #key (opacity = 1.0)) => (color) color-rgb (color) => (r g b opacity) [Generic function] color-ihs (color) => (i h s opacity) [Generic function] [Class] superclasses: make-gray-color [Function] (luminosity #key (opacity = 1.0)) => (gray-color) color-luminosity (color) => (luminosity) [Generic function] [Class] superclasses: init keywords: how-many: which-one: make-contrasting-colors (n #key k) => (colors) [Generic function] contrasting-colors-limit (port) => (integer) [Generic function] make-color-for-contrasting-color (ink) => (color) [Generic function] $background [Constant] $foreground [Constant] $default-foreground [Constant] $default-background [Constant] $black [Constant] $white [Constant] $red [Constant] $blue [Constant] $green [Constant] $cyan [Constant] $yellow [Constant] $magenta [Constant] Palettes [Class] superclasses: palette? (object) => (boolean) [Generic function] make-palette (port #key) => (palette) [Generic function] color-palette? (palette) => (boolean) [Generic function] dynamic-palette? (palette) => (boolean) [Generic function] find-color (name palette #key (error? = #f)) => (color) [Generic function] add-colors (palette #rest colors) => () [Generic function] remove-colors (palette #rest colors) => () [Generic function] [Class] superclasses: init keywords: color: [Class] superclasses: init keywords: palette: Dynamic and Layered Colors [Class] superclasses: init keywords: color: make-dynamic-color (color) => (dynamic-color) [Function] dynamic-color-color (dynamic-color) => (color) [Generic function] dynamic-color-color-setter (color dynamic-color) => (color) [Generic function] Images, Patterns, and Stencils [Class] superclasses: ink? (object) => (boolean) [Generic function] [Class] superclasses: image? (object) => (boolean) [Generic function] image-width (image) => (width) [Generic function] image-height (image) => (height) [Generic function] image-depth (image) => (depth) [Generic function] read-image (locator #key image-type) => (image) [Generic function] write-image (image locator) => () [Generic function] convert-image (image image-type) => (image) [Generic function] image-convertible? (image image-type) => (boolean) [Generic function] [Class] superclasses: init keywords: array: colors: transform: pattern? (object) => (boolean) [Generic function] make-pattern (array colors) => (pattern) [Function] [Class] superclasses: make-stencil (array) => (stencil) [Function] Pens [Class] superclasses: pen? (object) => (boolean) [Generic function] make-pen (#rest initargs) => (pen) [Function] with-pen (medium, #rest pen-initargs) body end [Macro] pen-width (pen) => (width) [Generic function] pen-units (pen) => one-of(#"normal", #"point", #"device") [Generic function] pen-cap-shape [Generic function] (pen) => one-of(#"butt", #"square", #"round", #"no-end-point") pen-joint-shape [Generic function] (pen) => one-of(#"miter", #"bevel", #"round", #"none") pen-dashes (pen) => type-union(, ) [Generic function] make-contrasting-dash-patterns (n #key k) => (dashes) [Generic function] contrasting-dash-patterns-limit (port) => (integer) [Generic function] $solid-pen [Constant] $dashed-pen [Constant] $dotted-pen [Constant] $dash-dot-pen [Constant] $dash-dot-dot-pen [Constant] Brushes [Class] superclasses: brush? (object) => (boolean) [Generic function] = (brush1 brush2) => (boolean) [GF method] make-brush (#rest initargs) => (brush) [Function] with-brush (medium, #rest brush-initargs) body end [Macro] brush-background (brush) => (ink) [Generic function] brush-foreground (brush) => (ink) [Generic function] brush-mode (brush) => (integer) [Generic function] brush-stipple (brush) => (stipple) [Generic function] brush-tile (brush) => (image) [Generic function] brush-ts-x (brush) => false-or() [Generic function] brush-ts-y (brush) => false-or() [Generic function] brush-fill-rule (brush) [Generic function] brush-fill-style (brush) [Generic function] brush-stretch-mode (brush) [Generic function] $xor-brush [Constant] $boole-clr [Constant] $boole-set [Constant] $boole-1 [Constant] $boole-2 [Constant] $boole-c1 [Constant] $boole-c2 [Constant] $boole-and [Constant] $boole-ior [Constant] $boole-xor [Constant] $boole-eqv [Constant] $boole-nand [Constant] $boole-nor [Constant] $boole-andc1 [Constant] $boole-andc2 [Constant] $boole-orc1 [Constant] $boole-orc2 [Constant] $horizontal-hatch [Constant] $vertical-hatch [Constant] $cross-hatch [Constant] $diagonal-hatch-down [Constant] $diagonal-hatch-up [Constant] $bricks-stipple [Constant] $tiles-stipple [Constant] $parquet-stipple [Constant] $hearts-stipple [Constant] Text Styles [Class] superclasses: init keywords: family: weight: slant: size: text-style? (object) => (boolean) [Generic function] make-text-style (family weight slant size) => (text-style) [Generic function] text-style-components (style) => (family weight slant size) [Generic function] text-style-family (text-style) => (family) [Generic function] text-style-weight (text-style) => (weight) [Generic function] text-style-slant (text-style) => (slant) [Generic function] text-style-size (text-style) => (size) [Generic function] [Class] superclasses: init keywords: port: font-name: make-device-font (port font-name) => (device-font) [Generic function] merge-text-styles (style1 style2) => (text-style) [Generic function] fully-merged-text-style? (style) => (boolean) [Generic function] with-text-style (medium, #rest style-initargs) body end [Macro] do-with-text-style (medium function text-style) => () [Generic function] 4.2 DUIM-DCs-Internals internals and implementation module - uses DUIM-Utilities - uses DUIM-Geometry-Internals - uses DUIM-DCs, re-exports all - exports... Palettes do-add-colors (palette #rest colors) => () [Generic function] do-remove-colors (palette #rest colors) => () [Generic function] allocate-color (color palette) => (pixel) [Generic function] deallocate-color (color palette) => () [Generic function] Images, Patterns, and Stencils decode-pattern (pattern) => (array colors) [Generic function] Text Styles [Class] superclasses: $default-text-style [Constant] $null-text-style [Constant] $standard-character-set [Constant] $undefined-text-style [Constant] device-font-port (device-font) => (port) [Generic function] device-font-name (device-font) => (name) [Generic function] 5. DUIM-Silica library -- window, event, and drawing surface modelling 5.1 DUIM-Silica API module - uses nothing - adds methods to: force-output (medium) => () [GF method] synchronize-output (medium) => () [GF method] - creates... Sheets [Class] superclasses: sheet? (object) => (boolean) [Generic function] sheet-region (sheet) => (region) [Generic function] sheet-region-setter (region sheet) => (region) [Generic function] sheet-transform (sheet) => (transform) [Generic function] sheet-transform-setter (transform sheet) => (transform) [Generic function] add-child (sheet child #key index) => (sheet) [Generic function] remove-child (sheet child) => (sheet) [Generic function] replace-child (sheet old-child new-child) => (sheet) [Generic function] sheet-parent (sheet) => false-or() [Generic function] sheet-parent-setter (parent sheet) => false-or() [Generic function] sheet-frame (sheet) => false-or() [Generic function] sheet-child (sheet) => false-or() [Generic function] sheet-child-setter (child sheet) => false-or() [Generic function] sheet-children (sheet) => (sheets) [Generic function] sheet-children-setter (children sheet) => (sheets) [Generic function] child-containing-position (sheet x y) => false-or() [Generic function] do-children-containing-position (function sheet x y) => () [Generic function] children-overlapping-region (sheet region) => (sheets) [Generic function] do-children-overlapping-region (function sheet region) => () [Generic function] do-sheet-tree (function sheet) => () [Generic function] sheet-ancestor? (sheet putative-ancestor) => (boolean) [Generic function] raise-sheet (sheet) => () [Generic function] lower-sheet (sheet) => () [Generic function] sheet-pointer-cursor (sheet) => (keyword) [Generic function] sheet-pointer-cursor-setter (keyword sheet) => (keyword) [Generic function] sheet-text-cursor (sheet) => (cursor) [Generic function] sheet-mapped? (sheet) => (boolean) [Generic function] sheet-mapped?-setter (mapped? sheet) => (boolean) [Generic function] destroy-sheet (sheet) => () [Generic function] Mediums and Output Sheets [Class] superclasses: medium? (object) => (boolean) [Generic function] medium-background (medium) => (ink) [Generic function] medium-background-setter (background medium) => (ink) [Generic function] medium-foreground (medium) => (ink) [Generic function] medium-foreground-setter (foreground medium) => (ink) [Generic function] medium-brush (medium) => (brush) [Generic function] medium-brush-setter (brush medium) => (brush) [Generic function] medium-pen (medium) => (pen) [Generic function] medium-pen-setter (pen medium) => (pen) [Generic function] medium-transform (medium) => (transform) [Generic function] medium-transform-setter (transform medium) => (transform) [Generic function] medium-clipping-region (medium) => (region) [Generic function] medium-clipping-region-setter (region medium) => (region) [Generic function] medium-default-text-style (medium) => (text-style) [Generic function] medium-default-text-style-setter (text-style medium) => (text-style) [Generic function] medium-text-style (medium) => (text-style) [Generic function] medium-text-style-setter (text-style medium) => (text-style) [Generic function] medium-merged-text-style (medium) => (text-style) [Generic function] medium-drawable (medium) => (object) [Generic function] medium-drawable-setter (drawable medium) => (object) [Generic function] medium-sheet (medium) => false-or() [Generic function] sheet-medium (sheet) => false-or() [Generic function] with-sheet-medium (medium = sheet) body end [Macro] do-with-sheet-medium [Generic function] (sheet continuation) => (#rest values) with-temporary-medium (medium = sheet) body end [Macro] beep (medium) => () [Generic function] clear-area (medium left top right bottom) => () [Generic function] with-drawing-options (medium, #rest options) body end [Macro] do-with-drawing-options [Generic function] (medium function #rest options) => (#rest values) with-transform (medium, transform) body end [Macro] with-translation (medium, dx, dy) body end [Macro] with-rotation (medium, angle) body end [Macro] with-scaling (medium, scale-x, scale-y) body end [Macro] with-identity-transform (medium) body end [Macro] with-clipping-region (medium, region) body end [Macro] Event model [Class] superclasses: init keywords: timestamp: event? (object) => (boolean) [Generic function] event-sheet (event) => (sheet) [Generic function] event-modifier-state (event) => (integer) [Generic function] sheet-event-queue (sheet) => (deque) [Generic function] queue-event (client event) => () [Generic function] handle-event (client event) => () [Generic function] repaint-sheet (sheet region #key medium) => () [Generic function] queue-repaint (sheet event) => () [Generic function] handle-repaint (sheet medium region) => () [Generic function] Events and input sheets [Class] superclasses: init keywords: x: y: pointer: pointer-event-pointer (event) => (pointer) [Generic function] pointer-event-x (event) => (x) [Generic function] pointer-event-y (event) => (y) [Generic function] [Class] superclasses: [Class] superclasses: init keywords: kind: pointer-boundary-event-kind (event) => (keyword) [Generic function] [Class] superclasses: [Class] superclasses: [Class] superclasses: init keywords: button: pointer-event-button (event) => (integer) [Generic function] [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: init keywords: key-name: character: keyboard-event-character (event) => false-or() [Generic function] keyboard-event-key-name (event) => (keysym) [Generic function] [Class] superclasses: [Class] superclasses: [Class] superclasses: init keywords: region: sheet: window-event-region (event) => (region) [Generic function] [Class] superclasses: [Class] superclasses: init keywords: sheet: [Class] superclasses: [Class] superclasses: [Class] superclasses: Font Mapping text-style-mapping (port style #key character-set) => (font) [Generic function] text-style-mapping-setter [Generic function] (font port style #key character-set) => (font) text-style-mapping-exists? [Generic function] (port style #key character-set (exact-size? = #f)) => (boolean) [Class] superclasses: init keywords: port: style: font-ascent (text-style medium) => (ascent) [Generic function] font-descent (text-style medium) => (descent) [Generic function] font-width (text-style medium) => (width) [Generic function] font-height (text-style medium) => (height) [Generic function] font-metrics (text-style medium) => (width height ascent descent) [Generic function] fixed-width-font? (text-style medium) => (boolean) [Generic function] text-size (medium text #key text-style (start = 0) end) [Generic function] => (largest-x largest-y cursor-x cursor-y baseline) Ports [Class] superclasses: port? (object) => (boolean) [Generic function] default-port (#key server-path) => (port) [Generic function] default-port-setter (port) => (port) [Generic function] find-port (#rest initargs #key server-path) [Generic function] restart-port (port) => () [Generic function] destroy-port (port) => () [Generic function] do-ports (function) => () [Function] get-default-foreground (port sheet #key foreground) => (ink) [Generic function] get-default-background (port sheet #key background) => (ink) [Generic function] get-default-text-style (port sheet #key text-style) => (text-style) [Generic function] port-modifier-state (port) => (integer) [Generic function] port-pointer (port) => (pointer) [Generic function] port-name (port) => (object) [Generic function] port-server-path (port) => (object) [Generic function] note-port-terminated (port condition) => () [Generic function] Displays [Class] superclasses: display? (object) => (boolean) [Generic function] find-display (#key server-path port [Generic function] (orientation = #"default") (units = #"device")) do-displays (function port) => () [Function] display-width (display #key (units = #"device")) => (number) [Generic function] display-height (display #key (units = #"device")) => (number) [Generic function] display-depth (display) => (integer) [Generic function] display-mm-height (display) => (number) [Generic function] display-mm-width (display) => (number) [Generic function] display-pixel-width (display) => (integer) [Generic function] display-pixel-height (display) => (integer) [Generic function] display-pixels-per-point (display) => (number) [Generic function] display-units (display) => one-of(#"device", #"pixels", #"mm") [Generic function] display-orientation (display) => (orientation) [Generic function] Pointers [Class] superclasses: pointer? (object) => (boolean) [Generic function] pointer-position (pointer #key sheet) => (x y) [Generic function] set-pointer-position (pointer x y #key sheet (port-did-it? = #f)) => () [Generic function] pointer-cursor (pointer) => (keyword) [Generic function] pointer-cursor-setter (cursor pointer) => (keyword) [Generic function] pointer-button-state (pointer) => (integer) [Generic function] pointer-sheet (pointer) => false-or() [Generic function] with-pointer-grabbed (sheet, #rest options) body end [Macro] do-with-pointer-grabbed [Generic function] (port sheet continuation #key) => (#rest values) Cursors [Class] superclasses: cursor? (object) => (boolean) [Generic function] [Class] superclasses: cursor-position (cursor) => (x y) [Generic function] set-cursor-position (cursor nx ny #key (fast? = #f)) => () [Generic function] cursor-active? (cursor) => (boolean) [Generic function] cursor-active?-setter (new-active cursor) => (boolean) [Generic function] cursor-focus? (cursor) => (boolean) [Generic function] cursor-focus?-setter (new-focus cursor) => (boolean) [Generic function] cursor-visible? (cursor) => (boolean) [Generic function] cursor-visible?-setter (new-visible cursor) => (boolean) [Generic function] with-cursor-visible (sheet, visible?) body end [Macro] Gestures make-modifier-state (#rest modifiers) => (integer) [Generic function] modifier-key-index (name) => (integer) [Function] modifier-key-index-name (index) => (name) [Function] button-index (name) => (integer) [Function] button-index-name (index) => (name) [Function] $shift-key [Constant] $control-key [Constant] $option-key [Constant] $command-key [Constant] $meta-key [Constant] $hyper-key [Constant] $super-key [Constant] $modifier-keys [Constant] $left-button [Constant] $middle-button [Constant] $right-button [Constant] $pointer-buttons [Constant] add-gesture-name (name type gesture-spec #key unique?) => () [Generic function] remove-gesture-name (name type) => () [Generic function] event-matches-gesture-name? (event gesture-name) => (boolean) [Generic function] gesture-spec-equal (gesture1 gesture2) => (boolean) [Generic function] Frames (forward references) [Class] superclasses: frame? (object) => (boolean) [Generic function] *frame* [Fluid variable] destroy-frame (frame) => () [Generic function] layout-frame (frame #key width height) => () [Generic function] Frame Managers [Class] superclasses: frame-manager? (object) => (boolean) [Generic function] make-frame-manager (port #key palette) => (framem) [Generic function] find-frame-manager [Generic function] (#rest initargs #key port server-path palette) => (framem) with-frame-manager (framem) body end [Macro] make-pane [Generic function] (pane-class #rest pane-options #key frame-manager) => (sheet) frame-manager-frames (framem) => (frames) [Generic function] do-frames (function #key port frame-manager) => () [Generic function] notify-user [Generic function] (message-string #key (frame = *frame*) owner title documentation exit-boxes name style foreground background text-style) => (boolean) choose-file [Generic function] (#key (frame = *frame*) owner title documentation exit-boxes name default) => (locator) choose-directory [Generic function] (#key (frame = *frame*) owner title documentation exit-boxes name default) => (locator) choose-color [Generic function] (#key (frame = *frame*) owner title documentation exit-boxes name default) => (color) choose-from-dialog [Generic function] (items #key (frame = *frame*) owner title default-item (name-key = identity) (value-key = identity) gadget-class gadget-options foreground background text-style) => (object cancelled?) choose-from-menu [Generic function] (items #key (frame = *frame*) owner title default-item (name-key = identity) (value-key = identity) foreground background text-style) => (object cancelled?) frame-manager-palette (framem) => (palette) [Generic function] frame-manager-palette-setter (palette framem) => (palette) [Generic function] frame-manager-dialog-view (framem) => (view) [Generic function] frame-manager-dialog-view-setter (view framem) => (view) [Generic function] frame-manager-menu-view (framem) => (view) [Generic function] frame-manager-menu-view-setter (view framem) => (view) [Generic function] General Accessors default-foreground (object) => (ink) [Generic function] default-foreground-setter (ink object) => (ink) [Generic function] default-background (object) => (ink) [Generic function] default-background-setter (ink object) => (ink) [Generic function] default-text-style (object) => (text-style) [Generic function] default-text-style-setter (text-style object) => (text-style) [Generic function] top-level-sheet (sheet) => false-or() [Generic function] frame-manager (object) => false-or() [Generic function] display (object) => false-or() [Generic function] port (object) => false-or() [Generic function] 5.2 DUIM-Silica-Internals internals and implementation module - uses DUIM-Utilities - uses DUIM-Geometry-Internals - uses DUIM-DCs-Internals - uses DUIM-Silica, re-exports all - exports... Sheets [Class] superclasses: init keywords: region: transform: pointer-cursor: x: y: width: height: [Class] superclasses: [Class] superclasses: note-region-changed (sheet #key (port-did-it? = #f)) => () [Generic function] do-note-region-changed (sheet #key (port-did-it? = #f)) => () [Generic function] note-transform-changed (sheet #key (port-did-it? = #f)) => () [Generic function] do-note-transform-changed (sheet #key (port-did-it? = #f)) => () [Generic function] do-add-child (sheet child #key index) => () [Generic function] note-child-added (sheet child) => () [Generic function] do-note-child-added (sheet child) => () [Generic function] do-remove-child (sheet child) => () [Generic function] note-child-removed (sheet child) => () [Generic function] do-note-child-removed (sheet child) => () [Generic function] do-replace-child (sheet old-child new-child) => () [Generic function] sheet-delta-transform (sheet ancestor) => (transform) [Generic function] do-raise-sheet (parent sheet) => () [Generic function] do-lower-sheet (parent sheet) => () [Generic function] do-set-sheet-pointer-cursor (port sheet keyword) => () [Generic function] note-sheet-attached (sheet) => () [Generic function] do-note-sheet-attached (sheet) => () [Generic function] note-sheet-detached (sheet) => () [Generic function] do-note-sheet-detached (sheet) => () [Generic function] note-sheet-mapped (sheet) => () [Generic function] do-note-sheet-mapped (sheet) => () [Generic function] note-sheet-unmapped (sheet) => () [Generic function] do-note-sheet-unmapped (sheet) => () [Generic function] do-destroy-sheet (sheet) => () [Generic function] sheet-input-focus (sheet) => (sheet) [Generic function] Mediums and Output Sheets [Class] superclasses: init keywords: foreground: background: transform: region: port: sheet: drawable: [Type] [Class] superclasses: init keywords: foreground: background: text-style: [Class] superclasses: [Class] superclasses: [Class] superclasses: attach-medium (sheet medium) => () [Generic function] do-attach-medium (sheet medium) => () [Generic function] detach-medium (sheet medium) => () [Generic function] do-detach-medium (sheet medium) => () [Generic function] make-medium (port sheet) => (medium) [Generic function] destroy-medium (medium) => () [Generic function] do-destroy-medium (medium) => () [Generic function] allocate-medium (port sheet) => (medium) [Generic function] deallocate-medium (port medium) => () [Generic function] sheet-medium-setter (medium sheet) => (medium) [Generic function] Event queues [Class] superclasses: make-event-queue () => (event-queue) [Function] event-queue-push (event-queue event) => () [Generic function] event-queue-push-last (event-queue event) => () [Generic function] event-queue-pop (event-queue) => (event) [Generic function] event-queue-top (event-queue) => (event) [Generic function] event-queue-empty? (event-queue) => (boolean) [Generic function] event-queue-clear (event-queue) => () [Generic function] Events and Input Sheets event-timestamp (event) => (integer) [Generic function] [Class] superclasses: init keywords: sheet: [Class] superclasses: init keywords: sheet: modifier-state: allocate-event (event-class #rest initargs) => (event) [Generic function] deallocate-event (event) => () [Generic function] [Class] superclasses: init keywords: event-queue: [Class] superclasses: [Class] superclasses: dispatch-event (client event) => () [Generic function] do-dispatch-event (sheet event) => () [Generic function] distribute-event (port event) => () [Generic function] do-distribute-event (port event) => () [Generic function] event-read (sheet) => (event) [Generic function] event-unread (sheet event) => () [Generic function] event-read-no-hang (sheet) => false-or() [Generic function] event-peek (sheet #key event-type) => (event) [Generic function] event-pending? (sheet) => (boolean) [Generic function] [Class] superclasses: [Class] superclasses: [Class] superclasses: port-handles-repaint? (sheet) => (boolean) [Generic function] Font Mapping do-text-style-mapping (port style character-set) => (font) [Generic function] compute-text-adjustment (medium text text-style align-x align-y [Generic function] #key (start = 0) end) => (dx dy) glyph-for-character (medium char text-style #key font) [Generic function] => (index font escapement-x escapement-y origin-x origin-y bb-x bb-y) standardize-text-style [Generic function] (port style #key character-set) => (text-style) standardize-text-style-size [Generic function] (port style size-alist #key character-set) => (text-style) Ports [Class] superclasses: init keywords: focus-selection: text-style-size-mapping: double-click-interval: do-destroy-port (port) => () [Generic function] port-default-foreground (port sheet) => false-or() [Generic function] port-default-background (port sheet) => false-or() [Generic function] port-default-text-style (port sheet) => false-or() [Generic function] port-default-palette (port) => (palette) [Generic function] port-default-palette-setter (palette port) => (palette) [Generic function] port-default-frame-manager (port) => (framem) [Generic function] port-frame-managers (port) => (framems) [Generic function] class-for-make-port (type-name) => (class) [Generic function] make-port (#rest initargs #key server-path) => (port) [Generic function] port-matches-server-path? (port server-path) => (boolean) [Generic function] port-mapping-cache (port) => (pair) [Generic function] port-mapping-table (port) => (table) [Generic function] port-undefined-text-style (port) => (text-style) [Generic function] port-undefined-text-style-setter (text-style port) => (text-style) [Generic function] port-canonical-gesture-specs (port) => (gesture-specs) [Generic function] Displays [Class] superclasses: [Class] superclasses: init keywords: port: orientation: units: attach-sheet (display sheet #rest pane-options #key) => () [Generic function] detach-sheet (display sheet) => () [Generic function] display-matches-characteristics? (display #key) => (boolean) [Generic function] display-mm-height-setter (height display) => (number) [Generic function] display-mm-width-setter (width display) => (number) [Generic function] display-pixel-height-setter (height display) => (integer) [Generic function] display-pixel-width-setter (width display) => (integer) [Generic function] display-pixels-per-point-setter (pixels display) => (number) [Generic function] initialize-display (port display) => () [Generic function] Mirrors [Class] superclasses: make-mirror (port sheet) => (mirror) [Generic function] do-make-mirror (port sheet) => (mirror) [Generic function] destroy-mirror (port sheet) => () [Generic function] do-destroy-mirror (port sheet) => () [Generic function] map-mirror (port sheet) => () [Generic function] do-map-mirror (port sheet) => () [Generic function] unmap-mirror (port sheet) => () [Generic function] do-unmap-mirror (port sheet) => () [Generic function] raise-mirror (port sheet) => () [Generic function] do-raise-mirror (port sheet) => () [Generic function] lower-mirror (port sheet) => () [Generic function] do-lower-mirror (port sheet) => () [Generic function] mirror-region (port sheet) => (region) [Generic function] mirror-edges (port sheet) => (left top right bottom) [Generic function] set-mirror-edges (port sheet left top right bottom) => () [Generic function] mirror-inside-edges (port sheet) => (left top right bottom) [Generic function] mirror-origin (port sheet) => (origin) [Generic function] mirror-visible? (port sheet) => (boolean) [Generic function] sheet-direct-mirror (sheet) => false-or(mirror) [Generic function] sheet-direct-mirror-setter (mirror sheet) => false-or(mirror) [Generic function] sheet-mirror (sheet) => (mirror) [Generic function] mirror-sheet (mirror) => (sheet) [Generic function] mirror-sheet-setter (sheet mirror) => (sheet) [Generic function] sheet-mirrored-ancestor (sheet #key (error? = #f)) => (sheet) [Generic function] sheet-device-edges (sheet) => (left top right bottom) [Generic function] sheet-device-region (sheet) => (region) [Generic function] sheet-device-transform (sheet) => (transform) [Generic function] sheet-native-edges (sheet) => (left top right bottom) [Generic function] sheet-native-region (sheet) => (region) [Generic function] sheet-native-transform (sheet) => (transform) [Generic function] sheet-native-transform-setter (transform sheet) => (transform) [Generic function] update-mirror-region (port sheet) => () [Generic function] update-mirror-transform (port sheet) => () [Generic function] Pointers [Class] superclasses: init keywords: port: do-pointer-position (port pointer sheet) => (x y) [Generic function] do-set-pointer-position (port pointer sheet x y) => () [Generic function] do-set-pointer-cursor (port pointer cursor) => () [Generic function] Cursors [Class] superclasses: init keywords: width: draw-cursor (port cursor sheet x y on? #rest keys) => () [Generic function] do-draw-cursor (port cursor sheet x y on? #key focus) => () [Generic function] note-cursor-changed (cursor type old new) => () [Generic function] do-note-cursor-changed (port cursor sheet type old new) => () [Generic function] Gestures button-and-modifier-state-matches-gesture-name? [Function] (button modifier-state gesture-name) => (boolean) keysym-and-modifier-state-matches-gesture-name? [Function] (keysym modifier-state gesture-name) => (boolean) modifier-state-matches-gesture-name? [Function] (modifier-state gesture-name) => (boolean) parse-gesture-spec (gesture-spec) => (keysym modifier-state) [Generic function] decode-gesture-spec (gesture-spec) => (keysym modifiers) [Generic function] canonicalize-gesture-spec [Generic function] (port gesture-spec #key modifier-state) => (gesture-spec) do-canonicalize-gesture-spec [Generic function] (port gesture-spec #key modifier-state) => (gesture-spec) invalidate-gesture-specs (port) => () [Generic function] keyboard-event? (event) => (boolean) [Generic function] key-press-event? (event) => (boolean) [Generic function] key-release-event? (event) => (boolean) [Generic function] keyboard-gesture-spec? (event) => (boolean) [Generic function] Frame Managers [Class] superclasses: init keywords: port: palette: dialog-view: menu-view: [Class] superclasses: destroy-frame-manager (framem) => () [Generic function] do-destroy-frame-manager (framem) => () [Generic function] frame-manager-matches-options? (framem port #key palette) => (boolean) [Generic function] do-make-pane (framem pane-class #rest pane-options) => (sheet) [Generic function] class-for-make-pane [Generic function] (framem pane-class #rest pane-options) => (class) do-notify-user [Generic function] (framem message-string #key (frame = *frame*) owner title documentation exit-boxes name style foreground background text-style) => (boolean) do-choose-file [Generic function] (framem #key (frame = *frame*) owner title documentation exit-boxes name default) => (locator) do-choose-directory [Generic function] (framem #key (frame = *frame*) owner title documentation exit-boxes name default) => (locator) do-choose-color [Generic function] (framem #key (frame = *frame*) owner title documentation exit-boxes name default) => (color) do-choose-from-dialog [Generic function] (framem items #key (frame = *frame*) owner title default-item (name-key = identity) (value-key = identity) gadget-class gadget-options foreground background text-style) => (object cancelled?) do-choose-from-menu [Generic function] (framem items #key frame owner title default-item (name-key = identity) (value-key = identity) foreground background text-style) => (object cancelled?) 6. DUIM-Graphics library -- path and figure graphics modelling 6.1 DUIM-Graphics API module - uses nothing - creates... Figure Graphics draw-point (drawable point) [Function] draw-point* (drawable x y) [Generic function] draw-points (drawable points) [Function] draw-points* (drawable coord-seq) [Generic function] draw-line (drawable point1 point2) [Function] draw-line* (drawable x1 y1 x2 y2) [Generic function] draw-lines (drawable points) [Function] draw-lines* (drawable coord-seq) [Generic function] draw-arrow (drawable point1 point2 [Function] #key (from-head? = #f) (to-head? = #t) (head-length = 10) (head-width = 5)) draw-arrow* (drawable x1 y1 x2 y2 [Generic function] #key (from-head? = #f) (to-head? = #t) (head-length = 10) (head-width = 5)) draw-rectangle (drawable point1 point2 #key (filled? = #t)) [Function] draw-rectangle* (drawable x1 y1 x2 y2 #key (filled? = #t)) [Generic function] draw-rectangles (drawable points #key (filled? = #t)) [Function] draw-rectangles* (drawable coord-seq #key (filled? = #t)) [Generic function] draw-polygon (drawable points #key (closed? = #t) (filled? = #t)) [Function] draw-polygon* (drawable coord-seq [Generic function] #key (closed? = #f) (filled? = #t)) draw-regular-polygon (drawable point1 point2 nsides [Function] #key (handedness = #"left") (closed? = #t) (filled? = #t) draw-regular-polygon* (drawable x1 y1 x2 y2 nsides [Generic function] #key (handedness = #"left") (closed? = #t) (filled? = #t)) draw-triangle (drawable p1 p2 p3 #key (filled? = #t)) [Function] draw-triangle* (drawable x1 y1 x2 y2 x3 y3 #key (filled? = #t)) [Generic function] draw-ellipse (drawable center [Function] radius-1-dx radius-1-dy radius-2-dx radius-2-dy #key start-angle end-angle (filled? = #t)) draw-ellipse* (drawable center-x center-y [Generic function] radius-1-dx radius-1-dy radius-2-dx radius-2-dy #key start-angle end-angle (filled? = #t)) draw-circle (drawable center radius [Function] #key start-angle end-angle (filled? = #t)) draw-circle* (drawable center-x center-y radius [Generic function] #key start-angle end-angle (filled? = #t)) draw-oval (drawable center x-radius y-radius [Function] #key (filled? = #t)) draw-oval* (drawable center-x center-y x-radius y-radius [Generic function] #key (filled? = #t)) draw-bezier-curve (drawable points #key (filled? = #t)) [Function] draw-bezier-curve* (sheet coord-seq #key (filled? = #t)) [Generic function] draw-image (drawable image point) [Function] draw-image* (drawable image x y) [Generic function] Text Graphics draw-text (drawable string-or-char point [Function] #key (start = 0) end (align-x = #"left") (align-y = #"baseline") towards-point (transform-glyphs? = #f)) draw-text* (drawable string-or-char x y [Generic function] #key (start = 0) end (align-x = #"left") (align-y = #"baseline") towards-x towards-y (transform-glyphs? = #f)) Path Graphics start-path (drawable) [Generic function] end-path (drawable) [Generic function] close-path (drawable) [Generic function] abort-path (drawable) [Generic function] move-to (drawable point) [Function] move-to* (drawable x y) [Generic function] line-to (drawable point) [Function] line-to* (drawable x y) [Generic function] curve-to (drawable point1 point2 point3) [Function] curve-to* (drawable x1 y1 x2 y2 x3 y3) [Generic function] stroke-path (drawable) [Generic function] fill-path (drawable) [Generic function] clip-from-path (drawable) [Generic function] save-clipping-region (drawable) [Generic function] restore-clipping-region (drawable) [Generic function] Pixmaps [Class] superclasses: pixmap? (object) => (boolean) [Generic function] copy-area (medium from-x from-y width height to-x to-y [Generic function] #key (function = $boole-1)) => () copy-from-pixmap (pixmap pixmap-x pixmap-y width height [Generic function] medium medium-x medium-y #key (function = $boole-1)) => () copy-to-pixmap (medium medium-x medium-y width height [Generic function] pixmap pixmap-x pixmap-y #key (function = $boole-1)) => () make-pixmap (medium width height) => (pixmap) [Generic function] destroy-pixmap (pixmap) => () [Generic function] draw-pixmap (medium pixmap point #key (function = $boole-1)) [Function] draw-pixmap* (sheet pixmap x y #key (function = $boole-1)) [Generic function] [Class] superclasses: with-output-to-pixmap (medium, #rest options) body end [Macro] do-with-output-to-pixmap [Generic function] (sheet continuation #key width height) => (pixmap) with-double-buffering (medium, #rest options) body end [Macro] do-with-double-buffering [Generic function] (medium continuation #key (x = 0) (y = 0) width height pixmap) => (#rest values) 6.2 DUIM-Graphics-Internals internals and implementation module - uses DUIM-Utilities - uses DUIM-Geometry-Internals - uses DUIM-DCs-Internals - uses DUIM-Silica-Internals - uses DUIM-Graphics, re-exports all - exports... Figure Graphics do-draw-point* (drawable x y) => () [Generic function] do-draw-points* (drawable coord-seq) => () [Generic function] do-draw-line* (drawable x1 y1 x2 y2) => () [Generic function] do-draw-lines* (drawable coord-seq) => () [Generic function] do-draw-rectangle* (drawable x1 y1 x2 y2 #key (filled? = #t)) => () [Generic function] do-draw-rectangles* (drawable coord-seq #key (filled? = #t)) => () [Generic function] do-draw-polygon* (drawable coord-seq [Generic function] #key (closed? = #f) (filled? = #t)) => () do-draw-ellipse* (drawable center-x center-y [Generic function] radius-1-dx radius-1-dy radius-2-dx radius-2-dy #key start-angle end-angle (filled? = #t)) => () do-draw-bezier-curve* (drawable coord-seq #key (filled? = #t)) => () [Generic function] Text Graphics do-draw-text* (drawable string-or-char x y [Generic function] #key (start = 0) end (align-x = #"left") (align-y = #"baseline") towards-x towards-y (transform-glyphs? = #f)) => () Path Graphics do-start-path (drawable) => () [Generic function] do-end-path (drawable) => () [Generic function] do-close-path (drawable) => () [Generic function] do-abort-path (drawable) => () [Generic function] do-move-to* (drawable x y) => () [Generic function] do-line-to* (drawable x y) => () [Generic function] do-curve-to* (drawable x1 y1 x2 y2 x3 y3) => () [Generic function] do-stroke-path (drawable) => () [Generic function] do-fill-path (drawable) => () [Generic function] do-clip-from-path (drawable) => () [Generic function] do-save-clipping-region (drawable) => () [Generic function] do-restore-clipping-region (drawable) => () [Generic function] Pixmaps do-copy-area (from-object from-x from-y width height [Generic function] to-object to-x to-y function) => () do-make-pixmap (port medium width height) => (pixmap) [Generic function] do-destroy-pixmap (port pixmap) => () [Generic function] do-draw-pixmap* (medium pixmap x y #key (function = $boole-1)) => () [Generic function] [Class] superclasses: init keywords: pixmap: [Class] superclasses: make-pixmap-medium (port sheet #key width height) => (pixmap-medium) [Generic function] pixmap-medium-pixmap (pixmap-medium) => (pixmap) [Generic function] 7. DUIM-Layouts library -- implementation of layouts 7.1 DUIM-Layouts API module - uses nothing - creates... Space Requirements [Class] superclasses: space-requirement? (object) => (boolean) [Generic function] make-space-requirement [Function] (#key (width = 0) (min-width = width) (max-width = width) (height = 0) (min-height = height) (max-height = height)) => (space-requirement) space-requirement-width (space-req) => (number) [Generic function] space-requirement-min-width (space-req) => (number) [Generic function] space-requirement-max-width (space-req) => (number) [Generic function] space-requirement-height (space-req) => (number) [Generic function] space-requirement-min-height (space-req) => (number) [Generic function] space-requirement-max-height (space-req) => (number) [Generic function] $fill [Constant] General Panes [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: init keywords: display: frame: frame-manager: user-specified-size?: user-specified-position?: pane-contents (table) => (sheet) [Generic function] pane-contents-setter (contents table) => (sheet) [Generic function] sheet-edges (sheet) => (left top right bottom) [Generic function] set-sheet-edges (sheet left top right bottom) => () [Generic function] sheet-position (sheet) => (x y) [Generic function] set-sheet-position (sheet x y) => () [Generic function] sheet-size (sheet) => (width height) [Generic function] set-sheet-size (sheet width height) => () [Generic function] Layout Panes compose-space (pane #key width height) => (space-requirement) [Generic function] do-compose-space (pane #key width height) => (space-requirement) [Generic function] allocate-space (pane width height) => () [Generic function] do-allocate-space (pane width height) => () [Generic function] resize-sheet (sheet #key width height) => () [Generic function] [Class] superclasses: [Class] superclasses: init keywords: x-spacing: x-ratios: y-alignment: equalize-heights?: horizontally (#rest options) panes; ... end [Macro] [Class] superclasses: init keywords: y-spacing: y-ratios: x-alignment: equalize-widths?: vertically (#rest options) panes; ... end [Macro] [Class] superclasses: init keywords: x-spacing: x-ratios: x-alignment: equalize-widths?: y-spacing: y-ratios: y-alignment: equalize-heights?: tabling (#rest options) panes; ... end [Macro] [Class] superclasses: init keywords: stretchable?: 7.2 DUIM-Layouts-Internals internals and implementation module - uses DUIM-Utilities - uses DUIM-Geometry-Internals - uses DUIM-DCs-Internals - uses DUIM-Silica-Internals - uses DUIM-Graphics-Internals - uses DUIM-Layouts, re-exports all - exports... Space Requirements space-requirement+ (sr1 sr2) => (space-requirement) [Function] space-requirement+* [Function] (sr #key (width = 0) (max-width = width) (min-width = width) (height = 0) (max-height = height) (min-height = height)) => (space-requirement) space-requirement-combine (function sr1 sr2) => (space-requirement) [Generic function] Layout Panes default-space-requirements [Generic function] (sheet #key width min-width max-width height min-height max-height) => (space-requirement) change-space-requirements [Generic function] (pane #key width min-width max-width height min-height max-height (resize-frame? = #f)) => () do-change-space-requirements (pane #key) => () [Generic function] changing-space-requirements (#rest options) body end [Macro] invalidate-space-requirements (sheet) => () [Generic function] invalidate-all-space-requirements (sheet) => () [Generic function] note-space-requirements-changed (parent child) => () [Generic function] reset-space-requirements (pane) => () [Generic function] constrain-size (size min max) => (new-size) [Function] [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: [Class] superclasses: 8. DUIM-Gadgets library -- native gadget modelling 8.1 DUIM-Gadgets API module - uses nothing - creates... Gadget model [Class] superclasses: gadget? (object) => (boolean) [Generic function] gadget-enabled? (gadget) => (boolean) [Generic function] gadget-enabled?-setter (enabled? gadget) => (boolean) [Generic function] gadget-id (gadget) => (object) [Generic function] gadget-id-setter (id gadget) => (object) [Generic function] gadget-client (gadget) => (object) [Generic function] gadget-client-setter (client gadget) => (object) [Generic function] gadget-label (gadget) => type-union(, ) [Generic function] gadget-label-setter (label gadget) => type-union(, ) [Generic function] gadget-armed-callback (gadget) => (function) [Generic function] gadget-armed-callback-setter (function gadget) => (function) [Generic function] gadget-disarmed-callback (gadget) => (function) [Generic function] gadget-disarmed-callback-setter (function gadget) => (function) [Generic function] gadget-accelerator (gadget) => (accelerator) [Generic function] gadget-accelerator-setter (accelerator gadget) => (accelerator) [Generic function] gadget-mnemonic (gadget) => (mnemonic) [Generic function] gadget-mnemonic-setter (mnemonic gadget) => (mnemonic) [Generic function] gadget-orientation (gadget) => one-of(#"horizontal", #"vertical") [Generic function] [Class] superclasses: init keywords: id: client: enabled?: gadget-activate-callback (gadget) => (function) [Generic function] gadget-activate-callback-setter (function gadget) => (function) [Generic function] [Class] superclasses: init keywords: id: client: enabled?: value: gadget-value (gadget) => (object) [Generic function] gadget-value-setter [Generic function] (value gadget #key (do-callback? = #f)) => (object) gadget-value-changed-callback (gadget) => (function) [Generic function] gadget-value-changed-callback-setter (function gadget) => (function) [Generic function] [Class] superclasses: init keywords: id: client: enabled?: focus-out-callback: focus-in-callback: gadget-focus-in-callback (gadget) => (function) [Generic function] gadget-focus-in-callback-setter (function gadget) => (function) [Generic function] gadget-focus-out-callback (gadget) => (function) [Generic function] gadget-focus-out-callback-setter (function gadget) => (function) [Generic function] gadget-value-range (gadget) => (range) [Generic function] gadget-value-range-setter (range gadget) => (range) [Generic function] gadget-slug-size (gadget) => (rea) [Generic function] gadget-slug-size-setter (slug-size gadget) => (slug-size) [Generic function] gadget-drag-callback (gadget) => (function) [Generic function] gadget-drag-callback-setter (function gadget) => (function) [Generic function] gadget-editable? (gadget) => (boolean) [Generic function] gadget-editable?-setter (editable? gadget) => (boolean) [Generic function] gadget-rich-text? (gadget) => (boolean) [Generic function] gadget-scrolling-horizontally? (gadget) => (boolean) [Generic function] gadget-scrolling-vertically? (gadget) => (boolean) [Generic function] Gadgets (excluding Collection Gadgets) [Class] superclasses: init keywords: value: editable?: [Class] superclasses: init keywords: scroll-bars: editable?: ncolumns: nlines: [Class] superclasses: [Class] superclasses: init keywords: orientation: value-range: show-value?: editable?: label: min-label: max-label: align-x: drag-callback: decimal-places: number-of-tick-marks: number-of-quanta: