home *** CD-ROM | disk | FTP | other *** search
- /***************************************************************************/
- /* Programm : EasyMouse V1.0 (c)1989 Oliver Enseling */
- /* Funktion : Screenblanker,SunMouse,usw. */
- /* Version : 01.000 */
- /* */
- /* Autor Datum Kommentar */
- /* Boller 10.7.89 Erstversion Beginn */
- /* Boller 02.9.89 Erstversion testfertig für Lattice 5.02 */
- /* Boller 05.10.89 noch im debugging */
- /***************************************************************************/
-
- #include <exec/types.h>
- #include <exec/memory.h>
- #include <exec/devices.h>
- #include <intuition/intuition.h>
- #include <intuition/intuitionbase.h>
- #include <graphics/gfxmacros.h>
- #include <hardware/custom.h>
- #include <hardware/dmabits.h>
- #include <devices/inputevent.h>
- #include <devices/input.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <dos.h>
- #include <string.h>
- #include <proto/all.h>
-
- #define DEUTSCH
-
- #include "easymouse.i"
-
- extern struct Custom far custom;
-
- /* HotKeys + Qualifier Keys */
-
- #define LEFT (0x4f | 0x80)
- #define RIGHT (0x4e | 0x80)
- #define UP (0x4c | 0x80)
- #define DOWN (0x4d | 0x80)
- #define Q (0x10 | 0x80)
- #define F (0x23 | 0x80)
- #define B (0x35 | 0x80)
- #define A (0x20 | 0x80)
- #define MINUS (0x3a | 0x80)
- #define KOMMA (0x38 | 0x80)
- #define PUNKT (0x39 | 0x80)
- #define DEL (0x46 | 0x80)
- #define LSHIFT 0x60
- #define RSHIFT 0x61
- #define CTRL 0x63
- #define LALT 0x64
- #define RALT 0x65
- #define CAPS 0x62
- #define COMMODORE 0x66
- #define RAMIGA 0x67
-
- /* Konstante Werte */
-
- #define MY_QUALIFIER (IEQUALIFIER_LCOMMAND | IEQUALIFIER_LSHIFT)
- #define OPTION_NAME "s:EasyMouse.config"
-
- /* Struktur mit den veränderbaren Einstellungen des Programmes */
-
- struct Options {
- WORD MinMem, MouseDelay, ScreenDelay, MouseAccel,
- MouseTresh, FrontClicks, WindowX, WindowY;
- BOOL Flag_Click2Back, Flag_CollectQuals, Flag_AutoActivate, Flag_ClockFront,
- Out_Time, Out_Mem, Out_Chip, Out_Fast;
- } Options =
- {
- 1, 4, 5, 3, 2, 1, 0, 0, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE
- };
-
- LONG MouseDelay[] =
- {0x7fffffff, 1, 2, 3, 5, 10, 15, 30, 60};
- LONG ScreenDelay[] =
- {0x7fffffff, 30, 60, 120, 180, 300, 600, 900, 1800};
- LONG MinMem[] =
- {25 * 1024, 50 * 1024, 75 * 1024, 100 * 1024, 150 * 1024,
- 200 * 1024, 250 * 1024, 500 * 1025, 1024 * 1024};
- BOOL EndIt = FALSE;
- char OutputStr[80];
-
- /* Menudefinition */
-
- #include "menu.c"
-
- /* globale Variablen zur Auswertung einer IntuiMessage */
-
- ULONG class;
- USHORT code, qualifier;
- APTR iaddress;
-
- struct IntuitionBase *IntuitionBase;
-
- struct DOSLibrary *DOSBase;
- struct LayersBase *LayersBase;
- extern struct ExecBase *SysBase;
- struct Window *Window;
- struct NewWindow NW =
- {0, 0, 500, 10, 0, 1, CLOSEWINDOW | MENUPICK, SMART_REFRESH, NULL, NULL,
- (UBYTE *) "EasyMouse V1.0", NULL, NULL, 0, 0, 0, 0, WBENCHSCREEN};
- struct Screen *myscreen;
- struct NewScreen NS =
- {0, 0, 320, 200, 1, 1, 0, NULL, CUSTOMSCREEN | SCREENQUIET};
-
- /* globale Vars */
-
- LONG MouseTimer, ScreenTimer;
- struct IOStdReq *InputBlock;
-
- /*
- * TestMsg: Testen, ob eine Message da ist und ggf Werte
- * bereitstellen
- */
-
- BOOL
- TestMsg(win)
- struct Window *win;
- {
- struct IntuiMessage *msg;
-
- if (msg = (struct IntuiMessage *) GetMsg(win->UserPort)) {
- class = msg->Class;
- code = msg->Code;
- iaddress = msg->IAddress;
-
- ReplyMsg((struct Message *) msg);
- return (TRUE);
- }
- return (FALSE);
- }
-
- /* GetDeviceBlock: Device-Block anlegen und initialisieren */
-
- void *
- GetDeviceBlock(size)
- ULONG size;
- {
- struct MsgPort *device_port = NULL;
- APTR device_request = NULL;
-
- device_port = (struct MsgPort *) CreatePort(0L, 0L);
- if (device_port == 0L)
- return (NULL);
- device_request = (APTR) CreateExtIO(device_port, size);
- if (device_request == 0L) {
- DeletePort(device_port);
- return (NULL);
- }
- return (device_request);
- }
-
- /* FreeDeviceBlock: Device-Block freigeben */
-
- void
- FreeDeviceBlock(iorequest)
- struct IORequest *iorequest;
- {
- if (iorequest != 0L) {
- if (iorequest->io_Message.mn_ReplyPort != 0L)
- DeletePort(iorequest->io_Message.mn_ReplyPort);
- DeleteExtIO(iorequest);
- }
- }
-
- /* Open_A_Device: Device öffnen */
-
- BOOL
- Open_A_Device(name, unit, device_request, flags, size)
- char *name;
- ULONG unit;
- struct IORequest **device_request;
- ULONG flags, size;
- {
- UWORD error;
-
- if (size != 0L)
- if (!(*device_request = GetDeviceBlock(size)))
- return (FALSE);
- error = OpenDevice(name, unit, *device_request, flags);
- if (error != 0L) {
- return (FALSE);
- }
- return (TRUE);
- }
-
- /* Close_A_Device: Device schließen und Device-Block freigeben */
-
- void
- Close_A_Device(iorequest)
- struct IORequest *iorequest;
- {
- if (iorequest != 0L) {
- if (iorequest->io_Message.mn_ReplyPort != 0L)
- DeletePort(iorequest->io_Message.mn_ReplyPort);
- if (iorequest->io_Device != 0L)
- CloseDevice(iorequest);
- DeleteExtIO(iorequest);
- }
- }
-
- /* Do_Command: Device-Kommando ausführen */
-
- void
- Do_Command(deviceblock, command)
- struct IORequest *deviceblock;
- UWORD command;
- {
- deviceblock->io_Command = command;
- DoIO(deviceblock);
- }
-
- struct Interrupt Input_Handler;
-
- /* Input_AddHandler: Eigene C-Routine in Input-Handler einbinden */
-
- void
- Input_AddHandler(ireq, handler, data)
- struct IOStdReq *ireq;
- void *handler;
- APTR data;
- {
- Input_Handler.is_Data = data;
- Input_Handler.is_Code = handler;
- Input_Handler.is_Node.ln_Pri = 51;
- ireq->io_Data = (APTR) & Input_Handler;
- Do_Command(ireq, (UWORD) IND_ADDHANDLER);
- }
-
- /* Input_RemHandler: Input-Handler ausschalten */
-
- void
- Input_RemHandler(ireq)
- struct IOStdReq *ireq;
- {
- ireq->io_Data = (APTR) & Input_Handler;
- Do_Command(ireq, (UWORD) IND_REMHANDLER);
- }
-
- /* CloseAll: Alles ordnungsgemäß schließen */
-
- void
- CloseAll(str)
- register char *str;
- {
- char buffer[80];
-
- if (str) {
- if (IntuitionBase) {
- strcpy(buffer + 3, str);
- buffer[0] = 0;
- buffer[1] = 40;
- buffer[2] = 20;
- DisplayAlert(RECOVERY_ALERT, buffer, 50L);
- } else
- puts(str);
- }
- if (InputBlock) {
- Input_RemHandler(InputBlock);
- Close_A_Device(InputBlock);
- }
- if (Window) {
- ClearMenuStrip(Window);
- CloseWindow(Window);
- }
- if (GfxBase)
- CloseLibrary(GfxBase);
- if (LayersBase)
- CloseLibrary(LayersBase);
- if (DOSBase)
- CloseLibrary(DOSBase);
- if (IntuitionBase)
- CloseLibrary((struct Library *) IntuitionBase);
- Exit(TRUE);
- }
-
- /* Optionen im Menu einstellen */
-
- void
- SetOptions()
- {
- MinMemSub[8 - Options.MinMem].Flags |= CHECKED;
- MouseDelaySub[8 - Options.MouseDelay].Flags |= CHECKED;
- ScreenDelaySub[8 - Options.ScreenDelay].Flags |= CHECKED;
- MouseAccelSub[8 - Options.MouseAccel].Flags |= CHECKED;
- MouseTreshSub[8 - Options.MouseTresh].Flags |= CHECKED;
- FrontClicksSub[2 - Options.FrontClicks].Flags |= CHECKED;
- if (Options.Flag_Click2Back)
- Click2BackItem.Flags |= CHECKED;
- if (Options.Flag_CollectQuals)
- CollectQualsItem.Flags |= CHECKED;
- if (Options.Flag_AutoActivate)
- AutoActivateItem.Flags |= CHECKED;
- if (Options.Flag_ClockFront)
- ClockFrontItem.Flags |= CHECKED;
- if (Options.Out_Time)
- TimeSub.Flags |= CHECKED;
- if (Options.Out_Mem)
- MemSub.Flags |= CHECKED;
- if (Options.Out_Chip)
- ChipSub.Flags |= CHECKED;
- if (Options.Out_Fast)
- FastSub.Flags |= CHECKED;
- }
-
- /* Fenster schließen, an Werte aus Options anpassen und wieder öffnen */
-
- void
- SetWindow()
- {
- if (Window) {
- Options.WindowX = Window->LeftEdge;
- Options.WindowY = Window->TopEdge;
- ClearMenuStrip(Window);
- CloseWindow(Window);
- }
- NW.LeftEdge = Options.WindowX;
- NW.TopEdge = Options.WindowY;
- NW.Width = 38;
- if (Options.Out_Time)
- NW.Width += 15 * 8;
- if (Options.Out_Mem)
- NW.Width += 17 * 8;
- if (Options.Out_Chip)
- NW.Width += 13 * 8;
- if (Options.Out_Fast)
- NW.Width += 13 * 8;
- NW.Width = max(NW.Width, 142);
- NW.Flags = WINDOWCLOSE | WINDOWDRAG | SMART_REFRESH;
- if (!Options.Flag_ClockFront) {
- NW.Flags |= WINDOWDEPTH;
- NW.Width += 52;
- }
- if (!(Window = OpenWindow(&NW)))
- #ifdef DEUTSCH
- CloseAll("EasyMouse kann kein Fenster öffnen !!!");
- #else
- CloseAll("Unable to open window\n");
- #endif
- SetMenuStrip(Window, &Menu1);
- }
-
- /* Window unter der Maus ermitteln */
-
- struct Window *
- MouseWindow()
- {
- SHORT x, y;
- struct Layer_Info *li;
- struct Layer *l;
-
- li = &IntuitionBase->FirstScreen->LayerInfo;
- x = IntuitionBase->FirstScreen->MouseX;
- y = IntuitionBase->FirstScreen->MouseY;
- l = WhichLayer(li, (LONG) x, (LONG) y);
- return ((struct Window *) l->Window);
- }
-
- /* Bildschirm ein- und ausschalten */
-
- void
- BlackScreen()
- {
- if (myscreen == 0) {
- myscreen = OpenScreen(&NS);
- SetRGB4(&(myscreen->ViewPort), 0, 0, 0, 0);
- }
- OFF_DISPLAY
- OFF_SPRITE
- }
-
- void
- NormalScreen()
- {
- ON_DISPLAY
- if (myscreen)
- CloseScreen(myscreen);
- myscreen = 0;
- }
-
- /* IHandler: Input-Handler */
-
- struct InputEvent *__saveds __interrupt
- IHandler()
- {
- struct InputEvent *masterevent = (struct InputEvent *) getreg(REG_A0), **event = &masterevent;
- static ULONG extraquals;
- static LONG nmics, nsecs, omics, osecs;
- struct Window *w = MouseWindow();
- struct Screen *s = IntuitionBase->FirstScreen;
- ULONG ilock = LockIBase(0);
-
- while (*event) {
- USHORT iecode = (*event)->ie_Code, iequal = (*event)->ie_Qualifier, ieclass = (*event)->ie_Class;
- static USHORT lastcode;
- BOOL deleteevent = FALSE;
-
- switch (ieclass) {
- case IECLASS_RAWKEY:
-
- if (iecode >= 0x80) {
- if (iecode == lastcode | 0x80) {
- deleteevent = TRUE;
- lastcode = 0;
- }
- } else {
- ScreenTimer = ScreenDelay[Options.ScreenDelay];
- if (Options.Flag_CollectQuals) {
- if (iecode >= LSHIFT && iecode <= RAMIGA) {
- lastcode = iecode;
- deleteevent = TRUE;
- switch (iecode) {
- case LSHIFT:
- extraquals |= IEQUALIFIER_LSHIFT;
- break;
- case RSHIFT:
- extraquals |= IEQUALIFIER_RSHIFT;
- break;
- case CTRL:
- extraquals |= IEQUALIFIER_CONTROL;
- break;
- case LALT:
- extraquals |= IEQUALIFIER_LALT;
- break;
- case RALT:
- extraquals |= IEQUALIFIER_RALT;
- break;
- case COMMODORE:
- extraquals |= IEQUALIFIER_LCOMMAND;
- break;
- case RAMIGA:
- extraquals |= IEQUALIFIER_RCOMMAND;
- break;
- default:
- lastcode = 0;
- deleteevent = FALSE;
- extraquals = NULL;
- break;
- }
- } else {
- iequal |= extraquals;
- (*event)->ie_Qualifier |= extraquals;
- extraquals = 0;
- }
- }
- }
-
- if ((iequal & MY_QUALIFIER) == MY_QUALIFIER) {
- deleteevent = TRUE;
- switch (iecode) {
- case LEFT:
- MoveWindow(w, -w->LeftEdge, 0);
- break;
- case RIGHT:
- MoveWindow(w, s->Width - w->LeftEdge - w->Width, 0);
- break;
- case UP:
- MoveWindow(w, 0, -w->TopEdge);
- break;
- case DOWN:
- MoveWindow(w, 0, s->Height - w->TopEdge - w->Height);
- break;
- case F:
- if (!(w->Flags & BACKDROP))
- WindowToFront(w);
- break;
- case B:
- WindowToBack(w);
- break;
- case A:
- if (w = MouseWindow())
- ActivateWindow(w);
- break;
- case Q:
- EndIt = TRUE;
- break;
- case MINUS:
- ScreenToBack(s);
- break;
- case KOMMA:
- if (w->Flags & WINDOWSIZING)
- SizeWindow(w, w->MinWidth - w->Width,
- w->MinHeight - w->Height);
- break;
- case PUNKT:
- if (w->Flags & WINDOWSIZING)
- SizeWindow(w,
- min(w->MaxWidth - w->Width,
- s->Width - w->Width -
- w->LeftEdge),
- min(w->MaxHeight - w->Height,
- s->Height - w->Height -
- w->TopEdge));
- break;
- case DEL:
- MouseTimer = ScreenTimer = 0;
- } /* switch */
- } /* if */
- break;
-
- /* Bei Mausbewegung Maus einschalten und Maustimer zurücksetzen */
- /* evtl. ClickToFront/Back oder SunMouse + beschleunigen */
- case IECLASS_RAWMOUSE:
- MouseTimer = MouseDelay[Options.MouseDelay];
- ScreenTimer = ScreenDelay[Options.ScreenDelay];
- switch (iecode) {
- case IECODE_RBUTTON:
- if ((iequal & IEQUALIFIER_LEFTBUTTON) && Options.Flag_Click2Back)
- if (w)
- WindowToBack(w);
- break;
- case IECODE_LBUTTON:
- if (w)
- switch (Options.FrontClicks) {
- case 1:
- if (!(w->Flags & BACKDROP))
- WindowToFront(w);
- break;
- case 2:
- osecs = nsecs;
- omics = nmics;
- CurrentTime(&nsecs, &nmics);
- if (DoubleClick(osecs, omics, nsecs, nmics))
- if (!(w->Flags & BACKDROP))
- WindowToFront(w);
- } /* switch */
- break;
- case IECODE_NOBUTTON:
- if ((abs((*event)->ie_X) > Options.MouseTresh) ||
- (abs((*event)->ie_Y) > Options.MouseTresh)) {
- (*event)->ie_X *= Options.MouseAccel;
- (*event)->ie_Y *= Options.MouseAccel;
- } /* if */
- if (Options.Flag_AutoActivate)
- if (!(iequal & IEQUALIFIER_LEFTBUTTON))
- if (w != IntuitionBase->ActiveWindow)
- ActivateWindow(w);
- } /* switch */
- break;
-
- case IECLASS_TIMER:
- if (((*event)->ie_TimeStamp.tv_micro % 10) == 0) {
- MouseTimer--;
- ScreenTimer--;
- } /* if */
- } /* switch */
- if (ScreenTimer <= 0)
- BlackScreen();
- else
- NormalScreen();
- if (MouseTimer <= 0)
- OFF_SPRITE
- else
- ON_SPRITE
- if (deleteevent)
- *event = (*event)->ie_NextEvent;
- else
- event = &((*event)->ie_NextEvent);
- } /* while */
- UnlockIBase(ilock);
- return (masterevent);
- } /* function */
-
- /* OpenAll: Alles ordnungsgemäß öffnen */
-
- void
- OpenAll()
- {
- BPTR fh;
-
- if (!(IntuitionBase = (struct IntuitionBase *)
- OpenLibrary("intuition.library", 0L)))
- #ifdef DEUTSCH
- CloseAll("Intuition.Library kann nicht geöffnet werden !!!");
- #else
- CloseAll("Unable to open intuition.library\n");
- #endif
- if (!(DOSBase = (struct DOSLibrary *) OpenLibrary("dos.library", 0)))
- #ifdef DEUTSCH
- CloseAll("Dos.Library kann nicht geöffnet werden !!!");
- #else
- CloseAll("Unable to open dos.library\n");
- #endif
- if (!(LayersBase = (struct LayersBase *) OpenLibrary("layers.library", 0)))
- #ifdef DEUTSCH
- CloseAll("Layers.Library kann nicht geöffnet werden !!!");
- #else
- CloseAll("Unable to open layers.library\n");
- #endif
- if (!(GfxBase = (struct GfxBase *) OpenLibrary("graphics.library", 0)))
- #ifdef DEUTSCH
- CloseAll("Graphics.Library kann nicht geöffnet werden !!!");
- #else
- CloseAll("Unable to open graphics.library\n");
- #endif
- if (fh = Open(OPTION_NAME, MODE_OLDFILE)) {
- Read(fh, (char *) &Options, sizeof(Options));
- Close(fh);
- }
- SetOptions();
- SetWindow();
- if (!(Open_A_Device("input.device", 0L, &InputBlock, 0L, sizeof(*InputBlock))))
- #ifdef DEUTSCH
- CloseAll("Input.Device kann nicht geöffnet werden !!!");
- #else
- CloseAll("Unable to open input.device\n");
- #endif
- Input_AddHandler(InputBlock, IHandler, NULL);
- }
-
- /*
- * Main: Hauptprogramm,Menüabfrage,Update von Uhr- und
- * Speicheranzeige
- */
-
- void
- main(argc, argv)
- int argc;
- char **argv;
- {
- LONG fast, chipmem, mem;
- BPTR fh;
-
- OpenAll();
- MouseTimer = MouseDelay[Options.MouseDelay];
- ScreenTimer = ScreenDelay[Options.ScreenDelay];
- FOREVER
- {
- struct Window *w = IntuitionBase->ActiveWindow;
- struct Screen *s = IntuitionBase->FirstScreen;
- char buffer[40];
-
- if (EndIt)
- CloseAll(NULL);
- Delay(50);
- if (Options.Flag_ClockFront)
- UpfrontLayer(&Window->WScreen->LayerInfo, Window->WLayer);
- fast = AvailMem(MEMF_FAST);
- chipmem = AvailMem(MEMF_CHIP);
- mem = chipmem + fast;
- OutputStr[0] = 0;
- if (Options.Out_Time) {
- long sec, mic;
- CurrentTime(&sec, &mic);
- #ifdef DEUTSCH
- sprintf(buffer, " Zeit %2d:%2d:%2d ", sec / 3600 % 24, sec / 60 % 60, sec % 60);
- #else
- sprintf(buffer, " Time %2d:%2d:%2d ", sec / 3600 % 24, sec / 60 % 60, sec % 60);
- #endif
- strcat(OutputStr, buffer);
- }
- if (Options.Out_Mem) {
- #ifdef DEUTSCH
- sprintf(buffer, " Speicher %-7d", mem);
- #else
- sprintf(buffer, " Memory %-7d", mem);
- #endif
- strcat(OutputStr, buffer);
- }
- if (Options.Out_Chip) {
- sprintf(buffer, " CHIP %-7d", chipmem);
- strcat(OutputStr, buffer);
- }
- if (Options.Out_Fast) {
- sprintf(buffer, " FAST %-7d ", fast);
- strcat(OutputStr, buffer);
- }
- OutputText.FrontPen = mem < MinMem[Options.MinMem] ? 3 : 1;
- PrintIText(Window->RPort, &OutputText,
- Window->WScreen->ViewPort.Modes & HIRES ? 0 : -14, 0);
- if (TestMsg(Window)) {
- switch (class) {
- case CLOSEWINDOW:
- CloseAll(NULL);
- case MENUPICK:
- switch (MENUNUM(code)) {
- case 0: /* Aktionen */
- switch (ITEMNUM(code)) {
- case 0: /* Display off */
- ScreenTimer = 0;
- break;
- case 1: /* Screen2Back */
- ScreenToBack(s);
- break;
- case 6: /* Window links */
- WindowToFront(w);
- MoveWindow(w, -w->LeftEdge, 0);
- break;
- case 7: /* Window rechts */
- WindowToFront(w);
- MoveWindow(w, s->Width - w->LeftEdge - w->Width, 0);
- break;
- case 8: /* Window oben */
- WindowToFront(w);
- MoveWindow(w, 0, -w->TopEdge);
- break;
- case 9: /* Window unten */
- WindowToFront(w);
- MoveWindow(w, 0, s->Height - w->TopEdge - w->Height);
- break;
- case 12: /* Ende */
- CloseAll(NULL);
- }
- break;
- case 1: /* Optionen */
- switch (ITEMNUM(code)) {
- case 1: /* Number of Clicks-To-Front */
- if ((SUBNUM(code) >= 0) && (SUBNUM(code) <= 2))
- Options.FrontClicks = SUBNUM(code);
- break;
- case 4: /* Mindestspeicher */
- if ((SUBNUM(code) >= 0) && (SUBNUM(code) <= 8))
- Options.MinMem = SUBNUM(code);
- break;
- case 5: /* Anzeige */
- Options.Out_Time = TimeSub.Flags & CHECKED;
- Options.Out_Mem = MemSub.Flags & CHECKED;
- Options.Out_Chip = ChipSub.Flags & CHECKED;
- Options.Out_Fast = FastSub.Flags & CHECKED;
- break;
- case 6: /* ScreenBlank */
- if ((SUBNUM(code) >= 0) && (SUBNUM(code) <= 8))
- Options.ScreenDelay = SUBNUM(code);
- break;
- case 7: /* N]ouseBlank */
- if ((SUBNUM(code) >= 0) && (SUBNUM(code) <= 8))
- Options.MouseDelay = SUBNUM(code);
- break;
- case 8: /* Mouse-Acceleration */
- if ((SUBNUM(code) >= 0) && (SUBNUM(code) <= 8))
- Options.MouseAccel = SUBNUM(code) + 1;
- break;
- case 9: /* Mouse-Acceleration-Treshhold
- * */
- if ((SUBNUM(code) >= 0) && (SUBNUM(code) <= 8))
- Options.MouseTresh = SUBNUM(code);
- break;
- case 11: /* Save Options */
- if (fh = Open(OPTION_NAME, MODE_NEWFILE)) {
- Options.WindowX = Window->LeftEdge;
- Options.WindowY = Window->TopEdge;
- Write(fh, (char *) &Options, sizeof(Options));
- Close(fh);
- } else
- DisplayBeep(NULL);
- }
- Options.Flag_Click2Back = Click2BackItem.Flags & CHECKED;
- Options.Flag_CollectQuals = CollectQualsItem.Flags & CHECKED;
- Options.Flag_AutoActivate = AutoActivateItem.Flags & CHECKED;
- Options.Flag_ClockFront = ClockFrontItem.Flags & CHECKED;
- SetWindow();
- break;
- }
- break;
- }
- }
- }
- }
-