Allow setting margins individually in set_margins()

This commit is contained in:
fruchti 2023-12-16 09:53:37 +01:00
parent 81ba2604ac
commit a8e2ec73a5

View file

@ -15,9 +15,9 @@ class Paper:
'left': 0 'left': 0
} }
self.set_margins(margins) self.set_margins(margins)
def set_margins(self, margins): def set_margins(self, margins=None, top=None, right=None, bottom=None,
left=None):
if isinstance(margins, int) or isinstance(margins, float): if isinstance(margins, int) or isinstance(margins, float):
self.margins['top'] = margins self.margins['top'] = margins
self.margins['right'] = margins self.margins['right'] = margins
@ -40,9 +40,18 @@ class Paper:
self.margins['right'] = margins[1] self.margins['right'] = margins[1]
self.margins['bottom'] = margins[2] self.margins['bottom'] = margins[2]
self.margins['left'] = margins[3] self.margins['left'] = margins[3]
else: elif margins is not None:
self.margins = margins self.margins = margins
if top is not None:
self.margins['top'] = top
if right is not None:
self.margins['right'] = right
if bottom is not None:
self.margins['bottom'] = bottom
if left is not None:
self.margins['left'] = left
@property @property
def content_width(self): def content_width(self):
return self.width - self.margins['left'] - self.margins['right'] return self.width - self.margins['left'] - self.margins['right']
@ -126,7 +135,6 @@ A6_PORTRAIT = Paper(105, 148, 8)
A6_LANDSCAPE = Paper(148, 105, 8) A6_LANDSCAPE = Paper(148, 105, 8)
class Plotter: class Plotter:
def __init__(self, paper, line_width=0, colour=[0, 0, 0, 1]): def __init__(self, paper, line_width=0, colour=[0, 0, 0, 1]):
@ -308,4 +316,4 @@ class MultiPlotter(Plotter):
@property @property
def paper(self): def paper(self):
return self.plotters[0].paper return self.plotters[0].paper