blitz3d/blitzide/about.cpp

140 lines
3.0 KiB
C++

#include "stdafx.h"
#include "prefs.h"
#include "libs.h"
#include "resource.h"
#include <mmsystem.h>
char _credits[]=
"\r\n"
"Programming and design: Mark Sibly\r\n\r\n"
"Documentation: Mark Sibly, Simon Harrison, Paul Gerfen, Shane Monroe and the Blitz Doc Team\r\n\r\n"
"Testing and support: James Boyd, Simon Armstrong and the Blitz Dev Team\r\n\r\n"
"Image loader courtesy of FreeImage by Floris van den berg\r\n\r\n"
"Please visit www.blitzbasic.com for all your Blitz related needs!";
/*
char _credits[]=
"\r\n"
"Programming and Design: Mark Sibly\r\n\r\n"
"Documentation: Simon Harrison; Simon Armstrong; Mark Sibly\r\n\r\n"
"Many thanks to: Claire Foley; Janet Sibly; Rick, Kay and Robbie Keam; "
"James Boyd; the Blitz Dev Team\r\n\r\n"
"Image loader courtesy of FreeImage by Floris van den Berg\r\n\r\n"
"Please visit www.blitzbasic.com for all your Blitz related needs!";
*/
class Dialog : public CDialog{
bool _quit;
public:
Dialog():_quit(false){}
afx_msg void OnOK(){
_quit=true;
}
void wait(){
_quit=false;
MSG msg;
while( !_quit && GetMessage( &msg,0,0,0 ) ){
if( !AfxGetApp()->PreTranslateMessage(&msg) ){
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
EndDialog(0);
}
void wait( int n ){
int _expire=(int)timeGetTime()+n;
for(;;){
int tm=_expire-(int)timeGetTime();
if( tm<0 ) tm=0;
MsgWaitForMultipleObjects( 0,0,false,tm,QS_ALLEVENTS );
MSG msg;
if( PeekMessage( &msg,0,0,0,PM_REMOVE ) ){
if( !AfxGetApp()->PreTranslateMessage(&msg) ){
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
if( !tm ) return;
}
}
};
void aboutBlitz( bool delay ){
AfxGetMainWnd()->EnableWindow(0);
Dialog about;
about.Create( IDD_ABOUT );
string credits;
credits+=_credits;
about.GetDlgItem( IDC_CREDITS )->SetWindowText( credits.c_str() );
int ide_ver=VERSION&0xffff;
int lnk_ver=linker_ver&0xffff;
int run_ver=runtime_ver&0xffff;
string ide_v=itoa(ide_ver/1000)+"."+itoa(ide_ver%1000);
string lnk_v=itoa(lnk_ver/1000)+"."+itoa(lnk_ver%1000);
string run_v=itoa(run_ver/1000)+"."+itoa(run_ver%1000);
string t="";
#ifdef PRO
t+="Blitz3D";
#else
t+="Blitz2D";
#endif
#ifdef EDU
t+=" - Educational Version";
#else
#ifdef DEMO
t+=" - Demo Version\n\n";
/*
int n=shareProtCheck();
if( n>1 ) t+=itoa(n)+" runs left";
else if( n ) t+=itoa(n)+" run left";
else t+="expired";
t+=")\n\n";
*/
#else
t+=" - Release Version\n\n";
#endif
#endif
about.GetDlgItem( IDC_PRODUCT )->SetWindowText( t.c_str() );
t="IDE V"+ide_v+" Linker V"+lnk_v+" Runtime V"+run_v;
about.GetDlgItem( IDC_VERSION )->SetWindowText( t.c_str() );
#ifdef DEMO
if( delay ){
about.GetDlgItem( IDOK )->ShowWindow( SW_HIDE );
about.GetDlgItem( IDC_PROGRESS1 )->ShowWindow( SW_SHOW );
for( int k=0;k<100;++k ){
((CProgressCtrl*)about.GetDlgItem( IDC_PROGRESS1 ))->SetPos( k+1 );
about.wait( 50 );
}
about.GetDlgItem( IDOK )->ShowWindow( SW_SHOW );
}
#endif
about.GetDlgItem( IDC_PROGRESS1 )->ShowWindow( SW_HIDE );
about.wait();
about.EndDialog(0);
AfxGetMainWnd()->EnableWindow(1);
}