File: show.c

package info (click to toggle)
magic 7.5.220-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 17,860 kB
file content (91 lines) | stat: -rw-r--r-- 2,764 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/* 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-7.5/utils/show.c,v 1.1.1.1 2006/04/10 22:03:14 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);
}