|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T x
Length: 17277 (0x437d)
Types: TextFile
Names: »x_window.clu«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
└─⟦526ad3590⟧ »EUUGD11/gnu-31mar87/X.V10.R4.tar.Z«
└─⟦2109abc41⟧
└─⟦this⟧ »./X.V10R4/CLUlib/sun/x_window.clu«
% Copyright Barbara Liskov 1985, 1986
x_window = cluster is none, create, create_transparency,
destroy, destroy_subwindows, map, map_subwindows,
unmap, unmap_subwindows, unmap_transparent, raise, lower,
circulate_up, circulate_down, move, change, configure,
set_background, set_border, set_tilemode, set_clipmode,
query, query_tree, get_name, set_name, set_icon,
get_resize, set_resize, set_cursor, set_input,
grab_mouse, ungrab_mouse, grab_button, ungrab_button,
query_mouse, interpret_locator,
warp_mouse, cond_warp_mouse,
focus_keyboard, clear, pix_set, pix_fill, tile_set,
tile_fill, pixmap_put, pixmap_xybitsput, pixmap_zbitsput,
bitmap_bitsput, move_area, copy_area,
text, textv, texta, text_pad, textv_pad, texta_pad,
text_mask, textv_mask, texta_mask,
text_mask_pad, textv_mask_pad, texta_mask_pad,
line, draw,
draw_dashed, draw_patterned, draw_filled, draw_tiled,
save_region, read_xyregion, read_zregion,
get_id, equal, similar, copy
rep = int
none = proc () returns (cvt)
return(0)
end none
create = proc (x, y, width, height: int, background: x_pixmap, parent: cvt,
borderwidth: int, border: x_pixmap) returns (cvt)
signals (error(string))
x_buf$setup(x_createwindow, borderwidth, 0, parent)
x_buf$set_s0123(height, width, x, y)
x_buf$set_l23(border.id, background.id)
x_buf$receive()
resignal error
return(x_buf$get_lp0())
end create
create_transparency = proc (x, y, width, height: int, parent: cvt) returns (cvt)
signals (error(string))
x_buf$setup(x_createtransparency, 0, 0, parent)
x_buf$set_s0123(height, width, x, y)
x_buf$receive()
resignal error
return(x_buf$get_lp0())
end create_transparency
destroy = proc (w: cvt)
x_buf$setup(x_destroywindow, 0, 0, w)
end destroy
destroy_subwindows = proc (w: cvt)
x_buf$setup(x_destroysubwindows, 0, 0, w)
end destroy_subwindows
map = proc (w: cvt)
x_buf$setup(x_mapwindow, 0, 0, w)
end map
map_subwindows = proc (w: cvt)
x_buf$setup(x_mapsubwindows, 0, 0, w)
end map_subwindows
unmap = proc (w: cvt)
x_buf$setup(x_unmapwindow, 0, 0, w)
end unmap
unmap_subwindows = proc (w: cvt)
x_buf$setup(x_unmapsubwindows, 0, 0, w)
end unmap_subwindows
unmap_transparent = proc (w: cvt)
x_buf$setup(x_unmaptransparent, 0, 0, w)
end unmap_transparent
raise = proc (w: cvt)
x_buf$setup(x_raisewindow, 0, 0, w)
end raise
lower = proc (w: cvt)
x_buf$setup(x_lowerwindow, 0, 0, w)
end lower
circulate_up = proc (w: cvt)
x_buf$setup(x_circwindowup, 0, 0, w)
end circulate_up
circulate_down = proc (w: cvt)
x_buf$setup(x_circwindowdown, 0, 0, w)
end circulate_down
move = proc (w: cvt, x, y: int)
x_buf$setup(x_movewindow, 0, 0, w)
x_buf$set_s01(x, y)
end move
change = proc (w: cvt, width, height: int)
x_buf$setup(x_changewindow, 0, 0, w)
x_buf$set_s01(height, width)
end change
configure = proc (w: cvt, x, y, width, height: int)
x_buf$setup(x_configurewindow, 0, 0, w)
x_buf$set_s0123(height, width, x, y)
end configure
set_background = proc (w: cvt, background: x_pixmap)
x_buf$setup(x_changebackground, 0, 0, w)
x_buf$set_l0(p2i(background))
end set_background
set_border = proc (w: cvt, border: x_pixmap)
x_buf$setup(x_changeborder, 0, 0, w)
x_buf$set_l0(p2i(border))
end set_border
set_tilemode = proc (w: cvt, relative: bool)
if relative
then x_buf$setup(x_tilemode, TileModeRelative, 0, w)
else x_buf$setup(x_tilemode, TileModeAbsolute, 0, w)
end
end set_tilemode
set_clipmode = proc (w: cvt, drawthru: bool)
if drawthru
then x_buf$setup(x_clipmode, ClipModeDrawThru, 0, w)
else x_buf$setup(x_clipmode, ClipModeClipped, 0, w)
end
end set_clipmode
% returns (x, y, width, height, border, map, kind, icon)
query = proc (w: cvt) returns (int, int, int, int, int, int, int, cvt)
signals (error(string))
x_buf$setup(x_querywindow, 0, 0, w)
x_buf$receive()
resignal error
return(x_buf$get_sp2(), x_buf$get_sp3(), x_buf$get_sp1(), x_buf$get_sp0(),
x_buf$get_sp4(), x_buf$get_bp10(), x_buf$get_bp11(),
x_buf$get_lp3())
end query
query_tree = proc (w: cvt) returns (cvt, wlist) signals (error(string))
wlist = array[x_window]
x_buf$setup(x_querytree, 0, 0, w)
x_buf$receive()
resignal error
parent: int := x_buf$get_lp0()
n: int := x_buf$get_lp1()
subs: wlist := wlist$fill(1, n, up(parent))
if n > 0
then b: _bytevec := _bytevec$create(n * 4)
x_buf$receive_data(b)
for i: int in int$from_to(1, n) do
subs[i] := up(b2w(b)[i])
end
end
return(parent, subs)
end query_tree
get_name = proc (w: cvt) returns (string) signals (error(string))
x_buf$setup(x_fetchname, 0, 0, w)
x_buf$receive()
resignal error
n: int := x_buf$get_sp0()
if n = 0
then return("") end
b: _bytevec := _bytevec$create(n)
x_buf$receive_data(b)
return(b2s(b))
end get_name
set_name = proc (w: cvt, n: string)
x_buf$setup(x_storename, 0, 0, w)
x_buf$set_s0(string$size(n))
x_buf$send_data(s2b(n), 1, string$size(n))
end set_name
set_icon = proc (w, icon: cvt)
x_buf$setup(x_seticonwindow, 0, 0, w)
x_buf$set_l0(icon)
end set_icon
get_resize = proc (w: cvt) returns (int, int, int, int) signals (error(string))
x_buf$setup(x_getresizehint, 0, 0, w)
x_buf$receive()
resignal error
return(x_buf$get_sp2(), x_buf$get_sp3(), x_buf$get_sp0(), x_buf$get_sp1())
end get_resize
set_resize = proc (w: cvt, width0, widthinc, height0, heightinc: int)
x_buf$setup(x_setresizehint, 0, 0, w)
x_buf$set_s0123(height0, heightinc, width0, widthinc)
end set_resize
set_cursor = proc (w: cvt, cursor: x_cursor)
x_buf$setup(x_definecursor, 0, 0, w)
x_buf$set_l0(c2i(cursor))
end set_cursor
set_input = proc (w: cvt, mask: int)
x_buf$setup(x_selectinput, 0, 0, w)
x_buf$set_l0(mask)
end set_input
grab_mouse = proc (w: cvt, mask: int, cursor: x_cursor) signals (error(string))
x_buf$setup(x_grabmouse, 0, 0, w)
x_buf$set_l01(c2i(cursor), mask)
x_buf$receive()
resignal error
end grab_mouse
ungrab_mouse = proc ()
x_buf$setup(x_ungrabmouse, 0, 0, 0)
end ungrab_mouse
grab_button = proc (w: cvt, button, mask: int, cursor: x_cursor)
signals (error(string))
x_buf$setup(x_grabbutton, 0, button, w)
x_buf$set_l01(c2i(cursor), mask)
x_buf$receive()
resignal error
end grab_button
ungrab_button = proc (button: int)
x_buf$setup(x_ungrabmouse, 0, button, 0)
end ungrab_button
% returns (x, y, window)
query_mouse = proc (w: cvt) returns (int, int, cvt) signals (error(string))
x_buf$setup(x_querymouse, 0, 0, w)
x_buf$receive()
resignal error
return(x_buf$get_sp2(), x_buf$get_sp3(), x_buf$get_lp0())
end query_mouse
interpret_locator = proc (w: cvt, x, y: int) returns (int, int, cvt)
signals (error(string))
x_buf$setup(x_interpretlocator, 0, 0, w)
x_buf$set_s01(x, y)
x_buf$receive()
resignal error
return(x_buf$get_sp2(), x_buf$get_sp3(), x_buf$get_lp0())
end interpret_locator
warp_mouse = proc (w: cvt, x, y: int)
x_buf$setup(x_warpmouse, 0, 0, w)
x_buf$set_s01l1(x, y, down(x_display$root()))
x_buf$set_s4567(0, 0, 0, 0)
end warp_mouse
cond_warp_mouse = proc (dstw: cvt, dstx, dsty: int, srcw: cvt,
srcx, srcy, srcwidth, srcheight: int)
x_buf$setup(x_warpmouse, 0, 0, dstw)
x_buf$set_s01l1(dstx, dsty, srcw)
x_buf$set_s4567(srcheight, srcwidth, srcx, srcy)
end cond_warp_mouse
focus_keyboard = proc (w: cvt)
x_buf$setup(x_focuskeyboard, 0, 0, w)
end focus_keyboard
clear = proc (w: cvt)
x_buf$setup(x_clear, 0, 0, w)
end clear
pix_set = proc (w: cvt, pixel, x, y, width, height: int)
x_buf$setup(x_pixfill, GXcopy, -1, w)
x_buf$set_s0123(height, width, x, y)
x_buf$set_s45l3(pixel, 0, 0)
end pix_set
pix_fill = proc (w: cvt, pixel: int, mask: x_bitmap, x, y, width, height: int,
func, planes: int)
x_buf$setup(x_pixfill, func, planes, w)
x_buf$set_s0123(height, width, x, y)
x_buf$set_s45l3(pixel, 0, b2i(mask))
end pix_fill
tile_set = proc (w: cvt, tile: x_pixmap, x, y, width, height: int)
x_buf$setup(x_tilefill, GXcopy, -1, w)
x_buf$set_s0123(height, width, x, y)
x_buf$set_l23(p2i(tile), 0)
end tile_set
tile_fill = proc (w: cvt, tile: x_pixmap, mask: x_bitmap,
x, y, width, height, func, planes: int)
x_buf$setup(x_tilefill, func, planes, w)
x_buf$set_s0123(height, width, x, y)
x_buf$set_l23(p2i(tile), b2i(mask))
end tile_fill
pixmap_put = proc (w: cvt, pix: x_pixmap,
srcx, srcy, width, height, dstx, dsty, func, planes: int)
x_buf$setup(x_pixmapput, func, planes, w)
x_buf$set_s0123(height, width, srcx, srcy)
x_buf$set_l2s67(p2i(pix), dstx, dsty)
end pixmap_put
pixmap_zbitsput = proc (w: cvt, width, height: int, bits: _wordvec,
mask: x_bitmap, x, y, func, planes: int)
x_buf$setup(x_pixmapbitsput, func, planes, w)
x_buf$set_s0123(height, width, x, y)
x_buf$set_s45l3(ZFormat, 0, b2i(mask))
z: int := width * height
if x_display$planes() > 8
then z := z + z end
x_buf$send_data(w2b(bits), 1, z)
end pixmap_zbitsput
pixmap_xybitsput = proc (w: cvt, width, height: int, bits: _wordvec,
mask: x_bitmap, x, y, func, planes: int)
x_buf$setup(x_pixmapbitsput, func, planes, w)
x_buf$set_s0123(height, width, x, y)
x_buf$set_s45l3(XYFormat, 0, b2i(mask))
x_buf$send_data(w2b(bits), 1,
((width + 15) / 16) * height * 2 * x_display$planes())
end pixmap_xybitsput
bitmap_bitsput = proc (w: cvt, width, height: int, bits: _wordvec,
fore, back: int, mask: x_bitmap, x, y, func, planes: int)
x_buf$setup(x_bitmapbitsput, func, planes, w)
x_buf$set_s0123(height, width, x, y)
x_buf$set_s45l3(fore, back, b2i(mask))
x_buf$send_data(w2b(bits), 1, ((width + 15) / 16) * height * 2)
end bitmap_bitsput
move_area = proc (w: cvt, srcx, srcy, width, height, dstx, dsty: int)
x_buf$setup(x_copyarea, GXcopy, -1, w)
x_buf$set_s0123(height, width, srcx, srcy)
x_buf$set_s4567(0, 0, dstx, dsty)
end move_area
copy_area = proc (w: cvt, srcx, srcy, width, height, dstx, dsty: int,
func, planes: int)
x_buf$setup(x_copyarea, func, planes, w)
x_buf$set_s0123(height, width, srcx, srcy)
x_buf$set_s4567(0, 0, dstx, dsty)
end copy_area
text = proc (w: cvt, s: string, font: x_font, fore, back, x, y: int)
x_buf$setup(x_text, GXcopy, -1, w)
x_buf$set_s01l1(x, y, f2i(font))
x_buf$set_s4567(fore, back, string$size(s), 0)
x_buf$send_data(s2b(s), 1, string$size(s))
end text
textv = proc (w: cvt, b: _bytevec, start, z: int, font: x_font,
fore, back, x, y: int)
x_buf$setup(x_text, GXcopy, -1, w)
x_buf$set_s01l1(x, y, f2i(font))
x_buf$set_s4567(fore, back, z, 0)
x_buf$send_data(b, start, z)
end textv
texta = proc (w: cvt, a: array[char], start, z: int, font: x_font,
fore, back, x, y: int)
x_buf$setup(x_text, GXcopy, -1, w)
x_buf$set_s01l1(x, y, f2i(font))
x_buf$set_s4567(fore, back, z, 0)
x_buf$send_array(a, start, z)
end texta
text_pad = proc (w: cvt, s: string, font: x_font, fore, back, cpad, spad: int,
x, y: int, func, planes: int)
x_buf$setup(x_text, func, planes, w)
x_buf$set_s01l1(x, y, f2i(font))
x_buf$set_s4567(fore, back, string$size(s), (spad // 2**8) + cpad * 2**8)
x_buf$send_data(s2b(s), 1, string$size(s))
end text_pad
textv_pad = proc (w: cvt, b: _bytevec, start, z: int, font: x_font,
fore, back, cpad, spad: int, x, y: int, func, planes: int)
x_buf$setup(x_text, func, planes, w)
x_buf$set_s01l1(x, y, f2i(font))
x_buf$set_s4567(fore, back, z, (spad // 2**8) + cpad * 2**8)
x_buf$send_data(b, start, z)
end textv_pad
texta_pad = proc (w: cvt, a: array[char], start, z: int, font: x_font,
fore, back, cpad, spad: int, x, y: int, func, planes: int)
x_buf$setup(x_text, func, planes, w)
x_buf$set_s01l1(x, y, f2i(font))
x_buf$set_s4567(fore, back, z, (spad // 2**8) + cpad * 2**8)
x_buf$send_array(a, start, z)
end texta_pad
text_mask = proc (w: cvt, s: string, font: x_font, pixel, x, y: int)
x_buf$setup(x_textmask, GXcopy, -1, w)
x_buf$set_s01l1(x, y, f2i(font))
x_buf$set_s4567(pixel, 0, string$size(s), 0)
x_buf$send_data(s2b(s), 1, string$size(s))
end text_mask
textv_mask = proc (w: cvt, b: _bytevec, start, z: int, font: x_font,
pixel, x, y: int)
x_buf$setup(x_textmask, GXcopy, -1, w)
x_buf$set_s01l1(x, y, f2i(font))
x_buf$set_s4567(pixel, 0, z, 0)
x_buf$send_data(b, start, z)
end textv_mask
texta_mask = proc (w: cvt, a: array[char], start, z: int, font: x_font,
pixel, x, y: int)
x_buf$setup(x_textmask, GXcopy, -1, w)
x_buf$set_s01l1(x, y, f2i(font))
x_buf$set_s4567(pixel, 0, z, 0)
x_buf$send_array(a, start, z)
end texta_mask
text_mask_pad = proc (w: cvt, s: string, font: x_font, pixel, cpad, spad: int,
x, y: int, func, planes: int)
x_buf$setup(x_textmask, func, planes, w)
x_buf$set_s01l1(x, y, f2i(font))
x_buf$set_s4567(pixel, 0, string$size(s), (spad // 2**8) + cpad * 2**8)
x_buf$send_data(s2b(s), 1, string$size(s))
end text_mask_pad
textv_mask_pad = proc (w: cvt, b: _bytevec, start, z: int, font: x_font,
pixel, cpad, spad: int, x, y: int, func, planes: int)
x_buf$setup(x_textmask, func, planes, w)
x_buf$set_s01l1(x, y, f2i(font))
x_buf$set_s4567(pixel, 0, z, (spad // 2**8) + cpad * 2**8)
x_buf$send_data(b, start, z)
end textv_mask_pad
texta_mask_pad = proc (w: cvt, a: array[char], start, z: int, font: x_font,
pixel, cpad, spad: int, x, y: int, func, planes: int)
x_buf$setup(x_textmask, func, planes, w)
x_buf$set_s01l1(x, y, f2i(font))
x_buf$set_s4567(pixel, 0, z, (spad // 2**8) + cpad * 2**8)
x_buf$send_array(a, start, z)
end texta_mask_pad
line = proc (w: cvt, pixel, width, height, x1, y1, x2, y2, func, planes: int)
x_buf$setup(x_line, func, planes, w)
x_buf$set_s0123(x1, y1, x2, y2)
x_buf$set_s4567(pixel, (width // 2**8) + height * 2**8, 0, 0)
end line
draw = proc (w: cvt, verts: x_vlist, z, pixel, width, height, func, planes: int)
x_buf$setup(x_draw, func, planes, w)
x_buf$set_s0123(z, pixel, (width // 2**8) + height * 2**8, DrawSolidLine)
x_buf$send_data(v2b(verts), 1, 6 * z)
end draw
draw_dashed = proc (w: cvt, verts: x_vlist, z, pixel, width, height: int,
pattern, patlen, patmul, func, planes: int)
x_buf$setup(x_draw, func, planes, w)
x_buf$set_s0123(z, pixel, (width // 2**8) + height * 2**8, DrawDashedLine)
x_buf$set_s4567(0, pattern, patlen, patmul)
x_buf$send_data(v2b(verts), 1, 6 * z)
end draw_dashed
draw_patterned = proc (w: cvt, verts: x_vlist, z, pixel, altpix: int,
width, height, pattern, patlen, patmul, func, planes: int)
x_buf$setup(x_draw, func, planes, w)
x_buf$set_s0123(z, pixel, (width // 2**8) + height * 2**8, DrawPatternedLine)
x_buf$set_s4567(altpix, pattern, patlen, patmul)
x_buf$send_data(v2b(verts), 1, 6 * z)
end draw_patterned
draw_filled = proc (w: cvt, verts: x_vlist, z, pixel, func, planes: int)
x_buf$setup(x_drawfilled, func, planes, w)
x_buf$set_s01l1(z, pixel, 0)
x_buf$send_data(v2b(verts), 1, 6 * z)
end draw_filled
draw_tiled = proc (w: cvt, verts: x_vlist, z: int, tile: x_pixmap,
func, planes: int)
x_buf$setup(x_drawfilled, func, planes, w)
x_buf$set_s01l1(z, 0, p2i(tile))
x_buf$send_data(v2b(verts), 1, 6 * z)
end draw_tiled
save_region = proc (w: cvt, x, y, width, height: int) returns (x_pixmap)
signals (error(string))
x_buf$setup(x_pixmapsave, 0, 0, w)
x_buf$set_s0123(height, width, x, y)
x_buf$receive()
resignal error
return(_cvt[int, x_pixmap](x_buf$get_lp0()))
end save_region
read_xyregion = proc (w: cvt, x, y, width, height: int) returns (_wordvec)
signals (error(string))
x_buf$setup(x_pixmapget, XYFormat, 0, w)
x_buf$set_s0123(height, width, x, y)
x_buf$receive()
resignal error
b: _bytevec := _bytevec$create(x_buf$get_lp0())
x_buf$receive_data(b)
return(b2w(b))
end read_xyregion
read_zregion = proc (w: cvt, x, y, width, height: int) returns (_wordvec)
signals (error(string))
x_buf$setup(x_pixmapget, ZFormat, 0, w)
x_buf$set_s0123(height, width, x, y)
x_buf$receive()
resignal error
b: _bytevec := _bytevec$create(x_buf$get_lp0())
x_buf$receive_data(b)
return(b2w(b))
end read_zregion
get_id = proc (w: cvt) returns (int)
return(w)
end get_id
equal = proc (w1, w2: cvt) returns (bool)
return(w1 = w2)
end equal
similar = proc (w1, w2: cvt) returns (bool)
return(w1 = w2)
end similar
copy = proc (w: cvt) returns (cvt)
return(w)
end copy
end x_window