PreviousUpNext

15.3.773  src/lib/x-kit/xclient/src/window/pen-guts.api

## 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.pkg

stipulate
    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.pkg
herein

    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.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext