PreviousUpNext

15.4.1640  src/lib/x-kit/xclient/src/window/ro-pixmap-old.pkg

## ro-pixmap-old.pkg
#
# See also:
#     src/lib/x-kit/xclient/src/window/window-old.pkg
#     src/lib/x-kit/xclient/src/window/cs-pixmap-old.pkg
#     src/lib/x-kit/xclient/src/window/rw-pixmap-old.pkg

# Compiled by:
#     src/lib/x-kit/xclient/xclient-internals.sublib





###                     "My method to overcome a difficulty is to go round it."
###
###                                               -- George Polya


stipulate
    package cw  =  cs_pixmap_old;
    package dr  =  draw_old;                                    # draw_old              is from   src/lib/x-kit/xclient/src/window/draw-old.pkg
    package dt  =  draw_types_old;                              # draw_types_old        is from   src/lib/x-kit/xclient/src/window/draw-types-old.pkg
    package g2d =  geometry2d;                                  # geometry2d            is from   src/lib/std/2d/geometry2d.pkg
    package wp  =  rw_pixmap_old;                               # rw_pixmap_old         is from   src/lib/x-kit/xclient/src/window/rw-pixmap-old.pkg
    package sn  =  xsession_old;                                # xsession_old          is from   src/lib/x-kit/xclient/src/window/xsession-old.pkg
    package pn  =  pen_old;                                     # pen_old               is from   src/lib/x-kit/xclient/src/window/pen-old.pkg
herein


    package   ro_pixmap_old
    : (weak)  Ro_Pixmap_Old                                     # Ro_Pixmap_Old         is from   src/lib/x-kit/xclient/src/window/ro-pixmap-old.api
    {

        stipulate
            package d: (weak)  api { Ro_Pixmap =  RO_PIXMAP dt::Rw_Pixmap; }
                =
                draw_types_old;
        herein
            include package   d;
        end;


        fun make_readonly_pixmap_from_clientside_pixmap screen im
            =
            dt::RO_PIXMAP (cw::make_readwrite_pixmap_from_clientside_pixmap screen im);


        fun make_readonly_pixmap_from_ascii screen data
            =
            dt::RO_PIXMAP (cw::make_readwrite_pixmap_from_ascii_data screen data);


        fun make_readonly_pixmap_from_readwrite_pixmap (pm as { screen, size, per_depth_imps, ... }: dt::Rw_Pixmap)
            =
            {   per_depth_imps
                    ->
                    { depth, ... }: sn::Per_Depth_Imps;

                new_pixmap
                    =
                    wp::make_readwrite_pixmap
                        screen
                        (size, depth);

                dr::pixel_blt
                    #
                    (dt::drawable_of_rw_pixmap  new_pixmap)
                    #
                    pn::default_pen
                    #
                    { from     =>  dt::FROM_RW_PIXMAP pm,
                      from_box =>  g2d::box::make (g2d::point::zero, size),
                      to_pos   =>  g2d::point::zero
                    };

                dt::RO_PIXMAP new_pixmap;
            };
    };
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