dikdimon's picture
Upload extensions using SD-Hub extension
f4a41d8 verified
raw
history blame
1.21 kB
from enum import IntEnum
from typing import Tuple
class Position(IntEnum):
TOP_LEFT = 1
TOP_CENTER = 2
TOP_RIGHT = 3
CENTER_LEFT = 4
CENTER = 5
CENTER_RIGHT = 6
BOTTOM_LEFT = 7
BOTTOM_CENTER = 8
BOTTOM_RIGHT = 9
def align(bounds: Tuple[int, int], inner_box: Tuple[int, int], position: Position, padding: int = 0) -> Tuple[int, int]:
x, y = 0, 0
if position in (Position.TOP_LEFT, Position.TOP_CENTER, Position.TOP_RIGHT):
y = padding
elif position in (Position.BOTTOM_LEFT, Position.BOTTOM_CENTER, Position.BOTTOM_RIGHT):
y = bounds[1] - inner_box[1] - padding
else:
y = (bounds[1] - inner_box[1]) // 2
if position in (Position.TOP_LEFT, Position.CENTER_LEFT, Position.BOTTOM_LEFT):
x = padding
elif position in (Position.TOP_RIGHT, Position.CENTER_RIGHT, Position.BOTTOM_RIGHT):
x = bounds[0] - inner_box[0] - padding
else:
x = (bounds[0] - inner_box[0]) // 2
return (x, y)
def getTextAlignFromPosition(position: Position) -> str:
if position in (Position.TOP_RIGHT, Position.CENTER_RIGHT, Position.BOTTOM_RIGHT):
return 'right'
if position in (Position.TOP_CENTER, Position.CENTER, Position.BOTTOM_CENTER):
return 'center'
return 'left'