65 lines
2.1 KiB
Python
65 lines
2.1 KiB
Python
class SingleStrokeRectComponent:
|
|
|
|
def __init__(self, width, height, main_color, stroke_color, stroke_width, r) -> None:
|
|
self.p_width = width
|
|
self.p_height = height
|
|
self.main_color = main_color
|
|
self.stroke_color = stroke_color
|
|
self.stroke_width = stroke_width
|
|
self.r = r
|
|
|
|
def width(self):
|
|
return self.p_width
|
|
|
|
def height(self):
|
|
return self.p_height
|
|
|
|
def draw(self, container, x, y):
|
|
container.add(
|
|
container.rect(
|
|
insert=(x, y),
|
|
size=(self.p_width, self.p_height),
|
|
rx=self.r,
|
|
ry=self.r,
|
|
fill=self.stroke_color
|
|
)
|
|
)
|
|
container.add(
|
|
container.rect(
|
|
insert=(x + self.stroke_width, y + self.stroke_width),
|
|
size=(self.p_width - 2 * self.stroke_width, self.p_height - 2 * self.stroke_width),
|
|
rx=self.r - self.stroke_width,
|
|
ry=self.r - self.stroke_width,
|
|
fill=self.main_color
|
|
)
|
|
)
|
|
|
|
|
|
class DoubleStrokeRectComponent:
|
|
|
|
def __init__(self, width, height, main_color, stroke_color, stroke_width, r) -> None:
|
|
self.p_width = width
|
|
self.p_height = height
|
|
self.main_color = main_color
|
|
self.stroke_color = stroke_color
|
|
self.stroke_width = stroke_width
|
|
self.r = r
|
|
|
|
def width(self):
|
|
return self.p_width
|
|
|
|
def height(self):
|
|
return self.p_height
|
|
|
|
def draw(self, container, x, y):
|
|
outer = SingleStrokeRectComponent(self.p_width, self.p_height, self.stroke_color, self.main_color, self.stroke_width, self.r)
|
|
outer.draw(container, x, y)
|
|
container.add(
|
|
container.rect(
|
|
insert=(x + 2 * self.stroke_width, y + 2 * self.stroke_width),
|
|
size=(self.p_width - 4 * self.stroke_width, self.p_height - 4 * self.stroke_width),
|
|
rx=self.r - 2 * self.stroke_width,
|
|
ry=self.r - 2 * self.stroke_width,
|
|
fill=self.main_color
|
|
)
|
|
) |