

def addshadow(self, amount=51, region=None, offset=None, direction=None, xoffset=1, yoffset=1):
    '\n        Creates a shadow by darkening the cells around a rectangular region. For example, if the O characters represent the rectangular region, then the S characters represent the darkend cells to form the shadow:\n\n          OOOO\n          OOOOS\n          OOOOS\n          OOOOS\n           SSSS\n\n        - amount is the amount to darken the cells. 255 will make the cells completely black.\n        - offset is how many cells the shadow is offset from the rectangular region. The example above has an offset of 1. An offset of 0 places no shadow, since it would be directly underneath the rectangular region. Specifying the offset parameter overrides the xoffset and yoffset parameters.\n        - direction is used along with offset. This controls which direction the shadow is cast from the rectangular region. Specify one of the directional constants for this parameter (i.e. NORTH, NORTHWEST, EAST, SOUTHEAST, etc.) This parameter is ignored if offset is not specified.\n        - xoffset, yoffset are ways to specify the offset directly. Positive values send the shadow to the right and down, negative values to the left and up.\n        '
    (x, y, width, height) = self.getregion(region, False)
    if ((x, y, width, height) == (None, None, None, None)):
        return
    if (offset is not None):
        xoffset = offset
        yoffset = offset
        if (direction is not None):
            if (direction in (NORTH, NORTHWEST, NORTHEAST)):
                yoffset = (- yoffset)
            if (direction in (WEST, NORTHWEST, SOUTHWEST)):
                xoffset = (- xoffset)
            if (direction in (NORTH, SOUTH)):
                xoffset = 0
            if (direction in (WEST, EAST)):
                yoffset = 0
    if ((yoffset < 0) and ((- width) < xoffset < width)):
        self.darken(amount, ((x + getwithinrange(xoffset, 0, width)), (y + yoffset), (width - abs(xoffset)), min(abs(yoffset), height)))
    if ((yoffset > 0) and ((- width) < xoffset < width)):
        self.darken(amount, ((x + getwithinrange(xoffset, 0, width)), (y + max(yoffset, height)), (width - abs(xoffset)), min(abs(yoffset), height)))
    if ((xoffset < 0) and ((- height) < yoffset < height)):
        self.darken(amount, ((x + xoffset), (y + getwithinrange(yoffset, 0, height)), getwithinrange(abs(xoffset), 0, width), (height - abs(yoffset))))
    if ((xoffset > 0) and ((- height) < yoffset < height)):
        self.darken(amount, ((x + max(xoffset, width)), (y + getwithinrange(yoffset, 0, height)), min(abs(xoffset), width), (height - abs(yoffset))))
    if ((xoffset < 0) and (yoffset < 0)):
        self.darken(amount, ((x + xoffset), (y + yoffset), min(abs(xoffset), width), min(abs(yoffset), height)))
    if ((xoffset > 0) and (yoffset < 0)):
        self.darken(amount, ((x + getwithinrange(xoffset, width, xoffset)), (y + yoffset), min(abs(xoffset), width), min(abs(yoffset), height)))
    if ((xoffset < 0) and (yoffset > 0)):
        self.darken(amount, ((x + xoffset), (y + getwithinrange(yoffset, height, yoffset)), min(abs(xoffset), width), min(abs(yoffset), height)))
    if ((xoffset > 0) and (yoffset > 0)):
        self.darken(amount, ((x + getwithinrange(xoffset, width, xoffset)), (y + getwithinrange(yoffset, height, yoffset)), getwithinrange(abs(xoffset), 0, width), getwithinrange(abs(yoffset), 0, height)))

dataset/ETHPy150Open asweigart/pygcurse/pygcurse/__init__.py PygcurseSurface.addshadow/original