/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: December 16, 1992 11:03:05 am PST */
/* C2C version: October 7, 1992 (native) */
/* ref-counting: off */
/* file: XTkBitmapScrollerImpl, module: XTkBitmapScrollerImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1662744278,476171680] XTkBitmapScrollerImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; word r;} W9;
typedef struct {word f0, f1;} W2;
typedef W9 *W9Pt;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef W2 *W2Pt;
typedef struct {W8 f; W2 r;} W10;
#define SOURCE(p, l) /* source p, l */
#define MAX(cast, x, y) ( ( cast x) > ( cast y) ? (x) : (y) )
#define INEG(x) ( (word) ( - ((int) (word) (x)) ) )
#define MIN(cast, x, y) ( ( cast x) < ( cast y) ? (x) : (y) )
#define FMAX(x, y, tx, ty) ( (tx=((float) x)) >= (ty=((float) y)) ? tx : ty )
static float fc67 = 0.0;
static void NoName←Q1212();
static void XTkBitmapScrollerImpl←P0();
static word GetData←P60();
static word CreateBitmapScroller←P120();
static void PostRealize←P180();
static void BiScrollerProc←P240();
static void SetBitmap←P300();
static void GetBitmap←P360();
static void CreateAndSetBitmap←P420();
static word CreateContext←P480();
static void ShowScrollbars←P540();
static void ScrollTo←P600();
static void action←P1152();
static void GetScrollPos←P660();
static void Wait←P720();
static word GetImplData←P780();
static word GetImplWidget←P840();
static void GetVisibleBox←P900();
static struct {unsigned f; char r[4];} string1 = {65540, "\242\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\143\033\166\326\300\034\141\315\240\100\200\000\000"};
static struct {unsigned f; char r[4];} string3 = {196611, "\004L\003"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\033\115\307\000\300\214\060\055\310\100\244\000\000"};
static struct {unsigned f; char r[40];} string5 = {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];} string6 = {851984, "\257\300\143\033\166\326\300\034\141\315\240\100\164\000\000"};
static struct {unsigned f; char r[4];} string7 = {131074, "\003\010\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\243\162\130\311\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\256\061\211\265\300\052\170\134\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\245\223\103\375\300\127\103\204\036\100\150\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\114\360\325\157\300\264\322\230\211\100\150\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\100\164\000\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\033\115\307\000\300\214\060\055\310\100\150\000\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\241\353\232\337\300\356\000\215\116\100\150\000\000"};
static struct {
word f0[13]; word f13; word f14; word f15;
word f16; word f17; 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[2]; word f46; word f47; word f48;
word f49; word f50; word f51; word f52[2];
word f54; word f55; word f56; word f57;
word f58[8];
} globalframe = {
{0}, (word) GetVisibleBox←P900, 0, (word) GetImplWidget←P840,
0, (word) GetImplData←P780, 0, (word) Wait←P720,
0, (word) GetScrollPos←P660, 0, (word) ScrollTo←P600,
0, (word) ShowScrollbars←P540, 0, (word) CreateContext←P480,
0, (word) CreateAndSetBitmap←P420, 0, (word) GetBitmap←P360,
0, (word) SetBitmap←P300, 0, (word) BiScrollerProc←P240,
0, (word) PostRealize←P180, 0, (word) CreateBitmapScroller←P120,
0, (word) GetData←P60, 0, (word) XTkBitmapScrollerImpl←P0,
{0}, (word) 2147483648, (word) 2147483648, (word) 2147483648,
(word) 2147483648, (word) 2147483648, (word) 3, {0},
(word) 2147483648, (word) 2147483648, (word) 2147483647, (word) 2147483647,
{0}
};
static void NoName←Q1212()
{
register ptr gf←c0126 = (ptr) &globalframe;
word var←c17652;
(* (( (ptr) gf←c0126)+9) ) = (word) XR←GetTypeIndexS((word) (&string1));
(* (( (ptr) gf←c0126)+11) ) = (word) XR←GetTypeIndex((word) &string2, 0, (word) &string3);
(* (( (ptr) gf←c0126)+12) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
(void) XR←DeclareGlobalFrame((word) "XTkBitmapScrollerImpl", &globalframe, (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7)
, (word) (( (bPt) gf←c0126)+172)/* var←c16820 */ );
var←c17652 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string8)), 11);
(* (( (ptr) gf←c0126)+62)/* var←c17268 */ ) = var←c17652;
(void) XR←ImportProcS(var←c17652, 67371521);
var←c17652 = (word) XR←ImportInterface((word) "SF", (word) XR←GetTypeIndexS((word) (&string9)), 19);
(* (( (ptr) gf←c0126)+61)/* var←c17204 */ ) = var←c17652;
(void) XR←ImportProcS(var←c17652, 135267842);
(void) XR←ImportProcS(var←c17652, 135270145);
var←c17652 = (word) XR←ImportInterface((word) "XlBitmap", (word) XR←GetTypeIndexS((word) (&string10)), 14);
(* (( (ptr) gf←c0126)+63)/* var←c17332 */ ) = var←c17652;
(void) XR←ImportProcS(var←c17652, 68158467);
(void) XR←ImportProcS(var←c17652, 268699393);
var←c17652 = (word) XR←ImportInterface((word) "XTkBiScrollerFrame", (word) XR←GetTypeIndexS((word) (&string11)), 10);
(* (( (ptr) gf←c0126)+60)/* var←c17140 */ ) = var←c17652;
(void) XR←ImportProcS(var←c17652, 1574403);
(void) XR←ImportProcS(var←c17652, 1050884);
(void) XR←ImportProcS(var←c17652, 70779141);
var←c17652 = (word) XR←ImportInterface((word) "XTkBitmapWidgets", (word) XR←GetTypeIndexS((word) (&string12)), 8);
(* (( (ptr) gf←c0126)+59)/* var←c17076 */ ) = var←c17652;
(void) XR←ImportProcS(var←c17652, 67372801);
(void) XR←ImportProcS(var←c17652, 525314);
(void) XR←ImportProcS(var←c17652, 2621958);
(void) XR←ImportProcS(var←c17652, 67634434);
(void) XR←ImportProcS(var←c17652, 69992451);
var←c17652 = (word) XR←ImportInterface((word) "Xl", (word) XR←GetTypeIndexS((word) (&string13)), 218);
(* (( (ptr) gf←c0126)+64)/* var←c17492 */ ) = var←c17652;
(void) XR←ImportProcS(var←c17652, 539906);
var←c17652 = (word) XR←ImportInterface((word) "XTk", (word) XR←GetTypeIndexS((word) (&string14)), 50);
(* (( (ptr) gf←c0126)+58)/* var←c17012 */ ) = var←c17652;
(void) XR←ImportProcS(var←c17652, 1050628);
(void) XR←ImportProcS(var←c17652, 788227);
(void) XR←ImportProcS(var←c17652, 67634690);
var←c17652 = (word) XR←ExportInterface((word) "XTkBitmapScroller", (word) XR←GetTypeIndexS((word) (&string15)), 11);
(* (( (ptr) gf←c0126)+65)/* var←c17684 */ ) = var←c17652;
(void) XR←ExportProcS(var←c17652, (word) (( (bPt) gf←c0126)+156)/* var←c16756 */ , 70778885);
(void) XR←ExportProcS(var←c17652, (word) (( (bPt) gf←c0126)+132)/* var←c16660 */ , 1310980);
(void) XR←ExportProcS(var←c17652, (word) (( (bPt) gf←c0126)+124)/* var←c16628 */ , 134480385);
(void) XR←ExportProcS(var←c17652, (word) (( (bPt) gf←c0126)+116)/* var←c16596 */ , 1835781);
(void) XR←ExportProcS(var←c17652, (word) (( (bPt) gf←c0126)+108)/* var←c16564 */ , 67372033);
(void) XR←ExportProcS(var←c17652, (word) (( (bPt) gf←c0126)+92)/* var←c16500 */ , 787714);
(void) XR←ExportProcS(var←c17652, (word) (( (bPt) gf←c0126)+84)/* var←c16468 */ , 134481409);
(void) XR←ExportProcS(var←c17652, (word) (( (bPt) gf←c0126)+52)/* var←c16340 */ , 268699393);
(void) XR←ExportProcS(var←c17652, (word) (( (bPt) gf←c0126)+76)/* var←c16436 */ , 526338);
(void) XR←ExportProcS(var←c17652, (word) (( (bPt) gf←c0126)+68)/* var←c16404 */ , 67373313);
(void) XR←ExportProcS(var←c17652, (word) (( (bPt) gf←c0126)+60)/* var←c16372 */ , 67373569);
}
static void XTkBitmapScrollerImpl←P0(formal←c032, formal←c031)
word formal←c032;
word formal←c031;
{
register ptr gf←c17716 = (ptr) &globalframe;
/* XTkBitmapScrollerImpl: */
SOURCE(107, 5929)
/* 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(643, 25)
(* (( (ptr) gf←c17716)+8)/* myKey←v2888 */ ) = XR←NewObject(4, (* (( (ptr) gf←c17716)+9) ));
}
static word GetData←P60(scroller←v3656)
word scroller←v3656;
{
register ptr gf←c17748 = (ptr) &globalframe;
word var←c3700;
/* GetData: */
SOURCE(671, 124)
SOURCE(744, 51)
{
word pd16;
pd16 = (* (( (ptr) (* (( (ptr) gf←c17748)+58)/* var←c17012 */ ))+10) );
return(XR←Narrow((word) ( *( (fPt) ((* (ptr) pd16 ))))(scroller←v3656, (* (( (ptr) gf←c17748)+8)/* myKey←v2888 */ ), pd16)
, (* (( (ptr) gf←c17748)+11) )));
};
}
static word CreateBitmapScroller←P120(widgetSpec←v3772, scrolledCallBack←v3800, scrollTQ←v3828, scrollData←v3856, insideSize←v3884)
W9 widgetSpec←v3772;
word scrolledCallBack←v3800;
word scrollTQ←v3828;
word scrollData←v3856;
W2 insideSize←v3884;
{
register ptr gf←c17780 = (ptr) &globalframe;
word var←c3940;
word data←v5252;
word bitmap←v5280;
word biScroller←v5308;
/* CreateBitmapScroller: */
SOURCE(801, 878)
SOURCE(989, 135)
data←v5252 = XR←NewObject(48, (* (( (ptr) gf←c17780)+11) ));
(* (( (ptr) data←v5252)+2) ) = 1;
(* (( (ptr) data←v5252)+3) ) = 1;
(* (( (ptr) data←v5252)+6) ) = 1;
(* (( (ptr) data←v5252)+9) ) = XR←CheckProc(scrolledCallBack←v3800);
(* (( (ptr) data←v5252)+10) ) = scrollTQ←v3828;
(* (( (ptr) data←v5252)+11) ) = scrollData←v3856;
SOURCE(1126, 72)
{
word pd17;
pd17 = (* (( (ptr) (* (( (ptr) gf←c17780)+59)/* var←c17076 */ ))+4) );
bitmap←v5280 = (word) ( *( (fPt) ((* (ptr) pd17 ))))((* (W9Pt) (( (ptr) gf←c17780)+45)/* var←c16884 */ ), 0, 0, pd17);
};
(* (( (ptr) data←v5252)+1) ) = bitmap←v5280;
SOURCE(1200, 131)
{
word pd18;
pd18 = (* (( (ptr) (* (( (ptr) gf←c17780)+60)/* var←c17140 */ ))+5) );
biScroller←v5308 = (word) ( *( (fPt) ((* (ptr) pd18 ))))(widgetSpec←v3772, bitmap←v5280, insideSize←v3884, 1, 1, pd18);
};
SOURCE(1333, 42)
{
word pd19;
pd19 = (* (( (ptr) (* (( (ptr) gf←c17780)+58)/* var←c17012 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd19 ))))(biScroller←v5308, (* (( (ptr) gf←c17780)+8)/* myKey←v2888 */ ), data←v5252, pd19)
;
};
SOURCE(1377, 80)
{
word pd20;
pd20 = (* (( (ptr) (* (( (ptr) gf←c17780)+58)/* var←c17012 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd20 ))))(bitmap←v5280, (* (ptr) (* (( (ptr) (* (( (ptr) gf←c17780)+58)/* var←c17012 */ ))+17)
) ), (word) (( (bPt) gf←c17780)+148)/* var←c16724 */ , biScroller←v5308, pd20);
};
SOURCE(1459, 75)
{
word pd21;
pd21 = (* (( (ptr) (* (( (ptr) gf←c17780)+58)/* var←c17012 */ ))+12) );
(void) ( *( (fPt) ((* (ptr) pd21 ))))(bitmap←v5280, (* (ptr) (* (( (ptr) (* (( (ptr) gf←c17780)+58)/* var←c17012 */ ))+19)
) ), (word) (( (bPt) gf←c17780)+148)/* var←c16724 */ , biScroller←v5308, pd21);
};
SOURCE(1536, 121)
{
word pd22;
pd22 = (* (( (ptr) (* (( (ptr) gf←c17780)+60)/* var←c17140 */ ))+13) );
(void) ( *( (fPt) ((* (ptr) pd22 ))))(biScroller←v5308, (word) (( (bPt) gf←c17780)+140)/* var←c16692 */ , data←v5252, scrollTQ←v3828, pd22)
;
};
SOURCE(1659, 20)
return(biScroller←v5308);
}
static void PostRealize←P180(widget←v8968, registerData←v8996, callData←v9024, event←v9052)
word widget←v8968;
word registerData←v8996;
word callData←v9024;
word event←v9052;
{
register ptr gf←c17812 = (ptr) &globalframe;
word scroller←v5364;
/* PostRealize: */
SOURCE(1683, 126)
SOURCE(1721, 43)
scroller←v5364 = XR←Narrow(registerData←v8996, (* (( (ptr) gf←c17812)+12) ));
SOURCE(1766, 43)
{
W2 var←c17172;
(void) GetScrollPos←P660((word) &var←c17172, scroller←v5364);
(void) ScrollTo←P600(scroller←v5364, var←c17172);
};
}
static void BiScrollerProc←P240(biScrollerFrame←v9112, hAction←v9140, vAction←v9168, x←v9196, y←v9224, event←v9252, clientData←v9280)
word biScrollerFrame←v9112;
word hAction←v9140;
word vAction←v9168;
word x←v9196;
word y←v9224;
word event←v9252;
word clientData←v9280;
{
register ptr gf←c17844 = (ptr) &globalframe;
word data←v5408;
W4 bmBox←v5436;
W2 bmSize←v5464;
W2 wPos←v5492;
word windowH←v5520;
word windowW←v5548;
/* BiScrollerProc: */
SOURCE(1813, 1017)
SOURCE(1863, 48)
data←v5408 = XR←Narrow(clientData←v9280, (* (( (ptr) gf←c17844)+11) ));
SOURCE(1913, 35)
bmBox←v5436 = (* (W4Pt) (( (ptr) data←v5408)+2) );
SOURCE(1950, 31)
{
word pd23;
pd23 = (* (( (ptr) (* (( (ptr) gf←c17844)+61)/* var←c17204 */ ))+19) );
(void) ( *( (fPt) ((* (ptr) pd23 ))))((word) &bmSize←v5464, bmBox←v5436, pd23);
};
SOURCE(1983, 31)
wPos←v5492 = (* (W2Pt) (( (ptr) data←v5408)+7) );
SOURCE(2016, 45)
windowH←v5520 = (* (( (ptr) (* (( (ptr) data←v5408)+1) ))+42) );
SOURCE(2063, 44)
windowW←v5548 = (* (( (ptr) (* (( (ptr) data←v5408)+1) ))+41) );
SOURCE(2109, 227)
{
word var←c17236;
var←c17236 = hAction←v9140;
switch (var←c17236) {
case 2:
SOURCE(2141, 37)
{
word pd24;
word x25;
float tf26;
pd24 = (* (( (ptr) (* (( (ptr) gf←c17844)+62)/* var←c17268 */ ))+6) );
wPos←v5492.f0 = (word) ( *( (fPt) ((* (ptr) pd24 ))))((
tf26 = (float)(int)wPos←v5492.f0 - ((
x25 = x←v9196, *(float*)&x25
) * (float)(int)windowW←v5548), *(word*)&tf26
), pd24);
};
break;
case 1:
SOURCE(2194, 37)
{
word pd27;
word x28;
float tf29;
pd27 = (* (( (ptr) (* (( (ptr) gf←c17844)+62)/* var←c17268 */ ))+6) );
wPos←v5492.f0 = (word) ( *( (fPt) ((* (ptr) pd27 ))))((
tf29 = (float)(int)wPos←v5492.f0 + ((
x28 = x←v9196, *(float*)&x28
) * (float)(int)windowW←v5548), *(word*)&tf29
), pd27);
};
break;
case 3:
SOURCE(2243, 93)
{
word thumbBaseX←v5604;
SOURCE(2245, 42)
{
word x30;
thumbBaseX←v5604 = (x30 = (bmSize←v5464.f1 - windowW←v5548),
MAX((int)(word), x30, 0));
};
SOURCE(2289, 47)
{
word pd31;
word x32;
float tf33;
pd31 = (* (( (ptr) (* (( (ptr) gf←c17844)+62)/* var←c17268 */ ))+6) );
wPos←v5492.f0 = INEG((word) ( *( (fPt) ((* (ptr) pd31 ))))((
tf33 = (float)(int)bmBox←v5436.f1 + ((
/*1*/ x32 = x←v9196, *(float*)&x32
/*1*/ ) * (float)(int)thumbBaseX←v5604), *(word*)&tf33
), pd31));
};
};
break;
case 4:
break;
};
};
SOURCE(2371, 227)
{
word var←c17300;
var←c17300 = vAction←v9168;
switch (var←c17300) {
case 2:
SOURCE(2403, 37)
{
word pd34;
word x35;
float tf36;
pd34 = (* (( (ptr) (* (( (ptr) gf←c17844)+62)/* var←c17268 */ ))+6) );
wPos←v5492.f1 = (word) ( *( (fPt) ((* (ptr) pd34 ))))((
tf36 = (float)(int)wPos←v5492.f1 - ((
x35 = y←v9224, *(float*)&x35
) * (float)(int)windowH←v5520), *(word*)&tf36
), pd34);
};
break;
case 1:
SOURCE(2456, 37)
{
word pd37;
word x38;
float tf39;
pd37 = (* (( (ptr) (* (( (ptr) gf←c17844)+62)/* var←c17268 */ ))+6) );
wPos←v5492.f1 = (word) ( *( (fPt) ((* (ptr) pd37 ))))((
tf39 = (float)(int)wPos←v5492.f1 + ((
x38 = y←v9224, *(float*)&x38
) * (float)(int)windowH←v5520), *(word*)&tf39
), pd37);
};
break;
case 3:
SOURCE(2505, 93)
{
word thumbBaseY←v5648;
SOURCE(2507, 42)
{
word x40;
thumbBaseY←v5648 = (x40 = (bmSize←v5464.f0 - windowH←v5520),
MAX((int)(word), x40, 0));
};
SOURCE(2551, 47)
{
word pd41;
word x42;
float tf43;
pd41 = (* (( (ptr) (* (( (ptr) gf←c17844)+62)/* var←c17268 */ ))+6) );
wPos←v5492.f1 = INEG((word) ( *( (fPt) ((* (ptr) pd41 ))))((
tf43 = (float)(int)bmBox←v5436.f0 + ((
/*1*/ x42 = y←v9224, *(float*)&x42
/*1*/ ) * (float)(int)thumbBaseY←v5648), *(word*)&tf43
), pd41));
};
};
break;
case 4:
break;
};
};
SOURCE(2633, 45)
{
word x44;
word x45;
wPos←v5492.f0 = (x44 = wPos←v5492.f0,
x45 = INEG(bmBox←v5436.f1),
MIN((int)(word), x44, x45));
};
SOURCE(2680, 34)
{
word x46;
word x47;
wPos←v5492.f0 = (x46 = wPos←v5492.f0,
x47 = INEG(bmBox←v5436.f3),
MAX((int)(word), x46, x47));
};
SOURCE(2716, 45)
{
word x48;
word x49;
wPos←v5492.f1 = (x48 = wPos←v5492.f1,
x49 = INEG(bmBox←v5436.f0),
MIN((int)(word), x48, x49));
};
SOURCE(2763, 34)
{
word x50;
word x51;
wPos←v5492.f1 = (x50 = wPos←v5492.f1,
x51 = INEG(bmBox←v5436.f2),
MAX((int)(word), x50, x51));
};
SOURCE(2799, 31)
(void) ScrollTo←P600(biScrollerFrame←v9112, wPos←v5492);
}
static void SetBitmap←P300(scroller←v4000, bitmap←v4028, surfaceUnitsPerPixel←v4056, pos←v4084)
word scroller←v4000;
word bitmap←v4028;
word surfaceUnitsPerPixel←v4056;
W2 pos←v4084;
{
register ptr gf←c17876 = (ptr) &globalframe;
word data←v5692;
/* SetBitmap: */
SOURCE(2836, 333)
SOURCE(2957, 72)
{
word pd52;
pd52 = (* (( (ptr) (* (( (ptr) gf←c17876)+58)/* var←c17012 */ ))+10) );
data←v5692 = XR←Narrow((word) ( *( (fPt) ((* (ptr) pd52 ))))(scroller←v4000, (* (( (ptr) gf←c17876)+8)/* myKey←v2888 */ ), pd52)
, (* (( (ptr) gf←c17876)+11) ));
};
SOURCE(3031, 16)
(* (ptr) data←v5692 ) = bitmap←v4028;
SOURCE(3049, 45)
{
word pd53;
pd53 = (* (( (ptr) (* (( (ptr) gf←c17876)+63)/* var←c17332 */ ))+11) );
(void) ( *( (fPt) ((* (ptr) pd53 ))))((word) (( (bPt) data←v5692)+8), bitmap←v4028, pd53);
};
SOURCE(3096, 48)
(* (( (ptr) data←v5692)+6) ) = surfaceUnitsPerPixel←v4056;
SOURCE(3146, 23)
(void) ScrollTo←P600(scroller←v4000, pos←v4084);
}
static void GetBitmap←P360(formal←c079, scroller←v4144)
word formal←c079;
word scroller←v4144;
{
word bitmap←v4188;
word surfaceUnitsPerPixel←v4216;
word data←v5748;
/* GetBitmap: */
SOURCE(3175, 226)
SOURCE(3175, 226)
bitmap←v4188 = 0;
SOURCE(3286, 47)
data←v5748 = (word) GetData←P60(scroller←v4144);
SOURCE(3335, 16)
bitmap←v4188 = (* (ptr) data←v5748 );
SOURCE(3353, 48)
surfaceUnitsPerPixel←v4216 = (* (( (ptr) data←v5748)+6) );
/* removed tail goto */
(* (ptr) formal←c079 ) = bitmap←v4188;
(* (( (ptr) formal←c079)+1) ) = surfaceUnitsPerPixel←v4216;
return;
}
static void CreateAndSetBitmap←P420(scroller←v4276, size←v4304, bpp←v4332, surfaceUnitsPerPixel←v4360, pos←v4388)
word scroller←v4276;
W2 size←v4304;
word bpp←v4332;
word surfaceUnitsPerPixel←v4360;
W2 pos←v4388;
{
register ptr gf←c17908 = (ptr) &globalframe;
word bm←v5804;
/* CreateAndSetBitmap: */
SOURCE(3407, 243)
SOURCE(3549, 48)
{
word pd54;
pd54 = (* (( (ptr) (* (( (ptr) gf←c17908)+63)/* var←c17332 */ ))+8) );
bm←v5804 = (word) ( *( (fPt) ((* (ptr) pd54 ))))(size←v4304, bpp←v4332, 1, pd54);
};
SOURCE(3599, 51)
(void) SetBitmap←P300(scroller←v4276, bm←v5804, surfaceUnitsPerPixel←v4360, pos←v4388);
}
static word CreateContext←P480(scroller←v4448)
word scroller←v4448;
{
register ptr gf←c17940 = (ptr) &globalframe;
word context←v4492;
word data←v5848;
/* CreateContext: */
SOURCE(3654, 216)
SOURCE(3654, 216)
context←v4492 = 0;
SOURCE(3742, 47)
data←v5848 = (word) GetData←P60(scroller←v4448);
SOURCE(3791, 79)
{
word pd55;
pd55 = (* (( (ptr) (* (( (ptr) gf←c17940)+59)/* var←c17076 */ ))+9) );
return((word) ( *( (fPt) ((* (ptr) pd55 ))))((* (( (ptr) data←v5848)+1) ), (* (( (ptr) data←v5848)+6) ), pd55));
};
}
static void ShowScrollbars←P540(biScroller←v4552, data←v4580, pos←v4608)
word biScroller←v4552;
word data←v4580;
W2 pos←v4608;
{
register ptr gf←c17972 = (ptr) &globalframe;
W4 state2←v5904;
W4 bmBox←v5932;
W2 bmSz←v5960;
word winW←v5988;
word winH←v6016;
word pX←v6044;
word pY←v6072;
/* ShowScrollbars: */
SOURCE(3876, 890)
SOURCE(4005, 35)
bmBox←v5932 = (* (W4Pt) (( (ptr) data←v4580)+2) );
SOURCE(4042, 45)
{
W2 var←c17396;
{
word pd56;
pd56 = (* (( (ptr) (* (( (ptr) gf←c17972)+61)/* var←c17204 */ ))+19) );
(void) ( *( (fPt) ((* (ptr) pd56 ))))((word) &var←c17396, bmBox←v5932, pd56);
};
{
W2 var←c098;
{
W2 var←c17428;
var←c17428.f0 = 1;
var←c17428.f1 = 1;
{
word pd57;
pd57 = (* (( (ptr) (* (( (ptr) gf←c17972)+61)/* var←c17204 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd57 ))))((word) &var←c098, var←c17396, var←c17428, pd57);
};
};
bmSz←v5960 = var←c098;
};
};
SOURCE(4089, 49)
{
word x58;
winW←v5988 = (x58 = (* (( (ptr) (* (( (ptr) data←v4580)+1) ))+41) ),
MAX((int)(word), x58, 1));
};
SOURCE(4140, 50)
{
word x59;
winH←v6016 = (x59 = (* (( (ptr) (* (( (ptr) data←v4580)+1) ))+42) ),
MAX((int)(word), x59, 1));
};
SOURCE(4192, 33)
{
float tf60;
pX←v6044 = (
tf60 = (float)(int)INEG((pos←v4608.f0 + bmBox←v5932.f1)), *(word*)&tf60
);
};
SOURCE(4227, 33)
{
float tf61;
pY←v6072 = (
tf61 = (float)(int)INEG((pos←v4608.f1 + bmBox←v5932.f0)), *(word*)&tf61
);
};
SOURCE(4262, 208)
if (( (int)bmSz←v5960.f1 <= (int)winW←v5988)) {
SOURCE(4287, 26)
{
word x62;
*(float*)&state2←v5904.f0 = (
x62 = pX←v6044, *(float*)&x62
) / (float)(int)bmSz←v5960.f1;
};
SOURCE(4315, 59)
{
word x63;
word x64;
float tf65;
float tf66;
word x68;
*(float*)&state2←v5904.f1 = (
x63 = state2←v5904.f0, *(float*)&x63
) + (FMAX(((float)(int)bmSz←v5960.f1 - (
x64 = pX←v6044, *(float*)&x64
)), (
x68 = (* (ptr) &fc67 ), *(float*)&x68
), tf65, tf66) / (float)(int)bmSz←v5960.f1);
};
}
else {
SOURCE(4383, 89)
{
word w←v6116;
SOURCE(4385, 14)
{
float tf69;
w←v6116 = (
tf69 = (float)(int)winW←v5988, *(word*)&tf69
);
};
SOURCE(4401, 26)
{
word x70;
*(float*)&state2←v5904.f0 = (
x70 = pX←v6044, *(float*)&x70
) / (float)(int)bmSz←v5960.f1;
};
SOURCE(4429, 41)
{
word x71;
word x72;
*(float*)&state2←v5904.f1 = (
x71 = state2←v5904.f0, *(float*)&x71
) + ((
x72 = w←v6116, *(float*)&x72
) / (float)(int)bmSz←v5960.f1);
};
};
};
SOURCE(4475, 207)
if (( (int)bmSz←v5960.f0 <= (int)winH←v6016)) {
SOURCE(4499, 26)
{
word x73;
*(float*)&state2←v5904.f2 = (
x73 = pY←v6072, *(float*)&x73
) / (float)(int)bmSz←v5960.f0;
};
SOURCE(4527, 59)
{
word x74;
word x75;
float tf76;
float tf77;
word x78;
*(float*)&state2←v5904.f3 = (
x74 = state2←v5904.f2, *(float*)&x74
) + (FMAX(((float)(int)bmSz←v5960.f0 - (
x75 = pY←v6072, *(float*)&x75
)), (
x78 = (* (ptr) &fc67 ), *(float*)&x78
), tf76, tf77) / (float)(int)bmSz←v5960.f0);
};
}
else {
SOURCE(4595, 89)
{
word h←v6160;
SOURCE(4597, 14)
{
float tf79;
h←v6160 = (
tf79 = (float)(int)winH←v6016, *(word*)&tf79
);
};
SOURCE(4613, 26)
{
word x80;
*(float*)&state2←v5904.f2 = (
x80 = pY←v6072, *(float*)&x80
) / (float)(int)bmSz←v5960.f0;
};
SOURCE(4641, 41)
{
word x81;
word x82;
*(float*)&state2←v5904.f3 = (
x81 = state2←v5904.f2, *(float*)&x81
) + ((
x82 = h←v6160, *(float*)&x82
) / (float)(int)bmSz←v5960.f0);
};
};
};
SOURCE(4687, 79)
{
word pd83;
pd83 = (* (( (ptr) (* (( (ptr) gf←c17972)+60)/* var←c17140 */ ))+10) );
(void) ( *( (fPt) ((* (ptr) pd83 ))))(biScroller←v4552, state2←v5904, 0, pd83);
};
}
static void ScrollTo←P600(formal←c0143, formal←c0144)
word formal←c0143;
W2 formal←c0144;
{
W10 var←c18004;
/* declaration of scroller←v4680 skipped */
/* declaration of pos←v4708 skipped */
register ptr gf←c18036 = (ptr) &globalframe;
/* declaration of var←c17460 skipped */
/* declaration of data←v6204 skipped */
(* (( (ptr) &var←c18004)+4)/* scroller←v4680 */ ) = formal←c0143;
(* (W2Pt) (( (ptr) &var←c18004)+5)/* pos←v4708 */ ) = formal←c0144;
/* ScrollTo: */
SOURCE(4772, 440)
{
word tmpAddr84;
tmpAddr84 = (word) (( (ptr) &var←c18004)+7)/* var←c17460 */ ;
(* (ptr) tmpAddr84 ) = ( ((word) (fPt) action←P1152) );
(* (( (ptr) tmpAddr84) + 1) ) = 1;
};
SOURCE(4836, 47)
(* (( (ptr) &var←c18004)+9)/* data←v6204 */ ) = (word) GetData←P60((* ((( (ptr) &var←c18004)+4)/* scroller←v4680 */ ) ))
;
SOURCE(5132, 80)
if (((* (( (ptr) (* (( (ptr) &var←c18004)+9)/* data←v6204 */ ))+10) ) == 0)) {
SOURCE(5159, 14)
(void) action←P1152((word) ((( (bPt) &var←c18004)+28)/* var←c17460 */ ));
}
else {
SOURCE(5173, 39)
{
word pd85;
pd85 = (* (( (ptr) (* (( (ptr) gf←c18036)+64)/* var←c17492 */ ))+65) );
(void) ( *( (fPt) ((* (ptr) pd85 ))))((* (( (ptr) (* (( (ptr) &var←c18004)+9)/* data←v6204 */ ))+10) ), (word) (( (bPt) &var←c18004)+28)
/* var←c17460 */ , pd85);
};
};
}
static void action←P1152(formal←c18100)
word formal←c18100;
{
register ptr gf←c18068 = (ptr) &globalframe;
formal←c18100 = (formal←c18100 - 28);
/* action: */
SOURCE(4885, 242)
SOURCE(4902, 20)
(* (W2Pt) (( (ptr) (* (( (ptr) formal←c18100)+9) ))+7) ) = (* (W2Pt) (( (ptr) formal←c18100)+5) );
SOURCE(4924, 77)
{
word pd86;
pd86 = (* (( (ptr) (* (( (ptr) gf←c18068)+59)/* var←c17076 */ ))+6) );
(void) ( *( (fPt) ((* (ptr) pd86 ))))((* (( (ptr) (* (( (ptr) formal←c18100)+9) ))+1) ), (* (ptr) (* (( (ptr) formal←c18100)+9)
) ), (* (W4Pt) (( (ptr) gf←c18068)+54)/* var←c16948 */ ), (* (W2Pt) (( (ptr) formal←c18100)+5) ), 1, 0, pd86);
};
SOURCE(5003, 87)
if (((* (( (ptr) (* (( (ptr) formal←c18100)+9) ))+9) ) != 0)) {
SOURCE(5037, 53)
{
word pd87;
pd87 = (* (( (ptr) (* (( (ptr) formal←c18100)+9) ))+9) );
(void) ( *( (fPt) ((* (ptr) pd87 ))))((* (( (ptr) formal←c18100)+4) ), (* (W2Pt) (( (ptr) formal←c18100)+5) ), (* (( (ptr) (* (
( (ptr) formal←c18100)+9) ))+11) ), pd87);
};
};
SOURCE(5092, 35)
(void) ShowScrollbars←P540((* (( (ptr) formal←c18100)+4) ), (* (( (ptr) formal←c18100)+9) ), (* (W2Pt) (( (ptr) formal←c18100)+5)
));
}
static void GetScrollPos←P660(formal←c0112, scroller←v4768)
word formal←c0112;
word scroller←v4768;
{
W2 var←c4812;
/* GetScrollPos: */
SOURCE(5216, 109)
SOURCE(5288, 37)
{
W2 var←c17556;
var←c17556 = (* (W2Pt) (( (ptr) GetData←P60(scroller←v4768))+7) );
var←c4812 = var←c17556;
/* removed tail goto */
};
(* (W2Pt) formal←c0112 ) = var←c4812;
return;
}
static void Wait←P720(scroller←v4872, server←v4900)
word scroller←v4872;
word server←v4900;
{
register ptr gf←c18132 = (ptr) &globalframe;
/* Wait: */
SOURCE(5329, 121)
SOURCE(5396, 54)
{
word var←c17588;
var←c17588 = (word) GetImplWidget←P840(scroller←v4872);
{
word pd88;
pd88 = (* (( (ptr) (* (( (ptr) gf←c18132)+59)/* var←c17076 */ ))+8) );
(void) ( *( (fPt) ((* (ptr) pd88 ))))(var←c17588, server←v4900, pd88);
};
};
}
static word GetImplData←P780(scroller←v4960)
word scroller←v4960;
{
register ptr gf←c18164 = (ptr) &globalframe;
word var←c5004;
word w←v6304;
/* GetImplData: */
SOURCE(5456, 147)
SOURCE(5522, 39)
w←v6304 = (word) GetImplWidget←P840(scroller←v4960);
SOURCE(5563, 40)
{
word pd89;
pd89 = (* (( (ptr) (* (( (ptr) gf←c18164)+59)/* var←c17076 */ ))+11) );
return((word) ( *( (fPt) ((* (ptr) pd89 ))))(w←v6304, pd89));
};
}
static word GetImplWidget←P840(scroller←v5076)
word scroller←v5076;
{
word var←c5120;
word data←v6348;
/* GetImplWidget: */
SOURCE(5608, 144)
SOURCE(5683, 47)
data←v6348 = (word) GetData←P60(scroller←v5076);
SOURCE(5732, 20)
return((* (( (ptr) data←v6348)+1) ));
}
static void GetVisibleBox←P900(formal←c0125, scroller←v5180)
word formal←c0125;
word scroller←v5180;
{
W4 b←v5224;
word data←v6404;
/* GetVisibleBox: */
SOURCE(5758, 278)
SOURCE(5758, 278)
b←v5224.f0 = 0;
b←v5224.f1 = 0;
b←v5224.f2 = 0;
b←v5224.f3 = 0;
SOURCE(5832, 47)
data←v6404 = (word) GetData←P60(scroller←v5180);
SOURCE(5881, 27)
b←v5224.f1 = INEG((* (( (ptr) data←v6404)+7) ));
SOURCE(5910, 27)
b←v5224.f0 = INEG((* (( (ptr) data←v6404)+8) ));
SOURCE(5939, 47)
b←v5224.f3 = (b←v5224.f1 + (* (( (ptr) (* (( (ptr) data←v6404)+1) ))+41) ));
SOURCE(5988, 48)
b←v5224.f2 = (b←v5224.f1 + (* (( (ptr) (* (( (ptr) data←v6404)+1) ))+42) ));
/* removed tail goto */
(* (W4Pt) formal←c0125 ) = b←v5224;
return;
}
/* file: XTkBitmapScrollerImpl, module: XTkBitmapScrollerImpl, compiled at: December 16, 1992 11:03:04 am PST */
extern void XR←install←XTkBitmapScrollerImpl() {
NoName←Q1212();
}
extern void XR←run←XTkBitmapScrollerImpl() { XR←Start(&globalframe); }