Added compressor setting option
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3167 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
52c888841d
commit
7fe6a9959d
13 changed files with 301 additions and 125 deletions
|
@ -173,6 +173,8 @@ Version History
|
||||||
- Added NSIS Update menu.
|
- Added NSIS Update menu.
|
||||||
- Added toolbar for commonly used menus.
|
- Added toolbar for commonly used menus.
|
||||||
- Made the Toolbar style flat
|
- Made the Toolbar style flat
|
||||||
|
- Added option for compile & run
|
||||||
|
- Added compressor setting option
|
||||||
|
|
||||||
Copyright Information
|
Copyright Information
|
||||||
---------------------
|
---------------------
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
Copyright (c) 2002 Robert Rainwater
|
Copyright (c) 2002 Robert Rainwater
|
||||||
Contributors: Justin Frankel, Fritz Elfert, Amir Szekely, and Sunil Kamath
|
Contributors: Justin Frankel, Fritz Elfert, Amir Szekely, and Sunil Kamath
|
||||||
|
|
||||||
|
@ -94,6 +94,15 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, char *cmdParam, int cmd
|
||||||
return msg.wParam;
|
return msg.wParam;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ResetInputScript()
|
||||||
|
{
|
||||||
|
if(g_sdata.input_script) {
|
||||||
|
g_sdata.script_alloced = true;
|
||||||
|
g_sdata.script = (char *)GlobalAlloc(GPTR, (lstrlen(g_sdata.input_script)+3)*sizeof(char));
|
||||||
|
wsprintf(g_sdata.script,"\"%s\"",g_sdata.input_script);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
static HINSTANCE hRichEditDLL = 0;
|
static HINSTANCE hRichEditDLL = 0;
|
||||||
if (!hRichEditDLL) hRichEditDLL= LoadLibrary("RichEd32.dll");
|
if (!hRichEditDLL) hRichEditDLL= LoadLibrary("RichEd32.dll");
|
||||||
|
@ -102,10 +111,10 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
{
|
{
|
||||||
g_sdata.hwnd=hwndDlg;
|
g_sdata.hwnd=hwndDlg;
|
||||||
HICON hIcon = LoadIcon(g_sdata.hInstance,MAKEINTRESOURCE(IDI_ICON));
|
HICON hIcon = LoadIcon(g_sdata.hInstance,MAKEINTRESOURCE(IDI_ICON));
|
||||||
SetClassLong(hwndDlg,GCL_HICON,(long)hIcon);
|
SetClassLong(hwndDlg,GCL_HICON,(long)hIcon);
|
||||||
// Altered by Darren Owen (DrO) on 29/9/2003
|
// Altered by Darren Owen (DrO) on 29/9/2003
|
||||||
// Added in receiving of mouse and key events from the richedit control
|
// Added in receiving of mouse and key events from the richedit control
|
||||||
SendMessage(GetDlgItem(hwndDlg,IDC_LOGWIN),EM_SETEVENTMASK,NULL,ENM_SELCHANGE|ENM_MOUSEEVENTS|ENM_KEYEVENTS);
|
SendMessage(GetDlgItem(hwndDlg,IDC_LOGWIN),EM_SETEVENTMASK,NULL,ENM_SELCHANGE|ENM_MOUSEEVENTS|ENM_KEYEVENTS);
|
||||||
DragAcceptFiles(g_sdata.hwnd,FALSE);
|
DragAcceptFiles(g_sdata.hwnd,FALSE);
|
||||||
g_sdata.menu = GetMenu(g_sdata.hwnd);
|
g_sdata.menu = GetMenu(g_sdata.hwnd);
|
||||||
g_sdata.fileSubmenu = GetSubMenu(g_sdata.menu, FILE_MENU_INDEX);
|
g_sdata.fileSubmenu = GetSubMenu(g_sdata.menu, FILE_MENU_INDEX);
|
||||||
|
@ -114,14 +123,12 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
RestoreMRUList();
|
RestoreMRUList();
|
||||||
CreateToolBar();
|
CreateToolBar();
|
||||||
InitTooltips(g_sdata.hwnd);
|
InitTooltips(g_sdata.hwnd);
|
||||||
#ifdef COMPRESSOR_OPTION
|
|
||||||
SetCompressor(IDM_DEFAULT);
|
|
||||||
#endif
|
|
||||||
SetBranding(g_sdata.hwnd);
|
SetBranding(g_sdata.hwnd);
|
||||||
HFONT hFont = CreateFont(14,0,0,0,FW_NORMAL,0,0,0,DEFAULT_CHARSET,OUT_CHARACTER_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FIXED_PITCH|FF_DONTCARE,"Courier New");
|
HFONT hFont = CreateFont(14,0,0,0,FW_NORMAL,0,0,0,DEFAULT_CHARSET,OUT_CHARACTER_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FIXED_PITCH|FF_DONTCARE,"Courier New");
|
||||||
SendDlgItemMessage(hwndDlg,IDC_LOGWIN,WM_SETFONT,(WPARAM)hFont,0);
|
SendDlgItemMessage(hwndDlg,IDC_LOGWIN,WM_SETFONT,(WPARAM)hFont,0);
|
||||||
SendDlgItemMessage(hwndDlg,IDC_LOGWIN,EM_SETBKGNDCOLOR,0,GetSysColor(COLOR_BTNFACE));
|
SendDlgItemMessage(hwndDlg,IDC_LOGWIN,EM_SETBKGNDCOLOR,0,GetSysColor(COLOR_BTNFACE));
|
||||||
RestoreWindowPos(g_sdata.hwnd);
|
RestoreWindowPos(g_sdata.hwnd);
|
||||||
|
RestoreCompressor();
|
||||||
CompileNSISScript();
|
CompileNSISScript();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -140,6 +147,7 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
{
|
{
|
||||||
SaveDefines();
|
SaveDefines();
|
||||||
SaveMRUList();
|
SaveMRUList();
|
||||||
|
SaveCompressor();
|
||||||
SaveWindowPos(g_sdata.hwnd);
|
SaveWindowPos(g_sdata.hwnd);
|
||||||
DestroyTooltips();
|
DestroyTooltips();
|
||||||
PostQuitMessage(0);
|
PostQuitMessage(0);
|
||||||
|
@ -173,7 +181,7 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
}
|
}
|
||||||
case WM_GETMINMAXINFO:
|
case WM_GETMINMAXINFO:
|
||||||
{
|
{
|
||||||
((MINMAXINFO*)lParam)->ptMinTrackSize.x=MINWIDTH;
|
((MINMAXINFO*)lParam)->ptMinTrackSize.x=MINWIDTH;
|
||||||
((MINMAXINFO*)lParam)->ptMinTrackSize.y=MINHEIGHT;
|
((MINMAXINFO*)lParam)->ptMinTrackSize.y=MINHEIGHT;
|
||||||
}
|
}
|
||||||
case WM_ENTERSIZEMOVE:
|
case WM_ENTERSIZEMOVE:
|
||||||
|
@ -209,6 +217,66 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
CloseHandle(g_sdata.thread);
|
CloseHandle(g_sdata.thread);
|
||||||
g_sdata.thread=0;
|
g_sdata.thread=0;
|
||||||
}
|
}
|
||||||
|
if(g_sdata.compressor == COMPRESSOR_BEST) {
|
||||||
|
if (g_sdata.retcode==0 && FileExists(g_sdata.output_exe)) {
|
||||||
|
char zlib_file_name[MAX_PATH];
|
||||||
|
wsprintf(zlib_file_name,"%s_makensisw_zlib",g_sdata.output_exe);
|
||||||
|
if(!lstrcmpi(g_sdata.compressor_name,ZLIB_COMPRESSOR_NAME)) {
|
||||||
|
CopyFile(g_sdata.output_exe,zlib_file_name,false);
|
||||||
|
g_sdata.compressor_name = BZIP2_COMPRESSOR_NAME;
|
||||||
|
ResetObjects();
|
||||||
|
ResetInputScript();
|
||||||
|
|
||||||
|
CompileNSISScript();
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
g_sdata.compressor_name = ZLIB_COMPRESSOR_NAME;
|
||||||
|
g_sdata.appended = false;
|
||||||
|
ResetInputScript();
|
||||||
|
|
||||||
|
if(FileExists(zlib_file_name)) {
|
||||||
|
HANDLE hZlib, hBzip2;
|
||||||
|
DWORD zlibSize, bzip2Size;
|
||||||
|
|
||||||
|
hZlib = CreateFile(zlib_file_name,GENERIC_READ, FILE_SHARE_READ,
|
||||||
|
NULL, OPEN_EXISTING, NULL, NULL);
|
||||||
|
if(hZlib != INVALID_HANDLE_VALUE) {
|
||||||
|
zlibSize = GetFileSize(hZlib, 0);
|
||||||
|
CloseHandle(hZlib);
|
||||||
|
|
||||||
|
if(zlibSize != INVALID_FILE_SIZE) {
|
||||||
|
hBzip2 = CreateFile(g_sdata.output_exe,GENERIC_READ, FILE_SHARE_READ,
|
||||||
|
NULL, OPEN_EXISTING, NULL, NULL);
|
||||||
|
if(hBzip2 != INVALID_HANDLE_VALUE) {
|
||||||
|
bzip2Size = GetFileSize(hBzip2, 0);
|
||||||
|
CloseHandle(hBzip2);
|
||||||
|
|
||||||
|
char buf[1024];
|
||||||
|
|
||||||
|
if(bzip2Size != INVALID_FILE_SIZE) {
|
||||||
|
if(zlibSize < bzip2Size) {
|
||||||
|
CopyFile(zlib_file_name,g_sdata.output_exe,false);
|
||||||
|
wsprintf(buf,COMPRESSOR_MESSAGE,ZLIB_COMPRESSOR_NAME,zlibSize,
|
||||||
|
BZIP2_COMPRESSOR_NAME,bzip2Size);
|
||||||
|
LogMessage(g_sdata.hwnd,buf);
|
||||||
|
LogMessage(g_sdata.hwnd,ZLIB_COMPRESSOR_MESSAGE);
|
||||||
|
LogMessage(g_sdata.hwnd, g_sdata.compressor_stats);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
wsprintf(buf,COMPRESSOR_MESSAGE,BZIP2_COMPRESSOR_NAME,bzip2Size,
|
||||||
|
ZLIB_COMPRESSOR_NAME,zlibSize);
|
||||||
|
LogMessage(g_sdata.hwnd,buf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DeleteFile(zlib_file_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
EnableItems(g_sdata.hwnd);
|
EnableItems(g_sdata.hwnd);
|
||||||
if (g_sdata.retcode==0) {
|
if (g_sdata.retcode==0) {
|
||||||
MessageBeep(MB_ICONASTERISK);
|
MessageBeep(MB_ICONASTERISK);
|
||||||
|
@ -233,7 +301,7 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
}
|
}
|
||||||
case WM_NOTIFY:
|
case WM_NOTIFY:
|
||||||
switch (((NMHDR*)lParam)->code ) {
|
switch (((NMHDR*)lParam)->code ) {
|
||||||
case EN_SELCHANGE:
|
case EN_SELCHANGE:
|
||||||
SendDlgItemMessage(hwndDlg,IDC_LOGWIN, EM_EXGETSEL, 0, (LPARAM) &g_sdata.textrange);
|
SendDlgItemMessage(hwndDlg,IDC_LOGWIN, EM_EXGETSEL, 0, (LPARAM) &g_sdata.textrange);
|
||||||
{
|
{
|
||||||
BOOL enabled = (g_sdata.textrange.cpMax-g_sdata.textrange.cpMin<=0?FALSE:TRUE);
|
BOOL enabled = (g_sdata.textrange.cpMax-g_sdata.textrange.cpMin<=0?FALSE:TRUE);
|
||||||
|
@ -264,7 +332,6 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
MapWindowPoints(edit, HWND_DESKTOP, &pt, 1);
|
MapWindowPoints(edit, HWND_DESKTOP, &pt, 1);
|
||||||
TrackPopupMenu(g_sdata.editSubmenu, TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, pt.x, pt.y, 0, g_sdata.hwnd, 0);
|
TrackPopupMenu(g_sdata.editSubmenu, TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, pt.x, pt.y, 0, g_sdata.hwnd, 0);
|
||||||
}
|
}
|
||||||
#ifdef COMPRESSOR_OPTION
|
|
||||||
case TBN_DROPDOWN:
|
case TBN_DROPDOWN:
|
||||||
{
|
{
|
||||||
LPNMTOOLBAR pToolBar = (LPNMTOOLBAR) lParam;
|
LPNMTOOLBAR pToolBar = (LPNMTOOLBAR) lParam;
|
||||||
|
@ -276,7 +343,6 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
return TBDDRET_NODEFAULT;
|
return TBDDRET_NODEFAULT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
case WM_COPYDATA:
|
case WM_COPYDATA:
|
||||||
|
@ -389,23 +455,11 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
case IDM_CLEAR_MRU_LIST:
|
case IDM_CLEAR_MRU_LIST:
|
||||||
ClearMRUList();
|
ClearMRUList();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
#ifdef COMPRESSOR_OPTION
|
|
||||||
case IDM_COMPRESSOR:
|
case IDM_COMPRESSOR:
|
||||||
{
|
{
|
||||||
switch(g_sdata.compressor) {
|
SetCompressor((NCOMPRESSOR)(g_sdata.compressor+1));
|
||||||
case COMPRESSOR_DEFAULT:
|
|
||||||
SetCompressor(IDM_ZLIB);
|
|
||||||
break;
|
|
||||||
case COMPRESSOR_ZLIB:
|
|
||||||
SetCompressor(IDM_GZIP);
|
|
||||||
break;
|
|
||||||
case COMPRESSOR_GZIP:
|
|
||||||
SetCompressor(IDM_DEFAULT);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
case IDM_CLEARLOG:
|
case IDM_CLEARLOG:
|
||||||
{
|
{
|
||||||
if (!g_sdata.thread) {
|
if (!g_sdata.thread) {
|
||||||
|
@ -495,7 +549,7 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
CloseHandle(hFile);
|
CloseHandle(hFile);
|
||||||
GlobalFree(existing_text);
|
GlobalFree(existing_text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
case IDM_FIND:
|
case IDM_FIND:
|
||||||
|
@ -511,12 +565,18 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
g_find.hwndFind = FindText(&g_find.fr);
|
g_find.hwndFind = FindText(&g_find.fr);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
#ifdef COMPRESSOR_OPTION
|
|
||||||
case IDM_DEFAULT:
|
case IDM_DEFAULT:
|
||||||
|
SetCompressor(COMPRESSOR_DEFAULT);
|
||||||
|
return TRUE;
|
||||||
case IDM_ZLIB:
|
case IDM_ZLIB:
|
||||||
case IDM_GZIP:
|
SetCompressor(COMPRESSOR_ZLIB);
|
||||||
return SetCompressor(LOWORD(wParam));
|
return TRUE;
|
||||||
#endif
|
case IDM_BZIP2:
|
||||||
|
SetCompressor(COMPRESSOR_BZIP2);
|
||||||
|
return TRUE;
|
||||||
|
case IDM_BEST:
|
||||||
|
SetCompressor(COMPRESSOR_BEST);
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -547,7 +607,7 @@ DWORD WINAPI MakeNSISProc(LPVOID p) {
|
||||||
SECURITY_ATTRIBUTES sa={sizeof(sa),};
|
SECURITY_ATTRIBUTES sa={sizeof(sa),};
|
||||||
SECURITY_DESCRIPTOR sd={0,};
|
SECURITY_DESCRIPTOR sd={0,};
|
||||||
PROCESS_INFORMATION pi={0,};
|
PROCESS_INFORMATION pi={0,};
|
||||||
HANDLE newstdout=0,read_stdout=0;
|
HANDLE newstdout=0,read_stdout=0;
|
||||||
OSVERSIONINFO osv={sizeof(osv)};
|
OSVERSIONINFO osv={sizeof(osv)};
|
||||||
GetVersionEx(&osv);
|
GetVersionEx(&osv);
|
||||||
if (osv.dwPlatformId == VER_PLATFORM_WIN32_NT) {
|
if (osv.dwPlatformId == VER_PLATFORM_WIN32_NT) {
|
||||||
|
@ -603,7 +663,7 @@ DWORD WINAPI MakeNSISProc(LPVOID p) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL CALLBACK DialogResize(HWND hWnd, LPARAM /* unused */)
|
BOOL CALLBACK DialogResize(HWND hWnd, LPARAM /* unused */)
|
||||||
{
|
{
|
||||||
RECT r;
|
RECT r;
|
||||||
GetWindowRect(hWnd, &r);
|
GetWindowRect(hWnd, &r);
|
||||||
|
@ -632,16 +692,16 @@ BOOL CALLBACK AboutProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
{
|
{
|
||||||
HFONT bfont = CreateFont(13,0,0,0,FW_NORMAL,FALSE,FALSE,FALSE,DEFAULT_CHARSET,
|
HFONT bfont = CreateFont(13,0,0,0,FW_NORMAL,FALSE,FALSE,FALSE,DEFAULT_CHARSET,
|
||||||
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
|
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
|
||||||
FIXED_PITCH|FF_DONTCARE, "Tahoma");
|
FIXED_PITCH|FF_DONTCARE, "Tahoma");
|
||||||
HFONT bfontb = CreateFont(13,0,0,0,FW_BOLD,FALSE,FALSE,FALSE,DEFAULT_CHARSET,
|
HFONT bfontb = CreateFont(13,0,0,0,FW_BOLD,FALSE,FALSE,FALSE,DEFAULT_CHARSET,
|
||||||
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
|
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
|
||||||
FIXED_PITCH|FF_DONTCARE, "Tahoma");
|
FIXED_PITCH|FF_DONTCARE, "Tahoma");
|
||||||
HFONT rfont = CreateFont(12,0,0,0,FW_NORMAL,FALSE,FALSE,FALSE,DEFAULT_CHARSET,
|
HFONT rfont = CreateFont(12,0,0,0,FW_NORMAL,FALSE,FALSE,FALSE,DEFAULT_CHARSET,
|
||||||
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
|
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
|
||||||
FIXED_PITCH|FF_DONTCARE, "MS Shell Dlg");
|
FIXED_PITCH|FF_DONTCARE, "MS Shell Dlg");
|
||||||
HFONT rfontb = CreateFont(12,0,0,0,FW_BOLD,FALSE,FALSE,FALSE,DEFAULT_CHARSET,
|
HFONT rfontb = CreateFont(12,0,0,0,FW_BOLD,FALSE,FALSE,FALSE,DEFAULT_CHARSET,
|
||||||
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
|
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
|
||||||
FIXED_PITCH|FF_DONTCARE, "MS Shell Dlg");
|
FIXED_PITCH|FF_DONTCARE, "MS Shell Dlg");
|
||||||
if (bfont&&bfontb) {
|
if (bfont&&bfontb) {
|
||||||
SendDlgItemMessage(hwndDlg, IDC_ABOUTVERSION, WM_SETFONT, (WPARAM)bfontb, FALSE);
|
SendDlgItemMessage(hwndDlg, IDC_ABOUTVERSION, WM_SETFONT, (WPARAM)bfontb, FALSE);
|
||||||
|
@ -666,7 +726,7 @@ BOOL CALLBACK AboutProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
{
|
{
|
||||||
switch (LOWORD(wParam)) {
|
switch (LOWORD(wParam)) {
|
||||||
case IDOK:
|
case IDOK:
|
||||||
EndDialog(hwndDlg, TRUE);
|
EndDialog(hwndDlg, TRUE);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -697,12 +757,8 @@ BOOL CALLBACK DefinesProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
case IDOK:
|
case IDOK:
|
||||||
{
|
{
|
||||||
ResetObjects();
|
ResetObjects();
|
||||||
|
ResetInputScript();
|
||||||
ResetDefines();
|
ResetDefines();
|
||||||
if(g_sdata.input_script) {
|
|
||||||
g_sdata.script_alloced = true;
|
|
||||||
g_sdata.script = (char *)GlobalAlloc(GPTR, (lstrlen(g_sdata.input_script)+3)*sizeof(char));
|
|
||||||
wsprintf(g_sdata.script,"\"%s\"",g_sdata.input_script);
|
|
||||||
}
|
|
||||||
int n = SendDlgItemMessage(hwndDlg, IDC_DEFINES, LB_GETCOUNT, 0, 0);
|
int n = SendDlgItemMessage(hwndDlg, IDC_DEFINES, LB_GETCOUNT, 0, 0);
|
||||||
if(n > 0) {
|
if(n > 0) {
|
||||||
g_sdata.defines = (char **)GlobalAlloc(GPTR, (n+1)*sizeof(char *));
|
g_sdata.defines = (char **)GlobalAlloc(GPTR, (n+1)*sizeof(char *));
|
||||||
|
@ -716,7 +772,7 @@ BOOL CALLBACK DefinesProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
EndDialog(hwndDlg, TRUE);
|
EndDialog(hwndDlg, TRUE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case IDCANCEL:
|
case IDCANCEL:
|
||||||
EndDialog(hwndDlg, TRUE);
|
EndDialog(hwndDlg, TRUE);
|
||||||
break;
|
break;
|
||||||
case IDRIGHT:
|
case IDRIGHT:
|
||||||
|
@ -800,29 +856,40 @@ BOOL CALLBACK DefinesProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef COMPRESSOR_OPTION
|
void SetCompressor(NCOMPRESSOR compressor)
|
||||||
BOOL SetCompressor(WORD command)
|
|
||||||
{
|
{
|
||||||
switch(command) {
|
if(g_sdata.compressor != compressor) {
|
||||||
case IDM_DEFAULT:
|
WORD command;
|
||||||
g_sdata.compressor = COMPRESSOR_DEFAULT;
|
char *compressor_name;
|
||||||
|
|
||||||
|
switch(compressor) {
|
||||||
|
case COMPRESSOR_ZLIB:
|
||||||
|
command = IDM_ZLIB;
|
||||||
|
compressor_name = ZLIB_COMPRESSOR_NAME;
|
||||||
break;
|
break;
|
||||||
case IDM_ZLIB:
|
case COMPRESSOR_BZIP2:
|
||||||
g_sdata.compressor = COMPRESSOR_ZLIB;
|
command = IDM_BZIP2;
|
||||||
|
compressor_name = BZIP2_COMPRESSOR_NAME;
|
||||||
break;
|
break;
|
||||||
case IDM_GZIP:
|
case COMPRESSOR_BEST:
|
||||||
g_sdata.compressor = COMPRESSOR_GZIP;
|
command = IDM_BEST;
|
||||||
|
compressor_name = ZLIB_COMPRESSOR_NAME;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return FALSE;
|
compressor = COMPRESSOR_DEFAULT;
|
||||||
|
command = IDM_DEFAULT;
|
||||||
|
compressor_name = "";
|
||||||
}
|
}
|
||||||
|
g_sdata.compressor = compressor;
|
||||||
|
g_sdata.compressor_name = compressor_name;
|
||||||
UpdateToolBarCompressorButton();
|
UpdateToolBarCompressorButton();
|
||||||
CheckMenuItem(g_sdata.menu, IDM_DEFAULT, MF_BYCOMMAND | MF_UNCHECKED);
|
CheckMenuItem(g_sdata.menu, IDM_DEFAULT, MF_BYCOMMAND | MF_UNCHECKED);
|
||||||
CheckMenuItem(g_sdata.menu, IDM_ZLIB, MF_BYCOMMAND | MF_UNCHECKED);
|
CheckMenuItem(g_sdata.menu, IDM_ZLIB, MF_BYCOMMAND | MF_UNCHECKED);
|
||||||
CheckMenuItem(g_sdata.menu, IDM_GZIP, MF_BYCOMMAND | MF_UNCHECKED);
|
CheckMenuItem(g_sdata.menu, IDM_BZIP2, MF_BYCOMMAND | MF_UNCHECKED);
|
||||||
|
CheckMenuItem(g_sdata.menu, IDM_BEST, MF_BYCOMMAND | MF_UNCHECKED);
|
||||||
CheckMenuItem(g_sdata.menu, command, MF_BYCOMMAND | MF_CHECKED);
|
CheckMenuItem(g_sdata.menu, command, MF_BYCOMMAND | MF_CHECKED);
|
||||||
|
ResetObjects();
|
||||||
return TRUE;
|
ResetInputScript();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
|
@ -153,6 +153,10 @@ SOURCE=.\logo.bmp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE="..\Graphics\Icons\modern-install-blue-full.ico"
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE="..\Icons\modern-install.ico"
|
SOURCE="..\Icons\modern-install.ico"
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
Copyright (c) 2002 Robert Rainwater
|
Copyright (c) 2002 Robert Rainwater
|
||||||
Contributors: Justin Frankel, Fritz Elfert, Amir Szekely, and Sunil Kamath
|
Contributors: Justin Frankel, Fritz Elfert, Amir Szekely, and Sunil Kamath
|
||||||
|
|
||||||
|
@ -44,6 +44,7 @@
|
||||||
#define REGSEC HKEY_LOCAL_MACHINE
|
#define REGSEC HKEY_LOCAL_MACHINE
|
||||||
#define REGKEY "Software\\NSIS"
|
#define REGKEY "Software\\NSIS"
|
||||||
#define REGLOC "MakeNSISWPlacement"
|
#define REGLOC "MakeNSISWPlacement"
|
||||||
|
#define REGCOMPRESSOR "Compressor"
|
||||||
#define REGDEFSUBKEY "Defines"
|
#define REGDEFSUBKEY "Defines"
|
||||||
#define REGDEFCOUNT "MakeNSISWDefinesCount"
|
#define REGDEFCOUNT "MakeNSISWDefinesCount"
|
||||||
#define REGMRUSUBKEY "MRU"
|
#define REGMRUSUBKEY "MRU"
|
||||||
|
@ -55,6 +56,13 @@
|
||||||
#define FILE_MENU_INDEX 0
|
#define FILE_MENU_INDEX 0
|
||||||
#define EDIT_MENU_INDEX 1
|
#define EDIT_MENU_INDEX 1
|
||||||
#define TOOLS_MENU_INDEX 2
|
#define TOOLS_MENU_INDEX 2
|
||||||
|
#define COMPRESSOR_MENU_INDEX 4
|
||||||
|
#define BZIP2_COMPRESSOR_NAME "bzip2"
|
||||||
|
#define ZLIB_COMPRESSOR_NAME "zlib"
|
||||||
|
#define COMPRESSOR_MESSAGE "\n\nThe %s compressor (%d bytes) created a smaller file than the %s compressor (%d bytes)."
|
||||||
|
#define ZLIB_COMPRESSOR_MESSAGE "\nThe bzip2 compressed version was replaced with zlib compressed version."
|
||||||
|
#define EXE_HEADER_COMPRESSOR_STAT "EXE header size:"
|
||||||
|
#define TOTAL_SIZE_COMPRESSOR_STAT "Total size:"
|
||||||
|
|
||||||
#define WM_MAKENSIS_PROCESSCOMPLETE (WM_USER+1001)
|
#define WM_MAKENSIS_PROCESSCOMPLETE (WM_USER+1001)
|
||||||
|
|
||||||
|
@ -65,18 +73,18 @@ enum {
|
||||||
MAKENSIS_NOTIFY_OUTPUT
|
MAKENSIS_NOTIFY_OUTPUT
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef COMPRESSOR_OPTION
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
COMPRESSOR_DEFAULT,
|
COMPRESSOR_DEFAULT,
|
||||||
COMPRESSOR_ZLIB,
|
COMPRESSOR_ZLIB,
|
||||||
COMPRESSOR_GZIP
|
COMPRESSOR_BZIP2,
|
||||||
|
COMPRESSOR_BEST
|
||||||
} NCOMPRESSOR;
|
} NCOMPRESSOR;
|
||||||
#endif
|
|
||||||
// Extern Variables
|
// Extern Variables
|
||||||
extern const char* NSISW_VERSION;
|
extern const char* NSISW_VERSION;
|
||||||
|
|
||||||
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, char *cmdParam, int cmdShow);
|
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, char *cmdParam, int cmdShow);
|
||||||
static BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
static BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||||
DWORD WINAPI MakeNSISProc(LPVOID p);
|
DWORD WINAPI MakeNSISProc(LPVOID p);
|
||||||
BOOL CALLBACK DialogResize(HWND hWnd, LPARAM /* unused*/);
|
BOOL CALLBACK DialogResize(HWND hWnd, LPARAM /* unused*/);
|
||||||
BOOL CALLBACK AboutNSISProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
BOOL CALLBACK AboutNSISProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||||
|
@ -84,9 +92,7 @@ BOOL CALLBACK AboutProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||||
BOOL CALLBACK DefinesProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
BOOL CALLBACK DefinesProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||||
void CompileNSISScript();
|
void CompileNSISScript();
|
||||||
char* BuildDefines();
|
char* BuildDefines();
|
||||||
#ifdef COMPRESSOR_OPTION
|
void SetCompressor(NCOMPRESSOR);
|
||||||
BOOL SetCompressor(WORD);
|
|
||||||
#endif
|
|
||||||
void RestoreDefines();
|
void RestoreDefines();
|
||||||
void SaveDefines();
|
void SaveDefines();
|
||||||
void RestoreMRUList();
|
void RestoreMRUList();
|
||||||
|
@ -113,9 +119,9 @@ typedef struct NSISScriptData {
|
||||||
HANDLE thread;
|
HANDLE thread;
|
||||||
HWND focused_hwnd;
|
HWND focused_hwnd;
|
||||||
CHARRANGE textrange;
|
CHARRANGE textrange;
|
||||||
#ifdef COMPRESSOR_OPTION
|
|
||||||
NCOMPRESSOR compressor;
|
NCOMPRESSOR compressor;
|
||||||
#endif
|
char *compressor_name;
|
||||||
|
char compressor_stats[512];
|
||||||
// Added by Darren Owen (DrO) on 1/10/2003
|
// Added by Darren Owen (DrO) on 1/10/2003
|
||||||
int recompile_test;
|
int recompile_test;
|
||||||
} NSCRIPTDATA;
|
} NSCRIPTDATA;
|
||||||
|
|
|
@ -48,4 +48,11 @@ char *my_strstr(char *i, char *s) {
|
||||||
void *my_memset(void *dest, int c, size_t count) {
|
void *my_memset(void *dest, int c, size_t count) {
|
||||||
for (size_t i=0; i<count;i++) ((char*)dest)[i]=c;
|
for (size_t i=0; i<count;i++) ((char*)dest)[i]=c;
|
||||||
return dest;
|
return dest;
|
||||||
|
}
|
||||||
|
|
||||||
|
int lstrcmpn(char *s1, const char *s2, int chars)
|
||||||
|
{
|
||||||
|
while ((chars > 0) && (*s1) && (*s2) && (*(s1) == *(s2))) chars--, s1++, s2++;
|
||||||
|
if ((chars == 0) || (*s1 == *s2)) return 0;
|
||||||
|
return (*s1 - *s2);
|
||||||
}
|
}
|
|
@ -27,4 +27,5 @@ char *my_strstr(char *i, char *s);
|
||||||
char *my_strrchr(const char *string, int c);
|
char *my_strrchr(const char *string, int c);
|
||||||
void *my_memset(void *dest, int c, size_t count);
|
void *my_memset(void *dest, int c, size_t count);
|
||||||
|
|
||||||
|
int lstrcmpn(char *s1, const char *s2, int chars);
|
||||||
#endif
|
#endif
|
|
@ -9,6 +9,7 @@
|
||||||
#define IDS_FIND 5
|
#define IDS_FIND 5
|
||||||
#define IDS_RECOMPILE 6
|
#define IDS_RECOMPILE 6
|
||||||
#define IDS_DEFINES 7
|
#define IDS_DEFINES 7
|
||||||
|
#define IDS_COMPRESSOR 8
|
||||||
#define IDS_TEST 9
|
#define IDS_TEST 9
|
||||||
#define IDS_EDITSCRIPT 10
|
#define IDS_EDITSCRIPT 10
|
||||||
#define IDS_BROWSESCR 11
|
#define IDS_BROWSESCR 11
|
||||||
|
@ -19,9 +20,10 @@
|
||||||
#define IDS_DOCS 17
|
#define IDS_DOCS 17
|
||||||
#define IDS_DEFAULT 18
|
#define IDS_DEFAULT 18
|
||||||
#define IDS_ZLIB 19
|
#define IDS_ZLIB 19
|
||||||
#define IDS_GZIP 20
|
#define IDS_BZIP2 20
|
||||||
// Added by Darren Owen (DrO) on 1/10/2003
|
// Added by Darren Owen (DrO) on 1/10/2003
|
||||||
#define IDS_RECOMPILE_TEST 21
|
#define IDS_RECOMPILE_TEST 21
|
||||||
|
#define IDS_BEST 22
|
||||||
|
|
||||||
#define DLG_MAIN 101
|
#define DLG_MAIN 101
|
||||||
#define IDI_ICON 102
|
#define IDI_ICON 102
|
||||||
|
@ -56,8 +58,9 @@
|
||||||
#define IDLEFT 1020
|
#define IDLEFT 1020
|
||||||
#define IDC_DEFINES 1021
|
#define IDC_DEFINES 1021
|
||||||
// Added by Darren Owen (DrO) on 1/10/2003
|
// Added by Darren Owen (DrO) on 1/10/2003
|
||||||
#define IDC_RECOMPILE_TEST 1022
|
#define IDC_RECOMPILE_TEST 1022
|
||||||
|
|
||||||
|
#define IDM_COMPRESSOR 40001
|
||||||
#define IDM_TEST 40002
|
#define IDM_TEST 40002
|
||||||
#define IDM_EDITSCRIPT 40003
|
#define IDM_EDITSCRIPT 40003
|
||||||
#define IDM_DOCS 40004
|
#define IDM_DOCS 40004
|
||||||
|
@ -71,14 +74,15 @@
|
||||||
#define IDM_NSISUPDATE 40018
|
#define IDM_NSISUPDATE 40018
|
||||||
#define IDM_DEFAULT 40020
|
#define IDM_DEFAULT 40020
|
||||||
#define IDM_ZLIB 40021
|
#define IDM_ZLIB 40021
|
||||||
#define IDM_GZIP 40022
|
#define IDM_BZIP2 40022
|
||||||
#define IDM_MRU_FILE 40023
|
#define IDM_MRU_FILE 40023
|
||||||
#define IDM_CLEAR_MRU_LIST 40029
|
#define IDM_CLEAR_MRU_LIST 40029
|
||||||
// Added by Darren Owen (DrO) on 1/10/2003
|
// Added by Darren Owen (DrO) on 1/10/2003
|
||||||
#define IDM_RECOMPILE_TEST 40030
|
#define IDM_RECOMPILE_TEST 40030
|
||||||
|
#define IDM_BEST 40031
|
||||||
|
|
||||||
// Next default values for new objects
|
// Next default values for new objects
|
||||||
//
|
//
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 124
|
#define _APS_NEXT_RESOURCE_VALUE 124
|
||||||
|
|
|
@ -88,6 +88,13 @@ BEGIN
|
||||||
MENUITEM "&Define Symbols...\tCtrl+D", IDM_DEFINES
|
MENUITEM "&Define Symbols...\tCtrl+D", IDM_DEFINES
|
||||||
MENUITEM "Test &Installer\tCtrl+T", IDM_TEST
|
MENUITEM "Test &Installer\tCtrl+T", IDM_TEST
|
||||||
MENUITEM "Recompile and Run\tCtrl+M", IDM_RECOMPILE_TEST
|
MENUITEM "Recompile and Run\tCtrl+M", IDM_RECOMPILE_TEST
|
||||||
|
POPUP "&Set Compressor"
|
||||||
|
BEGIN
|
||||||
|
MENUITEM "Defa&ult", IDM_DEFAULT
|
||||||
|
MENUITEM "&zlib", IDM_ZLIB
|
||||||
|
MENUITEM "bzi&p2", IDM_BZIP2
|
||||||
|
MENUITEM "&Best", IDM_BEST
|
||||||
|
END
|
||||||
MENUITEM "Edit Script\tCtrl+E", IDM_EDITSCRIPT
|
MENUITEM "Edit Script\tCtrl+E", IDM_EDITSCRIPT
|
||||||
MENUITEM "Browse Script\tCtrl+B", IDM_BROWSESCR
|
MENUITEM "Browse Script\tCtrl+B", IDM_BROWSESCR
|
||||||
MENUITEM "Clear &Log Window\tCtrl+W", IDM_CLEARLOG
|
MENUITEM "Clear &Log Window\tCtrl+W", IDM_CLEARLOG
|
||||||
|
@ -119,9 +126,9 @@ BEGIN
|
||||||
"D", IDM_DEFINES, VIRTKEY, CONTROL, NOINVERT
|
"D", IDM_DEFINES, VIRTKEY, CONTROL, NOINVERT
|
||||||
"E", IDM_EDITSCRIPT, VIRTKEY, CONTROL, NOINVERT
|
"E", IDM_EDITSCRIPT, VIRTKEY, CONTROL, NOINVERT
|
||||||
"F", IDM_FIND, VIRTKEY, CONTROL, NOINVERT
|
"F", IDM_FIND, VIRTKEY, CONTROL, NOINVERT
|
||||||
"G", IDM_GZIP, VIRTKEY, CONTROL, NOINVERT
|
|
||||||
"L", IDM_LOADSCRIPT, VIRTKEY, CONTROL, NOINVERT
|
"L", IDM_LOADSCRIPT, VIRTKEY, CONTROL, NOINVERT
|
||||||
"M", IDM_RECOMPILE_TEST, VIRTKEY, CONTROL, NOINVERT
|
"M", IDM_RECOMPILE_TEST, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
"P", IDM_BZIP2, VIRTKEY, CONTROL, NOINVERT
|
||||||
"R", IDM_RECOMPILE, VIRTKEY, CONTROL, NOINVERT
|
"R", IDM_RECOMPILE, VIRTKEY, CONTROL, NOINVERT
|
||||||
"T", IDM_TEST, VIRTKEY, CONTROL, NOINVERT
|
"T", IDM_TEST, VIRTKEY, CONTROL, NOINVERT
|
||||||
"U", IDM_DEFAULT, VIRTKEY, CONTROL, NOINVERT
|
"U", IDM_DEFAULT, VIRTKEY, CONTROL, NOINVERT
|
||||||
|
@ -248,6 +255,7 @@ BEGIN
|
||||||
IDS_FIND "Find..."
|
IDS_FIND "Find..."
|
||||||
IDS_RECOMPILE "Recompile"
|
IDS_RECOMPILE "Recompile"
|
||||||
IDS_DEFINES "Define Symbols..."
|
IDS_DEFINES "Define Symbols..."
|
||||||
|
IDS_COMPRESSOR "Set Compressor"
|
||||||
IDS_TEST "Test Installer"
|
IDS_TEST "Test Installer"
|
||||||
IDS_EDITSCRIPT "Edit Script"
|
IDS_EDITSCRIPT "Edit Script"
|
||||||
IDS_BROWSESCR "Browse Script"
|
IDS_BROWSESCR "Browse Script"
|
||||||
|
@ -262,8 +270,9 @@ BEGIN
|
||||||
IDS_DOCS "Documentation"
|
IDS_DOCS "Documentation"
|
||||||
IDS_DEFAULT "Default"
|
IDS_DEFAULT "Default"
|
||||||
IDS_ZLIB "zlib"
|
IDS_ZLIB "zlib"
|
||||||
IDS_GZIP "gzip"
|
IDS_BZIP2 "bzip2"
|
||||||
IDS_RECOMPILE_TEST "Recompile and run"
|
IDS_RECOMPILE_TEST "Recompile and run"
|
||||||
|
IDS_BEST "Best"
|
||||||
END
|
END
|
||||||
|
|
||||||
#endif // English (U.S.) resources
|
#endif // English (U.S.) resources
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.7 KiB |
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
Copyright (c) 2003 Sunil Kamath
|
Copyright (c) 2003 Sunil Kamath
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
|
@ -42,7 +42,7 @@ TBBUTTON CreateToolBarButton(int iBitmap, int idCommand, BYTE fsState, BYTE fsSt
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateToolBar()
|
void CreateToolBar()
|
||||||
{
|
{
|
||||||
static TBBUTTON tbButton[BUTTONCOUNT];
|
static TBBUTTON tbButton[BUTTONCOUNT];
|
||||||
tbButton[TBB_LOADSCRIPT] = CreateToolBarButton(IDB_LOADSCRIPT, IDM_LOADSCRIPT, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0);
|
tbButton[TBB_LOADSCRIPT] = CreateToolBarButton(IDB_LOADSCRIPT, IDM_LOADSCRIPT, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0);
|
||||||
tbButton[TBB_SAVE] = CreateToolBarButton(IDB_SAVE, IDM_SAVE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0);
|
tbButton[TBB_SAVE] = CreateToolBarButton(IDB_SAVE, IDM_SAVE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0);
|
||||||
|
@ -53,11 +53,7 @@ void CreateToolBar()
|
||||||
tbButton[TBB_SEP2] = CreateToolBarButton(0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0);
|
tbButton[TBB_SEP2] = CreateToolBarButton(0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0);
|
||||||
tbButton[TBB_RECOMPILE] = CreateToolBarButton(IDB_RECOMPILE, IDM_RECOMPILE, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0);
|
tbButton[TBB_RECOMPILE] = CreateToolBarButton(IDB_RECOMPILE, IDM_RECOMPILE, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0);
|
||||||
tbButton[TBB_DEFINES] = CreateToolBarButton(IDB_DEFINES, IDM_DEFINES, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0);
|
tbButton[TBB_DEFINES] = CreateToolBarButton(IDB_DEFINES, IDM_DEFINES, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0);
|
||||||
#ifdef COMPRESSOR_OPTION
|
|
||||||
tbButton[TBB_COMPRESSOR] = CreateToolBarButton(IDB_COMPRESSOR, IDM_COMPRESSOR, TBSTATE_ENABLED, TBSTYLE_DROPDOWN, 0, 0);
|
tbButton[TBB_COMPRESSOR] = CreateToolBarButton(IDB_COMPRESSOR, IDM_COMPRESSOR, TBSTATE_ENABLED, TBSTYLE_DROPDOWN, 0, 0);
|
||||||
#else
|
|
||||||
tbButton[TBB_COMPRESSOR] = CreateToolBarButton(0, 0, TBSTATE_HIDDEN, TBSTYLE_DROPDOWN, 0, 0);
|
|
||||||
#endif
|
|
||||||
tbButton[TBB_TEST] = CreateToolBarButton(IDB_TEST, IDM_TEST, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0);
|
tbButton[TBB_TEST] = CreateToolBarButton(IDB_TEST, IDM_TEST, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0);
|
||||||
// Added by Darren Owen (DrO) on 1/10/2003
|
// Added by Darren Owen (DrO) on 1/10/2003
|
||||||
tbButton[TBB_RECOMPILE_TEST] = CreateToolBarButton(IDB_RECOMPILE_TEST, IDM_RECOMPILE_TEST, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0);
|
tbButton[TBB_RECOMPILE_TEST] = CreateToolBarButton(IDB_RECOMPILE_TEST, IDM_RECOMPILE_TEST, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0);
|
||||||
|
@ -84,18 +80,15 @@ void CreateToolBar()
|
||||||
IMAGEWIDTH,
|
IMAGEWIDTH,
|
||||||
IMAGEHEIGHT,
|
IMAGEHEIGHT,
|
||||||
sizeof(TBBUTTON));
|
sizeof(TBBUTTON));
|
||||||
#ifdef COMPRESSOR_OPTION
|
|
||||||
SendMessage(g_toolbar.hwnd, TB_SETEXTENDEDSTYLE, 0, (LPARAM) (DWORD) TBSTYLE_EX_DRAWDDARROWS);
|
SendMessage(g_toolbar.hwnd, TB_SETEXTENDEDSTYLE, 0, (LPARAM) (DWORD) TBSTYLE_EX_DRAWDDARROWS);
|
||||||
HMENU toolmenu = GetSubMenu(g_sdata.menu, 2);
|
HMENU toolmenu = GetSubMenu(g_sdata.menu, TOOLS_MENU_INDEX);
|
||||||
g_toolbar.dropdownmenu = GetSubMenu(toolmenu,2);
|
g_toolbar.dropdownmenu = GetSubMenu(toolmenu, COMPRESSOR_MENU_INDEX);
|
||||||
RECT rect;
|
RECT rect;
|
||||||
SendMessage(g_toolbar.hwnd, TB_GETITEMRECT, TBB_COMPRESSOR, (LPARAM) (LPRECT) &rect);
|
SendMessage(g_toolbar.hwnd, TB_GETITEMRECT, TBB_COMPRESSOR, (LPARAM) (LPRECT) &rect);
|
||||||
g_toolbar.dropdownpoint.x = rect.left;
|
g_toolbar.dropdownpoint.x = rect.left;
|
||||||
g_toolbar.dropdownpoint.y = rect.bottom+1;
|
g_toolbar.dropdownpoint.y = rect.bottom+1;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef COMPRESSOR_OPTION
|
|
||||||
void UpdateToolBarCompressorButton()
|
void UpdateToolBarCompressorButton()
|
||||||
{
|
{
|
||||||
int iBitmap;
|
int iBitmap;
|
||||||
|
@ -115,9 +108,13 @@ void UpdateToolBarCompressorButton()
|
||||||
iBitmap = IDB_COMPRESSOR_ZLIB;
|
iBitmap = IDB_COMPRESSOR_ZLIB;
|
||||||
iString = IDS_ZLIB;
|
iString = IDS_ZLIB;
|
||||||
break;
|
break;
|
||||||
case COMPRESSOR_GZIP:
|
case COMPRESSOR_BZIP2:
|
||||||
iBitmap = IDB_COMPRESSOR_GZIP;
|
iBitmap = IDB_COMPRESSOR_BZIP2;
|
||||||
iString = IDS_GZIP;
|
iString = IDS_BZIP2;
|
||||||
|
break;
|
||||||
|
case COMPRESSOR_BEST:
|
||||||
|
iBitmap = IDB_COMPRESSOR_BEST;
|
||||||
|
iString = IDS_BEST;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
|
@ -138,16 +135,15 @@ void UpdateToolBarCompressorButton()
|
||||||
|
|
||||||
SendMessage(g_toolbar.hwnd, TB_CHANGEBITMAP, (WPARAM) IDM_COMPRESSOR, (LPARAM) MAKELPARAM(iBitmap, 0));
|
SendMessage(g_toolbar.hwnd, TB_CHANGEBITMAP, (WPARAM) IDM_COMPRESSOR, (LPARAM) MAKELPARAM(iBitmap, 0));
|
||||||
|
|
||||||
ti.cbSize = sizeof(TOOLINFO);
|
ti.cbSize = sizeof(TOOLINFO);
|
||||||
ti.uFlags = 0;
|
ti.uFlags = 0;
|
||||||
ti.hinst = g_sdata.hInstance;
|
ti.hinst = g_sdata.hInstance;
|
||||||
ti.hwnd = g_toolbar.hwnd;
|
ti.hwnd = g_toolbar.hwnd;
|
||||||
ti.uId = (UINT)TBB_COMPRESSOR;
|
ti.uId = (UINT)TBB_COMPRESSOR;
|
||||||
SendMessage(g_tip.tip, TTM_GETTOOLINFO, 0, (LPARAM) (LPTOOLINFO) &ti);
|
SendMessage(g_tip.tip, TTM_GETTOOLINFO, 0, (LPARAM) (LPTOOLINFO) &ti);
|
||||||
ti.lpszText = (LPSTR)szBuffer;
|
ti.lpszText = (LPSTR)szBuffer;
|
||||||
SendMessage(g_tip.tip, TTM_SETTOOLINFO, 0, (LPARAM) (LPTOOLINFO) &ti);
|
SendMessage(g_tip.tip, TTM_SETTOOLINFO, 0, (LPARAM) (LPTOOLINFO) &ti);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void AddToolBarButtonTooltip(int id, int iString)
|
void AddToolBarButtonTooltip(int id, int iString)
|
||||||
{
|
{
|
||||||
|
@ -159,23 +155,23 @@ void AddToolBarButtonTooltip(int id, int iString)
|
||||||
|
|
||||||
SendMessage(g_toolbar.hwnd, TB_GETITEMRECT, id, (LPARAM) (LPRECT) &rect);
|
SendMessage(g_toolbar.hwnd, TB_GETITEMRECT, id, (LPARAM) (LPRECT) &rect);
|
||||||
|
|
||||||
ti.cbSize = sizeof(TOOLINFO);
|
ti.cbSize = sizeof(TOOLINFO);
|
||||||
ti.uFlags = 0;
|
ti.uFlags = 0;
|
||||||
ti.hwnd = g_toolbar.hwnd;
|
ti.hwnd = g_toolbar.hwnd;
|
||||||
ti.hinst = g_sdata.hInstance;
|
ti.hinst = g_sdata.hInstance;
|
||||||
ti.uId = (UINT)id;
|
ti.uId = (UINT)id;
|
||||||
|
|
||||||
LoadString(g_sdata.hInstance,
|
LoadString(g_sdata.hInstance,
|
||||||
iString,
|
iString,
|
||||||
szBuffer,
|
szBuffer,
|
||||||
sizeof(szBuffer));
|
sizeof(szBuffer));
|
||||||
ti.lpszText = (LPSTR) szBuffer;
|
ti.lpszText = (LPSTR) szBuffer;
|
||||||
ti.rect.left =rect.left;
|
ti.rect.left =rect.left;
|
||||||
ti.rect.top = rect.top;
|
ti.rect.top = rect.top;
|
||||||
ti.rect.right = rect.right;
|
ti.rect.right = rect.right;
|
||||||
ti.rect.bottom = rect.bottom;
|
ti.rect.bottom = rect.bottom;
|
||||||
|
|
||||||
SendMessage(g_tip.tip, TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) &ti);
|
SendMessage(g_tip.tip, TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) &ti);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddToolBarTooltips()
|
void AddToolBarTooltips()
|
||||||
|
@ -187,9 +183,7 @@ void AddToolBarTooltips()
|
||||||
AddToolBarButtonTooltip(TBB_FIND, IDS_FIND);
|
AddToolBarButtonTooltip(TBB_FIND, IDS_FIND);
|
||||||
AddToolBarButtonTooltip(TBB_RECOMPILE, IDS_RECOMPILE);
|
AddToolBarButtonTooltip(TBB_RECOMPILE, IDS_RECOMPILE);
|
||||||
AddToolBarButtonTooltip(TBB_DEFINES, IDS_DEFINES);
|
AddToolBarButtonTooltip(TBB_DEFINES, IDS_DEFINES);
|
||||||
#ifdef COMPRESSOR_OPTION
|
|
||||||
AddToolBarButtonTooltip(TBB_COMPRESSOR, IDS_COMPRESSOR);
|
AddToolBarButtonTooltip(TBB_COMPRESSOR, IDS_COMPRESSOR);
|
||||||
#endif
|
|
||||||
AddToolBarButtonTooltip(TBB_TEST, IDS_TEST);
|
AddToolBarButtonTooltip(TBB_TEST, IDS_TEST);
|
||||||
// Added by Darren Owen (DrO) on 1/10/2003
|
// Added by Darren Owen (DrO) on 1/10/2003
|
||||||
AddToolBarButtonTooltip(TBB_RECOMPILE_TEST, IDS_RECOMPILE_TEST);
|
AddToolBarButtonTooltip(TBB_RECOMPILE_TEST, IDS_RECOMPILE_TEST);
|
||||||
|
@ -205,11 +199,10 @@ void AddToolBarTooltips()
|
||||||
void EnableToolBarButton(int id, BOOL enabled)
|
void EnableToolBarButton(int id, BOOL enabled)
|
||||||
{
|
{
|
||||||
UINT state = (enabled?TBSTATE_ENABLED:TBSTATE_INDETERMINATE);
|
UINT state = (enabled?TBSTATE_ENABLED:TBSTATE_INDETERMINATE);
|
||||||
|
|
||||||
SendMessage(g_toolbar.hwnd, TB_SETSTATE, id, MAKELPARAM(state, 0));
|
SendMessage(g_toolbar.hwnd, TB_SETSTATE, id, MAKELPARAM(state, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef COMPRESSOR_OPTION
|
|
||||||
void ShowToolbarDropdownMenu()
|
void ShowToolbarDropdownMenu()
|
||||||
{
|
{
|
||||||
RECT rect;
|
RECT rect;
|
||||||
|
@ -222,4 +215,3 @@ void ShowToolbarDropdownMenu()
|
||||||
g_sdata.hwnd,
|
g_sdata.hwnd,
|
||||||
0);
|
0);
|
||||||
}
|
}
|
||||||
#endif
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
Copyright (c) 2003 Sunil Kamath
|
Copyright (c) 2003 Sunil Kamath
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied
|
This software is provided 'as-is', without any express or implied
|
||||||
|
@ -20,11 +20,11 @@
|
||||||
*/
|
*/
|
||||||
#ifndef TOOLBAR_H
|
#ifndef TOOLBAR_H
|
||||||
#define TOOLBAR_H
|
#define TOOLBAR_H
|
||||||
#include <commctrl.h>
|
#include <commctrl.h>
|
||||||
|
|
||||||
#define TOOLBAR_ID 10001
|
#define TOOLBAR_ID 10001
|
||||||
|
|
||||||
#define NUMIMAGES 19
|
#define NUMIMAGES 21
|
||||||
#define IMAGEWIDTH 16
|
#define IMAGEWIDTH 16
|
||||||
#define IMAGEHEIGHT 16
|
#define IMAGEHEIGHT 16
|
||||||
#define BUTTONWIDTH 0
|
#define BUTTONWIDTH 0
|
||||||
|
@ -63,9 +63,7 @@
|
||||||
#define IDB_FIND 4
|
#define IDB_FIND 4
|
||||||
#define IDB_RECOMPILE 5
|
#define IDB_RECOMPILE 5
|
||||||
#define IDB_DEFINES 6
|
#define IDB_DEFINES 6
|
||||||
#ifdef COMPRESSOR_OPTION
|
|
||||||
#define IDB_COMPRESSOR 7
|
#define IDB_COMPRESSOR 7
|
||||||
#endif
|
|
||||||
#define IDB_TEST 8
|
#define IDB_TEST 8
|
||||||
#define IDB_EDITSCRIPT 9
|
#define IDB_EDITSCRIPT 9
|
||||||
#define IDB_BROWSESCR 10
|
#define IDB_BROWSESCR 10
|
||||||
|
@ -74,12 +72,11 @@
|
||||||
#define IDB_FORUM 14
|
#define IDB_FORUM 14
|
||||||
#define IDB_NSISUPDATE 15
|
#define IDB_NSISUPDATE 15
|
||||||
#define IDB_DOCS 16
|
#define IDB_DOCS 16
|
||||||
#ifdef COMPRESSOR_OPTION
|
#define IDB_COMPRESSOR_BZIP2 17
|
||||||
#define IDB_COMPRESSOR_ZLIB 17
|
#define IDB_COMPRESSOR_ZLIB 18
|
||||||
#define IDB_COMPRESSOR_GZIP 18
|
|
||||||
#endif
|
|
||||||
// Added by Darren Owen (DrO) on 1/10/2003
|
// Added by Darren Owen (DrO) on 1/10/2003
|
||||||
#define IDB_RECOMPILE_TEST 19
|
#define IDB_RECOMPILE_TEST 19
|
||||||
|
#define IDB_COMPRESSOR_BEST 20
|
||||||
|
|
||||||
typedef struct ToolBarStruct {
|
typedef struct ToolBarStruct {
|
||||||
HWND hwnd;
|
HWND hwnd;
|
||||||
|
@ -90,8 +87,6 @@ typedef struct ToolBarStruct {
|
||||||
void CreateToolBar();
|
void CreateToolBar();
|
||||||
void EnableToolBarButton(int, BOOL);
|
void EnableToolBarButton(int, BOOL);
|
||||||
void AddToolBarTooltips();
|
void AddToolBarTooltips();
|
||||||
#ifdef COMPRESSOR_OPTION
|
|
||||||
void ShowToolbarDropdownMenu();
|
void ShowToolbarDropdownMenu();
|
||||||
void UpdateToolBarCompressorButton();
|
void UpdateToolBarCompressorButton();
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
|
@ -105,9 +105,9 @@ void Items(HWND hwnd, int on){
|
||||||
EnableMenuItem(g_sdata.menu,IDM_CLEARLOG,mf);
|
EnableMenuItem(g_sdata.menu,IDM_CLEARLOG,mf);
|
||||||
EnableMenuItem(g_sdata.menu,IDM_BROWSESCR,mf);
|
EnableMenuItem(g_sdata.menu,IDM_BROWSESCR,mf);
|
||||||
EnableMenuItem(g_sdata.menu,IDM_RECOMPILE_TEST,mf);
|
EnableMenuItem(g_sdata.menu,IDM_RECOMPILE_TEST,mf);
|
||||||
|
EnableMenuItem(g_sdata.menu,IDM_COMPRESSOR,mf);
|
||||||
|
|
||||||
EnableToolBarButton(IDM_SAVE,on);
|
EnableToolBarButton(IDM_SAVE,on);
|
||||||
|
|
||||||
// Altered by Darren Owen (DrO) on 6/10/2003
|
// Altered by Darren Owen (DrO) on 6/10/2003
|
||||||
if((!g_sdata.retcode && on) || !on)
|
if((!g_sdata.retcode && on) || !on)
|
||||||
EnableToolBarButton(IDM_TEST,on);
|
EnableToolBarButton(IDM_TEST,on);
|
||||||
|
@ -119,6 +119,7 @@ void Items(HWND hwnd, int on){
|
||||||
EnableToolBarButton(IDM_CLEARLOG,on);
|
EnableToolBarButton(IDM_CLEARLOG,on);
|
||||||
EnableToolBarButton(IDM_BROWSESCR,on);
|
EnableToolBarButton(IDM_BROWSESCR,on);
|
||||||
EnableToolBarButton(IDM_RECOMPILE_TEST,on);
|
EnableToolBarButton(IDM_RECOMPILE_TEST,on);
|
||||||
|
EnableToolBarButton(IDM_COMPRESSOR,on);
|
||||||
|
|
||||||
if(!on) {
|
if(!on) {
|
||||||
if (!IsWindowEnabled(g_sdata.focused_hwnd))
|
if (!IsWindowEnabled(g_sdata.focused_hwnd))
|
||||||
|
@ -128,9 +129,42 @@ void Items(HWND hwnd, int on){
|
||||||
SetFocus(g_sdata.focused_hwnd);
|
SetFocus(g_sdata.focused_hwnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetCompressorStats()
|
||||||
|
{
|
||||||
|
DWORD line_count, i;
|
||||||
|
char buf[1024];
|
||||||
|
bool found = false;
|
||||||
|
|
||||||
|
line_count = SendDlgItemMessage(g_sdata.hwnd, IDC_LOGWIN, EM_GETLINECOUNT, 0, 0);
|
||||||
|
for(i=0; i<line_count; i++) {
|
||||||
|
*((LPWORD)buf) = sizeof(buf);
|
||||||
|
SendDlgItemMessage(g_sdata.hwnd, IDC_LOGWIN, EM_GETLINE, (WPARAM)i, (LPARAM)buf);
|
||||||
|
if(found) {
|
||||||
|
DWORD len = lstrlen(TOTAL_SIZE_COMPRESSOR_STAT);
|
||||||
|
lstrcat(g_sdata.compressor_stats,buf);
|
||||||
|
|
||||||
|
if(!lstrcmpn(buf,TOTAL_SIZE_COMPRESSOR_STAT,len)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
DWORD len = lstrlen(EXE_HEADER_COMPRESSOR_STAT);
|
||||||
|
if(!lstrcmpn(buf,EXE_HEADER_COMPRESSOR_STAT,len)) {
|
||||||
|
found = true;
|
||||||
|
lstrcpy(g_sdata.compressor_stats,"\n\n");
|
||||||
|
lstrcat(g_sdata.compressor_stats,buf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CompileNSISScript() {
|
void CompileNSISScript() {
|
||||||
static char *s;
|
static char *s;
|
||||||
DragAcceptFiles(g_sdata.hwnd,FALSE);
|
DragAcceptFiles(g_sdata.hwnd,FALSE);
|
||||||
|
if(((g_sdata.compressor == COMPRESSOR_BEST) &&
|
||||||
|
(!lstrcmpi(g_sdata.compressor_name,BZIP2_COMPRESSOR_NAME)))) {
|
||||||
|
SetCompressorStats();
|
||||||
|
}
|
||||||
ClearLog(g_sdata.hwnd);
|
ClearLog(g_sdata.hwnd);
|
||||||
SetTitle(g_sdata.hwnd,NULL);
|
SetTitle(g_sdata.hwnd,NULL);
|
||||||
if (lstrlen(g_sdata.script)==0) {
|
if (lstrlen(g_sdata.script)==0) {
|
||||||
|
@ -155,8 +189,17 @@ void CompileNSISScript() {
|
||||||
if (!g_sdata.appended) {
|
if (!g_sdata.appended) {
|
||||||
if (s) GlobalFree(s);
|
if (s) GlobalFree(s);
|
||||||
char *defines = BuildDefines();
|
char *defines = BuildDefines();
|
||||||
s = (char *)GlobalAlloc(GPTR, lstrlen(g_sdata.script)+lstrlen(defines)+sizeof(EXENAME)+sizeof(" /NOTIFYHWND ")+16);
|
|
||||||
wsprintf(s,"%s %s /NOTIFYHWND %d %s",EXENAME,defines,g_sdata.hwnd,g_sdata.script);
|
char compressor[40];
|
||||||
|
if(lstrlen(g_sdata.compressor_name)) {
|
||||||
|
wsprintf(compressor,"/X\"SetCompressor /FINAL %s\" ",g_sdata.compressor_name);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
lstrcpy(compressor,"");
|
||||||
|
}
|
||||||
|
|
||||||
|
s = (char *)GlobalAlloc(GPTR, lstrlen(g_sdata.script)+lstrlen(defines)+lstrlen(compressor)+sizeof(EXENAME)+sizeof(" /NOTIFYHWND ")+20);
|
||||||
|
wsprintf(s,"%s %s%s /NOTIFYHWND %d %s",EXENAME,compressor,defines,g_sdata.hwnd,g_sdata.script);
|
||||||
GlobalFree(defines);
|
GlobalFree(defines);
|
||||||
if (g_sdata.script_alloced) GlobalFree(g_sdata.script);
|
if (g_sdata.script_alloced) GlobalFree(g_sdata.script);
|
||||||
g_sdata.script_alloced = true;
|
g_sdata.script_alloced = true;
|
||||||
|
@ -259,6 +302,7 @@ void ResetObjects() {
|
||||||
g_sdata.warnings = FALSE;
|
g_sdata.warnings = FALSE;
|
||||||
g_sdata.retcode = -1;
|
g_sdata.retcode = -1;
|
||||||
g_sdata.thread = NULL;
|
g_sdata.thread = NULL;
|
||||||
|
lstrcpy(g_sdata.compressor_stats,"");
|
||||||
}
|
}
|
||||||
|
|
||||||
void ResetDefines() {
|
void ResetDefines() {
|
||||||
|
@ -619,3 +663,44 @@ void ClearMRUList()
|
||||||
|
|
||||||
BuildMRUMenus();
|
BuildMRUMenus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RestoreCompressor()
|
||||||
|
{
|
||||||
|
HKEY hKey;
|
||||||
|
NCOMPRESSOR v = COMPRESSOR_DEFAULT;
|
||||||
|
if (RegOpenKeyEx(REGSEC,REGKEY,0,KEY_READ,&hKey) == ERROR_SUCCESS) {
|
||||||
|
DWORD l = sizeof(g_sdata.compressor);
|
||||||
|
DWORD t;
|
||||||
|
if ((RegQueryValueEx(hKey,REGCOMPRESSOR,NULL,&t,(unsigned char*)&v,&l)==ERROR_SUCCESS) &&
|
||||||
|
(t == REG_DWORD) &&
|
||||||
|
(l==sizeof(v))) {
|
||||||
|
}
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
}
|
||||||
|
SetCompressor(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SaveCompressor()
|
||||||
|
{
|
||||||
|
HKEY hKey;
|
||||||
|
NCOMPRESSOR v = g_sdata.compressor;
|
||||||
|
if (RegCreateKey(REGSEC,REGKEY,&hKey) == ERROR_SUCCESS) {
|
||||||
|
RegSetValueEx(hKey,REGCOMPRESSOR,0,REG_DWORD,(unsigned char*)&v,sizeof(v));
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL FileExists(char *fname)
|
||||||
|
{
|
||||||
|
WIN32_FIND_DATA wfd;
|
||||||
|
HANDLE h;
|
||||||
|
|
||||||
|
h = FindFirstFile(fname,&wfd);
|
||||||
|
if(h == INVALID_HANDLE_VALUE) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
FindClose(h);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -46,10 +46,14 @@ void InitTooltips(HWND h);
|
||||||
void DestroyTooltips();
|
void DestroyTooltips();
|
||||||
void AddTip(HWND hWnd,LPSTR lpszToolTip);
|
void AddTip(HWND hWnd,LPSTR lpszToolTip);
|
||||||
void ShowDocs();
|
void ShowDocs();
|
||||||
|
void RestoreCompressor();
|
||||||
|
void SaveCompressor();
|
||||||
|
|
||||||
BOOL PopMRUFile(char* fname);
|
BOOL PopMRUFile(char* fname);
|
||||||
void PushMRUFile(char* fname);
|
void PushMRUFile(char* fname);
|
||||||
void BuildMRUMenus();
|
void BuildMRUMenus();
|
||||||
void LoadMRUFile(int position);
|
void LoadMRUFile(int position);
|
||||||
void ClearMRUList();
|
void ClearMRUList();
|
||||||
|
|
||||||
|
BOOL FileExists(char *fname);
|
||||||
#endif
|
#endif
|
Loading…
Add table
Add a link
Reference in a new issue