Adding center and box, more color options to UI stuff, working on command palette styling
This commit is contained in:
parent
da97f53729
commit
6edf592637
6 changed files with 166 additions and 73 deletions
11
src/ui.ts
11
src/ui.ts
|
|
@ -31,6 +31,9 @@ function renderUI(ui: UIValue, ctx: CanvasRenderingContext2D, x: number, y: numb
|
|||
|
||||
if (ui.radius && ui.radius > 0) {
|
||||
const r = Math.min(ui.radius, ui.w / 2, ui.h / 2);
|
||||
const inset = ui.strokeWidth ? ui.strokeWidth / 2 : 0;
|
||||
// TODO
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(x + r, y);
|
||||
ctx.lineTo(x + ui.w - r, y);
|
||||
|
|
@ -56,7 +59,8 @@ function renderUI(ui: UIValue, ctx: CanvasRenderingContext2D, x: number, y: numb
|
|||
if (ui.strokeColor && ui.strokeWidth) {
|
||||
ctx.strokeStyle = ui.strokeColor;
|
||||
ctx.lineWidth = ui.strokeWidth;
|
||||
ctx.strokeRect(x, y, ui.w, ui.h);;
|
||||
const inset = ui.strokeWidth / 2;
|
||||
ctx.strokeRect(x + inset, y + inset, ui.w - ui.strokeWidth, ui.h - ui.strokeWidth);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -64,8 +68,9 @@ function renderUI(ui: UIValue, ctx: CanvasRenderingContext2D, x: number, y: numb
|
|||
}
|
||||
|
||||
case 'text':
|
||||
ctx.fillStyle = 'black';
|
||||
ctx.fillStyle = ui.color || 'black';
|
||||
ctx.font = '16px "SF Mono", "Monaco", "Menlo", "Consolas", "Courier New", monospace';
|
||||
ctx.textBaseline = 'top';
|
||||
ctx.fillText(ui.content, x, y);
|
||||
break;
|
||||
|
||||
|
|
@ -129,7 +134,7 @@ function renderUI(ui: UIValue, ctx: CanvasRenderingContext2D, x: number, y: numb
|
|||
}
|
||||
}
|
||||
|
||||
function measure(ui: UIValue): { width: number, height: number } {
|
||||
export function measure(ui: UIValue): { width: number, height: number } {
|
||||
switch (ui.kind) {
|
||||
case 'rect': return { width: ui.w, height: ui.h };
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue