From 88a7fa54801a2f02607385e02cff934555612827 Mon Sep 17 00:00:00 2001 From: Matt Heffron Date: Tue, 8 Jul 2025 10:37:51 -0700 Subject: [PATCH] BUTTONS - Correctly wait for edit of button to complete before updating (#2207) Fix editing of button...correctly wait for edit to complete before updating the button itself. Add (FIND-BUTTON label) function. Minor updates to documentation. --- lispusers/BUTTONS | 52 +++++++++++++++++++++++----------------- lispusers/BUTTONS.LCOM | Bin 23646 -> 23962 bytes lispusers/BUTTONS.TEDIT | Bin 8481 -> 9172 bytes 3 files changed, 30 insertions(+), 22 deletions(-) diff --git a/lispusers/BUTTONS b/lispusers/BUTTONS index b8f47eee..73c73d60 100644 --- a/lispusers/BUTTONS +++ b/lispusers/BUTTONS @@ -1,16 +1,17 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "18-Mar-2024 19:08:55" {LU}BUTTONS.;2 30183 +(FILECREATED " 7-Jul-2025 15:53:15" {DSK}matt>Interlisp>medley>lispusers>BUTTONS.;3 30683 :EDIT-BY "mth" - :CHANGES-TO (FNS \BUTTONS-EDITE) + :CHANGES-TO (VARS BUTTONSCOMS) + (FNS FIND-BUTTON) - :PREVIOUS-DATE "26-Oct-89 14:30:27" {LU}BUTTONS.;1) + :PREVIOUS-DATE " 6-Jul-2025 00:29:46" {DSK}matt>Interlisp>medley>lispusers>BUTTONS.;2) (* ; " -Copyright (c) 1986-1989, 2024 by Xerox Corporation. +Copyright (c) 1986-1989, 2024-2025 by Xerox Corporation. ") (PRETTYCOMPRINT BUTTONSCOMS) @@ -27,7 +28,7 @@ Copyright (c) 1986-1989, 2024 by Xerox Corporation. (RECORDS BUTTON) (FNS ALIGN-BUTTONS BUTTONP BUTTONSPROP BUTTON-ACTION BUTTON-LABEL CLOSE-BUTTON CLOSE-BUTTONS COPY-BUTTON CREATE-BUTTON DELETE-BUTTON DELETE-BUTTONS EDIT-BUTTON EDIT-BUTTON-CONTENTS - EXECUTE-BUTTON EXPOSE-BUTTONS LOAD-SOME-BUTTONS MOVE-BUTTON REDISPLAY-BUTTON + EXECUTE-BUTTON EXPOSE-BUTTONS FIND-BUTTON LOAD-SOME-BUTTONS MOVE-BUTTON REDISPLAY-BUTTON RESTORE-BUTTONS SAVE-BUTTONS SAVE-SOME-BUTTONS) (PROP ARGNAMES BUTTONSPROP BUTTON-ACTION BUTTON-LABEL) @@ -151,6 +152,11 @@ Copyright (c) 1986-1989, 2024 by Xerox Corporation. (LAMBDA (BUTTONS) (* Koomen "18-Mar-87 16:31") (DECLARE (GLOBALVARS *ALL-BUTTONS*)) (for BUTTON in (OR (LISTP BUTTONS) *ALL-BUTTONS*) do (REDISPLAY-BUTTON BUTTON))) ) +(FIND-BUTTON + [LAMBDA (LABEL) + (DECLARE (GLOBALVARS *ALL-BUTTONS*)) (* ; "Edited 5-Jul-2025 17:37 by mth") + (for B in *ALL-BUTTONS* thereis (EQUAL LABEL (WINDOWPROP B 'BUTTON-LABEL]) + (LOAD-SOME-BUTTONS (LAMBDA (FILENAME) (* Koomen " 2-Dec-88 15:02") (if (BUTTONP FILENAME) then (* ;; "Invoked from button menu") (SETQ FILENAME NIL)) (if (NULL FILENAME) then (SETQ FILENAME (\BUTTONS-PROMPT-FOR-DATAFILE-NAME "File to load buttons from (NIL to abort):"))) (if FILENAME then (RESTORE-BUTTONS FILENAME (QUOTE ASK)))) ) @@ -245,10 +251,11 @@ Copyright (c) 1986-1989, 2024 by Xerox Corporation. ) (\BUTTONS-EDITE - [LAMBDA (FORM) (* ; "Edited 18-Mar-2024 18:19 by mth") + [LAMBDA (FORM) (* ; "Edited 6-Jul-2025 00:24 by mth") + (* ; "Edited 18-Mar-2024 18:19 by mth") (* edited%: "18-Mar-87 22:39") (ALLOW.BUTTON.EVENTS) - (EVAL.AS.PROCESS `[CAR (NLSETQ (EDITE ,(KWOTE FORM] + (PROCESS.RESULT [EVAL.AS.PROCESS `(CAR (NLSETQ (EDITE ,(KWOTE FORM] T]) (\BUTTONS-EDIT-MENU @@ -344,20 +351,21 @@ Copyright (c) 1986-1989, 2024 by Xerox Corporation. (ADDTOVAR LAMA BUTTON-LABEL BUTTON-ACTION BUTTONSPROP) ) -(PUTPROPS BUTTONS COPYRIGHT ("Xerox Corporation" 1986 1987 1988 1989 2024)) +(PUTPROPS BUTTONS COPYRIGHT ("Xerox Corporation" 1986 1987 1988 1989 2024 2025)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4365 15400 (ALIGN-BUTTONS 4375 . 5150) (BUTTONP 5152 . 5357) (BUTTONSPROP 5359 . 5904) -(BUTTON-ACTION 5906 . 6270) (BUTTON-LABEL 6272 . 6681) (CLOSE-BUTTON 6683 . 6793) (CLOSE-BUTTONS 6795 - . 6976) (COPY-BUTTON 6978 . 7199) (CREATE-BUTTON 7201 . 8610) (DELETE-BUTTON 8612 . 8813) ( -DELETE-BUTTONS 8815 . 9009) (EDIT-BUTTON 9011 . 9746) (EDIT-BUTTON-CONTENTS 9748 . 10380) ( -EXECUTE-BUTTON 10382 . 10798) (EXPOSE-BUTTONS 10800 . 10986) (LOAD-SOME-BUTTONS 10988 . 11324) ( -MOVE-BUTTON 11326 . 12289) (REDISPLAY-BUTTON 12291 . 12551) (RESTORE-BUTTONS 12553 . 13382) ( -SAVE-BUTTONS 13384 . 14132) (SAVE-SOME-BUTTONS 14134 . 15398)) (16568 26849 (\BUTTONS-BUTTONEVENTFN -16578 . 16961) (\BUTTONS-DATAFILE-NAME 16963 . 17659) (\BUTTONS-CHANGE-LABEL 17661 . 17918) ( -\BUTTONS-CREATE-ICON 17920 . 18807) (\BUTTONS-DRAW-BOX 18809 . 18983) (\BUTTONS-EDITE 18985 . 19306) ( -\BUTTONS-EDIT-MENU 19308 . 20925) (\BUTTONS-INIT 20927 . 21175) (\BUTTONS-IO-EXIT 21177 . 21403) ( -\BUTTONS-OPEN-STREAM 21405 . 21836) (\BUTTONS-PROMPT-FOR-DATAFILE-NAME 21838 . 22191) (\BUTTONS-READ -22193 . 23547) (\BUTTONS-SETPROP 23549 . 24479) (\BUTTONS-SHOW 24481 . 24859) (\BUTTONS-SHOW-EXEC -24861 . 25228) (\BUTTONS-TRACK-MOUSE 25230 . 26504) (\BUTTONS-WAIT-MOUSE 26506 . 26847)) (26929 28428 -(DROPSHADOW 26939 . 27838) (ICONMASK 27840 . 28053) (CLEAR-MASK-OUTLINE 28055 . 28426))))) + (FILEMAP (NIL (4495 15770 (ALIGN-BUTTONS 4505 . 5280) (BUTTONP 5282 . 5487) (BUTTONSPROP 5489 . 6034) +(BUTTON-ACTION 6036 . 6400) (BUTTON-LABEL 6402 . 6811) (CLOSE-BUTTON 6813 . 6923) (CLOSE-BUTTONS 6925 + . 7106) (COPY-BUTTON 7108 . 7329) (CREATE-BUTTON 7331 . 8740) (DELETE-BUTTON 8742 . 8943) ( +DELETE-BUTTONS 8945 . 9139) (EDIT-BUTTON 9141 . 9876) (EDIT-BUTTON-CONTENTS 9878 . 10510) ( +EXECUTE-BUTTON 10512 . 10928) (EXPOSE-BUTTONS 10930 . 11116) (FIND-BUTTON 11118 . 11356) ( +LOAD-SOME-BUTTONS 11358 . 11694) (MOVE-BUTTON 11696 . 12659) (REDISPLAY-BUTTON 12661 . 12921) ( +RESTORE-BUTTONS 12923 . 13752) (SAVE-BUTTONS 13754 . 14502) (SAVE-SOME-BUTTONS 14504 . 15768)) (16938 +27344 (\BUTTONS-BUTTONEVENTFN 16948 . 17331) (\BUTTONS-DATAFILE-NAME 17333 . 18029) ( +\BUTTONS-CHANGE-LABEL 18031 . 18288) (\BUTTONS-CREATE-ICON 18290 . 19177) (\BUTTONS-DRAW-BOX 19179 . +19353) (\BUTTONS-EDITE 19355 . 19801) (\BUTTONS-EDIT-MENU 19803 . 21420) (\BUTTONS-INIT 21422 . 21670) + (\BUTTONS-IO-EXIT 21672 . 21898) (\BUTTONS-OPEN-STREAM 21900 . 22331) ( +\BUTTONS-PROMPT-FOR-DATAFILE-NAME 22333 . 22686) (\BUTTONS-READ 22688 . 24042) (\BUTTONS-SETPROP 24044 + . 24974) (\BUTTONS-SHOW 24976 . 25354) (\BUTTONS-SHOW-EXEC 25356 . 25723) (\BUTTONS-TRACK-MOUSE 25725 + . 26999) (\BUTTONS-WAIT-MOUSE 27001 . 27342)) (27424 28923 (DROPSHADOW 27434 . 28333) (ICONMASK 28335 + . 28548) (CLEAR-MASK-OUTLINE 28550 . 28921))))) STOP diff --git a/lispusers/BUTTONS.LCOM b/lispusers/BUTTONS.LCOM index 412829909009d52076d3dc9f0de9ca7d222d4762..b0f7d3b21a6ec7cab68ec68025df4382ed35a2cb 100644 GIT binary patch delta 959 zcmbVLO=}ZT6wRbk^;M*$O+U2M+kiNeWa4}z({?J;Ce6f7GhfXlsaQm7GqiyuEls)* zDOoD6gr^%9;=&(L4F!vTz?HZX+_=!4D?xV(`X)(f5H~uD$GhjanU4p74z6!iwo7HV2wPPM0=k=WGJ97xw<@kuS*zC-ty*_? z%B9-2QgMrA_m1N2cWdrWO-bf+Im>jSvm!%o^2hW7FAFnrTnNJL9k;{ZD8l;YT6M#% zU6cW(H8aJw??Z{yP3LtTx+$X3Xb_5Pb)xG}YLS!qnIMDcw5F>ISv8SUQzYrH_Kw|% z|6m71PMQ`0;aO_DQAlJR=vZB_42JjF|MF zy`_ZaQ|ilLqpKdsscA&pz(W!=;6P6#Rh`c|H;DcA#5{6zf=qdPEDz zunI>J;Ps46A^c$J9DbY8dr@l!7<7w(@8p1=VemcOIEhS+_@;3+KZ?KU)8vpBhkHBV z*H8f8Fo1wBl(AN3dvbWbZxkOIBOa9z#y^c1*>UCtJSh#~qREr!F^N764dOSZNTMGm z;9_9}i`M1yD5>R)gzZ46{YS9vIOM6=vpfa!;W7N{dcaSB@zrn-&?Ta&$k4~m2q|S_t%*>mwL@L>&>Cgt+L}FZt zh&z|UU1_)e0hx^;UAPs+ol9}2DCo|e;7gk-2H)zQ`|dgSocEr+;y%9Qp4@ts6!;VepFh#5GIKV`bKg$b+f&g2s0bBV$^^zd*qGdbg_0X)v zroo2BoNIcyJnj^VvZ56MA9Lq#SY8DDzg8sB{m^XKv>p+Ise+(Z2yG9DRt1Gcl67@; zOj1b~PkcR{?&m(_I34?>lIidh?95Dv<#PIlJfE9)Xw4uIbxktL4K8gQ1K{zg<4=!n z{E+&r^V7L~vQZ0}Kl~o&aM!Kk#l{&ta9zxJd5*_L?<&49vQyyMjszl)uP! diff --git a/lispusers/BUTTONS.TEDIT b/lispusers/BUTTONS.TEDIT index 322fb93ec3f6027d9d6621cd9c833202cee82d65..a8016fe55325b2f6b4a6416f4373b819807c0380 100644 GIT binary patch delta 3120 zcmbVOO>7%Q6yCKH$2)1#{5A<`+G*2DPH~nv#A%6|svCRbI;`zrZ=)21gp+I%Q+v0v z*Zlz@ACNfoP@%36LP9FsxFA$=K~*_`5TX(i0wI+H5@#e1+z}G*jXjfWl3sA-=h^Rl z?|Xk^r=KqTnrf`-`P{0qaMd((*#em+WQLF!Asm1s087qx(YCD`)l`~NX-1_lJ5I&2 zNu>Fy-dd}v6n8)5~EmislHKi=ai*-`3^lF zrPJ+G({Vx`-b)4sW9k&eeW(_qbx7})nZmcc&lcphvpJPUR%d=l)d;fr8D3?t`BI0JS_SpjP+sPm12$Wc-N zyG{^)M7|s%WbtY?fi-9bO=nF#zo;d2;=S8>3Cj7l^B1{cZd-J{UaeZTOKX-(olUw{ zcU{M>(Nc|8iY42Hx3xh_Hg$oUGI9%=v7+VaIn6L8TO&TFlE`8@n`}K(S}v|xXOQW~8o!Xw@A~n*cX67;wUM|yy?YMN!g4ntZ zJ#Mn{ma|$$r!}`)vbQkdR_Uf?(_*vsVs)zyx5iZ|i6nJHH+9i;vn^lONvmwRaObe= z-L7`~pWfF$6b^M%tqR;a*no>Os<7ydQtd{$ct<7P2VE-c_q(pIz`oOc0_?}#ctaj{ zkAnTJ`*@BhseC#)naihB>8uio#i>eT@d=_7v=x0ana=A8Gnc=nWYY#w^kmwcEL_o& zx-t`+ngL){Pqcv9c>KjU@e)TL%jAB~Jjh?_`5o+NZxrl&-?(?Z_W_(b`|w)M_x%L6 zt3LvEw*SdEAriiVkpgT<&n9#V3E4Z+{FY2j>>L@`lE*Xyu4Yy<48ppUpJY&Pm<9#&TBa7_4tS-pj%d!V|>jKYR>8^YMGc@bs6$?-3K+F=7 zL5;nz7q2jK9_u;XCWWN|DU``2VRA4J{_2<7Q(EGRCK2zikumSyNZflma^hm2)Mn&T zIcb>l*k^zRw&OVrZy66At%v551Qbsm?Pm#?U-rIuZgk({CrBWsV3=^CAI!1l|pnY?+fp`WcQK#RI0#azt=0as)?+l%4&6Z|ukz zLWfC!raBJA!VA~wwShe$8Z z-!H^`J|Q-4L_{)n@Nq;k!RdzprYs6#cf_Xy3xNDShz-bx9PF&brA24=IKs!umhF?l z2bPK*#8eyXvH2B{e&!r5BbFoDdWOtimHd7cF`NPP;M{jraQ>30hRYxjLk|L?OEGqV zR5=F=#-Q)_17Gh2Ftym`N%REy{tp=qFD3xIQ%Lp|^FBw|#!#7kQ+N;pVhQXn`1{6a zEV$vj+n7qs9DfMew27%g5PrLMY_HQtlG-7u>m;U8B}XJCPLmL#g6f}j;$W{M+o{|OkWz~lk)%x` zKwPX!J@tgT;*83H6BqD-f?DVa+6xE-H{iexES_r96=X5L%> zvT`@uYS`6E!^&>d>lLRa=cJsMGA*S7$R%KH=j!J6c5^S0NhMZNiE=9O>dwwqb6X}m z&(wRD_x3L|n!7viPf3~EZEo&2uPj^6&b!U6%gx>CMEa$rMOoV1+fUe6uI(>d`R1Fv zlNgxe%_S*?A!vPmD{o4fw`;j-alKxwII{h_Ic6HN{jYz-Fr*s^+#&mEpi1_iz*({r z!8x+kV4Cc$;5yk~gU^#SLW^XVLK9>gq4Q)v3W4)|s7!X)x=8jN3wge^fXHx->}DAF zz3>+!QWiFx95iG~iK0`ttA$L?mhR2|S4hso{+}TyGms*Cec&G1sljowtAi8E(kk1| z#!R8&)U9N>lDDf)B0ZPLR!aFPX_YcryL4!Cw!7)x9ej34TD8nYdnRA3+PQkAddYH% zC286DVtuBzn#tSNe0p}CfQFsx0*ea^=N6>|sA8Fa_ui+AEtw-z6F z!}PonAKkEs)dyyfetawO76Rgf5hnEyYl!~U>PE>%oSP#veRtGpv&k5!ckrwOmLr<%>*ij0{nB4OWeAPU%(5W5(v|+AM z-V@n!CA-#{#<||yN5_G1(K30&I6RitnH1jWm0B~$;i|F(7^8;(;r0R$R#yOyh_j9< zgog#r3tgmzA{|ny3mqV3h458C*sMZugT1M7CmET91H~udAnFVpApBVYIjfM?Gw=Xi zfa4*pDTL1joOOlh^8B?SY5-f{IBzq%PaT;kkJ@5sKtuIu9SMhr^TX zMOvLsd!ddFAUe@Cm72deNGvEs%}48rVh5C`%m>?P^v{}gVnlk8U4@_&qP{x}Jm>|` zv>xCDc8(K+`pAn`pM#6OwU`eT!q)+L_?m&E`sOPQfX9DascsM|>B|)4`iRnJrHgMN z0GaV0%uP(g=`F7N