1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
|
/*-----------------------------------------------------------------------------------*/
/* INRIA 2005 */
/* Allan CORNET */
/*-----------------------------------------------------------------------------------*/
#include "AboutBox.h"
/*-----------------------------------------------------------------------------------*/
extern LPTW GetTextWinScilab(void);
extern char *GetScilabDirectory(BOOL UnixStyle);
extern BOOL IsWindowInterface(void);
/*-----------------------------------------------------------------------------------*/
EXPORT void WINAPI AboutBox (HWND hwnd);
EXPORT BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT wMsg, WPARAM wParam, LPARAM lParam);
void ON_ABOUT_WM_DESTROY(HWND hwnd);
BOOL ON_ABOUT_WM_INITDIALOG(HWND hDlg,HWND hwndFocus, LPARAM lParam);
BOOL ON_ABOUT_WM_COMMAND(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
/*-----------------------------------------------------------------------------------*/
EXPORT BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT wMsg, WPARAM wParam, LPARAM lParam)
{
switch (wMsg)
{
case WM_INITDIALOG:
return HANDLE_WM_INITDIALOG(hDlg,wParam,lParam,ON_ABOUT_WM_INITDIALOG);
case WM_COMMAND:
return HANDLE_WM_COMMAND(hDlg,wParam,lParam,ON_ABOUT_WM_COMMAND);
case WM_DESTROY:
HANDLE_WM_DESTROY(hDlg,wParam,lParam,ON_ABOUT_WM_DESTROY);
return TRUE;
case WM_CLOSE:
HANDLE_WM_DESTROY(hDlg,wParam,lParam,ON_ABOUT_WM_DESTROY);
return TRUE;
}
return FALSE;
}
/*-----------------------------------------------------------------------------------*/
EXPORT void WINAPI AboutBox (HWND hwnd)
{
DLGPROC lpfnAboutDlgProc;
lpfnAboutDlgProc = (DLGPROC) GetProcAddress((HINSTANCE)GetModuleHandle("LibScilab"),"AboutDlgProc");
DialogBox ((HINSTANCE)GetModuleHandle("LibScilab"), (LPCSTR)ABOUTDLGBOX,hwnd,lpfnAboutDlgProc);
}
/*-----------------------------------------------------------------------------------*/
void ON_ABOUT_WM_DESTROY(HWND hwnd)
{
EndDialog (hwnd,0L);
}
/*-----------------------------------------------------------------------------------*/
BOOL ON_ABOUT_WM_INITDIALOG(HWND hDlg,HWND hwndFocus, LPARAM lParam)
{
char buffer[MAX_PATH];
int cpubuild=_M_IX86;
wsprintf(buffer,"%s %s",MSG_SCIMSG31,DEFAULT_MES);
SetDlgItemText(hDlg,IDC_VERSION_SPLASH,VERSION);
SetDlgItemText(hDlg,IDC_COPYRIGHT_SPLASH,buffer);
wsprintf(buffer,"%s %s",__DATE__,__TIME__);
SetDlgItemText(hDlg,IDC_BUILD,buffer);
#if __MAKEFILEVC__
strcpy(buffer,MSG_SCIMSG58);
#else
#if _DEBUG
strcpy(buffer,MSG_SCIMSG60);
strcat(buffer,MSG_SCIMSG61);
#else
strcpy(buffer,MSG_SCIMSG62);
switch(cpubuild)
{
case 500: // Pentium
strcat(buffer,MSG_SCIMSG63);
break;
case 600: // Pentium Pro
strcat(buffer,MSG_SCIMSG64);
break;
case 400: // 486
strcat(buffer,MSG_SCIMSG65);
break;
case 300: // 386
strcat(buffer,MSG_SCIMSG66);
break;
}
#endif
#endif
SetDlgItemText(hDlg,IDC_COMPILMODE,buffer);
return TRUE;
}
/*-----------------------------------------------------------------------------------*/
BOOL ON_ABOUT_WM_COMMAND(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch (id)
{
case IDC_LICENCE:
{
#define LICENCEFR "Licence.txt"
#define LICENSEENG "License.txt"
char *ScilabDirectory=NULL;
char Chemin[MAX_PATH];
int Language=0;
int error=0;
LPTW lptw=GetTextWinScilab();
ScilabDirectory=GetScilabDirectory(FALSE);
if (IsWindowInterface())
{
Language=lptw->lpmw->CodeLanguage;
}
else
{
Language=0; /* English */
}
switch (Language)
{
case 1: /* French */
{
wsprintf(Chemin,"%s\\%s",ScilabDirectory,LICENCEFR);
}
break;
default: case 0: /*English */
{
wsprintf(Chemin,"%s\\%s",ScilabDirectory,LICENSEENG);
}
break;
}
if (ScilabDirectory){FREE(ScilabDirectory);ScilabDirectory=NULL;}
error =(int)ShellExecute(NULL, "open", Chemin, NULL, NULL, SW_SHOWNORMAL);
if (error<= 32)
{
switch (Language)
{
case 1: /* French */
{
MessageBox(NULL,MSG_WARNING26,MSG_WARNING21 ,MB_ICONWARNING);
}
break;
default: case 0: /*English */
{
MessageBox(NULL,MSG_WARNING27,MSG_WARNING22,MB_ICONWARNING);
}
break;
}
}
}
break;
case IDOK:
EndDialog (hwnd, id);
break;
}
return TRUE;
}
/*-----------------------------------------------------------------------------------*/
|