From 923c539161c3d1f1fd296b9ea41a3ad704c332e7 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Wed, 9 Jun 2021 21:52:17 +0900 Subject: [PATCH] adjustable column size --- assets/bios/wp.js | 34 ++++++++++++++++++++++++---------- assets/wpfont.kra | 4 ++-- assets/wpfont.png | Bin 3918 -> 5071 bytes 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/assets/bios/wp.js b/assets/bios/wp.js index 1e17ccd..94ecd84 100644 --- a/assets/bios/wp.js +++ b/assets/bios/wp.js @@ -14,9 +14,7 @@ const NO_LINEHEAD_PUNCT = [33,34,39,41,44,46,58,59,62,63,93,125] const NO_LINELAST_PUNCT = [34,39,40,60,91,123] let PAGE_HEIGHT = 56 - -let caretLeft = 10 -let caretRight = 80 +let PAGE_WIDTH = 80 let scroll = 0 let scrollHor = 0 @@ -41,12 +39,17 @@ let paintWidth = 0 let paintHeight = 0 let scrollPeek = 0 let PAINT_START_X = 0 +let caretLeft = 0 +let caretRight = 0 function drawInit() { windowWidth = con.getmaxyx()[1] windowHeight = con.getmaxyx()[0] + caretLeft = (windowWidth - PAGE_WIDTH) >> 1 + caretRight = caretLeft + PAGE_WIDTH + PAINT_START_X = caretLeft + 1 - paintWidth = caretRight - caretLeft + 1 + paintWidth = caretRight - caretLeft paintHeight = windowHeight - PAINT_START_Y + 1 scrollPeek = Math.ceil((paintHeight / 7)) @@ -148,6 +151,21 @@ function gotoText() { con.curs_set(1) } +function drawColumnInd() { + for (let k = 0; k < windowWidth; k++) { + let off = k - caretLeft + 1 + let char = 0xBC + if (off % 10 == 0) char = 0xB0 + (off/10|0) + if (off == 1) char = 0xB0 + if (k == caretRight - 1) char = 0xBA + if (off % 10 == 5) char = 0xBB + if (off <= 0 || off > paintWidth) char = 0xBC + if (off - 1 == cursorCol) char += 16 + + con.mvaddch(2, PAINT_START_X + off - 1, char) + } +} + function drawMain() { con.curs_set(0) drawInit() @@ -158,13 +176,9 @@ function drawMain() { drawPRC() // column indicator - con.move(2,1) - for (let k = 0; k < 9; k++) print(`${k}....:....`) - con.color_pair(COL_BACK, COL_TEXT) - con.mvaddch(2,1+caretLeft,91) - con.mvaddch(2,1+caretRight,93) + drawColumnInd() + - con.color_pair(COL_TEXT, COL_BACK) } diff --git a/assets/wpfont.kra b/assets/wpfont.kra index aa8656a..669cf82 100644 --- a/assets/wpfont.kra +++ b/assets/wpfont.kra @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0ffe9fbb8c926aa942dbeec583a7f2907e1e010b2f143cc553a8104d9999fe2a -size 81080 +oid sha256:4ca4ffb0aee4de3074839f8b40ae44a9d52b83eb25ede8713134005931612736 +size 102902 diff --git a/assets/wpfont.png b/assets/wpfont.png index 104480a6da76e466155621a26b976a812c4c37de..033f93896c9e46ce65181db1c380a1a48b354aee 100644 GIT binary patch literal 5071 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 JSR?-=;$N>-k97b5 literal 3918 zcmai1cTiK?wB%vM{NZe;qM~bOX-PpL80`_Qph9h8APERsGu_?(q-_RUI4If4yT7$p>z#kcGA97;{MxYS>|lhm zz-~wiG$;zOzwLD2+w67&!iCxSyce7N-J8z@um7fh%71t=*|{9a53j*L-2M_GCKu93jE`heF61mdeaesZnUg8nE= zTiPN3_}iQJlnq#tJ(nW(-6?4WpSdUH;6!)poV3ND3S|awv9IkKa(Lph48!m%t`RQS zW(*aFF}>5v)jvH%3(adQJ}l1NyySh6>UU(6;DCvKzLb(XaXWWXO`K`0t*rRH6eTdq z7!m}FiF<2w7VA})NNQcU7$;9;Cz>lpooOVFG|u_(-65!25j9^DnPNM@m$)7cMkX-0XPsUdK4}Vyc z71$<@GNE=45BmbAAmuY@Uq3eLq(PD%xk+1{AiQQUVH*uSJ zUooiWLf*n^G8WWGqGy@jfR-H&rI7qy5?Lm7W>mWg;Lr&jJf>~Z)2c{kW_YWCnc=*% z3iZp%8(bkuI?^D}U%7m&p;YLVzD2sWBaQoBeXTSd2dOaoi?=HIkgMgN8vs_D@@ojjn| zvd^Vsr!2`bKAxj?>2Nc6!RyEIe_W3R8#;}#jyZoItuzfDz%pO!%bAbWM0mTSmX?iIQy&6&z*(piqRYSib6#K3BiUUh6N!Gj>J=v@9siZ?DVRh6ZK5tY6vmhmVX4g zIrUs22&{RuA=&N$X@n3RRdt>Wb(BacIK(2|k;mzGc)p%uNyk?7oOj+jh4rg?CZHk` zX>ld~8i)=Q8`s6wKYG$r0Zq)QqNmW(iX_`l>Wq-ZK86rAC z=u~O2y7<;VTdv2s;fFfScTTqJfxC6oDZQCH%$S3=1)=#H6K*n5idu~9)aB`pbAh^P z!YAAF$2sH){igiPl2%z^<7&pX0`S&knthm$jU_D?92qy2W(20OQc!accT?C+jM;5T z5i2D&x-IvYRT`Oc%89$E;8N^HzA#!#bu%=@Z ze1jt3GKR=8c03G-d_`kG0<ep|(ysw;RY@UuSF(*Vv*M-h#cLh1Q1T4z)eVOfOXviD$Zw9$tc096$FGSmL#`ynKe~wrZ2S1T!eKgeFL|@2+1VtY#N<{h%-;cNG70@Oy|(GqOD7#{+5_ z0{{R(Nl8r|5I_NFT4K^os-A`CNclJPh6Z^I3>Z~G0HVK?P638jTLS~J4=a08e_AbhF!e(Q;a<&*zJR-gzJ=D_RrFS`+2HO>LU~%s3pk>KA!BH(I|5-!ua0 zxKY}p5o$wXS7CI50u>&ylT4!bP81CkIwmY$YWm@GDvzoZ#b|q9VpiYHR^; zv@Aju`7+g&dI;0?d=|Ou39Z_w0xmRM@ap+krQ6$%6U05LvRHmLWs`|ECDbic=dgh` zLS3fHNlF!nD7>A`r!{Na{FEE+E$(^_X@kty6eGVyVuygh#ntS4JRuJj@rY%yJLXJQ z<~9duleFc-qIiY^&aC!Nsd4y{HBA`dJZ7O9Q`R^!G2vn0h_2)4DQq{Boq0SuoSs-N zi5{g3`Gc@ugkqA_o$(-cH}h0l2WDMA80_xVa&$tk=WRx5$h|Qy4}_tnULI>r{<*Tr zou81p3e?{JV$2ExDJhZJ752Pc@zt=BMWd*0tva5gJw?vBN^|(vAIan}4NK$A!?y|* z-y<4Z3-=d2b7a_Di>7w=EZrl@XiD@nP<7snoU=#dkxbx8HbGqtcd5NNE_|E_TrXI} zu>eJT&Z(Fde9i{JvAwGi9KmPj(szu2hSdwMAGR#b?v;Fp5=#3G#xjjK31igkUR1s( zax*n|4>4x`Am0ys6u$S@djp-2a>!<*1^5wVctk{DSdDc;+OSF%#K&b%ekAR*z#T zP1o!ke4r2kwG4AZM9)>aTHJG#+cuEOuqzM3VT*ro3F-!_o&;=7j=Eg z^Ao*(T2N{dm&75!196Vl#yIV>0q#pv zQBhfAFca7B`bd9UlcJ