home *** CD-ROM | disk | FTP | other *** search
- /*==============================================================================
- Project: POV
-
- Version: 3
-
- File: SplashScreen.c
-
- Description:
- Routines to handle the display of the initial splash screen.
- ------------------------------------------------------------------------------
- Author:
- Eduard [esp] Schwan
- ------------------------------------------------------------------------------
- from Persistence of Vision(tm) Ray Tracer
- Copyright 1996 Persistence of Vision Team
- ------------------------------------------------------------------------------
- NOTICE: This source code file is provided so that users may experiment
- with enhancements to POV-Ray and to port the software to platforms other
- than those supported by the POV-Ray Team. There are strict rules under
- which you are permitted to use this file. The rules are in the file
- named POVLEGAL.DOC which should be distributed with this file. If
- POVLEGAL.DOC is not available or for more info please contact the POV-Ray
- Team Coordinator by leaving a message in CompuServe's Graphics Developer's
- Forum. The latest version of POV-Ray may be found there as well.
-
- This program is based on the popular DKB raytracer version 2.12.
- DKBTrace was originally written by David K. Buck.
- DKBTrace Ver 2.0-2.12 were written by David K. Buck & Aaron A. Collins.
- ------------------------------------------------------------------------------
- Change History:
- ==============================================================================*/
-
- #define SPLASHSCREEN_C
-
- #include "SplashScreen.h"
- #include "ScreenUtils.h"
-
- #include <types.h>
- #include <windows.h>
- #include <resources.h>
- #include <string.h>
- #include <strings.h>
-
- #include "POVMac.h" // gDist_Message
- #include "OptOut.h" // POV_RAY_VERSION
-
-
- #define DLOG_SPLASH 138
-
-
- static DialogPtr gSplashScreen = NULL;
- static long gSplashStartTicks = 0;
-
-
- // ---------------------------------------------------------------------
- Boolean SplashScreenShown(void)
- {
- return gSplashScreen != NULL;
- } // SplashScreenShown
-
-
- // ---------------------------------------------------------------------
- void UpdateSplashScreen(void)
- {
- if ((gSplashStartTicks + 6*60L) < MAC_TICKS) // timeout after several seconds
- KillSplashScreen();
- } // UpdateSplashScreen
-
-
-
- // ---------------------------------------------------------------------
- void SelectSplashScreen(void)
- {
- if (gSplashScreen)
- {
- SelectWindow(gSplashScreen);
- DrawDialog(gSplashScreen);
- }
- } // SelectSplashScreen
-
-
-
- // ---------------------------------------------------------------------
- // Get and display the intro splash screen
- void CreateSplashScreen(void)
- {
- char povVers[16];
- gSplashStartTicks = 0;
- gSplashScreen = GetNewDialog(DLOG_SPLASH, NULL, (WindowPtr) -1);
- if (gSplashScreen != NULL)
- {
- gSplashStartTicks = MAC_TICKS;
- strcpy(povVers, POV_RAY_VERSION);
- c2pstr(povVers);
-
- ParamText((StringPtr)povVers, gDistMessage, "\p", "\p");
- SetPort((GrafPtr)gSplashScreen);
-
- TextFont(geneva);
- TextSize(9);
-
- PositionWindow(gSplashScreen, ewcDoCentering, eSameAsPassedWindow, (WindowPtr)gp2wWindow);
- ShowWindow(gSplashScreen);
- SelectWindow(gSplashScreen);
- DrawDialog(gSplashScreen);
- }
- } // CreateSplashScreen
-
-
-
- // ---------------------------------------------------------------------
- // close and dispose of the intro splash screen
- void KillSplashScreen(void)
- {
- if (gSplashScreen)
- DisposeDialog(gSplashScreen);
- gSplashScreen = NULL;
- gSplashStartTicks = 0;
-
- } // KillSplashScreen
-