## ro-pixmap.pkg
#
# See also:
#
src/lib/x-kit/xclient/pkg/window/window.pkg#
src/lib/x-kit/xclient/pkg/window/cs-pixmap.pkg#
src/lib/x-kit/xclient/pkg/window/rw-pixmap.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;
package dr = draw; # draw is from
src/lib/x-kit/xclient/pkg/window/draw.pkg package dt = draw_types; # draw_types is from
src/lib/x-kit/xclient/pkg/window/draw-types.pkg package xg = xgeometry; # xgeometry is from
src/lib/std/2d/xgeometry.pkg package wp = rw_pixmap; # rw_pixmap is from
src/lib/x-kit/xclient/pkg/window/rw-pixmap.pkg package sn = xsession; # xsession is from
src/lib/x-kit/xclient/pkg/window/xsession.pkgherein
package ro_pixmap
: (weak) Ro_Pixmap # Ro_Pixmap is from
src/lib/x-kit/xclient/pkg/window/ro-pixmap.api {
stipulate
package d: (weak) api { Ro_Pixmap = RO_PIXMAP dt::Rw_Pixmap; }
=
draw_types;
herein
include 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 dt::RW_PIXMAP { screen, size, screen_pen_and_draw_imps, ... } )
=
{ screen_pen_and_draw_imps
->
sn::SCREEN_PEN_AND_DRAW_IMPS { depth, ... };
new_pixmap
=
wp::make_readwrite_pixmap
screen
(size, depth);
dr::pixel_blt
#
(dt::drawable_of_rw_pixmap new_pixmap)
#
pen::default_pen
#
{ from => dt::FROM_RW_PIXMAP pm,
from_box => xg::box::make (xg::point::zero, size),
to_pos => xg::point::zero
};
dt::RO_PIXMAP new_pixmap;
};
};
end;
## COPYRIGHT (c) 1990, 1991 by John H. Reppy. See COPYRIGHT file for details.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2012,
## released under Gnu Public Licence version 3.