home *** CD-ROM | disk | FTP | other *** search
- /* ST-400 Scanner Programm */
- #include <exec/exec.h>
- #include <exec/types.h>
- #include <intuition/intuition.h>
- #include <intuition/intuitionbase.h>
- #include <libraries/dos.h>
- #include <libraries/dosextens.h>
- #include <graphics/rastport.h>
- #include <libraries/reqbase.h>
- #include <req_pragmas.h>
- #include <stdio.h>
- #include <string.h>
- #include <functions.h>
- #include "stscan.h"
-
- #define PRG_VERSION (UBYTE *)"Version 2.00"
- #define ST400ID 3
- #define DEV_NAME (char*)"scsi.device" /* <- change for other SCSI controller */
-
-
- char *_procname="StScan";
- long _BackGroundIO=0;
- long _stack=50000;
- long _priority=0;
- const short asmlines=VIEWHEIGHT-1;
-
- struct Window *win;
- struct IOStdReq *diskreq;
- struct Viewport *vp;
- struct RastPort *rp;
- ULONG memneed;
- UWORD memwidth, memheight;
- UWORD membpl; /*für Verdünnung benötigt */
- UBYTE memgray;
- UBYTE *memptr;
-
- static UBYTE mf,cmp;
- static struct RastPort *wrp;
- static struct MsgPort *HCPort;
- struct IntuitionBase *IntuitionBase;
- struct GfxBase *GfxBase;
- struct DosBase *DosBase;
- struct ReqBase *ReqBase;
- static struct IntuiMessage *Message;
- static struct Screen *scr;
- static struct MsgPort *diskport;
- static long openerror;
- static UBYTE noscan;
- static USHORT *imgptrf, *imgptrz;
- static UWORD wx1,wy1,wx2,wy2;
- static UBYTE numbits_16[]={0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4};
-
- UBYTE graystep[]={0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
- UBYTE bitval[]={128,64,32,16,8,4,2,1};
- UBYTE invbitval[]={127,191,223,239,247,251,253,254};
- UBYTE revbit[]={
- 0, 128, 64, 192, 32, 160, 96, 224, 16, 144, 80, 208, 48, 176, 112, 240,
- 8, 136, 72, 200, 40, 168, 104, 232, 24, 152, 88, 216, 56, 184, 120, 248,
- 4, 132, 68, 196, 36, 164, 100, 228, 20, 148, 84, 212, 52, 180, 116, 244,
- 12, 140, 76, 204, 44, 172, 108, 236, 28, 156, 92, 220, 60, 188, 124, 252,
- 2, 130, 66, 194, 34, 162, 98, 226, 18, 146, 82, 210, 50, 178, 114, 242,
- 10, 138, 74, 202, 42, 170, 106, 234, 26, 154, 90, 218, 58, 186, 122, 250,
- 6, 134, 70, 198, 38, 166, 102, 230, 22, 150, 86, 214, 54, 182, 118, 246,
- 14, 142, 78, 206, 46, 174, 110, 238, 30, 158, 94, 222, 62, 190, 126, 254,
- 1, 129, 65, 193, 33, 161, 97, 225, 17, 145, 81, 209, 49, 177, 113, 241,
- 9, 137, 73, 201, 41, 169, 105, 233, 25, 153, 89, 217, 57, 185, 121, 249,
- 5, 133, 69, 197, 37, 165, 101, 229, 21, 149, 85, 213, 53, 181, 117, 245,
- 13, 141, 77, 205, 45, 173, 109, 237, 29, 157, 93, 221, 61, 189, 125, 253,
- 3, 131, 67, 195, 35, 163, 99, 227, 19, 147, 83, 211, 51, 179, 115, 243,
- 11, 139, 75, 203, 43, 171, 107, 235, 27, 155, 91, 219, 59, 187, 123, 251,
- 7, 135, 71, 199, 39, 167, 103, 231, 23, 151, 87, 215, 55, 183, 119, 247,
- 15, 143, 79, 207, 47, 175, 111, 239, 31, 159, 95, 223, 63, 191, 127, 255
- };
-
- struct DefWindow winpar= /*default values */
- { 0,0,32, /*dummy1, dummy2, wpsize*/
- 1,0, /*winnr, dummy3*/
- 200,200, /*resx, resy*/
- 0,0,0,0, /*cornerx, cornery, width, height*/
- 0,32,5, /*dummy4, threshold, size*/
- 0,1, /*halftone, bitspixel*/
- 0,0,0 /*dummy5,6,7*/
- };
-
- USHORT imagedataf[]=
- { 0xfff0,
- 0xfff0,
- 0xc030,
- 0xdff0,
- 0xdff0,
- 0xc0f0,
- 0xdff0,
- 0xdff0,
- 0xdff0,
- 0xdff0,
- 0xfff0,
- 0xfff0,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000};
- USHORT imagedataz[]=
- { 0xfff0,
- 0xfff0,
- 0xc030,
- 0xff70,
- 0xfef0,
- 0xfdf0,
- 0xfbf0,
- 0xf7f0,
- 0xeff0,
- 0xc030,
- 0xfff0,
- 0xfff0,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000,
- 0x0000};
-
- /* Struktures for Windows and Menus */
-
- struct TextAttr textattr=
- { "topaz.FONT",
- 8,
- FS_NORMAL,
- FPF_ROMFONT
- };
-
- /* Struktures for Gadgets */
-
- USHORT zvect2[]={0,0, 0,12, 12,12, 12,0, 0,0,
- -1,-1, -1,11, 11,11, 11,-1, -1,-1};
- USHORT zvect1[]={0,0, 0,10, 10,10, 10,0, 0,0};
-
- struct Image fullimage=
- { 0,0,
- 16,16,4,
- NULL,
- 15,0,
- NULL
- };
-
- struct Image zoomimage=
- { 0,0,
- 16,16,4,
- NULL,
- 15,0,
- NULL
- };
-
- struct Border vborder;
-
- struct Border hborder;
-
-
- struct PropInfo hprop=
- { FREEHORIZ|AUTOKNOB,
- 0,0,
- 0xffff,0xffff,
- 0,0,
- 0,0,
- 0,0
- };
-
- struct PropInfo vprop=
- { FREEVERT|AUTOKNOB,
- 0,0,
- 0xffff,0xffff,
- 0,0,
- 0,0,
- 0,0
- };
-
- struct Gadget hgad=
- { NULL,
- 0,VIEWHEIGHT+13,
- 624,15,
- 0,
- GADGIMMEDIATE|RELVERIFY,
- PROPGADGET,
- &hborder,
- NULL,
- NULL,
- 0,
- &hprop,
- 2,
- NULL
- };
-
- struct Gadget vgad=
- { &hgad,
- 625,11,
- 15,VIEWHEIGHT,
- 0,
- GADGIMMEDIATE|RELVERIFY,
- PROPGADGET,
- &vborder,
- NULL,
- NULL,
- 0,
- &vprop,
- 1,
- NULL
- };
-
- struct Gadget zgad=
- { &vgad,
- 627,VIEWHEIGHT+15,
- 12,12,
- GADGHIMAGE|GADGIMAGE,
- TOGGLESELECT|GADGIMMEDIATE|RELVERIFY,
- BOOLGADGET,
- &fullimage,
- &zoomimage,
- NULL,
- 0,
- NULL,
- 0,
- NULL
- };
-
- /* Struktures for Window and Screen */
-
- struct NewScreen ns=
- {
- 0,0,
- 640,SCREENHEIGHT,
- 4,
- 8,1,
- HIRES|LACE,
- CUSTOMSCREEN,
- &textattr,
- (UBYTE *)"Siemens ST 400 Scanner Program © FChK 1991",
- NULL,
- NULL
- };
-
- struct NewWindow nw=
- { 0,10,
- 640,SCREENHEIGHT-12,
- 8,1,
- CLOSEWINDOW|MENUPICK|GADGETUP|GADGETDOWN|MOUSEBUTTONS,
- WINDOWCLOSE|BACKDROP|BORDERLESS|ACTIVATE|SMART_REFRESH,
- &zgad,
- NULL,
- (UBYTE *)"",
- NULL,
- NULL,
- 0,0,
- 0,0,
- CUSTOMSCREEN
- };
-
- /* AHA-Requester Strukturen */
-
- struct IntuiText text_na=
- { 0,1,
- JAM2,
- 4,7,
- &textattr,
- (UBYTE *)"",
- NULL
- };
-
- struct IntuiText text_aha=
- { 0,1,
- JAM2,
- 7,4,
- &textattr,
- (UBYTE *)"OK!",
- NULL
- };
-
-
- /* Menüdaten und -strukturen */
-
- struct IntuiText text131=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" Compressed",
- NULL
- };
-
- struct IntuiText text130=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" Raw Data",
- NULL
- };
-
-
- struct IntuiText text23f=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 15",
- NULL
- };
-
- struct IntuiText text23e=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 14",
- NULL
- };
-
- struct IntuiText text23d=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 13",
- NULL
- };
-
- struct IntuiText text23c=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 12",
- NULL
- };
-
- struct IntuiText text23b=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 11",
- NULL
- };
-
- struct IntuiText text23a=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 10",
- NULL
- };
-
- struct IntuiText text239=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 9",
- NULL
- };
-
- struct IntuiText text238=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 8",
- NULL
- };
-
- struct IntuiText text237=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 7",
- NULL
- };
-
- struct IntuiText text236=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 6",
- NULL
- };
-
- struct IntuiText text235=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 5",
- NULL
- };
-
- struct IntuiText text234=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 4",
- NULL
- };
-
- struct IntuiText text233=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 3",
- NULL
- };
-
- struct IntuiText text232=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 2",
- NULL
- };
-
- struct IntuiText text231=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 1",
- NULL
- };
-
- struct IntuiText text230=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 0",
- NULL
- };
-
- struct IntuiText text221=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 16",
- NULL
- };
-
- struct IntuiText text220=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 2",
- NULL
- };
-
- struct IntuiText text211=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" DIN A4",
- NULL
- };
-
- struct IntuiText text210=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" DIN A5",
- NULL
- };
-
- struct IntuiText text202=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 400 DPI",
- NULL
- };
-
- struct IntuiText text201=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 300 DPI",
- NULL
- };
-
- struct IntuiText text200=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)" 200 DPI",
- NULL
- };
-
- struct IntuiText text53=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Cut",
- NULL
- };
-
- struct IntuiText text52=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Mirror V",
- NULL
- };
-
- struct IntuiText text51=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Mirror H",
- NULL
- };
-
- struct IntuiText text50=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Invert",
- NULL
- };
-
- struct IntuiText text43=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Set Accuracy",
- NULL
- };
-
- struct IntuiText text42=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Vectorize",
- NULL
- };
-
- struct IntuiText text41=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Thinning",
- NULL
- };
-
- struct IntuiText text40=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"To Gray",
- NULL
- };
-
- struct IntuiText text3b=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Median",
- NULL
- };
-
- struct IntuiText text3a=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Maximum",
- NULL
- };
-
- struct IntuiText text39=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Minimum",
- NULL
- };
-
- struct IntuiText text38=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Relief",
- NULL
- };
-
- struct IntuiText text37=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"VeryLow Pass",
- NULL
- };
-
- struct IntuiText text36=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"High Pass",
- NULL
- };
-
- struct IntuiText text35=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Low Pass",
- NULL
- };
-
- struct IntuiText text34=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Stretch Histo",
- NULL
- };
-
- struct IntuiText text33=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"View Histo",
- NULL
- };
-
- struct IntuiText text32=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Binarize",
- NULL
- };
-
- struct IntuiText text31=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Dither Ord",
- NULL
- };
-
- struct IntuiText text30=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Dither F-S",
- NULL
- };
-
- struct IntuiText text23=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Threshold",
- NULL
- };
-
- struct IntuiText text22=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Grayscale",
- NULL
- };
-
- struct IntuiText text21=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Size",
- NULL
- };
-
- struct IntuiText text20=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Resolution",
- NULL
- };
-
- struct IntuiText text15=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Exit Program",
- NULL
- };
-
- struct IntuiText text14=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Test Scanner",
- NULL
- };
-
- struct IntuiText text13=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Save Method...",
- NULL
- };
-
- struct IntuiText text12=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Save IFF",
- NULL
- };
-
- struct IntuiText text11=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Load IFF",
- NULL
- };
-
- struct IntuiText text10=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Read Scanner",
- NULL
- };
-
- struct IntuiText text03=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Not For Commercial Use",
- NULL
- };
-
- struct IntuiText text02=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- PRG_VERSION,
- NULL
- };
-
-
- struct IntuiText text01=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Frank-Christian Krügel",
- NULL
- };
-
- struct IntuiText text00=
- { 0,1,
- JAM2,
- 1,1,
- &textattr,
- (UBYTE *)"Program written by",
- NULL
- };
-
-
- struct MenuItem item131=
- { NULL,
- 112,10,
- 112,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT,
- 0xfffd,
- (APTR)&text131,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item130=
- { &item131,
- 112,0,
- 112,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT|CHECKED,
- 0xfffe,
- (APTR)&text130,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item23f=
- { NULL,
- 120,70,
- 40,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT,
- 0x7fff,
- (APTR)&text23f,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item23e=
- { &item23f,
- 120,60,
- 40,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT,
- 0xbfff,
- (APTR)&text23e,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item23d=
- { &item23e,
- 120,50,
- 40,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT,
- 0xdfff,
- (APTR)&text23d,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item23c=
- { &item23d,
- 120,40,
- 40,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT,
- 0xefff,
- (APTR)&text23c,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item23b=
- { &item23c,
- 120,30,
- 40,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT,
- 0xf7ff,
- (APTR)&text23b,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item23a=
- { &item23b,
- 120,20,
- 40,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT,
- 0xfbff,
- (APTR)&text23a,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item239=
- { &item23a,
- 120,10,
- 40,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT,
- 0xfdff,
- (APTR)&text239,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item238=
- { &item239,
- 120,0,
- 40,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT|CHECKED,
- 0xfeff,
- (APTR)&text238,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item237=
- { &item238,
- 80,70,
- 40,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT,
- 0xff7f,
- (APTR)&text237,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item236=
- { &item237,
- 80,60,
- 40,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT,
- 0xffbf,
- (APTR)&text236,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item235=
- { &item236,
- 80,50,
- 40,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT,
- 0xffdf,
- (APTR)&text235,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item234=
- { &item235,
- 80,40,
- 40,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT,
- 0xffef,
- (APTR)&text234,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item233=
- { &item234,
- 80,30,
- 40,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT,
- 0xfff7,
- (APTR)&text233,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item232=
- { &item233,
- 80,20,
- 40,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT,
- 0xfffb,
- (APTR)&text232,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item231=
- { &item232,
- 80,10,
- 40,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT,
- 0xfffd,
- (APTR)&text231,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item230=
- { &item231,
- 80,0,
- 40,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT,
- 0xfffe,
- (APTR)&text230,
- NULL,
- 0,
- NULL,
- 0
- };
-
-
- struct MenuItem item221=
- { NULL,
- 80,10,
- 80,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT|COMMSEQ,
- 0xfffd,
- (APTR)&text221,
- NULL,
- 'g',
- NULL,
- 0
- };
-
- struct MenuItem item220=
- { &item221,
- 80,0,
- 80,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT|CHECKED|COMMSEQ,
- 0xfffe,
- (APTR)&text220,
- NULL,
- 'z',
- NULL,
- 0
- };
-
-
- struct MenuItem item211=
- { NULL,
- 80,10,
- 112,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT|COMMSEQ,
- 0xfffd,
- (APTR)&text211,
- NULL,
- 'b',
- NULL,
- 0
- };
-
- struct MenuItem item210=
- { &item211,
- 80,0,
- 112,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT|CHECKED|COMMSEQ,
- 0xfffe,
- (APTR)&text210,
- NULL,
- 'a',
- NULL,
- 0
- };
-
-
- struct MenuItem item202=
- { NULL,
- 80,20,
- 120,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT|COMMSEQ,
- 0xfffb,
- (APTR)&text202,
- NULL,
- '4',
- NULL,
- 0
- };
-
- struct MenuItem item201=
- { &item202,
- 80,10,
- 120,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT|COMMSEQ,
- 0xfffd,
- (APTR)&text201,
- NULL,
- '3',
- NULL,
- 0
- };
-
-
- struct MenuItem item200=
- { &item201,
- 80,0,
- 120,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|CHECKIT|CHECKED|COMMSEQ,
- 0xfffe,
- (APTR)&text200,
- NULL,
- '2',
- NULL,
- 0
- };
-
-
- struct MenuItem item53=
- { NULL,
- 0,30,
- 88,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text53,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item52=
- { &item53,
- 0,20,
- 88,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text52,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item51=
- { &item52,
- 0,10,
- 88,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text51,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item50=
- { &item51,
- 0,0,
- 88,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text50,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item43=
- { NULL,
- 0,30,
- 96,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text43,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item42=
- { &item43,
- 0,20,
- 96,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text42,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item41=
- { &item42,
- 0,10,
- 96,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text41,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item40=
- { &item41,
- 0,0,
- 96,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text40,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item3b=
- { NULL,
- 0,110,
- 112,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text3b,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item3a=
- { &item3b,
- 0,100,
- 112,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text3a,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item39=
- { &item3a,
- 0,90,
- 112,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text39,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item38=
- { &item39,
- 0,80,
- 112,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text38,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item37=
- { &item38,
- 0,70,
- 112,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text37,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item36=
- { &item37,
- 0,60,
- 112,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text36,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item35=
- { &item36,
- 0,50,
- 112,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text35,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item34=
- { &item35,
- 0,40,
- 112,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text34,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item33=
- { &item34,
- 0,30,
- 112,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text33,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item32=
- { &item33,
- 0,20,
- 112,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text32,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item31=
- { &item32,
- 0,10,
- 112,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text31,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item30=
- { &item31,
- 0,0,
- 112,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text30,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item23=
- { NULL,
- 0,30,
- 120,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text23,
- NULL,
- 0,
- &item230,
- 0
- };
-
- struct MenuItem item22=
- { &item23,
- 0,20,
- 120,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text22,
- NULL,
- 0,
- &item220,
- 0
- };
-
- struct MenuItem item21=
- { &item22,
- 0,10,
- 120,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text21,
- NULL,
- 0,
- &item210,
- 0
- };
-
- struct MenuItem item20=
- { &item21,
- 0,0,
- 120,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED,
- 0,
- (APTR)&text20,
- NULL,
- 0,
- &item200,
- 0
- };
-
- struct MenuItem item15=
- { NULL,
- 0,50,
- 176,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|COMMSEQ,
- 0,
- (APTR)&text15,
- NULL,
- 'x',
- NULL,
- 0
- };
-
- struct MenuItem item14=
- { &item15,
- 0,40,
- 176,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|COMMSEQ,
- 0,
- (APTR)&text14,
- NULL,
- 't',
- NULL,
- 0
- };
-
- struct MenuItem item13=
- { &item14,
- 0,30,
- 176,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|COMMSEQ,
- 0,
- (APTR)&text13,
- NULL,
- 'c',
- &item130,
- 0
- };
-
- struct MenuItem item12=
- { &item13,
- 0,20,
- 176,10,
- ITEMTEXT|HIGHCOMP|COMMSEQ,
- 0,
- (APTR)&text12,
- NULL,
- 's',
- NULL,
- 0
- };
-
- struct MenuItem item11=
- { &item12,
- 0,10,
- 176,10,
- ITEMTEXT|HIGHCOMP|COMMSEQ|ITEMENABLED,
- 0,
- (APTR)&text11,
- NULL,
- 'l',
- NULL,
- 0
- };
-
- struct MenuItem item10=
- { &item11,
- 0,0,
- 176,10,
- ITEMTEXT|HIGHCOMP|ITEMENABLED|COMMSEQ,
- 0,
- (APTR)&text10,
- NULL,
- 'r',
- NULL,
- 0
- };
-
- struct MenuItem item03=
- { NULL,
- 0,30,
- 160,10,
- ITEMTEXT|HIGHNONE|ITEMENABLED,
- 0,
- (APTR)&text03,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item02=
- { &item03,
- 0,20,
- 160,10,
- ITEMTEXT|HIGHNONE|ITEMENABLED,
- 0,
- (APTR)&text02,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item01=
- { &item02,
- 0,10,
- 160,10,
- ITEMTEXT|HIGHNONE|ITEMENABLED,
- 0,
- (APTR)&text01,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct MenuItem item00=
- { &item01,
- 0,0,
- 160,10,
- ITEMTEXT|HIGHNONE|ITEMENABLED,
- 0,
- (APTR)&text00,
- NULL,
- 0,
- NULL,
- 0
- };
-
- struct Menu menu5=
- { NULL,
- 460,0,
- 80,8,
- NULL,
- "Transform",
- &item50
- };
-
- struct Menu menu4=
- { &menu5,
- 360,0,
- 88,8,
- NULL,
- "BW Process",
- &item40
- };
-
- struct Menu menu3=
- { &menu4,
- 250,0,
- 104,8,
- NULL,
- "Gray Process",
- &item30
- };
-
- struct Menu menu2=
- { &menu3,
- 160,0,
- 72,8,
- MENUENABLED,
- "Settings",
- &item20
- };
-
- struct Menu menu1=
- { &menu2,
- 64,0,
- 64,8,
- MENUENABLED,
- "Program",
- &item10
- };
-
- struct Menu menu0=
- { &menu1,
- 0,0,
- 40,8,
- MENUENABLED,
- "Info",
- &item00
- };
-
- void ende()
- { if (memptr) free(memptr);
- if (!(noscan))
- { if(openerror==0)
- { CloseDevice(diskreq);
- }
- if(diskport)DeletePort(diskport);
- if(diskreq)DeleteStdIO(diskreq);
- }
- if (win) { ClearMenuStrip(win); CloseWindow(win); }
- if (scr) CloseScreen(scr);
- if (imgptrf) FreeMem(imgptrf,sizeof(imagedataf));
- if (imgptrz) FreeMem(imgptrz,sizeof(imagedataz));
- if (ReqBase) CloseLibrary(ReqBase);
- if (DosBase) CloseLibrary(DosBase);
- if (GfxBase) CloseLibrary(GfxBase);
- if (IntuitionBase) CloseLibrary(IntuitionBase);
- }
-
- void menu(USHORT Code)
- {
- USHORT num,item,subitem;
- num=MENUNUM(Code);
- item=ITEMNUM(Code);
- subitem=SUBNUM(Code);
- switch(num)
- { case 0: break; /* Info */
- case 1: switch(item) /* Programm */
- { case 0: scan(); /* Einlesen */
- vprop.VertBody=(zgad.Flags&SELECTED)?0xffff:VIEWHEIGHT*65536/memheight;
- hprop.HorizBody=(zgad.Flags&SELECTED)?0xffff:624*65536/memwidth;
- vprop.VertPot=0;
- hprop.HorizPot=0;
- RefreshGadgets(&zgad,win,NULL);
- if (memneed)
- { view(0,0,(zgad.Flags&SELECTED));
- mf=0;
- }
- break;
- case 1: load();
- vprop.VertBody=(!(memheight))||(zgad.Flags&SELECTED)?0xffff:VIEWHEIGHT*65536/memheight;
- hprop.HorizBody=(!(memwidth))||(zgad.Flags&SELECTED)?0xffff:624*65536/memwidth;
- vprop.VertPot=0;
- hprop.HorizPot=0;
- RefreshGadgets(&zgad,win,NULL);
- if (memneed)
- { view(0,0,(zgad.Flags&SELECTED));
- mf=0;
- }
- break;
- case 2: save(wx1,wy1,wx2,wy2,cmp,mf); /* Speichern */
- break;
- case 3: cmp=subitem;
- break;
- case 4: inquiry();
- break;
- case 5: ende(); /* Ende */
- exit(0L);
- break;
- }
- break;
- case 2: switch(item)
- { case 0: winpar.resx=100*(subitem+2);
- winpar.resy=winpar.resx;
- break;
- case 1: winpar.size=5-subitem;
- break;
- case 2: winpar.halftone=subitem<<1;
- winpar.bitspixel=subitem ? 8 : 1;
- break;
- case 3: winpar.threshold=subitem<<2;
- break;
- }
- break;
- case 3: switch(item)
- { case 0: if ((memgray)&&(memneed))
- { floyd();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- case 1: if ((memgray)&&(memneed))
- { ordered();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- case 2: if ((memgray)&&(memneed))
- { thresh();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- case 3: if ((memgray)&&(memneed)) viewhisto(wrp);
- break;
- case 4: if ((memgray)&&(memneed))
- { stretchhisto();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- case 5: if ((memgray)&&(memneed))
- { lowpass();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- case 6: if ((memgray)&&(memneed))
- { highpass();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- case 7: if ((memgray)&&(memneed))
- { blowpass();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- case 8: if ((memgray)&&(memneed))
- { relief();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- case 9: if ((memgray)&&(memneed))
- { minop();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- case 10:if ((memgray)&&(memneed))
- { maxop();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- case 11:if ((memgray)&&(memneed))
- { median();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- }
- break;
- case 4: switch(item)
- { case 0: if ((!(memgray))&&(memneed))
- { togray();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- case 1: if ((!(memgray))&&(memneed))
- { thin();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- case 2: if ((!(memgray))&&(memneed))
- { vectorize();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- case 3: chngmaxdiff();
- break;
- }
- break;
- case 5: switch(item)
- { case 0: if (memneed)
- { invert();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- case 1: if (memneed)
- { mirrorh();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- case 2: if (memneed)
- { mirrorv();
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- }
- break;
- case 3: if (memneed)
- { cut(wx1,wy1,wx2,wy2,mf);
- if (memneed) view(hprop.HorizPot*(memwidth-624)/65536,
- vprop.VertPot*(memheight-VIEWHEIGHT)/65536,
- (zgad.Flags&SELECTED));
- mf=0;
- }
- break;
- }
- break;
- }
- }
-
- void main()
- { static ULONG MessageClass;
- static USHORT Code;
- USHORT i;
- USHORT nr;
- UWORD mx,my;
-
- if ((IntuitionBase = (struct IntuitionBase *)
- OpenLibrary("intuition.library",0L)) == 0L)
- { ende();
- exit(100L);
- }
- if ((GfxBase = (struct GfxBase *)
- OpenLibrary("graphics.library",0L))==0L)
- { ende();
- exit(100L);
- }
- if ((DosBase = (struct DosBase *)
- OpenLibrary("dos.library",0L))==0L)
- { ende();
- exit(100L);
- }
- if ((ReqBase = (struct ReqBase *)
- OpenLibrary("req.library",0L))==0L)
- { ende();
- exit(100L);
- }
- if (!(imgptrf=AllocMem(sizeof(imagedataf),MEMF_CHIP)))
- { ende();
- exit(85L);
- }
- if (!(imgptrz=AllocMem(sizeof(imagedataz),MEMF_CHIP)))
- { ende();
- exit(85L);
- }
- memneed=0;
- noscan=0;
- memcpy(imgptrf,&imagedataf,sizeof(imagedataf));
- memcpy(imgptrz,&imagedataz,sizeof(imagedataz));
- fullimage.ImageData=(USHORT *)imgptrf;
- zoomimage.ImageData=(USHORT *)imgptrz;
- if (!(scr=(struct Screen*)OpenScreen(&ns)))
- { ende();
- exit(90L);
- }
- vp=&scr->ViewPort;
- rp=&scr->RastPort;
- for (i=0;i<16;i++)
- { SetRGB4(vp,i,graystep[i],graystep[i],graystep[i]); }
- nw.Screen=scr;
- if (!(win=(struct Window *)OpenWindow(&nw)))
- { ende();
- exit(90L);
- }
- wrp=win->RPort;
- if(!(diskport=CreatePort(0L,0L)))
- { noscan=1;
- }
- if(!(diskreq=(struct IOStdReq *)CreateStdIO(diskport)))
- { noscan=1;
- if(diskport)DeletePort(diskport);
- }
- if(openerror=OpenDevice(DEV_NAME,ST400ID,diskreq,0L))
- { noscan=1;
- if(diskport)DeletePort(diskport);
- if(diskreq)DeleteStdIO(diskreq);
- }
- if (noscan)
- { item10.Flags&=(~ITEMENABLED);
- item14.Flags&=(~ITEMENABLED);
- }
- memptr=NULL;
- cmp=mf=0;
- SetMenuStrip(win,&menu0);
- for (i=0;i<256;i++) numbits[i]=numbits_16[i/16]+numbits_16[i&15];
- SetWindowTitles(win,"No area selected ",(UBYTE *)-1);
- for(;;)
- { Wait((long)(1L<<win->UserPort->mp_SigBit));
- while (Message=(struct IntuiMessage *)GetMsg(win->UserPort))
- {
- MessageClass=Message->Class;
- Code=Message->Code;
- ReplyMsg(Message);
- if (MessageClass==MENUPICK) menu(Code);
- if (((MessageClass==GADGETUP))&&(memneed))
- { if (!(Message->IAddress->GadgetID))
- { vprop.VertBody=(zgad.Flags&SELECTED)?0xffff:VIEWHEIGHT*65536/memheight;
- hprop.HorizBody=(zgad.Flags&SELECTED)?0xffff:624*65536/memwidth;
- vprop.VertPot=0;
- hprop.HorizPot=0;
- }
- view(hprop.HorizPot*(memwidth-624)/65536,vprop.VertPot*(memheight-VIEWHEIGHT)/65536,(zgad.Flags&SELECTED));
- if (mf==2) drawbox(wx1,wy1,wx2,wy2,wrp);
- RefreshGadgets(&vgad,win,NULL);
- }
- if ((MessageClass==MOUSEBUTTONS)&&(Code&128)&&(memneed))
- { mx=win->MouseX; my=win->MouseY;
- if ((mx<624)&&(my>=10)&&(my<VIEWHEIGHT))
- switch(mf)
- { case 0: wx1=s2px(mx)&0xfff8; wy1=s2py(my-11); mf=1; break;
- case 1: wx2=s2px(mx)&0xfff8; wy2=s2py(my-11); mf=2;
- drawbox(wx1,wy1,wx2,wy2,wrp); break;
- case 2: mf=0; drawbox(wx1,wy1,wx2,wy2,wrp); break;
- }
- }
- if (MessageClass==CLOSEWINDOW)
- { ende();
- exit(0L);
- } /* if */
- if ((!(memgray))&&(memneed)) menu4.Flags|=MENUENABLED;
- else menu4.Flags&=(~MENUENABLED);
- if ((memgray)&&(memneed)) menu3.Flags|=MENUENABLED;
- else menu3.Flags&=(~MENUENABLED);
- if (memneed)
- { item12.Flags|=ITEMENABLED;
- menu5.Flags|=MENUENABLED;
- }
- else
- { item12.Flags&=(~ITEMENABLED);
- menu5.Flags&=(~MENUENABLED);
- }
- switch(mf)
- { case 0: SetWindowTitles(win,"No area selected ",(UBYTE *)-1);
- item53.Flags&=(~ITEMENABLED);
- break;
- case 1: SetWindowTitles(win,"Select next point ",(UBYTE *)-1);
- item53.Flags&=(~ITEMENABLED);
- break;
- case 2: SetWindowTitles(win,"Area selected ",(UBYTE *)-1);
- item53.Flags|=ITEMENABLED;
- break;
- }
- } /* while */
- } /* for */
- } /* main */
-
-