/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: April 21, 1992 12:44:03 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: XTkDelegationImpl, module: XTkDelegationImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [2412401551,1810232251] XTkDelegationImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
#define SOURCE(p, l) /* source p, l */
static void NoName←Q588();
static void XTkDelegationImpl←P0();
static word SingleDelegant←P60();
static word DidMultiDelegation←P120();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\033\115\307\000\300\214\060\055\310\100\244\000\000"};
static struct {unsigned f; char r[40];} string2 = {2555943, "\011\000\004\106\000\040\006\011\020\004\101\201\100\174\001\100\200\001\100\204\001\100\210\001\100\220\001\100\264\001\100\270\001\100\274\001\100\304\001"};
static struct {unsigned f; char r[48];} string3 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\033\115\307\000\300\214\060\055\310\100\244\005\004\162\145\163\164\214\216\257\300\033\115\307\000\300\214\060\055\310\100\244\261\000\000\000"};
static struct {unsigned f; char r[4];} string4 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\217\312\123\217\300\153\345\363\273\100\164\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\033\115\307\000\300\214\060\055\310\100\150\000\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\262\245\110\370\300\216\274\026\201\100\164\000\000"};
static struct {
   word f0[6]; word f6; word f7; word f8; 
   word f9; word f10; word f11[3]; 
   } globalframe = {
   {0}, (word) DidMultiDelegation←P120, 0, (word) SingleDelegant←P60, 
   0, (word) XTkDelegationImpl←P0, {0}
   };

static void NoName←Q588()
   {
   register ptr gf←c033 =  (ptr) &globalframe;
   word var←c8940;
   (* (( (ptr) gf←c033)+4) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c033)+5) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (void) XR←DeclareGlobalFrame((word) "XTkDelegationImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string5)), (word) (
         ( (bPt) gf←c033)+40)/* var←c8620 */ );
   var←c8940 = (word) XR←ImportInterface((word) "XTk", (word) XR←GetTypeIndexS((word) (&string6)), 50);
   (* (( (ptr) gf←c033)+12)/* var←c8748 */  ) = var←c8940;
   (void) XR←ImportProcS(var←c8940, 67634690);
   (void) XR←ImportProcS(var←c8940, 67643138);
   var←c8940 = (word) XR←ExportInterface((word) "XTkDelegation", (word) XR←GetTypeIndexS((word) (&string7)), 5);
   (* (( (ptr) gf←c033)+13)/* var←c8972 */  ) = var←c8940;
   (void) XR←ExportProcS(var←c8940, (word) (( (bPt) gf←c033)+32)/* var←c8588 */ , 67895811);
   (void) XR←ExportProcS(var←c8940, (word) (( (bPt) gf←c033)+24)/* var←c8556 */ , 68158468);
   }

static void XTkDelegationImpl←P0(formal←c09, formal←c08)
   word formal←c09;
   word formal←c08;
   {
   /* XTkDelegationImpl: */ 
   }

static word SingleDelegant←P60(widget←v2576, expect←v2604, alternateKey←v2632)
   word widget←v2576;
   word expect←v2604;
   word alternateKey←v2632;
   {
   register ptr gf←c9004 =  (ptr) &globalframe;
   word var←c2692;
   /* SingleDelegant: */ 
SOURCE(172, 269)
SOURCE(279, 162)
   {
      register word noName←c8652 = 0;
      if ((noName←c8652 > 100)) {
         goto lab←L100000;
         };
      lab←L100003: ;
      {
         word var←c8684;
         word widget←v8480;
         word classKey←v8508;
SOURCE(299, 55)
         widget←v8480 = widget←v2576;
         classKey←v8508 = expect←v2604;
         {
            word pd8;
            if (((*  (ptr) (* (( (ptr) widget←v8480)+4) ) ) == classKey←v8508)) {
               var←c8684 = 1;
               }
            else {
               pd8 = (* (( (ptr) (* (( (ptr) gf←c9004)+12)/* var←c8748 */  ))+43) );
               var←c8684 = (word) ( *( (fPt) ((*  (ptr) pd8 ))))(widget←v8480, classKey←v8508, pd8);
               };
            };
         if (((0 != var←c8684)
         )) {
SOURCE(339, 15)
            return(widget←v2576);
            };
SOURCE(356, 85)
         {
            word var←c8780;
            {
               word pd9;
               pd9 = (* (( (ptr) (* (( (ptr) gf←c9004)+12)/* var←c8748 */  ))+10) );
               var←c8780 = (word) ( *( (fPt) ((*  (ptr) pd9 ))))(widget←v2576, alternateKey←v2632, pd9);
               };
            if ((var←c8780 == 0)) {
               goto lab←L100005;
               };
            if (((* (( (ptr) gf←c9004)+4) ) == XR←GetReferentType(var←c8780))) {
               {
                  word w←v2980;
                  w←v2980 = var←c8780;
SOURCE(431, 10)
                  widget←v2576 = w←v2980;
                  };
               }
            else {
               lab←L100005: ;
SOURCE(463, 5)
               (void) XR←RaiseUnnamedError();
               };
            };
         };
      if ((noName←c8652 >= 100)) {
         goto lab←L100000;
         };
      noName←c8652 = (noName←c8652 + 1);
      goto lab←L100003;
      lab←L100000: ;
      };
SOURCE(482, 5)
   (void) XR←RaiseUnnamedError();
   }

static word DidMultiDelegation←P120(widget←v2752, expect←v2780, alternateKey←v2808, proc←v2836)
   word widget←v2752;
   word expect←v2780;
   word alternateKey←v2808;
   word proc←v2836;
   {
   register ptr gf←c9036 =  (ptr) &globalframe;
   word did←v2952;
   /* DidMultiDelegation: */ 
SOURCE(523, 422)
   {
      word var←c8812;
      word widget←v8404;
      word classKey←v8432;
SOURCE(661, 54)
      widget←v8404 = widget←v2752;
      classKey←v8432 = expect←v2780;
      {
         word pd10;
         if (((*  (ptr) (* (( (ptr) widget←v8404)+4) ) ) == classKey←v8432)) {
            var←c8812 = 1;
            }
         else {
            pd10 = (* (( (ptr) (* (( (ptr) gf←c9036)+12)/* var←c8748 */  ))+43) );
            var←c8812 = (word) ( *( (fPt) ((*  (ptr) pd10 ))))(widget←v8404, classKey←v8432, pd10);
            };
         };
      if (((0 != var←c8812)
      )) {
SOURCE(701, 14)
         return(0);
         };
SOURCE(717, 228)
      {
         word var←c8876;
         word var←c8908;
         {
            word pd11;
            pd11 = (* (( (ptr) (* (( (ptr) gf←c9036)+12)/* var←c8748 */  ))+10) );
            var←c8876 = (word) ( *( (fPt) ((*  (ptr) pd11 ))))(widget←v2752, alternateKey←v2808, pd11);
            };
         if ((var←c8876 == 0)) {
            goto lab←L100007;
            };
         var←c8908 = XR←GetReferentType(var←c8876);
         if (((* (( (ptr) gf←c9036)+5) ) == var←c8908)) {
            {
               word wl←v3024;
               wl←v3024 = var←c8876;
SOURCE(802, 79)
               {
                  register word list←v3152;
                  list←v3152 = wl←v3024;
                  lab←L100011: ;
                  if ((list←v3152 != 0)) {
                     }
                  else {
                     goto lab←L100008;
                     };
SOURCE(865, 16)
                  (void) ( *( (fPt) ((*  (ptr) proc←v2836 ))))((*  (ptr) (list←v3152) ), proc←v2836);
                  list←v3152 = (* (( (ptr) list←v3152)+1) );
                  goto lab←L100011;
                  lab←L100008: ;
                  };
SOURCE(892, 10)
               did←v2952 = 1;
               };
            }
         else {
            if (((* (( (ptr) gf←c9036)+4) ) == var←c8908)) {
               {
                  word w←v3280;
                  w←v3280 = var←c8876;
SOURCE(926, 7)
                  (void) ( *( (fPt) ((*  (ptr) proc←v2836 ))))(w←v3280, proc←v2836);
SOURCE(935, 10)
                  did←v2952 = 1;
                  };
               }
            else {
               lab←L100007: ;
SOURCE(963, 5)
               (void) XR←RaiseUnnamedError();
               };
            };
         };
      };
SOURCE(523, 422)
   return(did←v2952);
   }

/* file: XTkDelegationImpl, module: XTkDelegationImpl, compiled at: April 21, 1992 12:44:02 pm PDT */ 
extern void XR←install←XTkDelegationImpl() {
   NoName←Q588();
   }
extern void XR←run←XTkDelegationImpl() { XR←Start(&globalframe); }