92 lines
2.7 KiB
C
92 lines
2.7 KiB
C
/* show.c -
|
|
*
|
|
* Routines for displaying rects with highlights etc. Useful for
|
|
* debugging.
|
|
*
|
|
* *********************************************************************
|
|
* * Copyright (C) 1985, 1990 Regents of the University of California. *
|
|
* * Permission to use, copy, modify, and distribute this *
|
|
* * software and its documentation for any purpose and without *
|
|
* * fee is hereby granted, provided that the above copyright *
|
|
* * notice appear in all copies. The University of California *
|
|
* * makes no representations about the suitability of this *
|
|
* * software for any purpose. It is provided "as is" without *
|
|
* * express or implied warranty. Export of this software outside *
|
|
* * of the United States of America may require an export license. *
|
|
* *********************************************************************
|
|
*/
|
|
|
|
#ifndef lint
|
|
static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/utils/show.c,v 1.1.1.1 2008/02/03 20:43:50 tim Exp $";
|
|
#endif /* not lint */
|
|
|
|
#include <stdio.h>
|
|
|
|
#include "utils/magic.h"
|
|
#include "utils/geometry.h"
|
|
#include "windows/windows.h"
|
|
#include "graphics/graphics.h"
|
|
#include "utils/hash.h"
|
|
#include "tiles/tile.h"
|
|
#include "database/database.h"
|
|
#include "dbwind/dbwind.h"
|
|
|
|
|
|
/*
|
|
* ----------------------------------------------------------------------------
|
|
*
|
|
* ShowRect --
|
|
*
|
|
* Show an area in the cell 'def', for debugging the maze router.
|
|
* In this implementation, the area is only displayed in windows
|
|
* where 'def' is the root cell.
|
|
*
|
|
* Results:
|
|
* None.
|
|
*
|
|
* Side effects:
|
|
* See above.
|
|
* Because this procedure bypasses the normal display package,
|
|
* it can leave data on the screen messed up. Callers should
|
|
* use styles that affect only the highlight layer to minimize
|
|
* the amount of damage.
|
|
*
|
|
* ----------------------------------------------------------------------------
|
|
*/
|
|
|
|
int ShowRectStyle;
|
|
CellDef *ShowRectDef;
|
|
|
|
void
|
|
ShowRect(def, r, style)
|
|
CellDef *def; /* The area is in this def */
|
|
Rect *r; /* Display this area (in coords of def above) */
|
|
int style; /* in this style */
|
|
{
|
|
int ShowRectFunc();
|
|
|
|
ShowRectDef = def;
|
|
ShowRectStyle = style;
|
|
(void) WindSearch(DBWclientID, (ClientData) NULL, r, ShowRectFunc,
|
|
(ClientData) r);
|
|
}
|
|
|
|
int
|
|
ShowRectFunc(w, r)
|
|
MagWindow *w;
|
|
Rect *r;
|
|
{
|
|
Rect screenRect;
|
|
|
|
/* Skip if desired def is not root of window */
|
|
if (((CellUse *) w->w_surfaceID)->cu_def != ShowRectDef)
|
|
return (0);
|
|
|
|
WindSurfaceToScreen(w, r, &screenRect);
|
|
GrLock(w, TRUE);
|
|
GrClipBox(&screenRect, ShowRectStyle);
|
|
GrUnlock(w);
|
|
(void) GrFlush();
|
|
return (0);
|
|
}
|