sidebar layout

switch the app from floating panels to a static sidebar on the right with resizable tools
expect more layout bugs from now on
This commit is contained in:
りき萌 2025-06-27 23:24:09 +02:00
parent f78f3136d9
commit 0ddc42c00f
10 changed files with 272 additions and 178 deletions

View file

@ -13,16 +13,24 @@ export class BrushPreview extends HTMLElement {
this.ctx = this.canvas.getContext("2d");
this.#resizeCanvas();
if (this.width == null || this.height == null) {
new ResizeObserver(() => this.#resizeCanvas()).observe(this);
}
}
#resizeCanvas() {
this.canvas.width = this.width ?? this.clientWidth;
this.canvas.height = this.height ?? this.clientHeight;
// This can happen if the element's `display: none`.
if (this.canvas.width == 0 || this.canvas.height == 0) return;
if (this.pixmap != null) {
this.pixmap.destroy();
}
this.pixmap = new Pixmap(this.canvas.width, this.canvas.height);
this.dispatchEvent(new Event(".pixmapLost"));
}
async #renderBrushInner(haku) {
@ -31,9 +39,9 @@ export class BrushPreview extends HTMLElement {
runDotter: async () => {
return {
fromX: this.canvas.width / 2,
fromY: this.canvas.width / 2,
fromY: this.canvas.height / 2,
toX: this.canvas.width / 2,
toY: this.canvas.width / 2,
toY: this.canvas.height / 2,
num: 0,
};
},