MessageBoxNewGraphicMode.c

Go to the documentation of this file.
00001 /*-----------------------------------------------------------------------------------*/
00002 /* INRIA 2005 */
00003 /* Allan CORNET */
00004 /*-----------------------------------------------------------------------------------*/
00005 #include "MessageBoxNewGraphicMode.h"
00006 /*-----------------------------------------------------------------------------------*/
00007 extern HINSTANCE hdllInstance;
00008 extern LPTW GetTextWinScilab(void);
00009 extern char *GetScilabDirectory(BOOL UnixStyle);
00010 /*-----------------------------------------------------------------------------------*/
00011 BOOL CALLBACK MessageBoxNewGraphicModeDlgProc(HWND hwnd,UINT Message, WPARAM wParam, LPARAM lParam);
00012 BOOL ON_MESSAGEBOXNEWGRAPHICMODE_WM_INITDIALOG(HWND hDlg,HWND hwndFocus, LPARAM lParam);
00013 BOOL ON_MESSAGEBOXNEWGRAPHICMODE_WM_COMMAND(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
00014 /*-----------------------------------------------------------------------------------*/
00015 static int MessageBoxLanguageCode=0;
00016 /*-----------------------------------------------------------------------------------*/
00017 void MessageBoxNewGraphicMode(void)
00018 {
00019         HKEY key;
00020         DWORD result,size=4;
00021         char Clef[MAX_PATH];
00022         int DontShowMessageNewGraphicMode,Ans;
00023 
00024         wsprintf(Clef,"SOFTWARE\\Scilab\\%s\\Settings",SCI_VERSION_STRING);
00025   result=RegOpenKeyEx(HKEY_CURRENT_USER, Clef, 0, KEY_QUERY_VALUE , &key);
00026 
00027         if ( RegQueryValueEx(key, "DontShowMessageNewGraphicMode", 0, NULL, (LPBYTE)&Ans, &size) !=  ERROR_SUCCESS )
00028   {
00029         DontShowMessageNewGraphicMode = 0;
00030         }
00031         else
00032         {
00033                 DontShowMessageNewGraphicMode = Ans;
00034         }
00035 
00036         if ( result == ERROR_SUCCESS ) RegCloseKey(key);
00037 
00038         if (DontShowMessageNewGraphicMode == 0)
00039         {
00040                 DialogBox(hdllInstance, "IDD_MESSAGE_NEW_GRAPHIC", NULL,MessageBoxNewGraphicModeDlgProc);
00041         }
00042 }
00043 /*-----------------------------------------------------------------------------------*/
00044 BOOL CALLBACK MessageBoxNewGraphicModeDlgProc(HWND hwnd,UINT Message, WPARAM wParam, LPARAM lParam)
00045 {
00046    switch(Message)
00047    {
00048                 case WM_INITDIALOG:
00049                         return HANDLE_WM_INITDIALOG(hwnd,wParam,lParam,ON_MESSAGEBOXNEWGRAPHICMODE_WM_INITDIALOG);
00050 
00051                 case WM_COMMAND:
00052                         return HANDLE_WM_COMMAND(hwnd,wParam,lParam,ON_MESSAGEBOXNEWGRAPHICMODE_WM_COMMAND);    
00053     }
00054    return FALSE;
00055 }
00056 /*-----------------------------------------------------------------------------------*/
00057 BOOL ON_MESSAGEBOXNEWGRAPHICMODE_WM_INITDIALOG(HWND hDlg,HWND hwndFocus, LPARAM lParam)
00058 {
00059         int LanguageCode=0;
00060         extern char ScilexWindowName[MAX_PATH];
00061 
00062         HKEY key;
00063         DWORD result,size=4;
00064         int Language;
00065         char Clef[MAX_PATH];
00066         LPTW lptw=GetTextWinScilab();
00067 
00068         wsprintf(Clef,"SOFTWARE\\Scilab\\%s\\Settings",SCI_VERSION_STRING);
00069         result=RegOpenKeyEx(HKEY_CURRENT_USER, Clef, 0, KEY_QUERY_VALUE , &key);
00070 
00071         if ( RegQueryValueEx(key, "Language", 0, NULL, (LPBYTE)&Language, &size) !=  ERROR_SUCCESS )
00072         {
00073                 MessageBoxLanguageCode = 0; /* English Default*/
00074         }
00075         else
00076         {
00077                 MessageBoxLanguageCode = Language;
00078         }
00079 
00080         if ( result == ERROR_SUCCESS ) RegCloseKey(key);
00081 
00082          CheckDlgButton(hDlg, IDC_CHECKNEWGRAPHIC, BST_UNCHECKED);
00083          switch (MessageBoxLanguageCode)
00084          {
00085                  case 1:
00086                          SetWindowText(hDlg,MSG_SCIMSG87);
00087                          SetDlgItemText(hDlg,IDC_OPENRELEASENOTES,MSG_SCIMSG114);
00088                          SetDlgItemText(hDlg,IDC_NEWGRAPHICMESSAGE,MSG_SCIMSG88);
00089                          SetDlgItemText(hDlg,IDC_CHECKNEWGRAPHIC,MSG_SCIMSG89);
00090                  break;
00091 
00092                  case 0:default:
00093                          SetWindowText(hDlg,MSG_WARNING22);
00094                          SetDlgItemText(hDlg,IDC_OPENRELEASENOTES,MSG_SCIMSG115);
00095                          SetDlgItemText(hDlg,IDC_NEWGRAPHICMESSAGE,MSG_SCIMSG90);
00096                          SetDlgItemText(hDlg,IDC_CHECKNEWGRAPHIC,MSG_SCIMSG91);
00097                          break;
00098          }
00099          return TRUE;
00100 }
00101 /*-----------------------------------------------------------------------------------*/
00102 BOOL ON_MESSAGEBOXNEWGRAPHICMODE_WM_COMMAND(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
00103 {
00104         switch(id)
00105         {
00106                   case IDOK:
00107                   {
00108                           HKEY key;
00109                           DWORD result,dwsize=4;
00110                           char Clef[MAX_PATH];
00111                           int DontShowMessageNewGraphicMode;
00112                           LONG TstRegCreateKeyEx=0;
00113 
00114                           wsprintf(Clef,"SOFTWARE\\Scilab\\%s\\Settings",SCI_VERSION_STRING);   
00115                           TstRegCreateKeyEx=RegCreateKeyEx(HKEY_CURRENT_USER, Clef, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &key, &result);
00116                           if (TstRegCreateKeyEx == ERROR_SUCCESS)
00117                           {
00118                                   if(IsDlgButtonChecked(hwnd, IDC_CHECKNEWGRAPHIC) == BST_CHECKED)
00119                                   {
00120                                           //The Box is CHECKED!
00121                                           DontShowMessageNewGraphicMode=1;
00122                                           RegSetValueEx(key, "DontShowMessageNewGraphicMode", 0, REG_DWORD, (LPBYTE)&DontShowMessageNewGraphicMode, dwsize);
00123                                   }
00124                                   else
00125                                   {
00126                                           //The Box is NOT checked!
00127                                           DontShowMessageNewGraphicMode=0;
00128                                           RegSetValueEx(key, "DontShowMessageNewGraphicMode", 0, REG_DWORD, (LPBYTE)&DontShowMessageNewGraphicMode, dwsize);
00129                                   }
00130 
00131                                   RegCloseKey(key);
00132                           }
00133                   
00134                           EndDialog(hwnd, IDOK);
00135                 }
00136                 break;
00137                 case IDC_OPENRELEASENOTES:
00138                 {
00139                         char *ScilabDirectory=NULL;
00140                         char Chemin[MAX_PATH];
00141                         int error=0;
00142 
00143                         ScilabDirectory=GetScilabDirectory(FALSE);
00144                         
00145                         wsprintf(Chemin,"%s\\release_notes.txt",ScilabDirectory);
00146                         if (ScilabDirectory){FREE(ScilabDirectory);ScilabDirectory=NULL;}               
00147 
00148                         error =(int)ShellExecute(NULL, "open", Chemin, NULL, NULL, SW_SHOWNORMAL);
00149                         if (error<= 32)
00150                         {
00151                                 switch (MessageBoxLanguageCode)
00152                                 {
00153                                         case 1:
00154                                                 MessageBox(hwnd,MSG_WARNING32,MSG_WARNING22,MB_ICONWARNING);
00155                                         break;
00156 
00157                                         case 0: default:
00158                                                 MessageBox(hwnd,MSG_WARNING33,MSG_WARNING22,MB_ICONWARNING);
00159                                         break;
00160                                 }
00161                         }
00162                 }
00163                 break;
00164         }
00165         return TRUE;
00166 }
00167 /*-----------------------------------------------------------------------------------*/

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