;/* custompointer.c - Execute me to compile me with SAS C 5.10 LC -b1 -cfistq -v -y -j73 custompointer.c Blink FROM LIB:c.o,custompointer.o TO custompointer LIBRARY LIB:LC.lib,LIB:Amiga.lib quit ** ** The program shows how to set the pointer for a window. In this ** example, the pointer imagery is changed to a stopwatch symbol which ** could be used to indicate a busy period. ** ** custompointer.c - Show the use of a custom busy pointer, as well as ** using a requester to block input to a window. */ #define INTUI_V36_NAMES_ONLY #include <exec/types.h> #include <exec/libraries.h> #include <intuition/intuition.h> #include <clib/exec_protos.h> #include <clib/dos_protos.h> #include <clib/intuition_protos.h> #ifdef LATTICE int CXBRK(void) { return(0); } /* Disable Lattice CTRL/C handling */ int chkabort(void) { return(0); } /* really */ #endif struct Library *IntuitionBase; UWORD __chip waitPointer[] = { 0x0000, 0x0000, /* reserved, must be NULL */ 0x0400, 0x07C0, 0x0000, 0x07C0, 0x0100, 0x0380, 0x0000, 0x07E0, 0x07C0, 0x1FF8, 0x1FF0, 0x3FEC, 0x3FF8, 0x7FDE, 0x3FF8, 0x7FBE, 0x7FFC, 0xFF7F, 0x7EFC, 0xFFFF, 0x7FFC, 0xFFFF, 0x3FF8, 0x7FFE, 0x3FF8, 0x7FFE, 0x1FF0, 0x3FFC, 0x07C0, 0x1FF8, 0x0000, 0x07E0, 0x0000, 0x0000, /* reserved, must be NULL */ }; /* ** The main() routine */ VOID main(int argc, char **argv) { struct Window *win; struct Requester null_request; extern UWORD __chip waitPointer[]; if (IntuitionBase = OpenLibrary("intuition.library",37)) { /* the window is opened as active (WA_Activate) so that the busy ** pointer will be visible. If the window was not active, the ** user would have to activate it to see the change in the pointer. */ if (win = OpenWindowTags(NULL, WA_Activate, TRUE, TAG_END)) { /* a NULL requester can be used to block input ** in a window without any imagery provided. */ InitRequester(&null_request); Delay(50); /* simulate activity in the program. */ /* Put up the requester to block user input in the window, ** and set the pointer to the busy pointer. */ if (Request(&null_request, win)) { SetPointer(win, waitPointer, 16, 16, -6, 0); Delay(100); /* simulate activity in the program. */ /* clear the pointer (which resets the window to the default ** pointer) and remove the requester. */ ClearPointer(win); EndRequest(&null_request, win); } Delay(100); /* simulate activity in the program. */ CloseWindow(win); } CloseLibrary(IntuitionBase); } }