/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: October 1, 1992 9:47:35 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: XTkChoiceWidgetsImpl, module: XTkChoiceWidgetsImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1291570865,698012369] XTkChoiceWidgetsImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W8 r;} W16;
typedef struct {W8 f; word r;} W9;
typedef struct {W16 f; W9 r;} W25;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef W9 *W9Pt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W16 f; W3 r;} W19;
typedef W2 *W2Pt;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static void NoName←Q1644();
static void XTkChoiceWidgetsImpl←P0();
static void ChoicesHitProc←P60();
static void Choose←P120();
static void ChooseForChoice←P180();
static word EachChild←P720();
static void ChooseForToggle←P240();
static word FindChoice←P300();
static word CreateChoices←P360();
static void ToggleHitProc←P420();
static word CreateToggle←P480();
static word GetCRef←P540();
static word CurrentChoice←P600();
static word IsChoice←P660();
static struct {unsigned f; char r[4];} string1 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\114\373\316\261\300\051\232\322\321\100\200\000\000"};
static struct {unsigned f; char r[4];} string4 = {196611, "\004@~"};
static struct {unsigned f; char r[8];} string5 = {458760, "ychoice"};
static struct {unsigned f; char r[8];} string6 = {393224, "toggle\000"};
static struct {unsigned f; char r[8];} string7 = {458760, "xchoice"};
static struct {unsigned f; char r[8];} string8 = {393224, "choice\000"};
static struct {unsigned f; char r[8];} string9 = {327688, "Gray1\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\114\373\316\261\300\051\232\322\321\100\164\000\000"};
static struct {unsigned f; char r[16];} string11 = {917518, "\006\005\040\001\044\001\050\001\054\001\100\100\004\037\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\116\324\147\077\300\024\110\066\207\100\150\000\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\141\025\232\152\300\166\121\005\142\100\164\000\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\310\203\372\072\300\300\310\160\135\100\150\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\033\115\307\000\300\214\060\055\310\100\150\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\227\370\144\253\300\176\165\034\110\100\150\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\234\350\054\033\300\120\345\145\367\100\150\000\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\261\021\273\022\300\336\305\330\021\100\150\000\000"};
static struct {
   word f0[21]; word f21; word f22; word f23; 
   word f24; word f25; word f26; word f27; 
   word f28; word f29; word f30; word f31; 
   word f32; word f33; word f34; word f35; 
   word f36; word f37; word f38; word f39; 
   word f40; word f41; word f42; word f43; 
   word f44[2]; word f46; word f47; word f48; 
   word f49; word f50; word f51; word f52[3]; 
   word f55; word f56; word f57; word f58; 
   word f59; word f60; word f61[2]; word f63; 
   word f64; word f65[10]; 
   } globalframe = {
   {0}, (word) IsChoice←P660, 0, (word) CurrentChoice←P600, 
   0, (word) GetCRef←P540, 0, (word) CreateToggle←P480, 
   0, (word) ToggleHitProc←P420, 0, (word) CreateChoices←P360, 
   0, (word) FindChoice←P300, 0, (word) ChooseForToggle←P240, 
   0, (word) ChooseForChoice←P180, 0, (word) Choose←P120, 
   0, (word) ChoicesHitProc←P60, 0, (word) XTkChoiceWidgetsImpl←P0, 
   {0}, 2147483648, 2147483648, 2147483648, 
   2147483648, 2147483648, 3, {0}, 
   2147483648, 2147483648, 2147483648, 2147483648, 
   2147483648, 3, {0}, 4294967295, 
   4294967295, {0}
   };

static void NoName←Q1644()
   {
   register ptr gf←c0124 =  (ptr) &globalframe;
   word var←c19536;
   (* (( (ptr) gf←c0124)+12) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0124)+13) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (*  (ptr) (( (bPt) gf←c0124)+64) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0124)+12) ), (word) &string5);
   (*  (ptr) (( (bPt) gf←c0124)+68) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0124)+12) ), (word) &string6);
   (*  (ptr) (( (bPt) gf←c0124)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0124)+12) ), (word) &string7);
   (*  (ptr) (( (bPt) gf←c0124)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0124)+12) ), (word) &string8);
   (*  (ptr) (( (bPt) gf←c0124)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0124)+12) ), (word) &string9);
   (void) XR←DeclareGlobalFrame((word) "XTkChoiceWidgetsImpl", &globalframe, (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11)
      , (word) (( (bPt) gf←c0124)+172)/* var←c18448 */ );
   var←c19536 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string12)), 43);
   (* (( (ptr) gf←c0124)+73)/* var←c19152 */  ) = var←c19536;
   (void) XR←ImportProcS(var←c19536, 67896323);
   var←c19536 = (word) XR←ImportInterface((word) "XTkButtons", (word) XR←GetTypeIndexS((word) (&string13)), 5);
   (* (( (ptr) gf←c0124)+69)/* var←c18864 */  ) = var←c19536;
   (void) XR←ImportProcS(var←c19536, 72089608);
   var←c19536 = (word) XR←ImportInterface((word) "XTkCollections", (word) XR←GetTypeIndexS((word) (&string14)), 16);
   (* (( (ptr) gf←c0124)+72)/* var←c19088 */  ) = var←c19536;
   (void) XR←ImportProcS(var←c19536, 1049604);
   (void) XR←ImportProcS(var←c19536, 69992451);
   (void) XR←ImportProcS(var←c19536, 788227);
   var←c19536 = (word) XR←ImportInterface((word) "XTkContainers", (word) XR←GetTypeIndexS((word) (&string15)), 12);
   (* (( (ptr) gf←c0124)+67)/* var←c18736 */  ) = var←c19536;
   var←c19536 = (word) XR←ImportInterface((word) "XTk", (word) XR←GetTypeIndexS((word) (&string16)), 50);
   (* (( (ptr) gf←c0124)+71)/* var←c18992 */  ) = var←c19536;
   (void) XR←ImportProcS(var←c19536, 788227);
   (void) XR←ImportProcS(var←c19536, 67634690);
   (void) XR←ImportProcS(var←c19536, 67642370);
   var←c19536 = (word) XR←ImportInterface((word) "XTkFriends", (word) XR←GetTypeIndexS((word) (&string17)), 33);
   (* (( (ptr) gf←c0124)+68)/* var←c18768 */  ) = var←c19536;
   (void) XR←ImportProcS(var←c19536, 67637250);
   (void) XR←ImportProcS(var←c19536, 73666049);
   var←c19536 = (word) XR←ImportInterface((word) "XTkLabels", (word) XR←GetTypeIndexS((word) (&string18)), 9);
   (* (( (ptr) gf←c0124)+70)/* var←c18896 */  ) = var←c19536;
   (void) XR←ImportProcS(var←c19536, 70778883);
   (void) XR←ImportProcS(var←c19536, 787203);
   (void) XR←ImportProcS(var←c19536, 787715);
   var←c19536 = (word) XR←ExportInterface((word) "XTkChoiceWidgets", (word) XR←GetTypeIndexS((word) (&string19)), 5);
   (* (( (ptr) gf←c0124)+74)/* var←c19568 */  ) = var←c19536;
   (void) XR←ExportProcS(var←c19536, (word) (( (bPt) gf←c0124)+84)/* var←c18096 */ , 67371009);
   (void) XR←ExportProcS(var←c19536, (word) (( (bPt) gf←c0124)+92)/* var←c18128 */ , 67371265);
   (void) XR←ExportProcS(var←c19536, (word) (( (bPt) gf←c0124)+156)/* var←c18384 */ , 786946);
   (void) XR←ExportProcS(var←c19536, (word) (( (bPt) gf←c0124)+124)/* var←c18256 */ , 71828231);
   (void) XR←ExportProcS(var←c19536, (word) (( (bPt) gf←c0124)+108)/* var←c18192 */ , 71566342);
   }

static void XTkChoiceWidgetsImpl←P0(formal←c040, formal←c032)
   word formal←c040;
   word formal←c032;
   {
   register ptr gf←c19600 =  (ptr) &globalframe;
   /* XTkChoiceWidgetsImpl: */ 
SOURCE(109, 5458)
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
   /* moved to installation proc */ 
SOURCE(292, 37)
   {
      word var←c18672;
      var←c18672 = XR←NewObject(4, (* (( (ptr) gf←c19600)+12) ));
      (*  (ptr) var←c18672 ) = (* (( (ptr) gf←c19600)+19) );
      (* (( (ptr) gf←c19600)+8)/* myKey←v2832 */  ) = var←c18672;
      };
SOURCE(331, 114)
   {
      W25 var←c035;
      (*  (ptr) &var←c035 ) = (* (( (ptr) gf←c19600)+18) );
      (* (( (ptr) &var←c035)+1) ) = 0;
      (* (( (ptr) &var←c035)+2) ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c19600)+67)/* var←c18736 */  ))+5) ) );
      (* (( (ptr) &var←c035)+3) ) = 1;
      (* (( (ptr) &var←c035)+4) ) = 0;
      (* (( (ptr) &var←c035)+5) ) = 0;
      (* (( (ptr) &var←c035)+6) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c035)+7) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c035)+8) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c035)+9) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c035)+10) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c035)+11) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c035)+12) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c035)+13) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c035)+14) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c035)+15) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c035)+16) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c035)+17) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c035)+18) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c035)+19) ) = 0;
      (* (( (ptr) &var←c035)+20) ) = 0;
      (* (( (ptr) &var←c035)+21) ) = 0;
      (* (( (ptr) &var←c035)+22) ) = 0;
      (* (( (ptr) &var←c035)+23) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c035)+24) ) = XR←CheckProc(0);
      {
         word pd20;
         pd20 = (* (( (ptr) (* (( (ptr) gf←c19600)+68)/* var←c18768 */  ))+18) );
         (* (( (ptr) gf←c19600)+9)/* choiceXClass←v2860 */  ) = (word) ( *( (fPt) ((*  (ptr) pd20 ))))((word) (&var←c035), pd20);
         };
      };
SOURCE(447, 114)
   {
      W25 var←c037;
      (*  (ptr) &var←c037 ) = (* (( (ptr) gf←c19600)+16) );
      (* (( (ptr) &var←c037)+1) ) = 0;
      (* (( (ptr) &var←c037)+2) ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c19600)+67)/* var←c18736 */  ))+4) ) );
      (* (( (ptr) &var←c037)+3) ) = 1;
      (* (( (ptr) &var←c037)+4) ) = 0;
      (* (( (ptr) &var←c037)+5) ) = 0;
      (* (( (ptr) &var←c037)+6) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c037)+7) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c037)+8) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c037)+9) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c037)+10) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c037)+11) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c037)+12) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c037)+13) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c037)+14) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c037)+15) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c037)+16) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c037)+17) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c037)+18) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c037)+19) ) = 0;
      (* (( (ptr) &var←c037)+20) ) = 0;
      (* (( (ptr) &var←c037)+21) ) = 0;
      (* (( (ptr) &var←c037)+22) ) = 0;
      (* (( (ptr) &var←c037)+23) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c037)+24) ) = XR←CheckProc(0);
      {
         word pd21;
         pd21 = (* (( (ptr) (* (( (ptr) gf←c19600)+68)/* var←c18768 */  ))+18) );
         (* (( (ptr) gf←c19600)+10)/* choiceYClass←v2888 */  ) = (word) ( *( (fPt) ((*  (ptr) pd21 ))))((word) (&var←c037), pd21);
         };
      };
SOURCE(563, 114)
   {
      W25 var←c039;
      (*  (ptr) &var←c039 ) = (* (( (ptr) gf←c19600)+17) );
      (* (( (ptr) &var←c039)+1) ) = 0;
      (* (( (ptr) &var←c039)+2) ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c19600)+69)/* var←c18864 */  ))+8) ) );
      (* (( (ptr) &var←c039)+3) ) = 1;
      (* (( (ptr) &var←c039)+4) ) = 0;
      (* (( (ptr) &var←c039)+5) ) = 0;
      (* (( (ptr) &var←c039)+6) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c039)+7) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c039)+8) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c039)+9) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c039)+10) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c039)+11) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c039)+12) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c039)+13) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c039)+14) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c039)+15) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c039)+16) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c039)+17) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c039)+18) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c039)+19) ) = 0;
      (* (( (ptr) &var←c039)+20) ) = 0;
      (* (( (ptr) &var←c039)+21) ) = 0;
      (* (( (ptr) &var←c039)+22) ) = 0;
      (* (( (ptr) &var←c039)+23) ) = XR←CheckProc(0);
      (* (( (ptr) &var←c039)+24) ) = XR←CheckProc(0);
      {
         word pd22;
         pd22 = (* (( (ptr) (* (( (ptr) gf←c19600)+68)/* var←c18768 */  ))+18) );
         (* (( (ptr) gf←c19600)+11)/* toggleClass←v2916 */  ) = (word) ( *( (fPt) ((*  (ptr) pd22 ))))((word) (&var←c039), pd22);
         };
      };
   }

static void ChoicesHitProc←P60(widget←v11576, registerData←v11604, callData←v11632, event←v11660)
   word widget←v11576;
   word registerData←v11604;
   word callData←v11632;
   word event←v11660;
   {
   register ptr gf←c19632 =  (ptr) &globalframe;
   word cRef←v4824;
   /* ChoicesHitProc: */ 
SOURCE(883, 412)
SOURCE(924, 37)
   cRef←v4824 = XR←Narrow(registerData←v11604, (* (( (ptr) gf←c19632)+13) ));
SOURCE(963, 24)
   (* (( (ptr) cRef←v4824)+6) ) = callData←v11632;
SOURCE(989, 35)
   if (((* (( (ptr) cRef←v4824)+5) ) == widget←v11576)) {
SOURCE(1018, 6)
      return;
      };
SOURCE(1026, 76)
   if (((* (( (ptr) cRef←v4824)+5) ) != 0)) {
SOURCE(1052, 50)
      {
         word pd23;
         pd23 = (* (( (ptr) (* (( (ptr) gf←c19632)+70)/* var←c18896 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd23 ))))((* (( (ptr) cRef←v4824)+5) ), 0, 1, pd23);
         };
      };
SOURCE(1104, 22)
   (* (( (ptr) cRef←v4824)+5) ) = widget←v11576;
SOURCE(1128, 37)
   {
      word pd24;
      pd24 = (* (( (ptr) (* (( (ptr) gf←c19632)+70)/* var←c18896 */  ))+9) );
      (void) ( *( (fPt) ((*  (ptr) pd24 ))))(widget←v11576, (* (( (ptr) gf←c19632)+20) ), 2, pd24);
      };
SOURCE(1167, 128)
   if (((*  (ptr) cRef←v4824 ) != 0)) {
SOURCE(1193, 102)
      {
         word pd25;
         pd25 = (*  (ptr) cRef←v4824 );
         (void) ( *( (fPt) ((*  (ptr) pd25 ))))((* (( (ptr) widget←v11576)+31) ), (* (( (ptr) cRef←v4824)+2) ), callData←v11632, event←v11660, pd25)
         ;
         };
      };
   }

static void Choose←P120(widget←v3584, ce←v3612)
   word widget←v3584;
   W2 ce←v3612;
   {
   register ptr gf←c19664 =  (ptr) &globalframe;
   word var←c18928;
   word widget←v18020;
   word class←v18048;
   /* Choose: */ 
SOURCE(1302, 166)
SOURCE(1366, 102)
   widget←v18020 = widget←v3584;
   class←v18048 = (* (( (ptr) gf←c19664)+11)/* toggleClass←v2916 */  );
   {
      word pd26;
      if (((* (( (ptr) widget←v18020)+4) ) == class←v18048)) {
         var←c18928 = 1;
         }
      else {
         pd26 = (* (( (ptr) (* (( (ptr) gf←c19664)+71)/* var←c18992 */  ))+40) );
         var←c18928 = (word) ( *( (fPt) ((*  (ptr) pd26 ))))(widget←v18020, class←v18048, pd26);
         };
      };
   if (((0 != var←c18928)
   )) {
SOURCE(1408, 33)
      (void) ChooseForToggle←P240(widget←v3584, ce←v3612);
      }
   else {
SOURCE(1441, 27)
      (void) ChooseForChoice←P180(widget←v3584, ce←v3612);
      };
   }

static void ChooseForChoice←P180(widget←v3672, ce←v3700)
   word widget←v3672;
   W2 ce←v3700;
   {
   W8 var←c19696;
   register ptr gf←c19728 =  (ptr) &globalframe;
   /* declaration of var←c19024 skipped */ 
   /* declaration of cRef←v4880 skipped */ 
   /* declaration of c←v4908 skipped */ 
   /* ChooseForChoice: */ 
SOURCE(1474, 492)
   {
      word tmpAddr27;
      tmpAddr27 = (word) (( (ptr) &var←c19696)+4)/* var←c19024 */ ;
      (*  (ptr) tmpAddr27 ) = ( ((word)  (fPt) EachChild←P720) );
      (* (( (ptr) tmpAddr27) + 1) ) = 1;
      };
SOURCE(1540, 66)
   {
      word var←c19056;
      word superClass←v17972;
      superClass←v17972 = (* (( (ptr) gf←c19728)+10)/* choiceYClass←v2888 */  );
      {
         word idx28;
         word limit29;
         var←c19056 = (* ((( (ptr) widget←v3672)+49)+(
               idx28 = (* (( (ptr) superClass←v17972)+4) ),
               limit29 = (* (( (ptr) widget←v3672)+48) ),
               BCK(idx28, limit29)
               )) );
         };
      var←c19696.f6/* cRef←v4880 */  = XR←Narrow(var←c19056, (* (( (ptr) gf←c19728)+13) ));
      };
SOURCE(1608, 44)
   var←c19696.f7/* c←v4908 */  = (word) FindChoice←P300((* (( (ptr) var←c19696.f6/* cRef←v4880 */ )+3) ), ce←v3700);
SOURCE(1821, 145)
   if ((var←c19696.f7/* c←v4908 */  != 0)) {
SOURCE(1837, 76)
      if (((* (( (ptr) var←c19696.f6/* cRef←v4880 */ )+5) ) != 0)) {
SOURCE(1863, 50)
         {
            word pd30;
            pd30 = (* (( (ptr) (* (( (ptr) gf←c19728)+70)/* var←c18896 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd30 ))))((* (( (ptr) var←c19696.f6/* cRef←v4880 */ )+5) ), 0, 1, pd30);
            };
         };
SOURCE(1915, 51)
      {
         word pd31;
         pd31 = (* (( (ptr) (* (( (ptr) gf←c19728)+72)/* var←c19088 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd31 ))))(widget←v3672, (word) (( (bPt) &var←c19696)+16)/* var←c19024 */ , 0, pd31);
         };
      };
   }

static word EachChild←P720(collection←v14112, child←v14140, data←v14168, idx←v14196, formal←c19792)
   word collection←v14112;
   word child←v14140;
   word data←v14168;
   word idx←v14196;
   word formal←c19792;
   {
   register ptr gf←c19760 =  (ptr) &globalframe;
   word stop←v14240;
   formal←c19792 = (formal←c19792 - 16);
   /* EachChild: */ 
SOURCE(1654, 161)
SOURCE(1654, 161)
   stop←v14240 = 0;
SOURCE(1698, 117)
   {
      word pd32;
      pd32 = (* (( (ptr) (* (( (ptr) gf←c19760)+71)/* var←c18992 */  ))+10) );
      if (((* (( (ptr) formal←c19792)+7) ) == (word) ( *( (fPt) ((*  (ptr) pd32 ))))(child←v14140, (* (( (ptr) gf←c19760)+8)/* myKey←v2832 */  ), pd32)
      )) {
SOURCE(1742, 21)
         (* (( (ptr) (* (( (ptr) formal←c19792)+6) ))+5) ) = child←v14140;
SOURCE(1765, 36)
         {
            word pd33;
            pd33 = (* (( (ptr) (* (( (ptr) gf←c19760)+70)/* var←c18896 */  ))+9) );
            (void) ( *( (fPt) ((*  (ptr) pd33 ))))(child←v14140, (* (( (ptr) gf←c19760)+20) ), 2, pd33);
            };
SOURCE(1803, 12)
         stop←v14240 = 1;
         };
      };
SOURCE(1654, 161)
   return(stop←v14240);
   }

static void ChooseForToggle←P240(widget←v3760, ce←v3788)
   word widget←v3760;
   W2 ce←v3788;
   {
   register ptr gf←c19824 =  (ptr) &globalframe;
   word cRef←v4992;
   word c←v5020;
   /* ChooseForToggle: */ 
SOURCE(1975, 263)
SOURCE(2041, 65)
   {
      word var←c19120;
      word superClass←v17924;
      superClass←v17924 = (* (( (ptr) gf←c19824)+11)/* toggleClass←v2916 */  );
      {
         word idx34;
         word limit35;
         var←c19120 = (* ((( (ptr) widget←v3760)+49)+(
               idx34 = (* (( (ptr) superClass←v17924)+4) ),
               limit35 = (* (( (ptr) widget←v3760)+48) ),
               BCK(idx34, limit35)
               )) );
         };
      cRef←v4992 = XR←Narrow(var←c19120, (* (( (ptr) gf←c19824)+13) ));
      };
SOURCE(2108, 44)
   c←v5020 = (word) FindChoice←P300((* (( (ptr) cRef←v4992)+3) ), ce←v3788);
SOURCE(2154, 84)
   if ((c←v5020 != 0)) {
SOURCE(2170, 16)
      (* (( (ptr) cRef←v4992)+4) ) = c←v5020;
SOURCE(2188, 50)
      {
         word pd36;
         pd36 = (* (( (ptr) (* (( (ptr) gf←c19824)+70)/* var←c18896 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd36 ))))(widget←v3760, (*  (ptr) (* (( (ptr) cRef←v4992)+4) ) ), 2, pd36);
         };
      };
   }

static word FindChoice←P300(choices←v3848, el←v3876)
   word choices←v3848;
   W2 el←v3876;
   {
   register ptr gf←c19856 =  (ptr) &globalframe;
   word var←c3920;
   /* FindChoice: */ 
SOURCE(2247, 437)
SOURCE(2247, 437)
   var←c3920 = 0;
SOURCE(2336, 80)
   {
      register word c←v5076;
      c←v5076 = choices←v3848;
      lab←L100006: ;
      if ((c←v5076 != 0)) {
         }
      else {
         goto lab←L100003;
         };
SOURCE(2387, 29)
      if (XR←EqualWords(c←v5076, &el←v3876, 2)) {
SOURCE(2406, 10)
         return(c←v5076);
         };
      c←v5076 = (* (( (ptr) c←v5076)+2) );
      goto lab←L100006;
      lab←L100003: ;
      };
SOURCE(2427, 123)
   if ((el←v3876.f0 != 0)) {
SOURCE(2447, 103)
      {
         register word c←v5120;
         c←v5120 = choices←v3848;
         lab←L100010: ;
         if ((c←v5120 != 0)) {
            }
         else {
            goto lab←L100007;
            };
SOURCE(2498, 52)
         {
            word pd37;
            pd37 = (* (( (ptr) (* (( (ptr) gf←c19856)+73)/* var←c19152 */  ))+8) );
            if ((0 != (word) ( *( (fPt) ((*  (ptr) pd37 ))))((*  (ptr) c←v5120 ), el←v3876.f0, 1, pd37))) {
SOURCE(2540, 10)
               return(c←v5120);
               };
            };
         c←v5120 = (* (( (ptr) c←v5120)+2) );
         goto lab←L100010;
         lab←L100007: ;
         };
      };
SOURCE(2561, 123)
   if ((el←v3876.f1 != 0)) {
SOURCE(2586, 98)
      {
         register word c←v5164;
         c←v5164 = choices←v3848;
         lab←L100014: ;
         if ((c←v5164 != 0)) {
            }
         else {
            goto lab←L100011;
            };
SOURCE(2637, 47)
         if (((* (( (ptr) c←v5164)+1) ) == el←v3876.f1)) {
SOURCE(2674, 10)
            return(c←v5164);
            };
         c←v5164 = (* (( (ptr) c←v5164)+2) );
         goto lab←L100014;
         lab←L100011: ;
         };
      };
SOURCE(2247, 437)
   return(var←c3920);
   }

static word CreateChoices←P360(formal←c082)
   word formal←c082;
   {
   register ptr gf←c19888 =  (ptr) &globalframe;
   word widget←v4204;
   word cRef←v5208;
   word class←v5236;
   /* CreateChoices: */ 
SOURCE(2699, 1207)
SOURCE(2699, 1207)
   widget←v4204 = 0;
SOURCE(2912, 124)
   cRef←v5208 = XR←NewObject(28, (* (( (ptr) gf←c19888)+13) ));
   (*  (ptr) cRef←v5208 ) = XR←CheckProc(* (( (ptr) formal←c082)+11)/* hitProc←v4064 */  );
   (* (( (ptr) cRef←v5208)+1) ) = (* (( (ptr) formal←c082)+17) );
   (* (( (ptr) cRef←v5208)+2) ) = (* (( (ptr) formal←c082)+12)/* registerData←v4092 */  );
   (* (( (ptr) cRef←v5208)+3) ) = (* (( (ptr) formal←c082)+9)/* choices←v4008 */  );
SOURCE(3038, 98)
   {
      word var←c19216;
      var←c19216 = (* (( (ptr) formal←c082)+10)/* horizontal←v4036 */  );
      if ((var←c19216 == 1)) {
         class←v5236 = (* (( (ptr) gf←c19888)+9)/* choiceXClass←v2860 */  );
         }
      else {
         if ((var←c19216 == 0)) {
            class←v5236 = (* (( (ptr) gf←c19888)+10)/* choiceYClass←v2888 */  );
            }
         else {
            class←v5236 = (
               XR←RaiseUnnamedError(), 0
               );
            };
         };
      };
SOURCE(3138, 20)
   if (((* (( (ptr) formal←c082)+9)/* choices←v4008 */  ) == 0)) {
SOURCE(3158, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(3165, 69)
   {
      word pd38;
      pd38 = (* (( (ptr) (* (( (ptr) gf←c19888)+68)/* var←c18768 */  ))+20) );
      (*  (ptr) formal←c082 ) = (word) ( *( (fPt) ((*  (ptr) pd38 ))))((*  (ptr) formal←c082 ), class←v5236, pd38);
      };
SOURCE(3236, 42)
   {
      word pd39;
      pd39 = (* (( (ptr) (* (( (ptr) gf←c19888)+72)/* var←c19088 */  ))+4) );
      widget←v4204 = (word) ( *( (fPt) ((*  (ptr) pd39 ))))((*  (W9Pt) formal←c082/* widgetSpec←v3980 */  ), 0, 0, pd39);
      };
SOURCE(3280, 46)
   {
      word val←v17732;
      val←v17732 = cRef←v5208;
      {
         word idx40;
         word limit41;
         (* ((( (ptr) widget←v4204)+49)+(
               idx40 = (* (( (ptr) class←v5236)+4) ),
               limit41 = (* (( (ptr) widget←v4204)+48) ),
               BCK(idx40, limit41)
               )) ) = val←v17732;
         };
      };
SOURCE(3328, 578)
   {
      register word c←v5292;
      c←v5292 = (* (( (ptr) formal←c082)+9)/* choices←v4008 */  );
      lab←L100018: ;
      if ((c←v5292 != 0)) {
         }
      else {
         goto lab←L100015;
         };
      {
         word child←v5336 = 0;
SOURCE(3394, 35)
         (* (( (ptr) formal←c082)+17) ) = (* (( (ptr) cRef←v5208)+1) );
SOURCE(3431, 393)
         if (((* (( (ptr) c←v5292)+1) ) == 0)) {
SOURCE(3461, 69)
            {
               word pd42;
               pd42 = (* (( (ptr) (* (( (ptr) gf←c19888)+70)/* var←c18896 */  ))+4) );
               child←v5336 = (word) ( *( (fPt) ((*  (ptr) pd42 ))))((*  (W9Pt) (( (ptr) gf←c19888)+45)/* var←c18512 */  ), (*  (ptr) c←v5292 ), (*  (W4Pt) (
                     ( (ptr) formal←c082)+14)/* style←v4148 */  ), pd42);
               };
            }
         else {
SOURCE(3533, 50)
            if (((* (( (ptr) cRef←v5208)+5) ) == 0)) {
SOURCE(3560, 23)
               (* (( (ptr) formal←c082)+17) ) = (* (( (ptr) gf←c19888)+20) );
               };
SOURCE(3586, 152)
            {
               W19 var←c090;
               (*  (W9Pt) (word) &var←c090 ) = (*  (W9Pt) (( (ptr) gf←c19888)+54)/* var←c18576 */  );
               (* (( (ptr) (word) &var←c090) + 9) ) = (*  (ptr) c←v5292 );
               (*  (W4Pt) (( (ptr) (word) &var←c090) + 10) ) = (*  (W4Pt) (( (ptr) formal←c082)+14)/* style←v4148 */  );
               (* (( (ptr) (word) &var←c090) + 14) ) = (word) (( (bPt) gf←c19888)+164)/* var←c18416 */ ;
               (* (( (ptr) (word) &var←c090) + 15) ) = cRef←v5208;
               (* (( (ptr) (word) &var←c090) + 16) ) = (* (( (ptr) c←v5292)+1) );
               (* (( (ptr) (word) &var←c090) + 17) ) = (* (( (ptr) formal←c082)+13)/* tq←v4120 */  );
               (* (( (ptr) (word) &var←c090) + 18) ) = 0;
               {
                  word pd43;
                  pd43 = (* (( (ptr) (* (( (ptr) gf←c19888)+69)/* var←c18864 */  ))+4) );
                  child←v5336 = (word) ( *( (fPt) ((*  (ptr) pd43 ))))((word) (&var←c090), pd43);
                  };
               };
SOURCE(3740, 84)
            if (((* (( (ptr) cRef←v5208)+5) ) == 0)) {
SOURCE(3768, 21)
               (* (( (ptr) cRef←v5208)+5) ) = child←v5336;
SOURCE(3791, 33)
               (* (( (ptr) cRef←v5208)+6) ) = (* (( (ptr) c←v5292)+1) );
               };
            };
SOURCE(3830, 34)
         {
            word pd44;
            pd44 = (* (( (ptr) (* (( (ptr) gf←c19888)+71)/* var←c18992 */  ))+11) );
            (void) ( *( (fPt) ((*  (ptr) pd44 ))))(child←v5336, (* (( (ptr) gf←c19888)+8)/* myKey←v2832 */  ), c←v5292, pd44);
            };
SOURCE(3866, 40)
         {
            word pd45;
            pd45 = (* (( (ptr) (* (( (ptr) gf←c19888)+72)/* var←c19088 */  ))+8) );
            (void) ( *( (fPt) ((*  (ptr) pd45 ))))(widget←v4204, child←v5336, 0, 1, pd45);
            };
         };
      c←v5292 = (* (( (ptr) c←v5292)+2) );
      goto lab←L100018;
      lab←L100015: ;
      };
SOURCE(2699, 1207)
   return(widget←v4204);
   }

static void ToggleHitProc←P420(widget←v11720, registerData←v11748, callData←v11776, event←v11804)
   word widget←v11720;
   word registerData←v11748;
   word callData←v11776;
   word event←v11804;
   {
   register ptr gf←c19920 =  (ptr) &globalframe;
   word cRef←v5380;
   word curr←v5408;
   W2 ce←v5436;
   /* ToggleHitProc: */ 
SOURCE(3940, 411)
SOURCE(3980, 37)
   cRef←v5380 = XR←Narrow(registerData←v11748, (* (( (ptr) gf←c19920)+13) ));
SOURCE(4019, 31)
   curr←v5408 = (* (( (ptr) cRef←v5380)+4) );
SOURCE(4052, 17)
   ce←v5436.f0 = 0;
   ce←v5436.f1 = 0;
SOURCE(4071, 93)
   if ((curr←v5408 == 0) || ((* (( (ptr) curr←v5408)+2) ) == 0)) {
SOURCE(4106, 34)
      (* (( (ptr) cRef←v5380)+4) ) = (* (( (ptr) cRef←v5380)+3) );
      }
   else {
SOURCE(4140, 24)
      (* (( (ptr) cRef←v5380)+4) ) = (* (( (ptr) curr←v5408)+2) );
      };
SOURCE(4166, 23)
   ce←v5436 = (*  (W2Pt) (* (( (ptr) cRef←v5380)+4) ) );
SOURCE(4191, 34)
   {
      word pd46;
      pd46 = (* (( (ptr) (* (( (ptr) gf←c19920)+70)/* var←c18896 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd46 ))))(widget←v11720, ce←v5436.f0, 2, pd46);
      };
SOURCE(4227, 124)
   if (((*  (ptr) cRef←v5380 ) != 0)) {
SOURCE(4253, 98)
      {
         word pd47;
         pd47 = (*  (ptr) cRef←v5380 );
         (void) ( *( (fPt) ((*  (ptr) pd47 ))))(widget←v11720, (* (( (ptr) cRef←v5380)+2) ), ce←v5436.f1, event←v11804, pd47);
         };
      };
   }

static word CreateToggle←P480(formal←c0104)
   word formal←c0104;
   {
   register ptr gf←c19952 =  (ptr) &globalframe;
   word widget←v4460;
   word cRef←v5492;
   /* CreateToggle: */ 
SOURCE(4358, 595)
SOURCE(4358, 595)
   widget←v4460 = 0;
SOURCE(4545, 111)
   cRef←v5492 = XR←NewObject(28, (* (( (ptr) gf←c19952)+13) ));
   (*  (ptr) cRef←v5492 ) = XR←CheckProc(* (( (ptr) formal←c0104)+10)/* hitProc←v4320 */  );
   (* (( (ptr) cRef←v5492)+2) ) = (* (( (ptr) formal←c0104)+11)/* registerData←v4348 */  );
   (* (( (ptr) cRef←v5492)+3) ) = (* (( (ptr) formal←c0104)+9)/* choices←v4292 */  );
   (* (( (ptr) cRef←v5492)+4) ) = (* (( (ptr) formal←c0104)+9)/* choices←v4292 */  );
SOURCE(4658, 20)
   if (((* (( (ptr) formal←c0104)+9)/* choices←v4292 */  ) == 0)) {
SOURCE(4678, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(4685, 75)
   {
      word pd48;
      pd48 = (* (( (ptr) (* (( (ptr) gf←c19952)+68)/* var←c18768 */  ))+20) );
      (*  (ptr) formal←c0104 ) = (word) ( *( (fPt) ((*  (ptr) pd48 ))))((*  (ptr) formal←c0104 ), (* (( (ptr) gf←c19952)+11)/* toggleClass←v2916 */  ), pd48)
      ;
      };
SOURCE(4762, 137)
   {
      W19 var←c0107;
      (*  (W9Pt) (word) &var←c0107 ) = (*  (W9Pt) formal←c0104/* widgetSpec←v4264 */  );
      (* (( (ptr) (word) &var←c0107) + 9) ) = (*  (ptr) (* (( (ptr) formal←c0104)+9)/* choices←v4292 */  ) );
      (*  (W4Pt) (( (ptr) (word) &var←c0107) + 10) ) = (*  (W4Pt) (( (ptr) gf←c19952)+63)/* var←c18640 */  );
      (* (( (ptr) (word) &var←c0107) + 14) ) = (word) (( (bPt) gf←c19952)+116)/* var←c18224 */ ;
      (* (( (ptr) (word) &var←c0107) + 15) ) = cRef←v5492;
      (* (( (ptr) (word) &var←c0107) + 16) ) = 0;
      (* (( (ptr) (word) &var←c0107) + 17) ) = (* (( (ptr) formal←c0104)+12)/* tq←v4376 */  );
      (* (( (ptr) (word) &var←c0107) + 18) ) = 0;
      {
         word pd49;
         pd49 = (* (( (ptr) (* (( (ptr) gf←c19952)+69)/* var←c18864 */  ))+4) );
         widget←v4460 = (word) ( *( (fPt) ((*  (ptr) pd49 ))))((word) (&var←c0107), pd49);
         };
      };
SOURCE(4901, 52)
   {
      word superClass←v17656;
      word val←v17684;
      superClass←v17656 = (* (( (ptr) gf←c19952)+11)/* toggleClass←v2916 */  );
      val←v17684 = cRef←v5492;
      {
         word idx50;
         word limit51;
         (* ((( (ptr) widget←v4460)+49)+(
               idx50 = (* (( (ptr) superClass←v17656)+4) ),
               limit51 = (* (( (ptr) widget←v4460)+48) ),
               BCK(idx50, limit51)
               )) ) = val←v17684;
         };
      };
SOURCE(4358, 595)
   return(widget←v4460);
   }

static word GetCRef←P540(w←v4520)
   word w←v4520;
   {
   register ptr gf←c19984 =  (ptr) &globalframe;
   word cRef←v4564;
   /* GetCRef: */ 
SOURCE(4959, 286)
SOURCE(4959, 286)
   cRef←v4564 = 0;
SOURCE(5014, 231)
   {
      word var←c19312;
      var←c19312 = (* (( (ptr) w←v4520)+4) );
      if ((var←c19312 == (* (( (ptr) gf←c19984)+9)/* choiceXClass←v2860 */  ))) {
SOURCE(5052, 53)
         {
            word var←c0138;
            {
               word var←c19376;
               word superClass←v17876;
               superClass←v17876 = (* (( (ptr) gf←c19984)+9)/* choiceXClass←v2860 */  );
               {
                  word idx53;
                  word limit54;
                  var←c19376 = (* ((( (ptr) w←v4520)+49)+(
                        idx53 = (* (( (ptr) superClass←v17876)+4) ),
                        limit54 = (* (( (ptr) w←v4520)+48) ),
                        BCK(idx53, limit54)
                        )) );
                  };
               var←c0138 = XR←Narrow(var←c19376, (* (( (ptr) gf←c19984)+13) ));
               };
            return(var←c0138);
            };
         };
      if ((var←c19312 == (* (( (ptr) gf←c19984)+10)/* choiceYClass←v2888 */  ))) {
SOURCE(5123, 53)
         {
            word var←c0139;
            {
               word var←c19440;
               word superClass←v17828;
               superClass←v17828 = (* (( (ptr) gf←c19984)+10)/* choiceYClass←v2888 */  );
               {
                  word idx55;
                  word limit56;
                  var←c19440 = (* ((( (ptr) w←v4520)+49)+(
                        idx55 = (* (( (ptr) superClass←v17828)+4) ),
                        limit56 = (* (( (ptr) w←v4520)+48) ),
                        BCK(idx55, limit56)
                        )) );
                  };
               var←c0139 = XR←Narrow(var←c19440, (* (( (ptr) gf←c19984)+13) ));
               };
            return(var←c0139);
            };
         };
      if ((var←c19312 == (* (( (ptr) gf←c19984)+11)/* toggleClass←v2916 */  ))) {
SOURCE(5193, 52)
         {
            word var←c0140;
            {
               word var←c19504;
               word superClass←v17780;
               superClass←v17780 = (* (( (ptr) gf←c19984)+11)/* toggleClass←v2916 */  );
               {
                  word idx57;
                  word limit58;
                  var←c19504 = (* ((( (ptr) w←v4520)+49)+(
                        idx57 = (* (( (ptr) superClass←v17780)+4) ),
                        limit58 = (* (( (ptr) w←v4520)+48) ),
                        BCK(idx57, limit58)
                        )) );
                  };
               var←c0140 = XR←Narrow(var←c19504, (* (( (ptr) gf←c19984)+13) ));
               };
            return(var←c0140);
            };
         };
SOURCE(5258, 5)
      (void) XR←RaiseUnnamedError();
      goto endif052;
      endif052: ;
      };
   }

static word CurrentChoice←P600(widget←v4636)
   word widget←v4636;
   {
   word var←c4680;
   word cRef←v5548;
   /* CurrentChoice: */ 
SOURCE(5269, 122)
SOURCE(5335, 32)
   cRef←v5548 = (word) GetCRef←P540(widget←v4636);
SOURCE(5369, 22)
   return((* (( (ptr) cRef←v5548)+6) ));
   }

static word IsChoice←P660(w←v4752)
   word w←v4752;
   {
   register ptr gf←c20016 =  (ptr) &globalframe;
   word var←c4796;
   /* IsChoice: */ 
SOURCE(5397, 170)
SOURCE(5454, 28)
   if ((w←v4752 == 0)) {
SOURCE(5468, 14)
      return(0);
      };
SOURCE(5484, 83)
   {
      word tc59;
      if (((* (( (ptr) w←v4752)+4) ) == (* (( (ptr) gf←c20016)+9)/* choiceXClass←v2860 */  )) || ((* (( (ptr) w←v4752)+4) ) == (* (
         ( (ptr) gf←c20016)+10)/* choiceYClass←v2888 */  ))) {
         tc59 =  (word) 1;
         }
      else {
         tc59 =  (word) ((* (( (ptr) w←v4752)+4) ) == (* (( (ptr) gf←c20016)+11)/* toggleClass←v2916 */  ));
         };
      return(tc59);
      };
   }

/* file: XTkChoiceWidgetsImpl, module: XTkChoiceWidgetsImpl, compiled at: October 1, 1992 9:47:34 pm PDT */ 
extern void XR←install←XTkChoiceWidgetsImpl() {
   NoName←Q1644();
   }
extern void XR←run←XTkChoiceWidgetsImpl() { XR←Start(&globalframe); }