Article View: fj.sys.mac
Article #62675Re: [Programming] PopUpMenu Standard?
From: SUMIYA Takahiro
Date: Fri, 05 Feb 1993 03:18
Date: Fri, 05 Feb 1993 03:18
165 lines
6096 bytes
6096 bytes
$@9-Bg$N6yC+$H$$$$(J$@$^$9(J.
$@%U%)%m!<$"$j$,$H$&$4$6$$$^$7$?(J.
In article <1993Feb4.014559.14200@kekux.kek.ac.jp>
toge@kekvax.kek.ac.jp (Nobu Toge) writes:
|myPointer = *myHandle + 260 + myKey; myPointer $@$O(J Ptr $@%?%$%W(J
|(*chars)[0] = 1;
|(*chars)[1] = (short)(*myPointer) & 0xFF;
$@$"$j$,$H$&$4$6$$$^$9(J. $@:rLk$d$C$F$_$?$i$&(J$@$^$/9T$-$^$7$?(J (_,_)
myPointer = ...
$@$NItJ,$O(J TransKeys() $@$H$$$&%H%i%C%W$,MQ0U$5$l$F$$$k$=$&$G$9(J.
|$@99$K!$(Jcommand / control / option / Fkey / arrows / Ten-keys
|$@$bLLE]$r8+$k$H$-$K$O!$;d$NM}2r$G$O!$(JIM-1 $@$+!!(JV$@$N3($K=>$C$F<+J,$G(J
|Table $@$r(Jhard-code $@$9$k$+!$(Jcustom resource $@$r:n$C$F!$(Jlook-up
|table $@$r(J$@:n$k0J30L5$$$H;W$$$^$9!%!J;d$O$=$&$7$?!%!K(J
$@$d$O$j$=$&$G$9$+(J :-(
$@C/$+$N;29M$K$J$k$+$bCN$l$^$;$s$N$G(J, $@:rLk:n$C$?(J KeyCode -> KeyName $@$r$3(J
$@$N5-;v$N:G8e$K$D$1$F$*$-$^$9(J. $@3HD%%-!<%\!<%I$N(JPower On $@$r=|$/A4$F(J$@$N%-!<(J
$@$KBP1~$7$^$9(J.
|$@$3$l$H$O$^$C$?$/JL$K!$(JDisinfectant $@$N(Jsource code $@$K!$;03Q$r<j$G=q$/(J
|$@;~$N$d(J$@$jJ}$,=q$$$F$"$j$^$9!%;d$O$3$l$r<+J,MQ$K>/$7D>$7$F!J$H$$$C$F$b!$(J
|$@$[$H$s$I(Jdead-copy!)$@;H$C$F$$$^$9!%(JControl item $@$N(J rect $@$H(Jlabel $@$r(J
|$@M?$($?$H$-!$(Jpopup $@$U$&$N(J shadow $@IU$-;M3Q$H!$(Jlabel$@$H!$;03Q$r=q$/(J
|proc $@$G$9!%(J
System 6.0x $@$G$OFC$KI8=`$O$J$$$H$$$&$3$H$G$9$M!%(J
$@;d$O(J SICN $@$r;H$C$FIA$$$F$$$^$7$?(J. $@HyL/$K0L(J$@CV$,0c$&$N$,LLGr$$$G$9$M(J.
$@$G(J, $@A0$K$3$l$r:n$C$?;~$K;W$C$?$N$G$9$,(J, $@;03Q%^!<%/$,;M3Q$N1o$K$"$k$H(J,
$@IaDL(J$@$N?M$O$=$N;03Q$N$H$3$m$r%/%j%C%/$7$^$;$s$+!)$=$&$9$k$H$G$9$M(J, $@%]%C(J
$@%W%"%C%W%a%K%e!<$,8=$l$?;~$K%^%&%9(J$@%]%$%s%?$,%a%K%e!<$N30$K$"$k$H$$$&$A$g$C(J
$@$H5$?'$N0-$$>u67$K$J$k$o$1$G$9(J. $@$=$l$G(J, $@%a%K%e!<$NI}$r;M3Q$K(J$@9g$o$;$i(J
$@$l$J$$$N$+$J(J, $@$H;W$C$?$s$G$9$,!%$-$C$H(J System 7 $@$G?7$7$/:n$i$l$?(J CDEF
$@$G$O$3$N$X$s$b$&$^$/$d(J$@$C$F$$$k$s$G$7$g$&$M!%(J
$@$I$&$b$"$j$,$H$&$4$6$$$^$7$?!%(J
/*** $@0J2<(J KeyCode -> KeyName $@$N%=!<%9(J ***/
#include<Script.h>
Boolean KeyCode2KeyName(unsigned short keyCode, unsigned char *str);
/* KeyTrans() $@$G$o$+$i$J$$%-!<$N%-!<%3!<%I$HL>A0(J */
#define LENGTH_OF_SPECIAL_KEY_NAME 20
typedef struct{
short code;
unsigned char name[LENGTH_OF_SPECIAL_KEY_NAME];
}KLUT;
KLUT special_keys[]={
0x24, "\pReturn",
0x30, "\pTab",
0x31, "\pSpace",
0x33, "\pDelete",
0x35, "\pEsc",
0x37, "\pCommand",
0x38, "\pShift",
0x39, "\pCaps Lock",
0x3a, "\pOption",
0x3b, "\pControl",
0x3c, "\pShit (right)",
0x3d, "\pOption (right)",
0x3e, "\pControl (right)",
0x41, "\p. (Ten Key)",
0x43, "\p* (Ten Key)",
0x45, "\p+ (Ten Key)",
0x47, "\pClear",
0x4b, "\p/ (Ten Key)",
0x4c, "\pEnter",
0x4e, "\p- (Ten Key)",
0x51, "\p= (Ten Key)",
0x52, "\p0 (Ten Key)",
0x53, "\p1 (Ten Key)",
0x54, "\p2 (Ten Key)",
0x55, "\p3 (Ten Key)",
0x56, "\p4 (Ten Key)",
0x57, "\p5 (Ten Key)",
0x58, "\p6 (Ten Key)",
0x59, "\p7 (Ten Key)",
0x5b, "\p8 (Ten Key)",
0x5c, "\p9 (Ten Key)",
0x72, "\pHelp",
0x73, "\pHome",
0x74, "\pPageUp",
0x75, "\pDel (x)",
0x77, "\pEnd",
0x79, "\pPageDown",
0x7b, "\pLeft Arrow",
0x7c, "\pRight Arrow",
0x7d, "\pDown Arrow",
0x7e, "\pUp Arrow",
0x7a, "\pF1",
0x78, "\pF2",
0x63, "\pF3",
0x76, "\pF4",
0x60, "\pF5",
0x61, "\pF6",
0x62, "\pF7",
0x64, "\pF8",
0x65, "\pF9",
0x6d, "\pF10",
0x67, "\pF11",
0x6f, "\pF12",
0x69, "\pF13",
0x6b, "\pF14",
0x71, "\pF15",
0x00, "\p"
};
Boolean KeyCode2KeyName (unsigned short keyCode, unsigned char *str) {
/***
*** KeyCode2KeyName : key code $@$+$i%-!<$NL>A0$rF@$k(J
*** str $@$K(J keyCode $@$KBP1~$9$k%-!<$NL>A0(J (pascal str) $@$r3JG<$9$k(J.
*** true $@$rJV$9!%(J
*** $@La$jCM(J : true = KCHR resource $@$+$iL>A0$,F@$i$l$?>l9g(J
*** false = $@$=$l0J30(J
***/
int i; Handle kchr;
long ktState=0L,kchrID;
/* $@FCJL$J%-!<$G$"$k$+$I$&$+%5!<%A$9$k(J */
for( i=0; special_keys[i].code; ++i ) {
if (keyCode == special_keys[i].code) {
int j;
for( j=0; j<=special_keys[i].name[0]; ++j )
str[j] = special_keys[i].name[j];
return false;
}
}
/* $@%7%9%F%`%9%/%j%W%H$KBP1~$7$?(J KCHR $@%j%=!<(J$@%9$rF@$k(J */
kchrID = GetScript(GetEnvirons(smKeyScript), smScriptKeys);
kchr = GetResource ('KCHR', kchrID);
/* KCHR $@$r;H$C$F(J keyCode $@$KBP1~$9$k%-%c%i%/%?L>A0$rF@$k(J */
str[0] = 1;
// str[1] = (short) (* (*kchr + 260 + keyCode) ) & 0xFF;
str[1] = KeyTrans (*kchr, keyCode, & ktState) & 0xFF;
/* kchr $@$O%0%m!<%P%kJQ?t$KF~$l$?J}$,$$$$$+$b$7$l$J$$(J */
ReleaseResource (kchr);
return true;
}
--
---
----- $@9-EgBg3X(J $@Am9g2J3XIt(J $@6yC+9'MN(J (sumi@cuby.mis.hiroshima-u.ac.jp)
Technical Details
Message-ID:
<SUMI.93Feb5121831@cuby.mis.hiroshima-u.ac.jp>Path:
arc1-ca.pugleaf.net!sparky!uunet!ccut!news.u-tokyo.ac.jp!s.u-tokyo!kuis!wnoc-kyo!hiroshima-u!grape!humpty!humpty!sumiReferences:
<SUMI.93Feb3184715@cuby.mis.hiroshima-u.ac.jp> <1993Feb4.014559.14200@kekux.kek.ac.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: f514d,2b6d44c4cc0e0381 X-Google-Attributes: gidf514d,public X-Google-ArrivalTime: 1993-02-05 08:05:36 PST Newsgroups: fj.sys.mac Path: arc1-ca.pugleaf.net!sparky!uunet!ccut!news.u-tokyo.ac.jp!s.u-tokyo!kuis!wnoc-kyo!hiroshima-u!grape!humpty!humpty!sumi From: sumi@cuby.mis.hiroshima-u.ac.jp (SUMIYA Takahiro) Subject: Re: [Programming] PopUpMenu Standard? In-Reply-To: toge@kekvax.kek.ac.jp's message of 4 Feb 1993 10:45:59 JST Message-ID: <SUMI.93Feb5121831@cuby.mis.hiroshima-u.ac.jp> Sender: news@humpty.mis.hiroshima-u.ac.jp Nntp-Posting-Host: cuby Organization: Dept. of Integrate Arts and Sciences, Hiroshima University References: <SUMI.93Feb3184715@cuby.mis.hiroshima-u.ac.jp> <1993Feb4.014559.14200@kekux.kek.ac.jp> Distribution: fj Date: Fri, 5 Feb 1993 03:18:31 GMT Lines: 165