#ifndef BLITZBLANK_H #define BLITZBLANK_H #include #include /****************************************/ /* $VER: BlitzBlank.h 2.60 (12.05.95) */ /****************************************/ /********************************/ /* Stuff for blitzblank.library */ /********************************/ #define BLITZBLANKLIB_VER 9 extern struct BitMap *BBL_AllocBitMap (ULONG width,ULONG height,ULONG depth,ULONG flags); extern struct BitMap *BBL_AllocDBufBitMap (struct Screen *screen); extern struct RastPort *BBL_AllocRastPort (ULONG width,ULONG height,ULONG depth,ULONG flags); extern void BBL_BlankDone (void); extern struct Window *BBL_BlankMouse (struct Screen *screen,UBYTE mode); extern struct Screen *BBL_CloneFirstScreen (UWORD moredepth,ULONG flags); extern void BBL_CloseScreenSafe (struct Screen *screen); extern BOOL BBL_CopyOriginalColors (struct Screen *screen); extern BOOL BBL_CopyOriginalScreen (struct Screen *screen); extern void BBL_EndDBuf (ULONG handle); extern BOOL BBL_FadeDown (struct Screen *screen,UBYTE final,UBYTE delay); extern void BBL_FreeBitMap (struct BitMap *bitmap); extern void BBL_FreeRastPort (struct RastPort *rastport); extern long BBL_GetDarkestPen (struct Screen *screen); extern char* BBL_GetString (UWORD num,char *text); extern ULONG BBL_InitDBuf (struct Screen *screen,struct BitMap *bitmap); extern void BBL_ModuleRunning (void); extern void BBL_RainbowPalette (struct Screen *screen,ULONG lowreg,ULONG highreg); extern ULONG BBL_RemainingTime (void); extern BOOL BBL_ScreenAvailable (struct Screen *screen); extern BOOL BBL_SendMessage (struct BB_Message *bbmessage,char *portname); extern void BBL_ShowBitMap (struct Screen *screen,struct BitMap *bitmap,ULONG handle); extern void BBL_UnBlankMouse (struct Window *window); /*******************************************************************/ /* The different kinds of GUI-objects for a module's config-window */ /*******************************************************************/ #define BB_PGroup 1 /* Indicates the start of a new page group */ #define BB_PGroup_End 2 /* Indicates the end of the page group */ #define BB_VGroup 3 /* Indicates the start of a new vertical group */ #define BB_VGroup_End 4 /* Indicates the end of the vertical group */ #define BB_Check 5 /* Checkmark, uses set field in BB_Object */ #define BB_String 6 /* Textgadget, uses max/contents fields in BB_Object */ #define BB_File 7 /* Stringgadget with attached filerequester */ #define BB_Slider 8 /* Slidergadget, uses min/max/set fields in BB_Object */ #define BB_Cycle 9 /* Cyclegadget, uses set/contents in BB_Object */ #define BB_Dummy 10 /* Dummy, if you want no gadgets at all */ #define BB_Font 11 /* Stringgadget with attached fontrequester */ #define BB_Dir 12 /* Stringgadget with attached filerequester, Dirs only */ /*****************************************/ /* Flags used in BB_Message's flag-field */ /*****************************************/ #define BBF_Screenmode (1L << 0) /* Allows screenmode-selection */ #define BBF_Colors (1L << 1) /* Allows screendepth-selection */ #define BBF_Sample (1L << 2) /* Not supported yet */ #define BBF_NoWatch (1L << 3) /* Eats no CPU-time, so needs no checking */ #define BBF_NoScreen (1L << 4) /* Wants no screen from BlitzBlank */ #define BBF_FirstScreen (1L << 5) /* Wants pointer to screen in front, be CAREFUL with this! */ #define BBF_CloneScreen (1L << 6) /* Wants a clone from the FrontScreen */ #define BBF_AmigaOnly (1L << 7) /* Not supported yet */ #define BBF_NoMouseBlank (1L << 8) /* No mouseblanking from BlitzBlank wanted */ #define BBF_NoKeyPass (1L << 9) /* No keypassing necessary (no mouseblanking, no own active window */ #define BBF_BigWindow (1L << 10) /* The blankwindow fills the whole screen */ #define BBF_Interleaved (1L << 11) /* BlitzBlank TRIES to give you a screen with an Interleaved BitMap */ /*****************************************/ /* The structure, that holds config-data */ /*****************************************/ struct BB_Object { struct BB_Object* next; /* Pointer to next object or NULL if last object */ WORD type; /* What kind of GUI-object this is */ long min; /* Minimum value for BB_Slider */ long max; /* Maximum value for BB_Slider, max length of BB_String */ long set; /* Value of BB_Slider, state of BB_Checkmark, BB_Cycle */ char *contents; /* Pointer to buffer for BB_String, pointer to stringarray for BB_Cycle */ char *label; /* Label for ALL objects */ }; /*****************************************************/ /* The message to send to BlitzBlank/BlitzBlankPrefs */ /*****************************************************/ struct BB_Message { struct Message msg; /* Normal Exec-Message-structure */ long flags; /* Flags for this module */ char *infotext; /* Pointer to infotext for this module */ struct BB_Object *first; /* Pointer to first BB_Object or NULL for Info-action */ WORD modpri; /* not of use, if you use the library */ char *path; /* Path to directory for module-data */ struct Task *blitzblank; /* not of use, if you use the library */ }; /***************************************/ /* The BlitzBlank-Screeninfo-structure */ /***************************************/ struct BB_Screeninfo { WORD xpos; /* should be 0 */ WORD ypos; /* should be 0 */ WORD width; /* User-selected screen-width */ WORD height; /* User-selected screen-height */ WORD depth; /* User-selected screen-depth */ long mode; /* User-selected screen-mode */ struct Screen *bbscreen; /* module screen */ struct Window *bbwindow; /* blank window */ WORD mindepth; /* desired minimum depth or 0 */ WORD maxdepth; /* desired maximum depth or 0 */ WORD xpixelsize; /* X-size of the pixels */ WORD ypixelsize; /* Y-size of the pixels */ /* If you have a given width of something and want to */ /* calculate the aspect-correct height, then do: */ /* height=width*screeninfo->xpixelsize/screeninfo->ypixelsize; */ }; /**************************************************************/ /* Flag-definition for BBL_AllocBitMap()/BBL_AllocRastPort(), */ /* if you don't have the V39-includes */ /**************************************************************/ #ifndef BMB_CLEAR #define BMB_CLEAR 0 #define BMB_DISPLAYABLE 1 #define BMB_INTERLEAVED 2 #define BMF_CLEAR (1l<