## pen-guts.pkg
#
# A read-only drawing context.
# This is gets mapped onto an
## pen-guts.api
#
# A read-only drawing context.
# This is gets mapped onto an
# X-server graphics context (GC)
# by the pen_imp
# Compiled by:
#
src/lib/x-kit/xclient/xclient-internals.sublib# The internal representation of pen values.
# This api is implemented in:
#
#
src/lib/x-kit/xclient/src/window/pen-guts.pkgstipulate
package vec = vector;
package g2d = geometry2d; # geometry2d is from
src/lib/std/2d/geometry2d.pkg package xt = xtypes; # xtypes is from
src/lib/x-kit/xclient/src/wire/xtypes.pkgherein
api Pen_Guts {
#
Pen_Part # Internal representation of pen traits.
= IS_DEFAULT
| IS_WIRE Unt
# A trait's wire (X protocol network) representation.
| IS_PIXMAP xt::Pixmap_Id
| IS_POINT g2d::Point
| IS_BOXES (xt::Box_Order, List( g2d::Box ))
| IS_DASHES List( Int )
;
Pen = { traits: vec::Vector( Pen_Part ), # The pen state vector (read-only).
bitmask: Unt # Bitmask giving which vector entries have non-default values.
};
pen_slot_count: Int;
default_pen: Pen;
# Test two pens to see if they
# match on the subset of their traits
# specified by a bitmask:
#
pen_match: (Unt, Pen, Pen) -> Bool;
};
end;
## COPYRIGHT (c) 1990, 1991 by John H. Reppy. See SMLNJ-COPYRIGHT file for details.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.