Skip to content

Commit d9fda2c

Browse files
committed
feat: shape padding support
1 parent b18fa4a commit d9fda2c

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

src/shapes/shape.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,12 @@ export default abstract class Shape extends Observable {
175175
@stringProperty({ nonPaintProp: true }) horizontalAlignment: HorizontalAlignment & 'middle';
176176
@stringProperty({ nonPaintProp: true }) verticalAlignment: VerticalAlignment & 'center';
177177

178-
@percentLengthProperty width: PercentLength;
179-
@percentLengthProperty height: PercentLength;
178+
@percentLengthProperty({ nonPaintProp: true }) width: PercentLength;
179+
@percentLengthProperty({ nonPaintProp: true }) height: PercentLength;
180+
@percentLengthProperty({ nonPaintProp: true }) paddingLeft: PercentLength;
181+
@percentLengthProperty({ nonPaintProp: true }) paddingRight: PercentLength;
182+
@percentLengthProperty({ nonPaintProp: true }) paddingBottom: PercentLength;
183+
@percentLengthProperty({ nonPaintProp: true }) paddingTop: PercentLength;
180184

181185
protected handleAlignment = false;
182186

@@ -197,10 +201,10 @@ export default abstract class Shape extends Observable {
197201
if (!this.handleAlignment) {
198202
const availableWidth = Utils.layout.toDevicePixels(canvas.getWidth());
199203
const availableHeight = Utils.layout.toDevicePixels(canvas.getHeight());
200-
const paddingLeft = Utils.layout.toDeviceIndependentPixels(parent.effectivePaddingLeft) + Utils.layout.toDeviceIndependentPixels(parent.effectiveBorderLeftWidth);
201-
const paddingRight = Utils.layout.toDeviceIndependentPixels(parent.effectivePaddingRight )+ Utils.layout.toDeviceIndependentPixels(parent.effectiveBorderRightWidth);
202-
const paddingTop = Utils.layout.toDeviceIndependentPixels(parent.effectivePaddingTop) + Utils.layout.toDeviceIndependentPixels(parent.effectiveBorderTopWidth);
203-
const paddingBottom = Utils.layout.toDeviceIndependentPixels(parent.effectivePaddingBottom) + Utils.layout.toDeviceIndependentPixels(parent.effectiveBorderBottomWidth);
204+
const paddingLeft = Utils.layout.toDeviceIndependentPixels(parent.effectivePaddingLeft) + Utils.layout.toDeviceIndependentPixels(PercentLength.toDevicePixels(this.paddingLeft, 0, availableWidth)) + Utils.layout.toDeviceIndependentPixels(parent.effectiveBorderLeftWidth);
205+
const paddingRight = Utils.layout.toDeviceIndependentPixels(parent.effectivePaddingRight ) + Utils.layout.toDeviceIndependentPixels(PercentLength.toDevicePixels(this.paddingRight, 0, availableWidth))+ Utils.layout.toDeviceIndependentPixels(parent.effectiveBorderRightWidth);
206+
const paddingTop = Utils.layout.toDeviceIndependentPixels(parent.effectivePaddingTop) + Utils.layout.toDeviceIndependentPixels(PercentLength.toDevicePixels(this.paddingTop, 0, availableHeight)) + Utils.layout.toDeviceIndependentPixels(parent.effectiveBorderTopWidth);
207+
const paddingBottom = Utils.layout.toDeviceIndependentPixels(parent.effectivePaddingBottom) + Utils.layout.toDeviceIndependentPixels(PercentLength.toDevicePixels(this.paddingBottom, 0, availableHeight)) + Utils.layout.toDeviceIndependentPixels(parent.effectiveBorderBottomWidth);
204208
canvas.save();
205209
if (paddingLeft > 0) {
206210
canvas.translate(paddingLeft, 0);

0 commit comments

Comments
 (0)