From 7ed120ca975d7e3e117d9125ebe8dfaf6515bd0c Mon Sep 17 00:00:00 2001 From: Herb Jellinek Date: Fri, 19 Jul 2024 10:59:52 -0700 Subject: [PATCH] TAB-WINDOWS: Step through open windows Start it running with `(START-TAB-WINDOWS)`. Bonus: `(KEY-WINDOW)` starts a process that monitors keyboard and mouse button events and displays them in a little window. --- lispusers/TAB-WINDOWS | 72 ++++++++++++++++++++++++++++++++++++ lispusers/TAB-WINDOWS.DFASL | Bin 0 -> 2210 bytes lispusers/TAB-WINDOWS.TEdit | Bin 0 -> 2875 bytes 3 files changed, 72 insertions(+) create mode 100644 lispusers/TAB-WINDOWS create mode 100644 lispusers/TAB-WINDOWS.DFASL create mode 100644 lispusers/TAB-WINDOWS.TEdit diff --git a/lispusers/TAB-WINDOWS b/lispusers/TAB-WINDOWS new file mode 100644 index 00000000..61cdf972 --- /dev/null +++ b/lispusers/TAB-WINDOWS @@ -0,0 +1,72 @@ +(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) + +(FILECREATED "24-Jun-2024 16:07:07" {DSK}hjellinek>Projects>IL>TAB-WINDOWS.;12 2984 + + :CHANGES-TO (FNS TAB-WINDOWS IS-KEY-DOWN? START-TAB-WINDOWS KEY-WINDOW SHOW-KEYS) + (VARS TAB-WINDOWSCOMS) + (PROPS (TAB-WINDOWS :COMPILE-FILE)) + + :PREVIOUS-DATE " 4-Jun-2024 09:48:34" {DSK}hjellinek>Projects>IL>TAB-WINDOWS.;1) + + +(PRETTYCOMPRINT TAB-WINDOWSCOMS) + +(RPAQQ TAB-WINDOWSCOMS ((FNS IS-KEY-DOWN? START-TAB-WINDOWS TAB-WINDOWS SHOW-KEYS KEY-WINDOW) + (PROP :COMPILE-FILE TAB-WINDOWS))) +(DEFINEQ + +(IS-KEY-DOWN? + [LAMBDA (KEY-NAME KEYS-DOWN) + (for KEY-NAME-LIST in KEYS-DOWN thereis (FMEMB KEY-NAME KEY-NAME-LIST]) + +(START-TAB-WINDOWS + [LAMBDA NIL + (ADD.PROCESS '(TAB-WINDOWS) + 'NAME "Window Tabber" 'RESTARTABLE T]) + +(TAB-WINDOWS + [LAMBDA NIL + + (* ;; "When the meta and tab keys go down, TOTOPW the next window in OPENWINDOWS") + + (DECLARE (CL:SPECIAL \KEYNAMES)) + (LET ((CURRENT-WINDOW NIL) + (OPEN-WINDOWS (OPENWINDOWS))) + (CL:UNWIND-PROTECT + [PROGN (while T + do ([LET ((KEYS-DOWN (for K in \KEYNAMES when (KEYDOWNP K) collect K))) + [if (AND (IS-KEY-DOWN? 'TAB KEYS-DOWN) + (IS-KEY-DOWN? 'EXPAND KEYS-DOWN)) + then (if CURRENT-WINDOW + then (TOTOPW CURRENT-WINDOW) + (SETQ CURRENT-WINDOW (CADR (FMEMB CURRENT-WINDOW + OPEN-WINDOWS))) + else (SETQ CURRENT-WINDOW (CAR OPEN-WINDOWS] + (if (NOT KEYS-DOWN) + then (SETQ CURRENT-WINDOW NIL) + (SETQ OPEN-WINDOWS (OPENWINDOWS] + (BLOCK 20])]) + +(SHOW-KEYS + [LAMBDA NIL + (LET ((WINDOW (CREATEW NIL "Keys down"))) + (WINDOWPROP WINDOW 'PROCESS (THIS.PROCESS)) + [WINDOWPROP WINDOW 'CLOSEFN (FUNCTION (LAMBDA (W) + (DEL.PROCESS (WINDOWPROP W 'PROCESS] + (CL:UNWIND-PROTECT + [PROGN (while T do (LET ((DOWN-KEYS (for K in \KEYNAMES when (KEYDOWNP K) collect K))) + (BLOCK 100) + (CLEARW WINDOW) + (COND + (DOWN-KEYS (PRIN1 DOWN-KEYS WINDOW] + (CLOSEW WINDOW))]) + +(KEY-WINDOW + [LAMBDA NIL + (ADD.PROCESS '(SHOW-KEYS) + 'NAME "Showing Keys" 'RESTARTABLE T]) +) +(DECLARE%: DONTCOPY + (FILEMAP (NIL (645 2961 (IS-KEY-DOWN? 655 . 791) (START-TAB-WINDOWS 793 . 915) (TAB-WINDOWS 917 . 2166 +) (SHOW-KEYS 2168 . 2845) (KEY-WINDOW 2847 . 2959))))) +STOP diff --git a/lispusers/TAB-WINDOWS.DFASL b/lispusers/TAB-WINDOWS.DFASL new file mode 100644 index 0000000000000000000000000000000000000000..32a16eee45f7f3a752c265a07ea5637e1dbb4cf1 GIT binary patch literal 2210 zcmcIk-*3}a6u!1Y+B9u(yAVo&VYI26D%{bk8*HEsH*s1gj-ADh3|j}3){wLz>C$!x zA*OUO&g&}(;iku_4V;N=brPO z?|iGI{cJ*)64k2@3Y%S+PbYE4?KF4tyU=`z@*8%Zm3^K@a+tu2lf=iG9+ zRB`9Wa<%H5JF~Pnrs-q0GA=usku)7^=+y8?ht(22Q*)=6+*xU4R8B8fA@vUw`{dCJAM5axJ%&fO6Y%VH(=`re}jLcO5pFx&c7(0dU`l!j^K+( zc+OwK62Ci1Fct4ZBV@Wj9EiG!A{7)d3clril6yC??gEW~egeh47RqLdKApQw=@}0b#RXL&`85BS|fgJZp>f4hJ2>A9-!PWT<(mXrCr5X?X5F&Z z8|=70Xx#UDMqX)W5x-CYyWm9Vq77=y<;|RM5MK7S3@>43tuWXk*k2M*vk=8-iw7U~ z*Ldt_-4jxV1&>b6k~8W#8HR6s2=6@rZ{C($VrU%95o^+P&=F%gFd!g|zb1eogyjGj zolrpzvBd&tJPIZIcX{87{S$lEz2W~%O|nV*{0-qvG7>e{?YxvG@uX=wt^f)3kaK=^$C_Lt!EixUULi%*JAi_a#7 zPgk=m_dnvE&0T~~7}J_TuI0 zTz&rKkKgD|(|6OEfhV^z#r}^U3 zbFR_8dD{0n7{un4wrLcy<7!^`4BgbTIgl_Hjsol%Qle{0S1cQeX~WtQ(gnm4iX!p7 z?nK$0uE@&^OxXe{I1TmG;ZDLu@RIGNOUl~?Z_<8$gUb{d8yK8D9GPT@GLQn%2@Eal z3Ct~q7CIqy!T~F2KLj0D%LY4ubFA zGtBq*q3sYRPMqU=ua&2-UYebjN)>5Ggdv921WLuzx9Jo}3y)lgCRM!&Ig`IB%|H$Z z!+|Ie<4DH6z9@mLRQMA#JwVf&^x(hi*g**1ojSLl4)G#=Crpo{PIX$v>a|kkiiD|| MO!brRN?Tih19$;`0ssI2 literal 0 HcmV?d00001 diff --git a/lispusers/TAB-WINDOWS.TEdit b/lispusers/TAB-WINDOWS.TEdit new file mode 100644 index 0000000000000000000000000000000000000000..d03909be4a80a10b9c3b8096639764f506ec7ac4 GIT binary patch literal 2875 zcmeHH&2HO95T-0AahRe&i!{9s&;lg^+mKY&R&pvWtz^a$sZz@-ZqWlJu5HFNDe%Xx zdg?jo6ZHx51bu_NM`xB~Edy#|^imWk0g1aa-+c4U%yJD?ZL2CbkM?Gk-FIeF+8U~Q zw0Z$>EYdl=6j2n$;u5si)#}?=+++(8=OW!-Bv-o1FTxChWKmq95h6d!K?Gqg0!U(b zS;PW5#x8VP9b;d$Z0P{u-l?ihx#@DsSNB_g43Ep_$3YP<@-T^iQhQWlPF=+uS?;H~tZeQtF3;1XKpkrg zs5haUSfz)`s4bJy0@K{jiwtJ6L7+{hC{Z$^?2y``YA5WplA>2S@UtV$ z3IZWJE&`M&1zd&a7dgxYVBlF1!C8_bXkMJ3)0`GbKy@R{1D%0bg6=8%DHjX)bXBg?VufdiW9nnzYo2RT8@9unvaXzQT0 zpalo*4jex3;I51*!zUOta-5SXXy18eA9~E@%w>HYddH?)d8XckxznC&O*j%wtsfY) zTQD%k*60+*PM^6pINvjOWZ4Xy!2lJw)(LYwE_a@dh+E&tnJ{qK&>NX9%$PMi=6H_# zmN(X6;J9Ox-zf(Lw+{{Y`T#oJF1~aUj>cnV_OZyajB3MAiQ2PmbdU*QT>}mc0}TA# z#&Y(G%Rt#eggie0}2BT8P3s-3}Ny?9N)n|95NSf%|v5rR(x* zexU3qZMmxcnhoX4_5G%`3~0Pn9-*_*-2QNYK`iS5jmB?{P0VYyI?2Zr`VW)5y>F6F zFv)ha`Qb|1${XcPqbqf8-$zv)@bJDFh_f7JZ*>OW7!EqjeJ} z7I2&ABdSzUkh6TzY1&d6%9CT)8?pT%;{%&Ka)wP>q5EE-9fV4DT2K_d|CYK2y_dQM z(HQrLv=;OL*SqV6ZQRJ@^6OalP{