diff --git a/Contrib/zip2exe/Base.nsh b/Contrib/zip2exe/Base.nsh index 25cc2f1b..7739d20c 100644 --- a/Contrib/zip2exe/Base.nsh +++ b/Contrib/zip2exe/Base.nsh @@ -5,12 +5,19 @@ OutFile "${ZIP2EXE_OUTFILE}" AllowRootDirInstall true + +!ifdef ZIP2EXE_COMPRESSOR_SOLID + !define SETCOMPRESSOR_SWITCH /SOLID +!else + !define SETCOMPRESSOR_SWITCH +!endif + !ifdef ZIP2EXE_COMPRESSOR_ZLIB - SetCompressor zlib + SetCompressor ${SETCOMPRESSOR_SWITCH} zlib !else ifdef ZIP2EXE_COMPRESSOR_BZIP2 - SetCompressor bzip2 + SetCompressor ${SETCOMPRESSOR_SWITCH} bzip2 !else ifdef ZIP2EXE_COMPRESSOR_LZMA - SetCompressor lzma + SetCompressor ${SETCOMPRESSOR_SWITCH} lzma !endif !ifdef ZIP2EXE_INSTALLDIR diff --git a/Contrib/zip2exe/main.cpp b/Contrib/zip2exe/main.cpp index 5fbb5953..344c6f60 100644 --- a/Contrib/zip2exe/main.cpp +++ b/Contrib/zip2exe/main.cpp @@ -37,6 +37,7 @@ HANDLE g_hThread; char g_cmdline[1024]; int g_extracting; int g_compressor; +int g_compressor_solid; int g_mui; int g_zipfile_size; @@ -463,6 +464,8 @@ void makeEXE(HWND hwndDlg) fprintf(fp,"!define ZIP2EXE_COMPRESSOR_BZIP2\n"); if (g_compressor == 3) fprintf(fp,"!define ZIP2EXE_COMPRESSOR_LZMA\n"); + if (g_compressor_solid == 1) + fprintf(fp,"!define ZIP2EXE_COMPRESSOR_SOLID\n"); GetDlgItemText(hwndDlg,IDC_INSTPATH,buf,sizeof(buf)); char *outpath = "$INSTDIR"; int iswinamp=0; @@ -557,7 +560,7 @@ void makeEXE(HWND hwndDlg) BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { static int ids[]={IDC_INFO,IDC_NSISICON,IDC_SZIPFRAME,IDC_BROWSE,IDC_ZIPFILE,IDC_ZIPINFO_SUMMARY,IDC_ZIPINFO_FILES,IDC_OFRAME,IDC_INAMEST, - IDC_INSTNAME,IDC_INSTPATH,IDC_OEFST,IDC_OUTFILE,IDC_BROWSE2,IDC_COMPRESSOR,IDC_ZLIB,IDC_BZIP2,IDC_LZMA,IDC_INTERFACE,IDC_MODERNUI,IDC_CLASSICUI}; + IDC_INSTNAME,IDC_INSTPATH,IDC_OEFST,IDC_OUTFILE,IDC_BROWSE2,IDC_COMPRESSOR,IDC_ZLIB,IDC_BZIP2,IDC_LZMA,IDC_SOLID,IDC_INTERFACE,IDC_MODERNUI,IDC_CLASSICUI}; static HICON hIcon; static HFONT hFont; if (uMsg == WM_DESTROY) { if (hIcon) DeleteObject(hIcon); hIcon=0; if (hFont) DeleteObject(hFont); hFont=0; } @@ -709,6 +712,10 @@ BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) g_compressor = 2; if (IsDlgButtonChecked(hwndDlg,IDC_LZMA)) g_compressor = 3; + if (IsDlgButtonChecked(hwndDlg,IDC_SOLID)) + g_compressor_solid = 1; + else + g_compressor_solid = 0; g_mui=!IsDlgButtonChecked(hwndDlg,IDC_CLASSICUI); SetDlgItemText(g_hwnd, IDC_OUTPUTTEXT, ""); int x; diff --git a/Contrib/zip2exe/res.rc b/Contrib/zip2exe/res.rc index c54f93cd..32714b2c 100644 --- a/Contrib/zip2exe/res.rc +++ b/Contrib/zip2exe/res.rc @@ -27,7 +27,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // IDD_DIALOG1 DIALOGEX 0, 0, 360, 271 -STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | +STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Zip2Exe 0.32" FONT 8, "MS Shell Dlg", 0, 0, 0x0 @@ -37,10 +37,10 @@ BEGIN IDC_INFO,36,6,312,18 GROUPBOX "Source ZIP File",IDC_SZIPFRAME,7,31,347,101 PUSHBUTTON "&Open...",IDC_BROWSE,18,48,54,13 - EDITTEXT IDC_ZIPFILE,78,48,264,12,ES_AUTOHSCROLL | ES_READONLY | + EDITTEXT IDC_ZIPFILE,78,48,264,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP LTEXT "",IDC_ZIPINFO_SUMMARY,18,66,324,8 - LISTBOX IDC_ZIPINFO_FILES,18,78,324,45,LBS_NOINTEGRALHEIGHT | + LISTBOX IDC_ZIPINFO_FILES,18,78,324,45,LBS_NOINTEGRALHEIGHT | LBS_NOSEL | WS_VSCROLL GROUPBOX "Output Installer Options",IDC_OFRAME,6,138,347,108 LTEXT "Installer Name",IDC_INAMEST,18,156,48,8 @@ -51,7 +51,7 @@ BEGIN CONTROL "Classic",IDC_CLASSICUI,"Button",BS_AUTORADIOBUTTON,132, 174,42,12 LTEXT "Default Folder",IDC_DEPST,18,192,48,8 - COMBOBOX IDC_INSTPATH,78,192,264,126,CBS_DROPDOWN | WS_VSCROLL | + COMBOBOX IDC_INSTPATH,78,192,264,126,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP | CBS_AUTOHSCROLL LTEXT "Output EXE File",IDC_OEFST,18,210,54,8 EDITTEXT IDC_OUTFILE,78,210,204,12,ES_AUTOHSCROLL @@ -62,11 +62,13 @@ BEGIN 10 CONTROL "ZLib",IDC_ZLIB,"Button",BS_AUTORADIOBUTTON,186,228,30, 10 + CONTROL "Solid",IDC_SOLID,"Button",BS_AUTOCHECKBOX,240,228,30, + 10 DEFPUSHBUTTON "&Generate",IDOK,306,252,48,14,WS_DISABLED PUSHBUTTON "&Test",IDC_TEST,246,252,49,14,NOT WS_VISIBLE PUSHBUTTON "< &Back",IDC_BACK,6,252,48,14,NOT WS_VISIBLE - EDITTEXT IDC_OUTPUTTEXT,0,0,359,246,ES_MULTILINE | ES_AUTOVSCROLL | - ES_AUTOHSCROLL | ES_READONLY | NOT WS_VISIBLE | + EDITTEXT IDC_OUTPUTTEXT,0,0,359,246,ES_MULTILINE | ES_AUTOVSCROLL | + ES_AUTOHSCROLL | ES_READONLY | NOT WS_VISIBLE | WS_VSCROLL | WS_HSCROLL END @@ -77,7 +79,7 @@ END // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO +GUIDELINES DESIGNINFO BEGIN IDD_DIALOG1, DIALOG BEGIN @@ -96,18 +98,18 @@ END // TEXTINCLUDE // -1 TEXTINCLUDE +1 TEXTINCLUDE BEGIN "resource.h\0" END -2 TEXTINCLUDE +2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END -3 TEXTINCLUDE +3 TEXTINCLUDE BEGIN "\r\n" "\0" diff --git a/Contrib/zip2exe/resource.h b/Contrib/zip2exe/resource.h index 7571e28e..9b0dd8ce 100644 --- a/Contrib/zip2exe/resource.h +++ b/Contrib/zip2exe/resource.h @@ -30,16 +30,16 @@ #define IDC_CLASSICUI 1025 #define IDC_INFO 1026 #define IDC_NSISICON 1027 -#define IDC_BZIP3 1028 #define IDC_LZMA 1028 +#define IDC_SOLID 1029 // Next default values for new objects -// +// #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 103 #define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1028 +#define _APS_NEXT_CONTROL_VALUE 1030 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif