🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.sys.mac
Article #62675

Re: [Programming] PopUpMenu Standard?

#62675
From: SUMIYA Takahiro
Date: Fri, 05 Feb 1993 03:18
165 lines
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!sumi
References: <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