Skip to content

Commit

Permalink
Move check for cachedSize into calcBoxSize
Browse files Browse the repository at this point in the history
  • Loading branch information
stweedo committed Sep 6, 2024
1 parent 16a5650 commit 48e02ba
Showing 1 changed file with 24 additions and 24 deletions.
48 changes: 24 additions & 24 deletions apps/boxclk/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,7 @@
boxKeys.forEach(key => {
if (boxes[key].selected) {
let boxItem = boxes[key];
if (!boxItem.cachedSize) {
calcBoxSize(boxItem);
}
calcBoxSize(boxItem);
let newX = boxItem.pos.x + e.dx;
let newY = boxItem.pos.y + e.dy;

Expand Down Expand Up @@ -320,17 +318,9 @@
g.setFont(boxItem.font, boxItem.fontSize);
g.setFontAlign(0, 0);

// Use cached size if available, otherwise calculate and cache
if (!boxItem.cachedSize) {
calcBoxSize(boxItem);
}
calcBoxSize(boxItem);

const pos = {
x1: boxItem.pos.x - boxItem.cachedSize.width / 2,
y1: boxItem.pos.y - boxItem.cachedSize.height / 2,
x2: boxItem.pos.x + boxItem.cachedSize.width / 2,
y2: boxItem.pos.y + boxItem.cachedSize.height / 2
};
const pos = calcBoxPos(boxItem);

if (boxItem.selected) {
g.setColor(boxItem.border);
Expand All @@ -353,31 +343,41 @@
};

// 9. Helper function for touch event
let calcBoxPos = function(boxItem) {
calcBoxSize(boxItem);
return {
x1: boxItem.pos.x - boxItem.cachedSize.width / 2,
y1: boxItem.pos.y - boxItem.cachedSize.height / 2,
x2: boxItem.pos.x + boxItem.cachedSize.width / 2,
y2: boxItem.pos.y + boxItem.cachedSize.height / 2
};
};

// Use cached size if available, otherwise calculate and cache
let calcBoxSize = function(boxItem) {
if (boxItem.cachedSize) {
return boxItem.cachedSize;
}

g.setFont(boxItem.font, boxItem.fontSize);
g.setFontAlign(0, 0);

let strWidth = g.stringWidth(boxItem.string) + 2 * boxItem.outline;
let fontHeight = g.getFontHeight() + 2 * boxItem.outline;
let totalWidth = strWidth + 2 * boxItem.xPadding;
let totalHeight = fontHeight + 2 * boxItem.yPadding;

boxItem.cachedSize = {
width: totalWidth,
height: totalHeight
};

return boxItem.cachedSize;
};

let touchInText = function(e, boxItem, boxKey) {
if (!boxItem.cachedSize) {
calcBoxSize(boxItem);
}
const pos = {
x1: boxItem.pos.x - boxItem.cachedSize.width / 2,
y1: boxItem.pos.y - boxItem.cachedSize.height / 2,
x2: boxItem.pos.x + boxItem.cachedSize.width / 2,
y2: boxItem.pos.y + boxItem.cachedSize.height / 2
};
calcBoxSize(boxItem);
const pos = calcBoxPos(boxItem);
return e.x >= pos.x1 &&
e.x <= pos.x2 &&
e.y >= pos.y1 &&
Expand Down

0 comments on commit 48e02ba

Please sign in to comment.