/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: September 17, 1993 10:34:20 am PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: XTkXBiScrollerImpl, module: XTkXBiScrollerImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [4153736367,763816401] XTkXBiScrollerImpl";
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 W2 *W2Pt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W8 f; W3 r;} W11;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define MIN(cast, x, y) ( ( cast x) < ( cast y) ? (x) : (y) )
#define MAX(cast, x, y) ( ( cast x) > ( cast y) ? (x) : (y) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define IOP2(op, x, y) ( (word) ((x) op (y)) )
#define INEG(x) ( (word) ( - ((int) (word) (x)) ) )
static void NoName←Q1632();
static void XTkXBiScrollerImpl←P0();
static word CreateXBiScrollerClass←P60();
static word CreateXBiScroller←P120();
static word IsXBiScroller←P180();
static void XBiScrollerInitInstPart←P300();
static void GetInnerSize←P360();
static void GetOuterSize←P420();
static void Scroll←P480();
static void SetFilterProc←P540();
static word Child←P600();
static void ReplaceChild←P660();
static word SizeSubtract←P720();
static void PublicSetState←P780();
static void CheckChildState←P840();
static void DirectSetState←P900();
static void action←P1236();
static void GetState←P960();
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\033\115\307\000\300\214\060\055\310\100\244\000\000"};
static struct {unsigned f; char r[40];} string4 = {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[16];} string5 = {851984, "\257\300\367\224\374\257\300\055\206\351\321\101\020\000\000"};
static struct {unsigned f; char r[4];} string6 = {131074, "\003\001\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\367\224\374\257\300\055\206\351\321\100\274\000\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\004\011\000"};
static struct {unsigned f; char r[12];} string9 = {720908, "xBiScroller"};
static struct {unsigned f; char r[20];} string10 = {1048596, "XBiScrollerState\000\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\367\224\374\257\300\055\206\351\321\100\164\000\000"};
static struct {unsigned f; char r[12];} string12 = {655370, "\006\003\040\001\044\001\100\100\004\003\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\100\164\000\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\143\260\340\122\300\057\146\075\005\100\150\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\245\223\103\375\300\127\103\204\036\100\150\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\033\115\307\000\300\214\060\055\310\100\150\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\227\370\144\253\300\176\165\034\110\100\150\000\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\173\157\171\371\300\357\320\310\165\100\150\000\000"};
static struct {
word f0[18]; word f18; word f19; word f20;
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;
word f45; word f46; word f47; word f48;
word f49[2]; word f51; word f52; word f53;
word f54; word f55; word f56; word f57[9];
} globalframe = {
{0}, (word) GetState←P960, 0, (word) DirectSetState←P900,
0, (word) CheckChildState←P840, 0, (word) PublicSetState←P780,
0, (word) SizeSubtract←P720, 0, (word) ReplaceChild←P660,
0, (word) Child←P600, 0, (word) SetFilterProc←P540,
0, (word) Scroll←P480, 0, (word) GetOuterSize←P420,
0, (word) GetInnerSize←P360, 0, (word) XBiScrollerInitInstPart←P300,
0, (word) IsXBiScroller←P180, 0, (word) CreateXBiScroller←P120,
0, (word) CreateXBiScrollerClass←P60, 0, (word) XTkXBiScrollerImpl←P0,
{0}, (word) 2147483648, (word) 2147483648, (word) 2147483648,
(word) 2147483648, (word) 2147483648, (word) 3, {0}
};
static void NoName←Q1632()
{
register ptr gf←c0128 = (ptr) &globalframe;
word var←c22112;
(* (( (ptr) gf←c0128)+10) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
(* (( (ptr) gf←c0128)+11) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
(* (( (ptr) gf←c0128)+14) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
(* (( (ptr) gf←c0128)+15) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
(* (ptr) (( (bPt) gf←c0128)+64) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0128)+10) ), (word) &string9);
(* (ptr) (( (bPt) gf←c0128)+68) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0128)+10) ), (word) &string10);
(void) XR←DeclareGlobalFrame((word) "XTkXBiScrollerImpl", &globalframe, (word) XR←GetTypeIndex((word) &string11, 0, (word) &string12)
, (word) (( (bPt) gf←c0128)+192)/* var←c21312 */ );
var←c22112 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string13)), 11);
(* (( (ptr) gf←c0128)+63)/* var←c21760 */ ) = var←c22112;
(void) XR←ImportProcS(var←c22112, 67371521);
var←c22112 = (word) XR←ImportInterface((word) "Xl", (word) XR←GetTypeIndexS((word) (&string14)), 218);
(* (( (ptr) gf←c0128)+64)/* var←c21984 */ ) = var←c22112;
(void) XR←ImportProcS(var←c22112, 539906);
var←c22112 = (word) XR←ImportInterface((word) "XTkXScroller", (word) XR←GetTypeIndexS((word) (&string15)), 8);
(* (( (ptr) gf←c0128)+61)/* var←c21504 */ ) = var←c22112;
(void) XR←ImportProcS(var←c22112, 787970);
(void) XR←ImportProcS(var←c22112, 1049604);
(void) XR←ImportProcS(var←c22112, 67371777);
(void) XR←ImportProcS(var←c22112, 70254852);
(void) XR←ImportProcS(var←c22112, 788227);
var←c22112 = (word) XR←ImportInterface((word) "XTkBiScrollerFrame", (word) XR←GetTypeIndexS((word) (&string16)), 10);
(* (( (ptr) gf←c0128)+59)/* var←c21440 */ ) = var←c22112;
(void) XR←ImportProcS(var←c22112, 1574403);
(void) XR←ImportProcS(var←c22112, 1049604);
(void) XR←ImportProcS(var←c22112, 1050884);
(void) XR←ImportProcS(var←c22112, 70779141);
var←c22112 = (word) XR←ImportInterface((word) "XTk", (word) XR←GetTypeIndexS((word) (&string17)), 50);
(* (( (ptr) gf←c0128)+62)/* var←c21632 */ ) = var←c22112;
(void) XR←ImportProcS(var←c22112, 1050628);
(void) XR←ImportProcS(var←c22112, 67642370);
var←c22112 = (word) XR←ImportInterface((word) "XTkFriends", (word) XR←GetTypeIndexS((word) (&string18)), 33);
(* (( (ptr) gf←c0128)+60)/* var←c21472 */ ) = var←c22112;
(void) XR←ImportProcS(var←c22112, 1048580);
(void) XR←ImportProcS(var←c22112, 67637250);
(void) XR←ImportProcS(var←c22112, 73666049);
var←c22112 = (word) XR←ExportInterface((word) "XTkXBiScroller", (word) XR←GetTypeIndexS((word) (&string19)), 10);
(* (( (ptr) gf←c0128)+65)/* var←c22144 */ ) = var←c22112;
(void) XR←ExportVar(var←c22112, 0, (word) (( (bPt) gf←c0128)+36)/* xBiScrollerClass←v2804 */ );
(void) XR←ExportProcS(var←c22112, (word) (( (bPt) gf←c0128)+176)/* var←c21248 */ , 70779141, (word) "CreateXBiScroller");
(void) XR←ExportProcS(var←c22112, (word) (( (bPt) gf←c0128)+168)/* var←c21216 */ , 67371521, (word) "IsXBiScroller");
(void) XR←ExportProcS(var←c22112, (word) (( (bPt) gf←c0128)+120)/* var←c21024 */ , 67371777, (word) "Child");
(void) XR←ExportProcS(var←c22112, (word) (( (bPt) gf←c0128)+112)/* var←c20992 */ , 1049604, (word) "ReplaceChild");
(void) XR←ExportProcS(var←c22112, (word) (( (bPt) gf←c0128)+72)/* var←c20832 */ , 134481153, (word) "GetState");
(void) XR←ExportProcS(var←c22112, (word) (( (bPt) gf←c0128)+80)/* var←c20864 */ , 1050115, (word) "DirectSetState");
(void) XR←ExportProcS(var←c22112, (word) (( (bPt) gf←c0128)+96)/* var←c20928 */ , 1050371, (word) "PublicSetState");
(void) XR←ExportProcS(var←c22112, (word) (( (bPt) gf←c0128)+128)/* var←c21056 */ , 788739, (word) "SetFilterProc");
}
static void XTkXBiScrollerImpl←P0(formal←c032, formal←c031)
word formal←c032;
word formal←c031;
{
register ptr gf←c22176 = (ptr) &globalframe;
/* XTkXBiScrollerImpl: */
SOURCE(89, 6137)
/* 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(245, 45)
(* (( (ptr) gf←c22176)+8)/* stateChanged←v2776 */ ) = (* (( (ptr) gf←c22176)+17) );
SOURCE(293, 61)
(* (( (ptr) gf←c22176)+9)/* xBiScrollerClass←v2804 */ ) = (word) CreateXBiScrollerClass←P60();
}
static word CreateXBiScrollerClass←P60()
{
register ptr gf←c22208 = (ptr) &globalframe;
word var←c3472;
word class←v5380;
/* CreateXBiScrollerClass: */
SOURCE(356, 245)
SOURCE(412, 173)
{
W25 var←c036;
(* (ptr) &var←c036 ) = (* (( (ptr) gf←c22208)+16) );
(* (( (ptr) &var←c036)+1) ) = 0;
(* (( (ptr) &var←c036)+2) ) = (* (ptr) (* (( (ptr) (* (( (ptr) gf←c22208)+59)/* var←c21440 */ ))+4) ) );
(* (( (ptr) &var←c036)+3) ) = 1;
(* (( (ptr) &var←c036)+4) ) = 0;
(* (( (ptr) &var←c036)+5) ) = 0;
(* (( (ptr) &var←c036)+6) ) = XR←CheckProc(0);
(* (( (ptr) &var←c036)+7) ) = XR←CheckProc(0);
(* (( (ptr) &var←c036)+8) ) = XR←CheckProc(0);
(* (( (ptr) &var←c036)+9) ) = XR←CheckProc(0);
(* (( (ptr) &var←c036)+10) ) = XR←CheckProc(0);
(* (( (ptr) &var←c036)+11) ) = XR←CheckProc(0);
(* (( (ptr) &var←c036)+12) ) = XR←CheckProc(0);
(* (( (ptr) &var←c036)+13) ) = XR←CheckProc(0);
(* (( (ptr) &var←c036)+14) ) = XR←CheckProc(0);
(* (( (ptr) &var←c036)+15) ) = XR←CheckProc(0);
(* (( (ptr) &var←c036)+16) ) = XR←CheckProc(0);
(* (( (ptr) &var←c036)+17) ) = XR←CheckProc(0);
(* (( (ptr) &var←c036)+18) ) = (word) (( (bPt) gf←c22208)+160)/* var←c21184 */ ;
(* (( (ptr) &var←c036)+19) ) = 0;
(* (( (ptr) &var←c036)+20) ) = 0;
(* (( (ptr) &var←c036)+21) ) = 0;
(* (( (ptr) &var←c036)+22) ) = 0;
(* (( (ptr) &var←c036)+23) ) = XR←CheckProc(0);
(* (( (ptr) &var←c036)+24) ) = XR←CheckProc(0);
{
word pd20;
pd20 = (* (( (ptr) (* (( (ptr) gf←c22208)+60)/* var←c21472 */ ))+18) );
class←v5380 = (word) ( *( (fPt) ((* (ptr) pd20 ))))((word) (&var←c036), pd20);
};
};
SOURCE(587, 14)
return(class←v5380);
}
static word CreateXBiScroller←P120(widgetSpec←v3532, child←v3560, insideSize←v3588, vsbar←v3616, hsbar←v3644)
W9 widgetSpec←v3532;
word child←v3560;
W2 insideSize←v3588;
word vsbar←v3616;
word hsbar←v3644;
{
register ptr gf←c22240 = (ptr) &globalframe;
word var←c3688;
/* CreateXBiScroller: */
SOURCE(607, 630)
SOURCE(793, 80)
{
word pd21;
pd21 = (* (( (ptr) (* (( (ptr) gf←c22240)+60)/* var←c21472 */ ))+20) );
(* (ptr) &widgetSpec←v3532 ) = (word) ( *( (fPt) ((* (ptr) pd21 ))))((* (ptr) &widgetSpec←v3532 ), (* (( (ptr) gf←c22240)+9)
/* xBiScrollerClass←v2804 */ ), pd21);
};
SOURCE(875, 364)
{
word xBiScroller←v5424;
word xbsd←v5452;
SOURCE(881, 109)
{
word pd22;
pd22 = (* (( (ptr) (* (( (ptr) gf←c22240)+59)/* var←c21440 */ ))+5) );
xBiScroller←v5424 = (word) ( *( (fPt) ((* (ptr) pd22 ))))(widgetSpec←v3532, 0, insideSize←v3588, vsbar←v3616, hsbar←v3644, pd22)
;
};
SOURCE(992, 47)
{
word idx23;
word limit24;
xbsd←v5452 = XR←Narrow((* ((( (ptr) xBiScroller←v5424)+49)+(
idx23 = (* (( (ptr) (* (( (ptr) gf←c22240)+9)/* xBiScrollerClass←v2804 */ ))+4) ),
limit24 = (* (( (ptr) xBiScroller←v5424)+48) ),
BCK(idx23, limit24)
)) ), (* (( (ptr) gf←c22240)+15) ));
};
SOURCE(1041, 56)
if ((child←v3560 != 0)) {
SOURCE(1059, 38)
(void) ReplaceChild←P660(xBiScroller←v5424, child←v3560, 1, 0);
};
SOURCE(1099, 53)
{
word pd25;
pd25 = (* (( (ptr) (* (( (ptr) gf←c22240)+59)/* var←c21440 */ ))+13) );
(void) ( *( (fPt) ((* (ptr) pd25 ))))(xBiScroller←v5424, (word) (( (bPt) gf←c22240)+136)/* var←c21088 */ , 0, 0, pd25);
};
SOURCE(1154, 61)
{
word pd26;
pd26 = (* (( (ptr) (* (( (ptr) gf←c22240)+61)/* var←c21504 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd26 ))))((* (ptr) xbsd←v5452 ), (unsigned) (0 == hsbar←v3644), (unsigned) (0 == vsbar←v3616), pd26)
;
};
SOURCE(1217, 20)
return(xBiScroller←v5424);
};
}
static word IsXBiScroller←P180(widget←v3748)
word widget←v3748;
{
register ptr gf←c22272 = (ptr) &globalframe;
word var←c3792;
/* IsXBiScroller: */
SOURCE(1248, 115)
SOURCE(1315, 48)
{
word var←c21568;
word widget←v20784;
widget←v20784 = widget←v3748;
{
word pd27;
if (((* (( (ptr) widget←v20784)+4) ) == (* (( (ptr) gf←c22272)+9)/* xBiScrollerClass←v2804 */ ))) {
var←c21568 = 1;
}
else {
pd27 = (* (( (ptr) (* (( (ptr) gf←c22272)+62)/* var←c21632 */ ))+40) );
var←c21568 = (word) ( *( (fPt) ((* (ptr) pd27 ))))(widget←v20784, (* (( (ptr) gf←c22272)+9)/* xBiScrollerClass←v2804 */ ), pd27)
;
};
};
return(var←c21568);
};
}
static void XBiScrollerInitInstPart←P300(widget←v8812, arguments←v8840)
word widget←v8812;
word arguments←v8840;
{
register ptr gf←c22304 = (ptr) &globalframe;
word xbsd←v5496;
/* XBiScrollerInitInstPart: */
SOURCE(1715, 438)
SOURCE(1769, 36)
xbsd←v5496 = XR←NewObject(16, (* (( (ptr) gf←c22304)+15) ));
SOURCE(1807, 57)
{
word val←v20736;
val←v20736 = xbsd←v5496;
{
word idx28;
word limit29;
(* ((( (ptr) widget←v8812)+49)+(
idx28 = (* (( (ptr) (* (( (ptr) gf←c22304)+9)/* xBiScrollerClass←v2804 */ ))+4) ),
limit29 = (* (( (ptr) widget←v8812)+48) ),
BCK(idx28, limit29)
)) ) = val←v20736;
};
};
SOURCE(1866, 48)
{
word pd30;
pd30 = (* (( (ptr) (* (( (ptr) gf←c22304)+61)/* var←c21504 */ ))+5) );
(* (ptr) xbsd←v5496 ) = (word) ( *( (fPt) ((* (ptr) pd30 ))))((* (W9Pt) (( (ptr) gf←c22304)+50)/* var←c21376 */ ), 0, 0, 0, pd30)
;
};
SOURCE(1916, 56)
{
word pd31;
pd31 = (* (( (ptr) (* (( (ptr) gf←c22304)+59)/* var←c21440 */ ))+8) );
(void) ( *( (fPt) ((* (ptr) pd31 ))))(widget←v8812, (* (ptr) xbsd←v5496 ), 0, 0, pd31);
};
SOURCE(1974, 86)
{
word pd32;
pd32 = (* (( (ptr) (* (( (ptr) gf←c22304)+62)/* var←c21632 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd32 ))))((* (ptr) xbsd←v5496 ), (* (ptr) (* (( (ptr) (* (( (ptr) gf←c22304)+62)/* var←c21632 */ ))+18)
) ), (word) (( (bPt) gf←c22304)+88)/* var←c20896 */ , widget←v8812, pd32);
};
SOURCE(2062, 91)
{
word pd33;
pd33 = (* (( (ptr) (* (( (ptr) gf←c22304)+62)/* var←c21632 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd33 ))))((* (ptr) xbsd←v5496 ), (* (ptr) (* (( (ptr) (* (( (ptr) gf←c22304)+62)/* var←c21632 */ ))+16)
) ), (word) (( (bPt) gf←c22304)+88)/* var←c20896 */ , widget←v8812, pd33);
};
}
static void GetInnerSize←P360(formal←c055, w←v4080)
word formal←c055;
word w←v4080;
{
W2 sz←v4124;
/* GetInnerSize: */
SOURCE(2159, 194)
SOURCE(2159, 194)
sz←v4124.f0 = 200;
sz←v4124.f1 = 200;
SOURCE(2233, 120)
if ((w←v4080 != 0)) {
SOURCE(2249, 50)
{
word x34;
word idx35;
word x36;
sz←v4124.f0 = (x36 = (
idx35 = (word) (x34 = (* (( (ptr) w←v4080)+41) ),
MAX((int)(word), x34, 1)),
SGNCK(idx35)
),
MIN( (unsigned) , x36, 10000));
};
SOURCE(2301, 52)
{
word x37;
word idx38;
word x39;
sz←v4124.f1 = (x39 = (
idx38 = (word) (x37 = (* (( (ptr) w←v4080)+42) ),
MAX((int)(word), x37, 1)),
SGNCK(idx38)
),
MIN( (unsigned) , x39, 10000));
};
};
/* removed tail goto */
(* (W2Pt) formal←c055 ) = sz←v4124;
return;
}
static void GetOuterSize←P420(formal←c060, w←v4184)
word formal←c060;
word w←v4184;
{
W2 sz←v4228;
/* GetOuterSize: */
SOURCE(2362, 215)
SOURCE(2362, 215)
sz←v4228.f0 = 200;
sz←v4228.f1 = 200;
SOURCE(2436, 141)
if ((w←v4184 != 0)) {
SOURCE(2450, 129)
{
word b←v5540;
SOURCE(2452, 47)
{
word x40;
word idx41;
word x42;
b←v5540 = (x42 = (
idx41 = (word) (x40 = (* (( (ptr) w←v4184)+43) ),
MAX((int)(word), x40, 0)),
SGNCK(idx41)
),
MIN( (unsigned) , x42, 500));
};
SOURCE(2501, 20)
(void) GetInnerSize←P360((word) &sz←v4228, w←v4184);
SOURCE(2523, 25)
sz←v4228.f0 = (sz←v4228.f0 + IOP2( * , (int)2, (int)b←v5540));
SOURCE(2550, 27)
sz←v4228.f1 = (sz←v4228.f1 + IOP2( * , (int)2, (int)b←v5540));
};
};
/* removed tail goto */
(* (W2Pt) formal←c060 ) = sz←v4228;
return;
}
static void Scroll←P480(biScrollerFrame←v8900, hAction←v8928, vAction←v8956, x←v8984, y←v9012, event←v9040, clientData←v9068)
word biScrollerFrame←v8900;
word hAction←v8928;
word vAction←v8956;
word x←v8984;
word y←v9012;
word event←v9040;
word clientData←v9068;
{
register ptr gf←c22336 = (ptr) &globalframe;
word xBiScroller←v5584;
word doit←v5612 = 0;
word xbsd←v5640;
word dummyChild←v5668;
word realChild←v5696;
W2 docsz←v5724;
W2 winsz←v5752;
W2 p←v5780;
/* Scroll: */
SOURCE(2586, 904)
SOURCE(2628, 42)
xBiScroller←v5584 = biScrollerFrame←v8900;
SOURCE(2702, 47)
{
word idx43;
word limit44;
xbsd←v5640 = XR←Narrow((* ((( (ptr) xBiScroller←v5584)+49)+(
idx43 = (* (( (ptr) (* (( (ptr) gf←c22336)+9)/* xBiScrollerClass←v2804 */ ))+4) ),
limit44 = (* (( (ptr) xBiScroller←v5584)+48) ),
BCK(idx43, limit44)
)) ), (* (( (ptr) gf←c22336)+15) ));
};
SOURCE(2751, 40)
dummyChild←v5668 = (* (ptr) xbsd←v5640 );
SOURCE(2793, 54)
{
word pd45;
pd45 = (* (( (ptr) (* (( (ptr) gf←c22336)+61)/* var←c21504 */ ))+7) );
realChild←v5696 = (word) ( *( (fPt) ((* (ptr) pd45 ))))(dummyChild←v5668, pd45);
};
SOURCE(2849, 40)
(void) GetOuterSize←P420((word) &docsz←v5724, realChild←v5696);
SOURCE(2891, 41)
(void) GetInnerSize←P360((word) &winsz←v5752, dummyChild←v5668);
SOURCE(2934, 33)
SOURCE(6133, 93)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c22336)+16)/* LOCK←v2748 */ ));
SOURCE(6208, 18)
p←v5780 = (* (W2Pt) (( (ptr) xbsd←v5640)+1) );
(void) (XR←MonitorExit((word) (( (bPt) gf←c22336)+16)/* LOCK←v2748 */ ));
SOURCE(2969, 214)
{
word var←c21728;
var←c21728 = hAction←v8928;
switch (var←c21728) {
case 3:
SOURCE(3000, 33)
{
word pd46;
word x47;
float tf48;
pd46 = (* (( (ptr) (* (( (ptr) gf←c22336)+63)/* var←c21760 */ ))+6) );
p←v5780.f0 = INEG((word) ( *( (fPt) ((* (ptr) pd46 ))))((
tf48 = (
x47 = x←v8984, *(float*)&x47
) * (float)(int)docsz←v5724.f0, *(word*)&tf48
), pd46));
};
SOURCE(3035, 11)
doit←v5612 = 1;
break;
case 2:
SOURCE(3064, 37)
{
word pd49;
word x50;
float tf51;
pd49 = (* (( (ptr) (* (( (ptr) gf←c22336)+63)/* var←c21760 */ ))+6) );
p←v5780.f0 = (p←v5780.f0 - (word) ( *( (fPt) ((* (ptr) pd49 ))))((
tf51 = (
x50 = x←v8984, *(float*)&x50
) * (float)(int)winsz←v5752.f0, *(word*)&tf51
), pd49));
};
SOURCE(3103, 11)
doit←v5612 = 1;
break;
case 1:
SOURCE(3133, 37)
{
word pd52;
word x53;
float tf54;
pd52 = (* (( (ptr) (* (( (ptr) gf←c22336)+63)/* var←c21760 */ ))+6) );
p←v5780.f0 = (p←v5780.f0 + (word) ( *( (fPt) ((* (ptr) pd52 ))))((
tf54 = (
x53 = x←v8984, *(float*)&x53
) * (float)(int)winsz←v5752.f0, *(word*)&tf54
), pd52));
};
SOURCE(3172, 11)
doit←v5612 = 1;
break;
};
};
SOURCE(3203, 217)
{
word var←c21792;
var←c21792 = vAction←v8956;
switch (var←c21792) {
case 3:
SOURCE(3234, 34)
{
word pd55;
word x56;
float tf57;
pd55 = (* (( (ptr) (* (( (ptr) gf←c22336)+63)/* var←c21760 */ ))+6) );
p←v5780.f1 = INEG((word) ( *( (fPt) ((* (ptr) pd55 ))))((
tf57 = (
x56 = y←v9012, *(float*)&x56
) * (float)(int)docsz←v5724.f1, *(word*)&tf57
), pd55));
};
SOURCE(3270, 11)
doit←v5612 = 1;
break;
case 2:
SOURCE(3299, 38)
{
word pd58;
word x59;
float tf60;
pd58 = (* (( (ptr) (* (( (ptr) gf←c22336)+63)/* var←c21760 */ ))+6) );
p←v5780.f1 = (p←v5780.f1 - (word) ( *( (fPt) ((* (ptr) pd58 ))))((
tf60 = (
x59 = y←v9012, *(float*)&x59
) * (float)(int)winsz←v5752.f1, *(word*)&tf60
), pd58));
};
SOURCE(3339, 11)
doit←v5612 = 1;
break;
case 1:
SOURCE(3369, 38)
{
word pd61;
word x62;
float tf63;
pd61 = (* (( (ptr) (* (( (ptr) gf←c22336)+63)/* var←c21760 */ ))+6) );
p←v5780.f1 = (p←v5780.f1 + (word) ( *( (fPt) ((* (ptr) pd61 ))))((
tf63 = (
x62 = y←v9012, *(float*)&x62
) * (float)(int)winsz←v5752.f1, *(word*)&tf63
), pd61));
};
SOURCE(3409, 11)
doit←v5612 = 1;
break;
};
};
SOURCE(3440, 50)
if ((0 != doit←v5612)) {
SOURCE(3453, 37)
(void) PublicSetState←P780(xBiScroller←v5584, p←v5780, event←v9040);
};
}
static void SetFilterProc←P540(xBiScroller←v4376, filterProc←v4404, filterData←v4432)
word xBiScroller←v4376;
word filterProc←v4404;
word filterData←v4432;
{
register ptr gf←c22368 = (ptr) &globalframe;
word xbsd←v5824;
word pair←v5852 = 0;
/* SetFilterProc: */
SOURCE(3581, 279)
SOURCE(3686, 47)
{
word idx64;
word limit65;
xbsd←v5824 = XR←Narrow((* ((( (ptr) xBiScroller←v4376)+49)+(
idx64 = (* (( (ptr) (* (( (ptr) gf←c22368)+9)/* xBiScrollerClass←v2804 */ ))+4) ),
limit65 = (* (( (ptr) xBiScroller←v4376)+48) ),
BCK(idx64, limit65)
)) ), (* (( (ptr) gf←c22368)+15) ));
};
SOURCE(3763, 72)
if ((filterProc←v4404 != 0)) {
SOURCE(3786, 49)
{
word var←c21824;
var←c21824 = XR←NewObject(8, (* (( (ptr) gf←c22368)+14) ));
(* (ptr) var←c21824 ) = XR←CheckProc(filterProc←v4404);
(* (( (ptr) var←c21824)+1) ) = filterData←v4432;
pair←v5852 = var←c21824;
};
};
SOURCE(3837, 23)
(* (( (ptr) xbsd←v5824)+3) ) = pair←v5852;
}
static word Child←P600(xBiScroller←v4504)
word xBiScroller←v4504;
{
register ptr gf←c22400 = (ptr) &globalframe;
word var←c4548;
word xbsd←v5908;
/* Child: */
SOURCE(3864, 169)
SOURCE(3864, 169)
var←c4548 = 0;
SOURCE(3940, 47)
{
word idx66;
word limit67;
xbsd←v5908 = XR←Narrow((* ((( (ptr) xBiScroller←v4504)+49)+(
idx66 = (* (( (ptr) (* (( (ptr) gf←c22400)+9)/* xBiScrollerClass←v2804 */ ))+4) ),
limit67 = (* (( (ptr) xBiScroller←v4504)+48) ),
BCK(idx66, limit67)
)) ), (* (( (ptr) gf←c22400)+15) ));
};
SOURCE(3989, 44)
{
word pd68;
pd68 = (* (( (ptr) (* (( (ptr) gf←c22400)+61)/* var←c21504 */ ))+7) );
return((word) ( *( (fPt) ((* (ptr) pd68 ))))((* (ptr) (xbsd←v5908) ), pd68));
};
}
static void ReplaceChild←P660(xBiScroller←v4608, child←v4636, delayed←v4664, preventDestructionOfOldChild←v4692)
word xBiScroller←v4608;
word child←v4636;
word delayed←v4664;
word preventDestructionOfOldChild←v4692;
{
register ptr gf←c22432 = (ptr) &globalframe;
word xbsd←v5952;
/* ReplaceChild: */
SOURCE(4039, 280)
SOURCE(4182, 47)
{
word idx69;
word limit70;
xbsd←v5952 = XR←Narrow((* ((( (ptr) xBiScroller←v4608)+49)+(
idx69 = (* (( (ptr) (* (( (ptr) gf←c22432)+9)/* xBiScrollerClass←v2804 */ ))+4) ),
limit70 = (* (( (ptr) xBiScroller←v4608)+48) ),
BCK(idx69, limit70)
)) ), (* (( (ptr) gf←c22432)+15) ));
};
SOURCE(4231, 88)
{
word pd71;
pd71 = (* (( (ptr) (* (( (ptr) gf←c22432)+61)/* var←c21504 */ ))+8) );
(void) ( *( (fPt) ((* (ptr) pd71 ))))((* (ptr) xbsd←v5952 ), child←v4636, delayed←v4664, preventDestructionOfOldChild←v4692, pd71)
;
};
}
static word SizeSubtract←P720(szVal←v4752, sub←v4780)
word szVal←v4752;
word sub←v4780;
{
word var←c4824;
/* SizeSubtract: */
SOURCE(4325, 118)
SOURCE(4385, 41)
if (( (int)szVal←v4752 > (int)0)) {
SOURCE(4401, 25)
szVal←v4752 = (MAX((int)(word), (szVal←v4752 - sub←v4780), 1));
};
SOURCE(4428, 15)
return(szVal←v4752);
}
static void PublicSetState←P780(xBiScroller←v4884, p←v4912, event←v4940)
word xBiScroller←v4884;
W2 p←v4912;
word event←v4940;
{
register ptr gf←c22464 = (ptr) &globalframe;
word xbsd←v5996;
word pair←v6024;
/* PublicSetState: */
SOURCE(4447, 310)
SOURCE(4543, 47)
{
word idx72;
word limit73;
xbsd←v5996 = XR←Narrow((* ((( (ptr) xBiScroller←v4884)+49)+(
idx72 = (* (( (ptr) (* (( (ptr) gf←c22464)+9)/* xBiScrollerClass←v2804 */ ))+4) ),
limit73 = (* (( (ptr) xBiScroller←v4884)+48) ),
BCK(idx72, limit73)
)) ), (* (( (ptr) gf←c22464)+15) ));
};
SOURCE(4592, 38)
pair←v6024 = (* (( (ptr) xbsd←v5996)+3) );
SOURCE(4632, 125)
if ((pair←v6024 == 0)) {
SOURCE(4658, 43)
(void) DirectSetState←P900(xBiScroller←v4884, p←v4912, event←v4940);
}
else {
SOURCE(4701, 56)
{
word pd74;
pd74 = (* (ptr) pair←v6024 );
(void) ( *( (fPt) ((* (ptr) pd74 ))))(xBiScroller←v4884, p←v4912, (* (( (ptr) pair←v6024)+1) ), event←v4940, pd74);
};
};
}
static void CheckChildState←P840(widget←v9128, registerData←v9156, callData←v9184, event←v9212)
word widget←v9128;
word registerData←v9156;
word callData←v9184;
word event←v9212;
{
register ptr gf←c22496 = (ptr) &globalframe;
word xBiScroller←v6080;
word xbsd←v6108;
W4 state←v6136;
word f←v6164;
W2 docSize←v6192;
W2 winSize←v6220;
W2 p←v6248;
/* CheckChildState: */
SOURCE(4762, 659)
SOURCE(4804, 46)
xBiScroller←v6080 = XR←Narrow(registerData←v9156, (* (( (ptr) gf←c22496)+11) ));
SOURCE(4852, 47)
{
word idx75;
word limit76;
xbsd←v6108 = XR←Narrow((* ((( (ptr) xBiScroller←v6080)+49)+(
idx75 = (* (( (ptr) (* (( (ptr) gf←c22496)+9)/* xBiScrollerClass←v2804 */ ))+4) ),
limit76 = (* (( (ptr) xBiScroller←v6080)+48) ),
BCK(idx75, limit76)
)) ), (* (( (ptr) gf←c22496)+15) ));
};
SOURCE(4944, 68)
{
word var←c21888;
{
word pd77;
pd77 = (* (( (ptr) (* (( (ptr) gf←c22496)+61)/* var←c21504 */ ))+7) );
var←c21888 = (word) ( *( (fPt) ((* (ptr) pd77 ))))((* (ptr) (xbsd←v6108) ), pd77);
};
(void) GetOuterSize←P420((word) &docSize←v6192, var←c21888);
};
SOURCE(5014, 48)
(void) GetInnerSize←P360((word) &winSize←v6220, (* (ptr) xbsd←v6108 ));
SOURCE(5064, 33)
SOURCE(6133, 93)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c22496)+16)/* LOCK←v2748 */ ));
SOURCE(6208, 18)
p←v6248 = (* (W2Pt) (( (ptr) xbsd←v6108)+1) );
(void) (XR←MonitorExit((word) (( (bPt) gf←c22496)+16)/* LOCK←v2748 */ ));
SOURCE(5099, 49)
{
word var←c0144;
{
word x78;
float tf79;
f←v6164 = (
tf79 = (float)(int)(x78 = INEG(p←v6248.f1),
MAX((int)(word), x78, 0)), *(word*)&tf79
);
};
var←c0144 = f←v6164;
{
word x80;
*(float*)&state←v6136.f2 = (
x80 = var←c0144, *(float*)&x80
) / (float)(int)docSize←v6192.f1;
};
};
SOURCE(5150, 48)
{
word var←c0145;
{
word x81;
float tf82;
f←v6164 = (
tf82 = (float)(int)(x81 = INEG(p←v6248.f0),
MAX((int)(word), x81, 0)), *(word*)&tf82
);
};
var←c0145 = f←v6164;
{
word x83;
*(float*)&state←v6136.f0 = (
x83 = var←c0145, *(float*)&x83
) / (float)(int)docSize←v6192.f0;
};
};
SOURCE(5200, 66)
{
word var←c0146;
word var←c0147;
{
float tf84;
f←v6164 = (
tf84 = (float)(int)winSize←v6220.f1, *(word*)&tf84
);
};
var←c0146 = f←v6164;
{
word x85;
*(float*)&var←c0147 = (
x85 = var←c0146, *(float*)&x85
) / (float)(int)docSize←v6192.f1;
};
{
word x86;
word x87;
*(float*)&state←v6136.f3 = (
x86 = state←v6136.f2, *(float*)&x86
) + (
x87 = var←c0147, *(float*)&x87
);
};
};
SOURCE(5268, 64)
{
word var←c0148;
word var←c0149;
{
float tf88;
f←v6164 = (
tf88 = (float)(int)winSize←v6220.f0, *(word*)&tf88
);
};
var←c0148 = f←v6164;
{
word x89;
*(float*)&var←c0149 = (
x89 = var←c0148, *(float*)&x89
) / (float)(int)docSize←v6192.f0;
};
{
word x90;
word x91;
*(float*)&state←v6136.f1 = (
x90 = state←v6136.f0, *(float*)&x90
) + (
x91 = var←c0149, *(float*)&x91
);
};
};
SOURCE(5359, 62)
{
word pd92;
pd92 = (* (( (ptr) (* (( (ptr) gf←c22496)+59)/* var←c21440 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd92 ))))(xBiScroller←v6080, state←v6136, event←v9212, pd92);
};
}
static void DirectSetState←P900(formal←c0152, formal←c0153, formal←c0154)
word formal←c0152;
W2 formal←c0153;
word formal←c0154;
{
W11 var←c22528;
/* declaration of xBiScroller←v5000 skipped */
/* declaration of p←v5028 skipped */
/* declaration of event←v5056 skipped */
register ptr gf←c22560 = (ptr) &globalframe;
/* declaration of var←c21952 skipped */
/* declaration of xbsd←v6292 skipped */
word rootTQ←v6320;
(* (( (ptr) &var←c22528)+4)/* xBiScroller←v5000 */ ) = formal←c0152;
(* (W2Pt) (( (ptr) &var←c22528)+5)/* p←v5028 */ ) = formal←c0153;
(* (( (ptr) &var←c22528)+7)/* event←v5056 */ ) = formal←c0154;
/* DirectSetState: */
SOURCE(5427, 456)
{
word tmpAddr93;
tmpAddr93 = (word) (( (ptr) &var←c22528)+8)/* var←c21952 */ ;
(* (ptr) tmpAddr93 ) = ( ((word) (fPt) action←P1236) );
(* (( (ptr) tmpAddr93) + 1) ) = 1;
};
SOURCE(5523, 47)
{
word idx94;
word limit95;
(* (( (ptr) &var←c22528)+10)/* xbsd←v6292 */ ) = XR←Narrow((* ((( (ptr) (* (( (ptr) &var←c22528)+4)/* xBiScroller←v5000 */ ))+49)
+(
idx94 = (* (( (ptr) (* (( (ptr) gf←c22560)+9)/* xBiScrollerClass←v2804 */ ))+4) ),
limit95 = (* (( (ptr) (* (( (ptr) &var←c22528)+4)/* xBiScroller←v5000 */ ))+48) ),
BCK(idx94, limit95)
)) ), (* (( (ptr) gf←c22560)+15) ));
};
SOURCE(5572, 34)
rootTQ←v6320 = (* (( (ptr) (* (( (ptr) &var←c22528)+4)/* xBiScroller←v5000 */ ))+45) );
SOURCE(5786, 97)
if ((rootTQ←v6320 == 0) || ((* (( (ptr) (* (( (ptr) &var←c22528)+4)/* xBiScroller←v5000 */ ))+38) ) >= 2)) {
SOURCE(5837, 15)
(void) action←P1236((word) ((( (bPt) &var←c22528)+32)/* var←c21952 */ ));
}
else {
SOURCE(5852, 31)
{
word pd96;
pd96 = (* (( (ptr) (* (( (ptr) gf←c22560)+64)/* var←c21984 */ ))+65) );
(void) ( *( (fPt) ((* (ptr) pd96 ))))(rootTQ←v6320, (word) (( (bPt) &var←c22528)+32)/* var←c21952 */ , pd96);
};
};
}
static void action←P1236(formal←c22624)
word formal←c22624;
{
register ptr gf←c22592 = (ptr) &globalframe;
formal←c22624 = (formal←c22624 - 32);
/* action: */
SOURCE(5608, 173)
SOURCE(5628, 22)
SOURCE(5628, 22)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c22592)+16)/* LOCK←v2748 */ ));
SOURCE(6115, 13)
(* (W2Pt) (( (ptr) (* (( (ptr) formal←c22624)+10) ))+1) ) = (* (W2Pt) (( (ptr) formal←c22624)+5) );
(void) (XR←MonitorExit((word) (( (bPt) gf←c22592)+16)/* LOCK←v2748 */ ));
SOURCE(5673, 42)
{
word pd97;
pd97 = (* (( (ptr) (* (( (ptr) gf←c22592)+61)/* var←c21504 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd97 ))))((* (ptr) (* (( (ptr) formal←c22624)+10) ) ), (* (W2Pt) (( (ptr) formal←c22624)+5)
), pd97);
};
SOURCE(5717, 64)
{
word pd98;
pd98 = (* (( (ptr) (* (( (ptr) gf←c22592)+60)/* var←c21472 */ ))+4) );
(void) ( *( (fPt) ((* (ptr) pd98 ))))((* (( (ptr) formal←c22624)+4) ), (* (( (ptr) gf←c22592)+8)/* stateChanged←v2776 */ ), (* (
( (ptr) formal←c22624)+10) ), (* (( (ptr) formal←c22624)+7) ), pd98);
};
}
static void GetState←P960(formal←c0127, xBiScroller←v5116)
word formal←c0127;
word xBiScroller←v5116;
{
register ptr gf←c22656 = (ptr) &globalframe;
W2 p←v5160;
word xbsd←v6408;
/* GetState: */
SOURCE(5890, 152)
SOURCE(5965, 47)
{
word idx99;
word limit100;
xbsd←v6408 = XR←Narrow((* ((( (ptr) xBiScroller←v5116)+49)+(
idx99 = (* (( (ptr) (* (( (ptr) gf←c22656)+9)/* xBiScrollerClass←v2804 */ ))+4) ),
limit100 = (* (( (ptr) xBiScroller←v5116)+48) ),
BCK(idx99, limit100)
)) ), (* (( (ptr) gf←c22656)+15) ));
};
SOURCE(6014, 28)
{
W2 var←c22080;
{
W2 var←c22048;
SOURCE(6133, 93)
(void) (XR←MonitorEntry((word) (( (bPt) gf←c22656)+16)/* LOCK←v2748 */ ));
SOURCE(6208, 18)
var←c22048 = (* (W2Pt) (( (ptr) xbsd←v6408)+1) );
(void) (XR←MonitorExit((word) (( (bPt) gf←c22656)+16)/* LOCK←v2748 */ ));
var←c22080 = var←c22048;
};
p←v5160 = var←c22080;
/* removed tail goto */
};
(* (W2Pt) formal←c0127 ) = p←v5160;
return;
}
/* file: XTkXBiScrollerImpl, module: XTkXBiScrollerImpl, compiled at: September 17, 1993 10:34:20 am PDT */
extern void XR←install←XTkXBiScrollerImpl() {
NoName←Q1632();
}
extern void XR←run←XTkXBiScrollerImpl() { XR←Start(&globalframe); }