DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T w

⟦d73022033⟧ TextFile

    Length: 2350 (0x92e)
    Types: TextFile
    Names: »window.c«

Derivation

└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
    └─⟦this⟧ »EUUGD18/X/Xtetris/window.c« 

TextFile

#include "defs.h"

static XtIntervalId timer;

start_timer()
{
	unsigned long interval;
        int     level;

        level = 50 - (rows / 10);
        if (level < 0)
                level = 0;

	interval = level * 6;
	timer = XtAddTimeOut(interval, drop_block, NULL);
}

stop_timer()
{
	XtRemoveTimeOut(timer);
}

set_events()
{
        XtAddCallback(canvas, XtNselect,canvas_event_proc,NULL);
        XtAddCallback(canvas, XtNrelease,canvas_event_proc,NULL);
        XtAddCallback(canvas, XtNkeyDown,canvas_event_proc,NULL);
}

clear_events()
{
        XtRemoveCallback(canvas, XtNselect,canvas_event_proc,NULL);
        XtRemoveCallback(canvas, XtNrelease,canvas_event_proc,NULL);
        XtRemoveCallback(canvas, XtNkeyDown,canvas_event_proc,NULL);
}

void
restore_canvas(w, client_data, call_data)
    Widget w;
    caddr_t client_data;
    caddr_t call_data;
{
	int x, y;

        XSetFunction(XtDisplay(toplevel), gc, GXclear);
        XFillRectangle(XtDisplay(toplevel), XtWindow(canvas), gc,
                       0, 0, UNIT * UWIDTH, UNIT * UHEIGHT);
        XSetFunction(XtDisplay(toplevel), gc, GXcopy);
        XSetLineAttributes(XtDisplay(toplevel), gc,
                           1, LineSolid, CapButt, JoinMiter);
        XDrawLine(XtDisplay(toplevel), XtWindow(canvas), gc,
                  0, UHEIGHT * UNIT, UWIDTH * UNIT, UHEIGHT * UNIT);
        XDrawLine(XtDisplay(toplevel), XtWindow(canvas), gc,
                  0, UHEIGHT * UNIT + SHADOW_HEIGHT,
                  UWIDTH * UNIT, UHEIGHT * UNIT + SHADOW_HEIGHT);
        XDrawLine(XtDisplay(toplevel), XtWindow(canvas), gc,
                  UWIDTH * UNIT, 0,
                  UWIDTH * UNIT, UHEIGHT * UNIT + SHADOW_HEIGHT + NEXT_HEIGHT);
	for(x=0; x<UWIDTH; x++)
		for(y=0; y<UHEIGHT; y++)
		if (grid[x][y] == 1) {
		        XFillRectangle(XtDisplay(toplevel),XtWindow(canvas),gc,
			               x * UNIT, y * UNIT, UNIT, UNIT);
        		XSetFillStyle(XtDisplay(toplevel), gc, FillTiled);
		        XFillRectangle(XtDisplay(toplevel),XtWindow(canvas),gc,
			              (x * UNIT)+1, (y * UNIT)+1, UNIT-2, UNIT-2);
			XSetFillStyle(XtDisplay(toplevel), gc, FillSolid);
		}

	XFlush(XtDisplay(toplevel));
        print_shape(shape_no, xpos, ypos, rot, shape[shape_no].color);
        draw_shadow(shape_no, xpos, ypos, rot, shape[shape_no].color);
	show_next();
}