From c3eac6822f5fc222b26f15e94c567cc8e36c8567 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Thu, 2 Jan 2025 21:55:13 +0900 Subject: [PATCH] zfm: the 'm' menu wip --- assets/disk0/tvdos/bin/zfm.js | 40 ++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/assets/disk0/tvdos/bin/zfm.js b/assets/disk0/tvdos/bin/zfm.js index 77490c3..0eda1d6 100644 --- a/assets/disk0/tvdos/bin/zfm.js +++ b/assets/disk0/tvdos/bin/zfm.js @@ -288,7 +288,25 @@ let opPanelDraw = (wo) => { let paletteDraw = (wo) => { + function hr(y) { + con.move(y, xp) + print(`\x84196u`.repeat(POPUP_WIDTH - 2)) + } + con.color_pair(COL_TEXT, COL_BACK) + + let xp = wo.x + 1 + let yp = wo.y + 1 + + // erase first + for (let y = 0; y <= POPUP_HEIGHT-2; y++) { + con.move(yp + y, xp) + print(" ".repeat(POPUP_WIDTH-2)) + } + + // finally draw something + con.move(yp, xp) + print("More commands (hit m to return):") } @@ -418,6 +436,8 @@ const LEFTPANEL = windows[0][0] const OPPANEL = windows[0][1] const RIGHTPANEL = windows[0][2] +let currentPopup = 0 + function drawTitle() { // draw window title con.color_pair(COL_BACK, COL_TEXT) @@ -457,12 +477,20 @@ function drawOpPanel() { OPPANEL.drawFrame() } +function drawPopupPanel() { + if (currentPopup) { + windows[currentPopup][0].drawContents() + windows[currentPopup][0].drawFrame() + } +} + function redraw() { clearScr() drawTitle() drawFilePanel() drawOpPanel() + drawPopupPanel() } function clearScr() { @@ -495,9 +523,15 @@ while (!exit) { } else { - if (keyJustHit && keysym == 'z') { - windowMode = 1 - windowMode - redraw() + if (keyJustHit) { + if (keysym == 'z') { + windowMode = 1 - windowMode + redraw() + } + else if (keysym == 'm') { + currentPopup = 1 - currentPopup + redraw() + } } windows[windowFocus].forEach(it => {