00001 #ifndef __WMENU_H__
00002 #define __WMENU_H__
00003
00004
00005 #include <windows.h>
00006 #include <string.h>
00007 #include "wresource.h"
00008 #include "wcommon.h"
00009 #include "wtext.h"
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #define MACROLEN 5000
00021
00022 #define MENUDEPTH 3
00023
00024 #undef CMDMIN
00025 #undef CMDMAX
00026 #undef EOS
00027
00028 #define CMDMIN 129
00029
00030 #define NEWSCILAB CMDMIN
00031 #define EXEC CMDMIN+1
00032 #define OPEN CMDMIN+2
00033 #define GETF CMDMIN+3
00034 #define LOAD CMDMIN+4
00035 #define SAVE CMDMIN+5
00036 #define GETCWD CMDMIN+6
00037 #define CHDIR CMDMIN+7
00038 #define PRINTSETUP CMDMIN+8
00039 #define PRINT CMDMIN+9
00040 #define EXIT CMDMIN+10
00041
00042 #define SELECTALL EXIT+1
00043 #define MCOPY SELECTALL+1
00044 #define PASTE SELECTALL+2
00045 #define EMPTYCLIPBOARD SELECTALL+3
00046
00047 #define M_CTRL_C EOS+1
00048 #define M_CTRL_U M_CTRL_C+1
00049 #define M_CTRL_P M_CTRL_C+2
00050 #define M_CTRL_B M_CTRL_C+3
00051 #define M_CTRL_F M_CTRL_C+4
00052 #define M_CTRL_A M_CTRL_C+5
00053 #define M_CTRL_E M_CTRL_C+6
00054 #define M_CTRL_H M_CTRL_C+7
00055 #define M_CTRL_D M_CTRL_C+8
00056 #define M_CTRL_W M_CTRL_C+9
00057 #define M_CTRL_K M_CTRL_C+10
00058 #define M_CTRL_L M_CTRL_C+11
00059 #define M_CTRL_N M_CTRL_C+12
00060
00061 #define FRENCH EMPTYCLIPBOARD+1
00062 #define ENGLISH FRENCH+1
00063 #define TEXTCOLOR FRENCH+2
00064 #define BACKGROUNDCOLOR FRENCH+3
00065 #define SYSTEMCOLOR FRENCH+4
00066 #define FILESASSOCIATION FRENCH+5
00067 #define TOOLBAR FRENCH+6
00068 #define CHOOSETHEFONT FRENCH+7
00069 #define CLEARHISTORY FRENCH+8
00070 #define CLEARCOMMANDWINDOW FRENCH+9
00071 #define CONSOLE FRENCH+10
00072
00073 #define RESTART CONSOLE+1
00074 #define PAUSE RESTART+1
00075 #define RESUME RESTART+2
00076 #define ABORT RESTART+3
00077
00078 #define SCIPAD ABORT+1
00079
00080 #define HELP SCIPAD+1
00081 #define CONFIGBROWSER HELP+1
00082 #define DEMOS HELP+2
00083 #define NEWSGROUP HELP+3
00084 #define EMAIL HELP+4
00085 #define WEB HELP+5
00086 #define CONTRIBUTIONS HELP+6
00087 #define BUGZILLA HELP+7
00088 #define ABOUT HELP+8
00089
00090 #define EOS ABOUT+1
00091
00092 #define CMDMAX M_CTRL_N
00093
00094 #define URLNEWSGROUP "http://groups.google.com/groups?dq=&num=25&hl=en&lr=&ie=UTF-8&group=comp.soft-sys.math.scilab"
00095 #define URLCONTRIBUTIONS "http://scilabsoft.inria.fr/contrib/index_contrib.php?page=howto.html"
00096 #define URL "http://www.scilab.org"
00097 #define URLBUGZILLA "http://scilabsoft.inria.fr/cgi-bin/bugzilla_bug_II/index.cgi"
00098 #define MAILTO "Scilab@inria.fr"
00099 #define CCMAILTO ""
00100 #define SUBJECT "Doctor Scilab Please Help me"
00101
00102
00103 #define NEWSTRING(x) if ((x=MALLOC((MAXSTR+1)*sizeof(LPTR))) == (char *)NULL) \
00104 { *ierr=1;return(FALSE);}
00105
00106 #define BUGGOTOCLEAN(str) \
00107 wsprintf(buf,str,nLine,lpmw->szMenuName); \
00108 MessageBox(lptw->hWndParent,(LPSTR) buf,lptw->Title,MB_ICONEXCLAMATION);\
00109 goto errorcleanup;
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121 static char *keyword[] =
00122 {
00123 "[EMPTYCLIPBOARD]","[SELECTALL]","[CLEARHISTORY]","[CONFIGBROWSER]","[OPEN]","[FRENCH]","[ENGLISH]",
00124 "[TOOLBAR]","[NEWSGROUP]","[CLEARCOMMANDWINDOW]","[NEWSCILAB]","[EXEC]","[GETF]","[LOAD]","[SAVE]","[CHDIR]","[GETCWD]","[EXIT]",
00125 "[MCOPY]","[PASTE]","[PRINTSETUP]","[PRINT]","[CHOOSETHEFONT]","[TEXTCOLOR]","[BACKGROUNDCOLOR]","[SYSTEMCOLOR]","[FILESASSOCIATION]",
00126 "[RESTART]","[PAUSE]","[RESUME]","[ABORT]","[CONSOLE]",
00127 "[SCIPAD]",
00128 "[HELP]","[DEMOS]","[WEB]","[EMAIL]","[CONTRIBUTIONS]","[BUGZILLA]","[ABOUT]",
00129 "{ENTER}", "{ESC}", "{TAB}",
00130 "[M_CTRL_A]", "[M_CTRL_B]", "[M_CTRL_C]", "[M_CTRL_D]", "[M_CTRL_E]", "[M_CTRL_F]", "{^G}", "[M_CTRL_H]",
00131 "{^I}", "{^J}", "[M_CTRL_K]", "[M_CTRL_L]", "{^M}", "[M_CTRL_N]", "{^O}", "[M_CTRL_P]",
00132 "{^Q}", "{^R}", "{^S}", "{^T}", "[M_CTRL_U]", "{^V}", "[M_CTRL_W]", "{^X}",
00133 "{^Y}", "{^Z}", "{^[}", "{^\\}", "{^]}", "{^^}", "{^_}",
00134 NULL};
00135
00136 static BYTE keyeq[] =
00137 {
00138 EMPTYCLIPBOARD,SELECTALL,CLEARHISTORY,CONFIGBROWSER,OPEN,FRENCH,ENGLISH,
00139 TOOLBAR,NEWSGROUP,CLEARCOMMANDWINDOW,NEWSCILAB,EXEC,GETF,LOAD,SAVE,CHDIR,GETCWD,EXIT,
00140 MCOPY,PASTE,PRINTSETUP,PRINT,CHOOSETHEFONT,TEXTCOLOR,BACKGROUNDCOLOR,SYSTEMCOLOR,FILESASSOCIATION,
00141 RESTART,PAUSE,RESUME,ABORT,CONSOLE,
00142 SCIPAD,
00143 HELP,DEMOS,WEB,EMAIL,CONTRIBUTIONS,BUGZILLA,ABOUT,
00144 13, 27, 9,
00145 M_CTRL_A, M_CTRL_B, M_CTRL_C, M_CTRL_D, M_CTRL_E, M_CTRL_F, 7, M_CTRL_H,
00146 9, 10, M_CTRL_K, M_CTRL_L, 13, M_CTRL_N, 15, M_CTRL_P,
00147 17, 18, 19, 20, M_CTRL_U, 22, M_CTRL_W, 24,
00148 25, 26, 28, 29, 30, 31,
00149 0 };
00150
00151
00152
00153
00154 EXPORT BOOL CALLBACK InputBoxDlgProc (HWND, UINT, WPARAM, LPARAM);
00155 EXPORT LRESULT CALLBACK MenuButtonProc (HWND, UINT, WPARAM, LPARAM);
00156
00157 void Callback_NEWSCILAB(void);
00158 void Callback_EXEC(void);
00159 void Callback_OPEN(void);
00160 void Callback_GETF(void);
00161 void Callback_LOAD(void);
00162 void Callback_SAVE(void);
00163 void Callback_CHDIR(void);
00164 void Callback_GETCWD(void);
00165 void Callback_SELECTALL(void);
00166 void Callback_EMPTYCLIPBOARD(void);
00167 void Callback_MCOPY(void);
00168 void Callback_PASTE(void);
00169 void Callback_PRINTSETUP(void);
00170 void Callback_PRINT(void);
00171 void Callback_TOOLBAR(void);
00172 void Callback_FRENCH(void);
00173 void Callback_ENGLISH(void);
00174 void Callback_TEXTCOLOR(void);
00175 void Callback_BACKGROUNDCOLOR(void);
00176 void Callback_SYSTEMCOLOR(void);
00177 void Callback_FILESASSOCIATIONBOX(void);
00178 void Callback_CHOOSETHEFONT(void);
00179 void Callback_RESTART(void);
00180 void Callback_ABORT(void);
00181 void Callback_PAUSE(void);
00182 void Callback_RESUME(void);
00183 void Callback_CONSOLE(void);
00184 void Callback_SCIPAD(void);
00185 void Callback_HELP(void);
00186 void Callback_DEMOS(void);
00187 void Callback_WEB(void);
00188 void Callback_CONTRIBUTIONS(void);
00189 void Callback_BUGZILLA(void);
00190 void Callback_EMAIL(void);
00191 void Callback_NEWSGROUP(void);
00192 void Callback_ABOUT(void);
00193 void Callback_CLEARCOMMANDWINDOW(void);
00194 void Callback_CONFIGUREBROWSER(void);
00195 void Callback_CLEARHISTORY(void);
00196
00197 void SendMacro (LPTW lptw, UINT m);
00198 BOOL SciOpenSave (HWND hWndParent, BYTE ** s,BOOL save, char **d, int *ierr);
00199 void MenuFixCurrentWin (int ivalue);
00200 GFILE * Gfopen (LPSTR lpszFileName, int fnOpenMode);
00201 void Gfclose (GFILE * gfile);
00202 int Gfgets (LPSTR lp, int size, GFILE * gfile);
00203 int GetLine (char *buffer, int len, GFILE * gfile);
00204 void LeftJustify (char *d, char *s);
00205 void TranslateMacro (char *string);
00206 void LoadMacros (LPTW lptw);
00207 void CloseMacros (LPTW lptw);
00208
00209
00210 BOOL OpenSaveSCIFile(HWND hWndParent,char *titre,BOOL read,char *FileExt,char *file);
00211
00212 void ReplaceSlash(char *pathout,char *pathin);
00213
00214
00215
00216 void SendCTRLandAKey(int code);
00217
00218 void ResetMenu(void);
00219
00220 void ShowToolBar(LPTW lptw);
00221 void HideToolBar(LPTW lptw);
00222 void ToolBarOnOff(LPTW lptw);
00223
00224 void ReLoadMenus(LPTW lptw);
00225 void UpdateFileNameMenu(LPTW lptw);
00226
00227
00228 void CreateMyTooltip (HWND hwnd,char ToolTipString[30]);
00229
00230 void SwitchLanguage(LPTW lptw);
00231
00232 void CreateButton(LPTW lptw, char *ButtonText[BUTTONMAX], int index,int ButtonSizeX, int ButtonSizeY);
00233 int GetXPosButton(LPTW lptw,int index,int SizeXButtonText,int SizeXButtonIcon);
00234
00235 void ConfigureScilabStar(int LangCode);
00236 int ModifyFile(char *fichier,char *motclef,char *chaine);
00237
00238 int HideToolBarWin32(int WinNum);
00239
00240 void CutLineForDisplay(char *CutLine,char *Line,int NumberOfCharByLine);
00241
00242 void SetLanguageMenu(char *Language);
00243
00244 int GetLanguageCodeInScilabDotStar(void);
00245
00246 #endif