00001
00002
00003
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;
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
00121 DontShowMessageNewGraphicMode=1;
00122 RegSetValueEx(key, "DontShowMessageNewGraphicMode", 0, REG_DWORD, (LPBYTE)&DontShowMessageNewGraphicMode, dwsize);
00123 }
00124 else
00125 {
00126
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