00001
00002
00003
00004
00005 #include "AboutBox.h"
00006
00007 extern LPTW GetTextWinScilab(void);
00008 extern char *GetScilabDirectory(BOOL UnixStyle);
00009 extern BOOL IsWindowInterface(void);
00010 extern BOOL BuildWithVS8ExpressF2C(void);
00011
00012 EXPORT void WINAPI AboutBox (HWND hwnd);
00013 EXPORT BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT wMsg, WPARAM wParam, LPARAM lParam);
00014 void ON_ABOUT_WM_DESTROY(HWND hwnd);
00015 BOOL ON_ABOUT_WM_INITDIALOG(HWND hDlg,HWND hwndFocus, LPARAM lParam);
00016 BOOL ON_ABOUT_WM_COMMAND(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
00017
00018 EXPORT BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT wMsg, WPARAM wParam, LPARAM lParam)
00019 {
00020 switch (wMsg)
00021 {
00022 case WM_INITDIALOG:
00023 return HANDLE_WM_INITDIALOG(hDlg,wParam,lParam,ON_ABOUT_WM_INITDIALOG);
00024
00025 case WM_COMMAND:
00026 return HANDLE_WM_COMMAND(hDlg,wParam,lParam,ON_ABOUT_WM_COMMAND);
00027
00028 case WM_DESTROY:
00029 HANDLE_WM_DESTROY(hDlg,wParam,lParam,ON_ABOUT_WM_DESTROY);
00030 return TRUE;
00031
00032 case WM_CLOSE:
00033 HANDLE_WM_DESTROY(hDlg,wParam,lParam,ON_ABOUT_WM_DESTROY);
00034 return TRUE;
00035 }
00036 return FALSE;
00037 }
00038
00039 EXPORT void WINAPI AboutBox (HWND hwnd)
00040 {
00041 DLGPROC lpfnAboutDlgProc;
00042 lpfnAboutDlgProc = (DLGPROC) GetProcAddress((HINSTANCE)GetModuleHandle("LibScilab"),"AboutDlgProc");
00043 DialogBox ((HINSTANCE)GetModuleHandle("LibScilab"), (LPCSTR)ABOUTDLGBOX,hwnd,lpfnAboutDlgProc);
00044 }
00045
00046 void ON_ABOUT_WM_DESTROY(HWND hwnd)
00047 {
00048 EndDialog (hwnd,0L);
00049 }
00050
00051 BOOL ON_ABOUT_WM_INITDIALOG(HWND hDlg,HWND hwndFocus, LPARAM lParam)
00052 {
00053 char buffer[MAX_PATH];
00054 int cpubuild=_M_IX86;
00055
00056 wsprintf(buffer,"%s %s",MSG_SCIMSG31,DEFAULT_SCI_VERSION_MESSAGE);
00057 SetDlgItemText(hDlg,IDC_VERSION_SPLASH,SCI_VERSION_STRING);
00058 SetDlgItemText(hDlg,IDC_COPYRIGHT_SPLASH,buffer);
00059 wsprintf(buffer,"%s %s",__DATE__,__TIME__);
00060 SetDlgItemText(hDlg,IDC_BUILD,buffer);
00061
00062 if (BuildWithVS8ExpressF2C())
00063 {
00064 strcpy(buffer,MSG_SCIMSG58);
00065 }
00066 else
00067 {
00068 #ifdef _DEBUG
00069 strcpy(buffer,MSG_SCIMSG60);
00070 strcat(buffer,MSG_SCIMSG61);
00071 #else
00072 strcpy(buffer,MSG_SCIMSG62);
00073 switch(cpubuild)
00074 {
00075 case 500:
00076 strcat(buffer,MSG_SCIMSG63);
00077 break;
00078 case 600:
00079 strcat(buffer,MSG_SCIMSG64);
00080 break;
00081 case 400:
00082 strcat(buffer,MSG_SCIMSG65);
00083 break;
00084 case 300:
00085 strcat(buffer,MSG_SCIMSG66);
00086 break;
00087 }
00088 #endif
00089 }
00090
00091 SetDlgItemText(hDlg,IDC_COMPILMODE,buffer);
00092
00093 return TRUE;
00094 }
00095
00096 BOOL ON_ABOUT_WM_COMMAND(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
00097 {
00098 switch (id)
00099 {
00100 case IDC_LICENCE:
00101 {
00102 #define LICENCEFR "Licence.txt"
00103 #define LICENSEENG "License.txt"
00104
00105 char *ScilabDirectory=NULL;
00106 char Chemin[MAX_PATH];
00107 int Language=0;
00108
00109 int error=0;
00110 LPTW lptw=GetTextWinScilab();
00111
00112 ScilabDirectory=GetScilabDirectory(FALSE);
00113
00114 if (IsWindowInterface())
00115 {
00116 Language=lptw->lpmw->CodeLanguage;
00117 }
00118 else
00119 {
00120 Language=0;
00121 }
00122
00123 switch (Language)
00124 {
00125 case 1:
00126 {
00127 wsprintf(Chemin,"%s\\%s",ScilabDirectory,LICENCEFR);
00128 }
00129 break;
00130
00131 default: case 0:
00132 {
00133 wsprintf(Chemin,"%s\\%s",ScilabDirectory,LICENSEENG);
00134 }
00135 break;
00136 }
00137
00138 if (ScilabDirectory){FREE(ScilabDirectory);ScilabDirectory=NULL;}
00139
00140 error =(int)ShellExecute(NULL, "open", Chemin, NULL, NULL, SW_SHOWNORMAL);
00141 if (error<= 32)
00142 {
00143 switch (Language)
00144 {
00145 case 1:
00146 {
00147 MessageBox(NULL,MSG_WARNING26,MSG_WARNING21 ,MB_ICONWARNING);
00148 }
00149 break;
00150
00151 default: case 0:
00152 {
00153 MessageBox(NULL,MSG_WARNING27,MSG_WARNING22,MB_ICONWARNING);
00154 }
00155 break;
00156 }
00157 }
00158 }
00159 break;
00160
00161 case IDOK:
00162 EndDialog (hwnd, id);
00163 break;
00164
00165 }
00166 return TRUE;
00167 }
00168