Annotation of 43BSDTahoe/new/X/CLUlib/vax/x_window.clu, revision 1.1

1.1     ! root        1: % Copyright    Barbara Liskov    1985
        !             2: 
        !             3: x_window = cluster is none, create, create_transparency,
        !             4:                      destroy, destroy_subwindows, map, map_subwindows,
        !             5:                      unmap, unmap_subwindows, unmap_transparent, raise, lower,
        !             6:                      circulate_up, circulate_down, move, change, configure,
        !             7:                      set_background, set_border, set_tilemode, set_clipmode,
        !             8:                      query, query_tree, get_name, set_name, set_icon,
        !             9:                      get_resize, set_resize, set_cursor, set_input,
        !            10:                      grab_mouse, ungrab_mouse, grab_button, ungrab_button,
        !            11:                      query_mouse, interpret_locator,
        !            12:                      warp_mouse, cond_warp_mouse,
        !            13:                      focus_keyboard, clear, pix_set, pix_fill, tile_set,
        !            14:                      tile_fill, pixmap_put, pixmap_xybitsput, pixmap_zbitsput,
        !            15:                      bitmap_bitsput, move_area, copy_area,
        !            16:                      text, textv, texta, text_pad, textv_pad, texta_pad,
        !            17:                      text_mask, textv_mask, texta_mask,
        !            18:                      text_mask_pad, textv_mask_pad, texta_mask_pad,
        !            19:                      line, draw,
        !            20:                      draw_dashed, draw_patterned, draw_filled, draw_tiled,
        !            21:                      save_region, read_xyregion, read_zregion,
        !            22:                      get_id, equal, similar, copy
        !            23: 
        !            24: rep = int
        !            25: 
        !            26: none = proc () returns (cvt)
        !            27:     return(0)
        !            28:     end none
        !            29: 
        !            30: create = proc (x, y, width, height: int, background: x_pixmap, parent: cvt,
        !            31:               borderwidth: int, border: x_pixmap) returns (cvt)
        !            32:           signals (error(string))
        !            33:     or: oreq, er: ereq := x_buf$get()
        !            34:     er.code := x_createwindow + (borderwidth * 2**8)
        !            35:     er.ewin := parent
        !            36:     er.s0 := height
        !            37:     or.s1 := width
        !            38:     er.s2 := x
        !            39:     or.s3 := y
        !            40:     lr(er).l2 := border.id
        !            41:     lr(er).l3 := background.id
        !            42:     x_buf$receive()
        !            43:        resignal error
        !            44:     return(x_buf$get_lp0())
        !            45:     end create
        !            46: 
        !            47: create_transparency = proc (x, y, width, height: int, parent: cvt) returns (cvt)
        !            48:                        signals (error(string))
        !            49:     or: oreq, er: ereq := x_buf$get()
        !            50:     er.code := x_createtransparency
        !            51:     er.ewin := parent
        !            52:     er.s0 := height
        !            53:     or.s1 := width
        !            54:     er.s2 := x
        !            55:     or.s3 := y
        !            56:     x_buf$receive()
        !            57:        resignal error
        !            58:     return(x_buf$get_lp0())
        !            59:     end create_transparency
        !            60: 
        !            61: destroy = proc (w: cvt)
        !            62:     or: oreq, er: ereq := x_buf$get()
        !            63:     er.code := x_destroywindow
        !            64:     er.ewin := w
        !            65:     end destroy
        !            66: 
        !            67: destroy_subwindows = proc (w: cvt)
        !            68:     or: oreq, er: ereq := x_buf$get()
        !            69:     er.code := x_destroysubwindows
        !            70:     er.ewin := w
        !            71:     end destroy_subwindows
        !            72: 
        !            73: map = proc (w: cvt)
        !            74:     or: oreq, er: ereq := x_buf$get()
        !            75:     er.code := x_mapwindow
        !            76:     er.ewin := w
        !            77:     end map
        !            78: 
        !            79: map_subwindows = proc (w: cvt)
        !            80:     or: oreq, er: ereq := x_buf$get()
        !            81:     er.code := x_mapsubwindows
        !            82:     er.ewin := w
        !            83:     end map_subwindows
        !            84: 
        !            85: unmap = proc (w: cvt)
        !            86:     or: oreq, er: ereq := x_buf$get()
        !            87:     er.code := x_unmapwindow
        !            88:     er.ewin := w
        !            89:    end unmap
        !            90: 
        !            91: unmap_subwindows = proc (w: cvt)
        !            92:     or: oreq, er: ereq := x_buf$get()
        !            93:     er.code := x_unmapsubwindows
        !            94:     er.ewin := w
        !            95:     end unmap_subwindows
        !            96: 
        !            97: unmap_transparent = proc (w: cvt)
        !            98:     or: oreq, er: ereq := x_buf$get()
        !            99:     er.code := x_unmaptransparent
        !           100:     er.ewin := w
        !           101:     end unmap_transparent
        !           102: 
        !           103: raise = proc (w: cvt)
        !           104:     or: oreq, er: ereq := x_buf$get()
        !           105:     er.code := x_raisewindow
        !           106:     er.ewin := w
        !           107:     end raise
        !           108: 
        !           109: lower = proc (w: cvt)
        !           110:     or: oreq, er: ereq := x_buf$get()
        !           111:     er.code := x_lowerwindow
        !           112:     er.ewin := w
        !           113:     end lower
        !           114: 
        !           115: circulate_up = proc (w: cvt)
        !           116:     or: oreq, er: ereq := x_buf$get()
        !           117:     er.code := x_circwindowup
        !           118:     er.ewin := w
        !           119:     end circulate_up
        !           120: 
        !           121: circulate_down = proc (w: cvt)
        !           122:     or: oreq, er: ereq := x_buf$get()
        !           123:     er.code := x_circwindowdown
        !           124:     er.ewin := w
        !           125:     end circulate_down
        !           126: 
        !           127: move = proc (w: cvt, x, y: int)
        !           128:     or: oreq, er: ereq := x_buf$get()
        !           129:     er.code := x_movewindow
        !           130:     er.ewin := w
        !           131:     er.s0 := x
        !           132:     or.s1 := y
        !           133:     end move
        !           134: 
        !           135: change = proc (w: cvt, width, height: int)
        !           136:     or: oreq, er: ereq := x_buf$get()
        !           137:     er.code := x_changewindow
        !           138:     er.ewin := w
        !           139:     er.s0 := height
        !           140:     or.s1 := width
        !           141:     end change
        !           142: 
        !           143: configure = proc (w: cvt, x, y, width, height: int)
        !           144:     or: oreq, er: ereq := x_buf$get()
        !           145:     er.code := x_configurewindow
        !           146:     er.ewin := w
        !           147:     er.s0 := height
        !           148:     or.s1 := width
        !           149:     er.s2 := x
        !           150:     or.s3 := y
        !           151:     end configure
        !           152: 
        !           153: set_background = proc (w: cvt, background: x_pixmap)
        !           154:     or: oreq, er: ereq := x_buf$get()
        !           155:     er.code := x_changebackground
        !           156:     er.ewin := w
        !           157:     lr(er).l0 := p2i(background)
        !           158:     end set_background
        !           159: 
        !           160: set_border = proc (w: cvt, border: x_pixmap)
        !           161:     or: oreq, er: ereq := x_buf$get()
        !           162:     er.code := x_changeborder
        !           163:     er.ewin := w
        !           164:     lr(er).l0 := p2i(border)
        !           165:     end set_border
        !           166: 
        !           167: set_tilemode = proc (w: cvt, relative: bool)
        !           168:     or: oreq, er: ereq := x_buf$get()
        !           169:     if relative
        !           170:        then er.code := x_tilemode + (TileModeRelative * 2**8)
        !           171:        else er.code := x_tilemode + (TileModeAbsolute * 2**8)
        !           172:        end
        !           173:     er.ewin := w
        !           174:     end set_tilemode
        !           175: 
        !           176: set_clipmode = proc (w: cvt, drawthru: bool)
        !           177:     or: oreq, er: ereq := x_buf$get()
        !           178:     if drawthru
        !           179:        then er.code := x_clipmode + (ClipModeDrawThru * 2**8)
        !           180:        else er.code := x_clipmode + (ClipModeClipped * 2**8)
        !           181:        end
        !           182:     er.ewin := w
        !           183:     end set_clipmode
        !           184: 
        !           185: % returns (x, y, width, height, border, map, kind, icon)
        !           186: 
        !           187: query = proc (w: cvt) returns (int, int, int, int, int, int, int, cvt)
        !           188:          signals (error(string))
        !           189:     or: oreq, er: ereq := x_buf$get()
        !           190:     er.code := x_querywindow
        !           191:     er.ewin := w
        !           192:     x_buf$receive()
        !           193:        resignal error
        !           194:     return(x_buf$get_sp2(), x_buf$get_sp3(), x_buf$get_sp1(), x_buf$get_sp0(),
        !           195:           x_buf$get_sp4(), x_buf$get_bp10(), x_buf$get_bp11(),
        !           196:           x_buf$get_lp3())
        !           197:     end query
        !           198: 
        !           199: query_tree = proc (w: cvt) returns (cvt, wlist) signals (error(string))
        !           200:     wlist = array[x_window]
        !           201:     or: oreq, er: ereq := x_buf$get()
        !           202:     er.code := x_querytree
        !           203:     er.ewin := w
        !           204:     x_buf$receive()
        !           205:        resignal error
        !           206:     parent: int := x_buf$get_lp0()
        !           207:     n: int := x_buf$get_lp1()
        !           208:     subs: wlist := wlist$fill(1, n, up(parent))
        !           209:     if n > 0
        !           210:        then b: _bytevec := _bytevec$create(n * 4)
        !           211:            x_buf$receive_data(b)
        !           212:            for i: int in int$from_to(1, n) do
        !           213:                subs[i] := up(b2w(b)[i])
        !           214:                end
        !           215:        end
        !           216:     return(parent, subs)
        !           217:     end query_tree
        !           218: 
        !           219: get_name = proc (w: cvt) returns (string) signals (error(string))
        !           220:     or: oreq, er: ereq := x_buf$get()
        !           221:     er.code := x_fetchname
        !           222:     er.ewin := w
        !           223:     x_buf$receive()
        !           224:        resignal error
        !           225:     n: int := x_buf$get_sp0()
        !           226:     if n = 0
        !           227:        then return("") end
        !           228:     b: _bytevec := _bytevec$create(n)
        !           229:     x_buf$receive_data(b)
        !           230:     return(b2s(b))
        !           231:     end get_name
        !           232: 
        !           233: set_name = proc (w: cvt, n: string)
        !           234:     or: oreq, er: ereq := x_buf$get()
        !           235:     er.code := x_storename
        !           236:     er.ewin := w
        !           237:     er.s0 := string$size(n)
        !           238:     x_buf$send_data(s2b(n), 1, string$size(n))
        !           239:     end set_name
        !           240: 
        !           241: set_icon = proc (w, icon: cvt)
        !           242:     or: oreq, er: ereq := x_buf$get()
        !           243:     er.code := x_seticonwindow
        !           244:     er.ewin := w
        !           245:     lr(er).l0 := icon
        !           246:     end set_icon
        !           247: 
        !           248: get_resize = proc (w: cvt) returns (int, int, int, int) signals (error(string))
        !           249:     or: oreq, er: ereq := x_buf$get()
        !           250:     er.code := x_getresizehint
        !           251:     er.ewin := w
        !           252:     x_buf$receive()
        !           253:        resignal error
        !           254:     return(x_buf$get_sp2(), x_buf$get_sp3(), x_buf$get_sp0(), x_buf$get_sp1())
        !           255:     end get_resize
        !           256: 
        !           257: set_resize = proc (w: cvt, width0, widthinc, height0, heightinc: int)
        !           258:     or: oreq, er: ereq := x_buf$get()
        !           259:     er.code := x_setresizehint
        !           260:     er.ewin := w
        !           261:     er.s0 := height0
        !           262:     or.s1 := heightinc
        !           263:     er.s2 := width0
        !           264:     or.s3 := widthinc
        !           265:     end set_resize
        !           266: 
        !           267: set_cursor = proc (w: cvt, cursor: x_cursor)
        !           268:     or: oreq, er: ereq := x_buf$get()
        !           269:     er.code := x_definecursor
        !           270:     er.ewin := w
        !           271:     lr(er).l0 := c2i(cursor)
        !           272:     end set_cursor
        !           273: 
        !           274: set_input = proc (w: cvt, mask: int)
        !           275:     or: oreq, er: ereq := x_buf$get()
        !           276:     er.code := x_selectinput
        !           277:     er.ewin := w
        !           278:     lr(er).l0 := mask
        !           279:     end set_input
        !           280: 
        !           281: grab_mouse = proc (w: cvt, mask: int, cursor: x_cursor) signals (error(string))
        !           282:     or: oreq, er: ereq := x_buf$get()
        !           283:     er.code := x_grabmouse
        !           284:     er.ewin := w
        !           285:     lr(er).l0 := c2i(cursor)
        !           286:     lr(er).l1 := mask
        !           287:     x_buf$receive()
        !           288:        resignal error
        !           289:     end grab_mouse
        !           290: 
        !           291: ungrab_mouse = proc ()
        !           292:     or: oreq, er: ereq := x_buf$get()
        !           293:     er.code := x_ungrabmouse
        !           294:     end ungrab_mouse
        !           295: 
        !           296: grab_button = proc (w: cvt, button, mask: int, cursor: x_cursor)
        !           297:                signals (error(string))
        !           298:     or: oreq, er: ereq := x_buf$get()
        !           299:     er.code := x_grabbutton
        !           300:     or.mask := button
        !           301:     er.ewin := w
        !           302:     lr(er).l0 := c2i(cursor)
        !           303:     lr(er).l1 := mask
        !           304:     x_buf$receive()
        !           305:        resignal error
        !           306:     end grab_button
        !           307: 
        !           308: ungrab_button = proc (button: int)
        !           309:     or: oreq, er: ereq := x_buf$get()
        !           310:     er.code := x_ungrabmouse
        !           311:     or.mask := button
        !           312:     end ungrab_button
        !           313: 
        !           314: % returns (x, y, window)
        !           315: 
        !           316: query_mouse = proc (w: cvt) returns (int, int, cvt) signals (error(string))
        !           317:     or: oreq, er: ereq := x_buf$get()
        !           318:     er.code := x_querymouse
        !           319:     er.ewin := w
        !           320:     x_buf$receive()
        !           321:        resignal error
        !           322:     return(x_buf$get_sp2(), x_buf$get_sp3(), x_buf$get_lp0())
        !           323:     end query_mouse
        !           324: 
        !           325: interpret_locator = proc (w: cvt, x, y: int) returns (int, int, cvt)
        !           326:                      signals (error(string))
        !           327:     or: oreq, er: ereq := x_buf$get()
        !           328:     er.code := x_interpretlocator
        !           329:     er.ewin := w
        !           330:     er.s0 := y
        !           331:     or.s1 := x
        !           332:     x_buf$receive()
        !           333:        resignal error
        !           334:     return(x_buf$get_sp2(), x_buf$get_sp3(), x_buf$get_lp0())
        !           335:     end interpret_locator
        !           336: 
        !           337: warp_mouse = proc (w: cvt, x, y: int)
        !           338:     or: oreq, er: ereq := x_buf$get()
        !           339:     er.code := x_warpmouse
        !           340:     er.ewin := w
        !           341:     er.s0 := x
        !           342:     or.s1 := y
        !           343:     lr(er).l1 := down(x_display$root())
        !           344:     er.s4 := 0
        !           345:     or.s5 := 0
        !           346:     er.s6 := 0
        !           347:     or.s7 := 0
        !           348:     end warp_mouse
        !           349: 
        !           350: cond_warp_mouse = proc (dstw: cvt, dstx, dsty: int, srcw: cvt,
        !           351:                        srcx, srcy, srcwidth, srcheight: int)
        !           352:     or: oreq, er: ereq := x_buf$get()
        !           353:     er.code := x_warpmouse
        !           354:     er.ewin := dstw
        !           355:     er.s0 := dstx
        !           356:     or.s1 := dsty
        !           357:     lr(er).l1 := srcw
        !           358:     er.s4 := srcheight
        !           359:     or.s5 := srcwidth
        !           360:     er.s6 := srcx
        !           361:     or.s7 := srcy
        !           362:     end cond_warp_mouse
        !           363: 
        !           364: focus_keyboard = proc (w: cvt)
        !           365:     or: oreq, er: ereq := x_buf$get()
        !           366:     er.code := x_focuskeyboard
        !           367:     er.ewin := w
        !           368:     end focus_keyboard
        !           369: 
        !           370: clear = proc (w: cvt)
        !           371:     or: oreq, er: ereq := x_buf$get()
        !           372:     er.code := x_clear
        !           373:     er.ewin := w
        !           374:     end clear
        !           375: 
        !           376: pix_set = proc (w: cvt, pixel, x, y, width, height: int)
        !           377:     or: oreq, er: ereq := x_buf$get()
        !           378:     er.code := x_pixfill + (GXcopy * 2**8)
        !           379:     or.mask := -1
        !           380:     er.ewin := w
        !           381:     er.s0 := height
        !           382:     or.s1 := width
        !           383:     er.s2 := x
        !           384:     or.s3 := y
        !           385:     er.s4 := pixel
        !           386:     lr(er).l3 := 0
        !           387:     end pix_set
        !           388: 
        !           389: pix_fill = proc (w: cvt, pixel: int, mask: x_bitmap, x, y, width, height: int,
        !           390:                 func, planes: int)
        !           391:     or: oreq, er: ereq := x_buf$get()
        !           392:     er.code := x_pixfill + (func * 2**8)
        !           393:     or.mask := planes
        !           394:     er.ewin := w
        !           395:     er.s0 := height
        !           396:     or.s1 := width
        !           397:     er.s2 := x
        !           398:     or.s3 := y
        !           399:     er.s4 := pixel
        !           400:     lr(er).l3 := b2i(mask)
        !           401:     end pix_fill
        !           402: 
        !           403: tile_set = proc (w: cvt, tile: x_pixmap, x, y, width, height: int)
        !           404:     or: oreq, er: ereq := x_buf$get()
        !           405:     er.code := x_tilefill + (GXcopy * 2**8)
        !           406:     or.mask := -1
        !           407:     er.ewin := w
        !           408:     er.s0 := height
        !           409:     or.s1 := width
        !           410:     er.s2 := x
        !           411:     or.s3 := y
        !           412:     lr(er).l2 := p2i(tile)
        !           413:     lr(er).l3 := 0
        !           414:     end tile_set
        !           415: 
        !           416: tile_fill = proc (w: cvt, tile: x_pixmap, mask: x_bitmap,
        !           417:                  x, y, width, height, func, planes: int)
        !           418:     or: oreq, er: ereq := x_buf$get()
        !           419:     er.code := x_tilefill + (func * 2**8)
        !           420:     or.mask := planes
        !           421:     er.ewin := w
        !           422:     er.s0 := height
        !           423:     or.s1 := width
        !           424:     er.s2 := x
        !           425:     or.s3 := y
        !           426:     lr(er).l2 := p2i(tile)
        !           427:     lr(er).l3 := b2i(mask)
        !           428:     end tile_fill
        !           429: 
        !           430: pixmap_put = proc (w: cvt, pix: x_pixmap,
        !           431:                   srcx, srcy, width, height, dstx, dsty, func, planes: int)
        !           432:     or: oreq, er: ereq := x_buf$get()
        !           433:     er.code := x_pixmapput + (func * 2**8)
        !           434:     or.mask := planes
        !           435:     er.ewin := w
        !           436:     er.s0 := height
        !           437:     or.s1 := width
        !           438:     er.s2 := srcx
        !           439:     or.s3 := srcy
        !           440:     lr(er).l2 := p2i(pix)
        !           441:     er.s6 := dstx
        !           442:     or.s7 := dsty
        !           443:     end pixmap_put
        !           444: 
        !           445: pixmap_zbitsput = proc (w: cvt, width, height: int, bits: _wordvec,
        !           446:                        mask: x_bitmap, x, y, func, planes: int)
        !           447:     or: oreq, er: ereq := x_buf$get()
        !           448:     er.code := x_pixmapbitsput + (func * 2**8)
        !           449:     or.mask := planes
        !           450:     er.ewin := w
        !           451:     er.s0 := height
        !           452:     or.s1 := width
        !           453:     er.s2 := x
        !           454:     or.s3 := y
        !           455:     er.s4 := ZFormat
        !           456:     lr(er).l3 := b2i(mask)
        !           457:     z: int := width * height
        !           458:     if x_display$planes() > 8
        !           459:        then z := z + z end
        !           460:     x_buf$send_data(w2b(bits), 1, z)
        !           461:     end pixmap_zbitsput
        !           462: 
        !           463: pixmap_xybitsput = proc (w: cvt, width, height: int, bits: _wordvec,
        !           464:                         mask: x_bitmap, x, y, func, planes: int)
        !           465:     or: oreq, er: ereq := x_buf$get()
        !           466:     er.code := x_pixmapbitsput + (func * 2**8)
        !           467:     or.mask := planes
        !           468:     er.ewin := w
        !           469:     er.s0 := height
        !           470:     or.s1 := width
        !           471:     er.s2 := x
        !           472:     or.s3 := y
        !           473:     er.s4 := XYFormat
        !           474:     lr(er).l3 := b2i(mask)
        !           475:     x_buf$send_data(w2b(bits), 1,
        !           476:                    ((width + 15) / 16) * height * 2 * x_display$planes())
        !           477:     end pixmap_xybitsput
        !           478: 
        !           479: bitmap_bitsput = proc (w: cvt, width, height: int, bits: _wordvec,
        !           480:                       fore, back: int, mask: x_bitmap, x, y, func, planes: int)
        !           481:     or: oreq, er: ereq := x_buf$get()
        !           482:     er.code := x_bitmapbitsput + (func * 2**8)
        !           483:     or.mask := planes
        !           484:     er.ewin := w
        !           485:     er.s0 := height
        !           486:     or.s1 := width
        !           487:     er.s2 := x
        !           488:     or.s3 := y
        !           489:     er.s4 := fore
        !           490:     or.s5 := back
        !           491:     lr(er).l3 := b2i(mask)
        !           492:     x_buf$send_data(w2b(bits), 1, ((width + 15) / 16) * height * 2)
        !           493:     end bitmap_bitsput
        !           494: 
        !           495: move_area = proc (w: cvt, srcx, srcy, width, height, dstx, dsty: int)
        !           496:     or: oreq, er: ereq := x_buf$get()
        !           497:     er.code := x_copyarea + (GXcopy * 2**8)
        !           498:     or.mask := -1
        !           499:     er.ewin := w
        !           500:     er.s0 := height
        !           501:     or.s1 := width
        !           502:     er.s2 := srcx
        !           503:     or.s3 := srcy
        !           504:     er.s6 := dstx
        !           505:     or.s7 := dsty
        !           506:     end move_area
        !           507: 
        !           508: copy_area = proc (w: cvt, srcx, srcy, width, height, dstx, dsty: int,
        !           509:                  func, planes: int)
        !           510:     or: oreq, er: ereq := x_buf$get()
        !           511:     er.code := x_copyarea + (func * 2**8)
        !           512:     or.mask := planes
        !           513:     er.ewin := w
        !           514:     er.s0 := height
        !           515:     or.s1 := width
        !           516:     er.s2 := srcx
        !           517:     or.s3 := srcy
        !           518:     er.s6 := dstx
        !           519:     or.s7 := dsty
        !           520:     end copy_area
        !           521: 
        !           522: text = proc (w: cvt, s: string, font: x_font, fore, back, x, y: int)
        !           523:     or: oreq, er: ereq := x_buf$get()
        !           524:     er.code := x_text + (GXcopy * 2**8)
        !           525:     or.mask := -1
        !           526:     er.ewin := w
        !           527:     er.s0 := x
        !           528:     or.s1 := y
        !           529:     lr(er).l1 := f2i(font)
        !           530:     er.s4 := fore
        !           531:     or.s5 := back
        !           532:     er.s6 := string$size(s)
        !           533:     x_buf$send_data(s2b(s), 1, string$size(s))
        !           534:     end text
        !           535: 
        !           536: textv = proc (w: cvt, b: _bytevec, start, z: int, font: x_font,
        !           537:              fore, back, x, y: int)
        !           538:     or: oreq, er: ereq := x_buf$get()
        !           539:     er.code := x_text + (GXcopy * 2**8)
        !           540:     or.mask := -1
        !           541:     er.ewin := w
        !           542:     er.s0 := x
        !           543:     or.s1 := y
        !           544:     lr(er).l1 := f2i(font)
        !           545:     er.s4 := fore
        !           546:     or.s5 := back
        !           547:     er.s6 := z
        !           548:     x_buf$send_data(b, start, z)
        !           549:     end textv
        !           550: 
        !           551: texta = proc (w: cvt, a: array[char], start, z: int, font: x_font,
        !           552:              fore, back, x, y: int)
        !           553:     or: oreq, er: ereq := x_buf$get()
        !           554:     er.code := x_text + (GXcopy * 2**8)
        !           555:     or.mask := -1
        !           556:     er.ewin := w
        !           557:     er.s0 := x
        !           558:     or.s1 := y
        !           559:     lr(er).l1 := f2i(font)
        !           560:     er.s4 := fore
        !           561:     or.s5 := back
        !           562:     er.s6 := z
        !           563:     x_buf$send_array(a, start, z)
        !           564:     end texta
        !           565: 
        !           566: text_pad = proc (w: cvt, s: string, font: x_font, fore, back, cpad, spad: int,
        !           567:                 x, y: int, func, planes: int)
        !           568:     or: oreq, er: ereq := x_buf$get()
        !           569:     er.code := x_text + (func * 2**8)
        !           570:     or.mask := planes
        !           571:     er.ewin := w
        !           572:     er.s0 := x
        !           573:     or.s1 := y
        !           574:     lr(er).l1 := f2i(font)
        !           575:     er.s4 := fore
        !           576:     or.s5 := back
        !           577:     er.s6 := string$size(s)
        !           578:     or.s7 := (cpad // 2**8) + (spad * 2**8)
        !           579:     x_buf$send_data(s2b(s), 1, string$size(s))
        !           580:     end text_pad
        !           581: 
        !           582: textv_pad = proc (w: cvt, b: _bytevec, start, z: int, font: x_font,
        !           583:                  fore, back, cpad, spad: int, x, y: int, func, planes: int)
        !           584:     or: oreq, er: ereq := x_buf$get()
        !           585:     er.code := x_text + (func * 2**8)
        !           586:     or.mask := planes
        !           587:     er.ewin := w
        !           588:     er.s0 := x
        !           589:     or.s1 := y
        !           590:     lr(er).l1 := f2i(font)
        !           591:     er.s4 := fore
        !           592:     or.s5 := back
        !           593:     er.s6 := z
        !           594:     or.s7 := (cpad // 2**8) + (spad * 2**8)
        !           595:     x_buf$send_data(b, start, z)
        !           596:     end textv_pad
        !           597: 
        !           598: texta_pad = proc (w: cvt, a: array[char], start, z: int, font: x_font,
        !           599:                  fore, back, cpad, spad: int, x, y: int, func, planes: int)
        !           600:     or: oreq, er: ereq := x_buf$get()
        !           601:     er.code := x_text + (func * 2**8)
        !           602:     or.mask := planes
        !           603:     er.ewin := w
        !           604:     er.s0 := x
        !           605:     or.s1 := y
        !           606:     lr(er).l1 := f2i(font)
        !           607:     er.s4 := fore
        !           608:     or.s5 := back
        !           609:     er.s6 := z
        !           610:     or.s7 := (cpad // 2**8) + (spad * 2**8)
        !           611:     x_buf$send_array(a, start, z)
        !           612:     end texta_pad
        !           613: 
        !           614: text_mask = proc (w: cvt, s: string, font: x_font, pixel, x, y: int)
        !           615:     or: oreq, er: ereq := x_buf$get()
        !           616:     er.code := x_textmask + (GXcopy * 2**8)
        !           617:     or.mask := -1
        !           618:     er.ewin := w
        !           619:     er.s0 := x
        !           620:     or.s1 := y
        !           621:     lr(er).l1 := f2i(font)
        !           622:     er.s4 := pixel
        !           623:     er.s6 := string$size(s)
        !           624:     x_buf$send_data(s2b(s), 1, string$size(s))
        !           625:     end text_mask
        !           626: 
        !           627: textv_mask = proc (w: cvt, b: _bytevec, start, z: int, font: x_font,
        !           628:                   pixel, x, y: int)
        !           629:     or: oreq, er: ereq := x_buf$get()
        !           630:     er.code := x_textmask + (GXcopy * 2**8)
        !           631:     or.mask := -1
        !           632:     er.ewin := w
        !           633:     er.s0 := x
        !           634:     or.s1 := y
        !           635:     lr(er).l1 := f2i(font)
        !           636:     er.s4 := pixel
        !           637:     er.s6 := z
        !           638:     x_buf$send_data(b, start, z)
        !           639:     end textv_mask
        !           640: 
        !           641: texta_mask = proc (w: cvt, a: array[char], start, z: int, font: x_font,
        !           642:                   pixel, x, y: int)
        !           643:     or: oreq, er: ereq := x_buf$get()
        !           644:     er.code := x_textmask + (GXcopy * 2**8)
        !           645:     or.mask := -1
        !           646:     er.ewin := w
        !           647:     er.s0 := x
        !           648:     or.s1 := y
        !           649:     lr(er).l1 := f2i(font)
        !           650:     er.s4 := pixel
        !           651:     er.s6 := z
        !           652:     x_buf$send_array(a, start, z)
        !           653:     end texta_mask
        !           654: 
        !           655: text_mask_pad = proc (w: cvt, s: string, font: x_font, pixel, cpad, spad: int,
        !           656:                      x, y: int, func, planes: int)
        !           657:     or: oreq, er: ereq := x_buf$get()
        !           658:     er.code := x_textmask + (func * 2**8)
        !           659:     or.mask := planes
        !           660:     er.ewin := w
        !           661:     er.s0 := x
        !           662:     or.s1 := y
        !           663:     lr(er).l1 := f2i(font)
        !           664:     er.s4 := pixel
        !           665:     er.s6 := string$size(s)
        !           666:     or.s7 := (cpad // 2**8) + (spad * 2**8)
        !           667:     x_buf$send_data(s2b(s), 1, string$size(s))
        !           668:     end text_mask_pad
        !           669: 
        !           670: textv_mask_pad = proc (w: cvt, b: _bytevec, start, z: int, font: x_font,
        !           671:                       pixel, cpad, spad: int, x, y: int, func, planes: int)
        !           672:     or: oreq, er: ereq := x_buf$get()
        !           673:     er.code := x_textmask + (func * 2**8)
        !           674:     or.mask := planes
        !           675:     er.ewin := w
        !           676:     er.s0 := x
        !           677:     or.s1 := y
        !           678:     lr(er).l1 := f2i(font)
        !           679:     er.s4 := pixel
        !           680:     er.s6 := z
        !           681:     or.s7 := (cpad // 2**8) + (spad * 2**8)
        !           682:     x_buf$send_data(b, start, z)
        !           683:     end textv_mask_pad
        !           684: 
        !           685: texta_mask_pad = proc (w: cvt, a: array[char], start, z: int, font: x_font,
        !           686:                       pixel, cpad, spad: int, x, y: int, func, planes: int)
        !           687:     or: oreq, er: ereq := x_buf$get()
        !           688:     er.code := x_textmask + (func * 2**8)
        !           689:     or.mask := planes
        !           690:     er.ewin := w
        !           691:     er.s0 := x
        !           692:     or.s1 := y
        !           693:     lr(er).l1 := f2i(font)
        !           694:     er.s4 := pixel
        !           695:     er.s6 := z
        !           696:     or.s7 := (cpad // 2**8) + (spad * 2**8)
        !           697:     x_buf$send_array(a, start, z)
        !           698:     end texta_mask_pad
        !           699: 
        !           700: line = proc (w: cvt, pixel, width, height, x1, y1, x2, y2, func, planes: int)
        !           701:     or: oreq, er: ereq := x_buf$get()
        !           702:     er.code := x_line + (func * 2**8)
        !           703:     or.mask := planes
        !           704:     er.ewin := w
        !           705:     er.s0 := x1
        !           706:     or.s1 := y1
        !           707:     er.s2 := x2
        !           708:     or.s3 := y2
        !           709:     er.s4 := pixel
        !           710:     or.s5 := (height // 2**8) + (width * 2**8)
        !           711:     end line
        !           712: 
        !           713: draw = proc (w: cvt, verts: x_vlist, z, pixel, width, height, func, planes: int)
        !           714:     or: oreq, er: ereq := x_buf$get()
        !           715:     er.code := x_draw + (func * 2**8)
        !           716:     or.mask := planes
        !           717:     er.ewin := w
        !           718:     er.s0 := z
        !           719:     or.s1 := pixel
        !           720:     er.s2 := (height // 2**8) + (width * 2**8)
        !           721:     or.s3 := DrawSolidLine
        !           722:     x_buf$send_data(v2b(verts), 1, 6 * z)
        !           723:     end draw
        !           724: 
        !           725: draw_dashed = proc (w: cvt, verts: x_vlist, z, pixel, width, height: int,
        !           726:                    pattern, patlen, patmul, func, planes: int)
        !           727:     or: oreq, er: ereq := x_buf$get()
        !           728:     er.code := x_draw + (func * 2**8)
        !           729:     or.mask := planes
        !           730:     er.ewin := w
        !           731:     er.s0 := z
        !           732:     or.s1 := pixel
        !           733:     er.s2 := (height // 2**8) + (width * 2**8)
        !           734:     or.s3 := DrawDashedLine
        !           735:     or.s5 := pattern
        !           736:     er.s6 := patlen
        !           737:     or.s7 := patmul
        !           738:     x_buf$send_data(v2b(verts), 1, 6 * z)
        !           739:     end draw_dashed
        !           740: 
        !           741: draw_patterned = proc (w: cvt, verts: x_vlist, z, pixel, altpix: int,
        !           742:                        width, height, pattern, patlen, patmul, func, planes: int)
        !           743:     or: oreq, er: ereq := x_buf$get()
        !           744:     er.code := x_draw + (func * 2**8)
        !           745:     or.mask := planes
        !           746:     er.ewin := w
        !           747:     er.s0 := z
        !           748:     or.s1 := pixel
        !           749:     er.s2 := (height // 2**8) + (width * 2**8)
        !           750:     or.s3 := DrawPatternedLine
        !           751:     er.s4 := altpix
        !           752:     or.s5 := pattern
        !           753:     er.s6 := patlen
        !           754:     or.s7 := patmul
        !           755:     x_buf$send_data(v2b(verts), 1, 6 * z)
        !           756:     end draw_patterned
        !           757: 
        !           758: draw_filled = proc (w: cvt, verts: x_vlist, z, pixel, func, planes: int)
        !           759:     or: oreq, er: ereq := x_buf$get()
        !           760:     er.code := x_drawfilled + (func * 2**8)
        !           761:     or.mask := planes
        !           762:     er.ewin := w
        !           763:     er.s0 := z
        !           764:     or.s1 := pixel
        !           765:     lr(er).l1 := 0
        !           766:     x_buf$send_data(v2b(verts), 1, 6 * z)
        !           767:     end draw_filled
        !           768: 
        !           769: draw_tiled = proc (w: cvt, verts: x_vlist, z: int, tile: x_pixmap,
        !           770:                   func, planes: int)
        !           771:     or: oreq, er: ereq := x_buf$get()
        !           772:     er.code := x_drawfilled + (func * 2**8)
        !           773:     or.mask := planes
        !           774:     er.ewin := w
        !           775:     er.s0 := z
        !           776:     lr(er).l1 := p2i(tile)
        !           777:     x_buf$send_data(v2b(verts), 1, 6 * z)
        !           778:     end draw_tiled
        !           779: 
        !           780: save_region = proc (w: cvt, x, y, width, height: int) returns (x_pixmap)
        !           781:                signals (error(string))
        !           782:     or: oreq, er: ereq := x_buf$get()
        !           783:     er.code := x_pixmapsave
        !           784:     er.ewin := w
        !           785:     er.s0 := height
        !           786:     or.s1 := width
        !           787:     er.s2 := x
        !           788:     or.s3 := y
        !           789:     x_buf$receive()
        !           790:        resignal error
        !           791:     return(_cvt[int, x_pixmap](x_buf$get_lp0()))
        !           792:     end save_region
        !           793: 
        !           794: read_xyregion = proc (w: cvt, x, y, width, height: int) returns (_wordvec)
        !           795:                signals (error(string))
        !           796:     or: oreq, er: ereq := x_buf$get()
        !           797:     er.code := x_pixmapget + (XYFormat * 2**8)
        !           798:     er.ewin := w
        !           799:     er.s0 := height
        !           800:     or.s1 := width
        !           801:     er.s2 := x
        !           802:     or.s3 := y
        !           803:     x_buf$receive()
        !           804:        resignal error
        !           805:     b: _bytevec := _bytevec$create(x_buf$get_lp0())
        !           806:     x_buf$receive_data(b)
        !           807:     return(b2w(b))
        !           808:     end read_xyregion
        !           809: 
        !           810: read_zregion = proc (w: cvt, x, y, width, height: int) returns (_wordvec)
        !           811:                signals (error(string))
        !           812:     or: oreq, er: ereq := x_buf$get()
        !           813:     er.code := x_pixmapget + (ZFormat * 2**8)
        !           814:     er.ewin := w
        !           815:     er.s0 := height
        !           816:     or.s1 := width
        !           817:     er.s2 := x
        !           818:     or.s3 := y
        !           819:     x_buf$receive()
        !           820:        resignal error
        !           821:     b: _bytevec := _bytevec$create(x_buf$get_lp0())
        !           822:     x_buf$receive_data(b)
        !           823:     return(b2w(b))
        !           824:     end read_zregion
        !           825: 
        !           826: get_id = proc (w: cvt) returns (int)
        !           827:     return(w)
        !           828:     end get_id
        !           829: 
        !           830: equal = proc (w1, w2: cvt) returns (bool)
        !           831:     return(w1 = w2)
        !           832:     end equal
        !           833: 
        !           834: similar = proc (w1, w2: cvt) returns (bool)
        !           835:     return(w1 = w2)
        !           836:     end similar
        !           837: 
        !           838: copy = proc (w: cvt) returns (cvt)
        !           839:     return(w)
        !           840:     end copy
        !           841: 
        !           842: end x_window

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.