🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.tcl
Article #208

Re: [Q] How to distinguish "a" and "Alt-a" on bind command?

#208
From: Motomu Nakashima o-2417
Date: Wed, 03 Dec 1997 00:00
134 lines
4762 bytes
$BCfEg!wEl9)Bg$G$9!%<+8J%U%)%m!<$G$9!%(B

In article <MNAKASHI.97Dec2161944@cpus-f0.cc.titech.ac.jp>, I Wrote:

> Tcl7.6jp/Tk4.2jp $B>e$G(B Tk $B%"%W%j$r:n$C$F$$$k$N$G$9$,!$(B
> bind $B%3%^%s%I$K$*$$$F!$(B"a" $B$H(B "Alt-a" ($B$b$7$/$O(B "Ctrl-a"$B$J$I(B)$B$r(B
> $B6hJL$7$FJL!9$N(B procedure $B$r<B9T$5$;$k$K$O$I$&$9$l$PNI$$$N$G$7$g(B
> $B$&$+!)(B

$B$H$$$&<ALd$KBP$7!$$*Fs?M$NJ}$+$i$H$F$b$4?F@Z$J%a!<%k$rD:$-$^$7$?!%(B
$B$I$&$b$"$j$,$H$&$4$6$$$^$7$?!%$3$N>l$r<Z$j$F$*Ni$r?=$7>e$2$^$9!%(B

$B:G=i$KD:$$$?%a!<%k$G$O!$$9$Y$F$N%-!<%$%Y%s%H$r=&$C$F!$$=$l$rH=(B
$BCG$7$F@Z$jJ,$1$k(B script $B$r>R2p$7$F2<$5$$$^$7$?!%$J$K$+$N;29M$K(B
$B$J$l$P$H;W$$!$:G8e$KE:IU$7$^$9!%(B

$B$=$N%a!<%k$rD:$$$F!$!V$d$C$Q$j$3$&$$$&$3$H$r$d$i$J$"$+$s$N$+!<!W(B
$B$H;W$C$F$$$?$H$3$m!$<!$K!$!VEvJ}$N4D6-$G$OLdBjL5$/4|BT$NF0:n$r$7(B
$B$F$$$^$9!W;]$N%a!<%k$rD:$-$^$7$?!%$=$NJ}$N4D6-$H;d$N4D6-$O$[$H$s(B
$B$IF1$8$G$"$j!$92$F$F85$N%=!<%9$rFI$_JV$7$F$_$?$H$3$m!$$*$^$L$1$G(B
$B$7$?!%(B

(1)
>         bind .foo <a>     { honya }
>         bind .foo <Alt-a> { munya }
$B$H$7$F$$$?$D$b$j$,!$(B

(2)
          bind .foo <a>     { honya }
          bind .    <Alt-a> { munya }

$B$H$7$F$7$^$C$F$$$?$N$G$7$?!%(B
(1)$B$N$h$&$K=q$-D>$7$?$H$3$m!$4|BT$NF0:n$r$7$^$7$?(B(^^;;;;  
$B$I$&$b3'$5$s$*A{$,$;$7$^$7$?!%(B

$B$h$C$F;EMM$r$^$H$a$k$H!$(B

  (i) $B$"$k(B widget $B$K$*$$$F(B <Alt-a> $B$J$I$N(B modifier $BIU$-$N(B binding
      $B$O@_Dj$5$l$F$$$J$/!$(B<a> $B$K$N$_@_Dj$7$F$"$k>l9g!$(B"Alt" + "a" 
      $B$J$I$NF~NO$G$b(B <a> $B$K@_Dj$7$F$"$kF0:n$,<B9T$5$l$k!%(B
  
 (ii) $B$7$+$7!$F10l(B widget $B>e$G(B modifier $BIU$-$H(B modifier $BL5$7$N(B 
      binding $B$,N>J}$"$k>l9g$K$O6hJL$5$l!$(B"Alt" + "a" $B$rF~NO$7$F$b(B 
      <a> $B$G@_Dj$7$F$$$kF0:n$O<B9T$5$l$J$$!%(B

$B$H$$$&$3$H$G$9$M!%(B(i) $B$N;EMM$K$O5$IU$+$J$+$C$?$G$9!%(B
$B$$$o$f$k!V$"$$$^$$$J(B binding$B!W$C$F$d$D$G$7$g$&$+!%(B

$B;d$,Ax6x$7$?>e$N(B(2)$B$N>l9g$K$O!$(B

--------------------
"a" $B$rF~NO$7$?>l9g!'(B 
--------------------
       .foo $B$G$N(B binding $B$N$?$a!$(Bhonya $B$,<B9T(B 

---------------------------
"Alt"+ "a" $B$rF~NO$7$?>l9g!'(B 
---------------------------
       .foo $B$G$N(B binding $B$N$?$a(B honya $B$,<B9T(B
              ($BM}M3!';EMM(B (i) $B$N$?$a(B)
       . $B$G$N(B binding $B$N$?$a(B munya $B$,<B9T(B
              ($BM}M3!'(B.foo $B$N(B bindtags $B$K(B . $B$,4^$^$l$F$$$k$?$a(B)

$B$H$J$C$F$$$?$H$$$&$3$H$N$h$&$G$9!%(B

-----------------------------
 $BCfEg!!5a(B                   Motomu Nakashima
 $BEl5~9)6HBg3X(B $B5!3#2J3X2J(B    Dept. of Mech. Eng.& Science
 $B1?F0@)8f3X9V:B(B             Tokyo Institute of Technology
 Fingerprint: 0D E6 6B 56 2A 98 A7 61  0A 38 33 43 BA C3 97 1D

---- $B%-!<F~NO$r@Z$jJ,$1$k(B script ($B0J2<%a!<%k86J8$+$i0zMQ(B) -----

$B0J2<$NMM$K$9$k$H3N<B$K5/F0$N@Z$jJ,$1$,=PMh$k$H;W$$$^$9!#(B
$BC"$7!"(Bemacs,mule$B$NMM$K(BM-c-x$B$NMM$J$3$H$O=q$-49$($,I,MW$G$9!#(B

-----------------------------------------------
set ctrl_handle(a) "ctrl_a"
set ctrl_handle(b) "ctrl_b"

set KeyHandle(modifier) none

bind . <Any-KeyRelease> { 
    global KeyHandle
    switch -glob %K {
	Control* {
	    set KeyHandle(modifier) none
	}
	Alt* {
	    set KeyHandle(modifier) none
	} 
	default {
	}
    }
}

bind . <Any-KeyPress> { 
    global modifier edit_mode
    switch -glob %K {
	Control* { 
	    # Control_L Control_R Control 
	    set KeyHandle(modifier) %K 
	}
	Alt* { 
	    # Alt_L Alt_R Alt
	    set KeyHandle(modifier) %K 
	} 
	[a-z] {
	    # with modifier
	    switch -glob $KeyHandle(modifier) {
		Control* {
		    if {[info exists ctrl_handle]} {
			global ctrl_handle
			if {[lsearch -glob [array names ctrl_handle] %K ]>=0} {
			    eval $ctrl_handle(%K)
			}
		    }
		}
		Alt* {
		    if {[info exists alt_handle]} {
			global alt_handle
			if {[lsearch -glob [array names alt_handle] %K ]>=0} {
			    eval $alt_handle(%K)
			}
		    }
		} 
		default {
		}
	    }
	}
   }
}
-----------------------------------------------
Technical Details
Message-ID: <MNAKASHI.97Dec3133535@cpus-f0.cc.titech.ac.jp>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <MNAKASHI.97Dec2161944@cpus-f0.cc.titech.ac.jp>

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: 15a83d,55ceaf8141eec0b7
X-Google-Attributes: gid15a83d,public
From: mnakashi@o.cc.titech.ac.jp (Motomu Nakashima o-2417)
Subject: Re: [Q] How to distinguish "a" and "Alt-a" on bind command?
Date: 1997/12/03
Message-ID: <MNAKASHI.97Dec3133535@cpus-f0.cc.titech.ac.jp>
X-Deja-AN: 294744632
References: <MNAKASHI.97Dec2161944@cpus-f0.cc.titech.ac.jp>
Followup-To: fj.lang.tcl
Distribution: world
Organization: Computer Center, Tokyo Institute of Technology, JAPAN
Newsgroups: fj.lang.tcl