AboutBox.c

Go to the documentation of this file.
00001 /*-----------------------------------------------------------------------------------*/
00002 /* INRIA 2005 */
00003 /* Allan CORNET */
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: // Pentium
00076                                 strcat(buffer,MSG_SCIMSG63);
00077                                 break;
00078                         case 600: // Pentium Pro
00079                                 strcat(buffer,MSG_SCIMSG64);
00080                                 break;
00081                         case 400: // 486
00082                                 strcat(buffer,MSG_SCIMSG65);
00083                                 break;
00084                         case 300: // 386
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; /* English */
00121                         }
00122 
00123                         switch (Language)
00124                         {
00125                         case 1: /* French */
00126                                 {
00127                                         wsprintf(Chemin,"%s\\%s",ScilabDirectory,LICENCEFR);
00128                                 }
00129                                 break;
00130 
00131                         default: case 0: /*English */
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: /* French */
00146                                         {
00147                                                 MessageBox(NULL,MSG_WARNING26,MSG_WARNING21 ,MB_ICONWARNING);
00148                                         }
00149                                         break;
00150 
00151                                 default: case 0: /*English */
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 /*-----------------------------------------------------------------------------------*/

Generated on Sun Mar 4 15:03:54 2007 for Scilab [trunk] by  doxygen 1.5.1