Zip2Exe 0.3: based on header files, improved interface, Modern UI support, new script code, improved folder detection

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2977 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
joostverburg 2003-09-28 12:42:03 +00:00
parent 7d99fd6700
commit f7bed1c222
7 changed files with 183 additions and 101 deletions

78
Contrib/zip2exe/Base.nsh Normal file
View file

@ -0,0 +1,78 @@
;Change this file to customize zip2exe generated installers
Name "${ZIP2EXE_NAME}"
OutFile "${ZIP2EXE_OUTFILE}"
AllowRootDirInstall true
!ifdef ZIP2EXE_COMPERSSOR_ZLIB
SetCompressor zlib
!else ifdef ZIP2EXE_COMPERSSOR_BZIP2
SetCompressor bzip2
!endif
!ifdef ZIP2EXE_INSTALLDIR
InstallDir "${ZIP2EXE_INSTALLDIR}"
Function zip2exe.SetOutPath
SetOutPath "$INSTDIR"
FunctionEnd
!else ifdef ZIP2EXE_INSTALLDIR_WINAMP
InstallDir "$PROGRAMFILES\Winamp"
InstallDirRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Winamp" "UninstallString"
Function .onVerifyInstDir
IfFileExists $INSTDIR\winamp.exe WinampInstalled
Abort
WinampInstalled:
FunctionEnd
!ifdef ZIP2EXE_INSTALLDIR_WINAMPMODE
Var ZIP2EXE_TEMP1
Var ZIP2EXE_TEMP2
Function zip2exe.SetOutPath
!ifdef ZIP2EXE_INSTALLDIR_SKINS
StrCpy $ZIP2EXE_TEMP1 "$INSTDIR\Skins"
!else
StrCpy $ZIP2EXE_TEMP1 "$INSTDIR\Plugins"
!endif
ReadINIStr $ZIP2EXE_TEMP2 "$INSTDIR\winamp.ini" "Winamp" "${ZIP2EXE_INSTALLDIR_WINAMPMODE}"
StrCmp $ZIP2EXE_TEMP2 "" End
IfFileExists $ZIP2EXE_TEMP2 0 End
StrCpy $ZIP2EXE_TEMP1 $ZIP2EXE_TEMP2
End:
SetOutPath $ZIP2EXE_TEMP1
FunctionEnd
!else
Function zip2exe.SetOutPath
!ifdef ZIP2EXE_INSTALLDIR_PLUGINS
SetOutPath "$INSTDIR\Plugins"
!else
SetOutPath "$INSTDIR"
!endif
FunctionEnd
!endif
!endif
!macro SECTION_BEGIN
Section ""
Call zip2exe.SetOutPath
!macroend
!macro SECTION_END
SectionEnd
!macroend

View file

@ -0,0 +1,4 @@
;Change this file to customize zip2exe generated installers with a classic interface
Page directory
Page instfiles

View file

@ -0,0 +1,8 @@
;Change this file to customize zip2exe generated installers with a modern interface
!include "MUI.nsh"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"

View file

@ -1,6 +1,8 @@
#include <windows.h> #include <windows.h>
#include <stdio.h> #include <stdio.h>
#include <commctrl.h> #include <commctrl.h>
// version 0.3 (based on header files, improved interface, Modern UI support, new script code, improved folder detection) by Joost Verburg
// portions Copyright © 1999-2001 Miguel Garrido (mgarrido01@hotmail.com) // portions Copyright © 1999-2001 Miguel Garrido (mgarrido01@hotmail.com)
extern "C" extern "C"
@ -9,7 +11,7 @@ extern "C"
}; };
#include "resource.h" #include "resource.h"
const char *g_errcaption="ZIP2EXE Error"; const char *g_errcaption="Zip2Exe Error";
HINSTANCE g_hInstance; HINSTANCE g_hInstance;
HWND g_hwnd; HWND g_hwnd;
@ -17,6 +19,7 @@ HANDLE g_hThread;
char g_cmdline[1024]; char g_cmdline[1024];
int g_extracting; int g_extracting;
int g_bzip2; int g_bzip2;
int g_mui;
int g_zipfile_size; int g_zipfile_size;
char *g_options="";//"/V3"; char *g_options="";//"/V3";
@ -424,13 +427,10 @@ void makeEXE(HWND hwndDlg)
return; return;
} }
GetDlgItemText(hwndDlg,IDC_INSTNAME,buf,sizeof(buf)); GetDlgItemText(hwndDlg,IDC_INSTNAME,buf,sizeof(buf));
fprintf(fp,"SetCompressor %s\n",g_bzip2?"bzip2":"zlib"); fprintf(fp,"!define ZIP2EXE_NAME `%s`\n",buf);
fprintf(fp,"AllowRootDirInstall true\n");
fprintf(fp,"Name `%s`\n",buf);
fprintf(fp,"Caption `%s Self Extractor`\n",buf);
fprintf(fp,"InstallButtonText Extract\n");
GetDlgItemText(hwndDlg,IDC_OUTFILE,buf,sizeof(buf)); GetDlgItemText(hwndDlg,IDC_OUTFILE,buf,sizeof(buf));
fprintf(fp,"OutFile `%s`\n",buf); fprintf(fp,"!define ZIP2EXE_OUTFILE `%s`\n",buf);
fprintf(fp,"!define ZIP2EXE_COMPRESSOR_%s\n",g_bzip2?"BZIP2":"ZLIB");
GetDlgItemText(hwndDlg,IDC_INSTPATH,buf,sizeof(buf)); GetDlgItemText(hwndDlg,IDC_INSTPATH,buf,sizeof(buf));
char *outpath = "$INSTDIR"; char *outpath = "$INSTDIR";
int iswinamp=0; int iswinamp=0;
@ -440,16 +440,11 @@ void makeEXE(HWND hwndDlg)
if (!strcmp(buf,gp_winamp)) if (!strcmp(buf,gp_winamp))
{ {
iswinamp=1; iswinamp=1;
fprintf(fp,"Function SetMyOutPath\n"
" SetOutPath $INSTDIR\n"
"FunctionEnd\n");
} }
if (!strcmp(buf,gp_winamp_plugins)) if (!strcmp(buf,gp_winamp_plugins))
{ {
iswinamp=1; iswinamp=1;
fprintf(fp,"Function SetMyOutPath\n" fprintf(fp,"!define ZIP2EXE_INSTALLDIR_PLUGINS\n");
" SetOutPath $INSTDIR\\Plugins\n"
"FunctionEnd\n");
} }
if (!strcmp(buf,gp_winamp_vis)) if (!strcmp(buf,gp_winamp_vis))
{ {
@ -465,49 +460,31 @@ void makeEXE(HWND hwndDlg)
{ {
iswinamp=1; iswinamp=1;
iswinampmode="SkinDir"; iswinampmode="SkinDir";
fprintf(fp,"!define ZIP2EXE_INSTALLDIR_SKINS\n");
} }
if (iswinamp) if (iswinamp)
{ {
fprintf(fp,"InstallDir `$PROGRAMFILES\\Winamp`\n"); fprintf(fp,"!define ZIP2EXE_INSTALLDIR_WINAMP\n");
fprintf(fp,"InstallDirRegKey HKEY_LOCAL_MACHINE `Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Winamp` `UninstallString`\n");
fprintf(fp,"Function .onVerifyInstDir\n"
" IfFileExists $INSTDIR\\winamp.exe WinampInstalled\n"
" Abort\n"
" WinampInstalled:\n"
"FunctionEnd\n");
if (iswinampmode) if (iswinampmode)
{ {
fprintf(fp,"Function SetMyOutPath\n" fprintf(fp,"!define ZIP2EXE_INSTALLDIR_WINAMPMODE `%s`\n",iswinampmode);
" StrCpy $1 $INSTDIR\\Plugins\n"
" ReadINIStr $9 $INSTDIR\\winamp.ini Winamp %s\n"
" StrCmp $9 '' End\n"
" IfFileExists $9 0 End\n"
" StrCpy $1 $9\n"
" End:\n"
" SetOutPath $1\n"
"FunctionEnd\n",iswinampmode);
} }
} }
else // set out path to $INSTDIR else // set out path to $INSTDIR
{ {
fprintf(fp,"InstallDir `%s`\n",buf); fprintf(fp,"!define ZIP2EXE_INSTALLDIR `%s`\n",buf);
fprintf(fp,"Function SetMyOutPath\n"
" SetOutPath $INSTDIR\n"
"FunctionEnd\n");
} }
GetDlgItemText(hwndDlg,IDC_DESCTEXT,buf,sizeof(buf)); fprintf(fp,"!include `${NSISDIR}\\Contrib\\zip2exe\\Base.nsh`\n");
fprintf(fp,"DirText `%s`\n",buf); fprintf(fp,"!include `${NSISDIR}\\Contrib\\zip2exe\\%s.nsh`\n",g_mui?"Modern":"Classic");
fprintf(fp,"Section\n"); fprintf(fp,"!insertmacro SECTION_BEGIN\n");
fprintf(fp,"Call SetMyOutPath\n");
fprintf(fp,"File /r `%s\\*.*`\n",tempzip_path); fprintf(fp,"File /r `%s\\*.*`\n",tempzip_path);
fprintf(fp,"SectionEnd\n"); fprintf(fp,"!insertmacro SECTION_END\n");
fclose(fp);
fclose(fp);
char g_makensis_path[MAX_PATH]; char g_makensis_path[MAX_PATH];
char *p=g_makensis_path; char *p=g_makensis_path;
@ -547,8 +524,8 @@ void makeEXE(HWND hwndDlg)
BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
static int ids[]={IDC_SZIPFRAME,IDC_BROWSE,IDC_ZIPFILE,IDC_ZIPINFO_SUMMARY,IDC_ZIPINFO_FILES,IDC_OFRAME,IDC_INAMEST, 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_DTEXTST,IDC_DESCTEXT,IDC_DEPST,IDC_INSTPATH,IDC_OEFST,IDC_OUTFILE,IDC_BROWSE2,IDC_COMPRESSOR,IDC_RADIO1,IDC_RADIO2}; IDC_INSTNAME,IDC_INSTPATH,IDC_OEFST,IDC_OUTFILE,IDC_BROWSE2,IDC_COMPRESSOR,IDC_ZLIB,IDC_BZIP2,IDC_INTERFACE,IDC_MODERNUI,IDC_CLASSICUI};
static HICON hIcon; static HICON hIcon;
static HFONT hFont; static HFONT hFont;
if (uMsg == WM_DESTROY) { if (hIcon) DeleteObject(hIcon); hIcon=0; if (hFont) DeleteObject(hFont); hFont=0; } if (uMsg == WM_DESTROY) { if (hIcon) DeleteObject(hIcon); hIcon=0; if (hFont) DeleteObject(hFont); hFont=0; }
@ -556,14 +533,15 @@ BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
g_hwnd=hwndDlg; g_hwnd=hwndDlg;
CheckDlgButton(hwndDlg,IDC_RADIO2,BST_CHECKED); CheckDlgButton(hwndDlg,IDC_BZIP2,BST_CHECKED);
CheckDlgButton(hwndDlg,IDC_MODERNUI,BST_CHECKED);
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)gp_poi); SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)gp_poi);
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$TEMP"); SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$TEMP");
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$SYSDIR"); SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$SYSDIR");
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$WINDIR"); SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$WINDIR");
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$DESKTOP"); SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$DESKTOP");
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$DESKTOP\\Poop"); SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$DESKTOP\\YourNameHere");
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$PROGRAMFILES\\Poop"); SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$PROGRAMFILES\\YourNameHere");
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$STARTMENU"); SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$STARTMENU");
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$SMPROGRAMS"); SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$SMPROGRAMS");
@ -572,11 +550,11 @@ BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)gp_winamp_vis); SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)gp_winamp_vis);
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)gp_winamp_dsp); SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)gp_winamp_dsp);
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)gp_winamp_skins); SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)gp_winamp_skins);
SetDlgItemText(hwndDlg,IDC_INSTPATH,gp_poi);
SetDlgItemText(hwndDlg,IDC_INSTPATH,gp_poi); hIcon=LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_ICON1));
SetDlgItemText(hwndDlg,IDC_DESCTEXT,"Select the folder where you would like to extract the files to:"); SetClassLong(hwndDlg,GCL_HICON,(long)hIcon);
hIcon=LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_ICON1));
SetClassLong(hwndDlg,GCL_HICON,(long)hIcon);
hFont=CreateFont(15,0,0,0,FW_NORMAL,0,0,0,DEFAULT_CHARSET, hFont=CreateFont(15,0,0,0,FW_NORMAL,0,0,0,DEFAULT_CHARSET,
OUT_CHARACTER_PRECIS, OUT_CHARACTER_PRECIS,
@ -613,10 +591,10 @@ BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
OPENFILENAME l={sizeof(l),}; OPENFILENAME l={sizeof(l),};
char buf[1024]; char buf[1024];
l.hwndOwner = hwndDlg; l.hwndOwner = hwndDlg;
l.lpstrFilter = "ZIP files\0*.zip\0All files\0*.*\0"; l.lpstrFilter = "ZIP Files\0*.zip\0All Files\0*.*\0";
l.lpstrFile = buf; l.lpstrFile = buf;
l.nMaxFile = 1023; l.nMaxFile = 1023;
l.lpstrTitle = "Open ZIP file"; l.lpstrTitle = "Open ZIP File";
l.lpstrDefExt = "zip"; l.lpstrDefExt = "zip";
l.lpstrInitialDir = NULL; l.lpstrInitialDir = NULL;
l.Flags = OFN_HIDEREADONLY|OFN_EXPLORER|OFN_PATHMUSTEXIST; l.Flags = OFN_HIDEREADONLY|OFN_EXPLORER|OFN_PATHMUSTEXIST;
@ -651,10 +629,10 @@ BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
OPENFILENAME l={sizeof(l),}; OPENFILENAME l={sizeof(l),};
char buf[1024]; char buf[1024];
l.hwndOwner = hwndDlg; l.hwndOwner = hwndDlg;
l.lpstrFilter = "EXE files\0*.exe\0All files\0*.*\0"; l.lpstrFilter = "Executables\0*.exe\0All Files\0*.*\0";
l.lpstrFile = buf; l.lpstrFile = buf;
l.nMaxFile = 1023; l.nMaxFile = 1023;
l.lpstrTitle = "Select output EXE file"; l.lpstrTitle = "Select Output EXE File";
l.lpstrDefExt = "exe"; l.lpstrDefExt = "exe";
l.lpstrInitialDir = NULL; l.lpstrInitialDir = NULL;
l.Flags = OFN_HIDEREADONLY|OFN_EXPLORER; l.Flags = OFN_HIDEREADONLY|OFN_EXPLORER;
@ -676,7 +654,7 @@ BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
int x; int x;
for (x = 0; x < sizeof(ids)/sizeof(ids[0]); x ++) for (x = 0; x < sizeof(ids)/sizeof(ids[0]); x ++)
ShowWindow(GetDlgItem(hwndDlg,ids[x]),SW_SHOWNA); ShowWindow(GetDlgItem(hwndDlg,ids[x]),SW_SHOWNA);
SetDlgItemText(hwndDlg,IDOK,"Convert"); SetDlgItemText(hwndDlg,IDOK,"&Generate");
EnableWindow(GetDlgItem(hwndDlg,IDOK),1); EnableWindow(GetDlgItem(hwndDlg,IDOK),1);
} }
} }
@ -693,14 +671,15 @@ BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
if (!made) if (!made)
{ {
g_bzip2=!IsDlgButtonChecked(hwndDlg,IDC_RADIO1); g_bzip2=!IsDlgButtonChecked(hwndDlg,IDC_ZLIB);
g_mui=!IsDlgButtonChecked(hwndDlg,IDC_CLASSICUI);
SetDlgItemText(g_hwnd, IDC_OUTPUTTEXT, ""); SetDlgItemText(g_hwnd, IDC_OUTPUTTEXT, "");
int x; int x;
for (x = 0; x < sizeof(ids)/sizeof(ids[0]); x ++) for (x = 0; x < sizeof(ids)/sizeof(ids[0]); x ++)
ShowWindow(GetDlgItem(hwndDlg,ids[x]),SW_HIDE); ShowWindow(GetDlgItem(hwndDlg,ids[x]),SW_HIDE);
ShowWindow(GetDlgItem(hwndDlg,IDC_OUTPUTTEXT),SW_SHOWNA); ShowWindow(GetDlgItem(hwndDlg,IDC_OUTPUTTEXT),SW_SHOWNA);
SetDlgItemText(hwndDlg,IDOK,"Close"); SetDlgItemText(hwndDlg,IDOK,"&Close");
EnableWindow(GetDlgItem(hwndDlg,IDOK),0); EnableWindow(GetDlgItem(hwndDlg,IDOK),0);
makeEXE(hwndDlg); makeEXE(hwndDlg);

View file

@ -1,4 +1,4 @@
//Microsoft Developer Studio generated resource script. // Microsoft Visual C++ generated resource script.
// //
#include "resource.h" #include "resource.h"
@ -26,39 +26,45 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
// Dialog // Dialog
// //
IDD_DIALOG1 DIALOG DISCARDABLE 0, 0, 361, 234 IDD_DIALOG1 DIALOGEX 0, 0, 360, 271
STYLE DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION |
CAPTION "Nullsoft ZIP2EXE v0.20" WS_SYSMENU
FONT 8, "MS Sans Serif" CAPTION "Zip2Exe 0.3"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN BEGIN
PUSHBUTTON "Open &ZIP",IDC_BROWSE,13,17,49,14 ICON IDI_ICON1,IDC_NSISICON,6,6,20,20
EDITTEXT IDC_ZIPFILE,66,18,284,12,ES_AUTOHSCROLL | ES_READONLY | LTEXT "Zip2Exe converts a ZIP file to a self extracting archive (a simple NSIS installer). To customize the NSIS script code, modify the header files in the 'Contrib\\zip2exe' folder.",
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 |
NOT WS_TABSTOP NOT WS_TABSTOP
LISTBOX IDC_ZIPINFO_FILES,13,43,335,62,LBS_NOINTEGRALHEIGHT | LTEXT "",IDC_ZIPINFO_SUMMARY,18,66,324,8
LISTBOX IDC_ZIPINFO_FILES,18,78,324,45,LBS_NOINTEGRALHEIGHT |
LBS_NOSEL | WS_VSCROLL LBS_NOSEL | WS_VSCROLL
EDITTEXT IDC_INSTNAME,81,124,267,12,ES_AUTOHSCROLL GROUPBOX "Output Installer Options",IDC_OFRAME,6,138,347,108
EDITTEXT IDC_DESCTEXT,81,139,267,12,ES_AUTOHSCROLL LTEXT "Installer Name",IDC_INAMEST,18,156,48,8
COMBOBOX IDC_INSTPATH,81,154,268,126,CBS_DROPDOWN | WS_VSCROLL | EDITTEXT IDC_INSTNAME,78,156,264,12,ES_AUTOHSCROLL
LTEXT "Interface",IDC_INTERFACE,18,174,30,8
CONTROL "Modern",IDC_MODERNUI,"Button",BS_AUTORADIOBUTTON,78,174,
42,12
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 |
WS_TABSTOP WS_TABSTOP
EDITTEXT IDC_OUTFILE,81,169,224,12,ES_AUTOHSCROLL LTEXT "Output EXE File",IDC_OEFST,18,210,54,8
PUSHBUTTON "Browse",IDC_BROWSE2,309,169,41,14 EDITTEXT IDC_OUTFILE,78,210,204,12,ES_AUTOHSCROLL
CONTROL "Deflate (ZIP)",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON, PUSHBUTTON "&Browse...",IDC_BROWSE2,288,210,54,13
81,185,56,10 LTEXT "Compression",IDC_COMPRESSOR,18,228,42,8
CONTROL "BZIP2",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,139,186, CONTROL "BZIP2",IDC_BZIP2,"Button",BS_AUTORADIOBUTTON,78,228,36,
36,10 10
LTEXT "Compressor:",IDC_COMPRESSOR,13,186,42,8 CONTROL "ZLIB (Deflate)",IDC_ZLIB,"Button",BS_AUTORADIOBUTTON,
DEFPUSHBUTTON "Convert",IDOK,304,213,50,14,WS_DISABLED 132,228,60,10
GROUPBOX "Source ZIP File",IDC_SZIPFRAME,7,7,347,102 DEFPUSHBUTTON "&Generate",IDOK,306,252,48,14,WS_DISABLED
LTEXT "",IDC_ZIPINFO_SUMMARY,13,33,245,8 PUSHBUTTON "&Test",IDC_TEST,246,252,49,14,NOT WS_VISIBLE
GROUPBOX "Output",IDC_OFRAME,7,113,347,90 PUSHBUTTON "< &Back",IDC_BACK,6,252,48,14,NOT WS_VISIBLE
LTEXT "Default extract path:",IDC_DEPST,13,156,66,8 EDITTEXT IDC_OUTPUTTEXT,0,0,360,246,ES_MULTILINE | ES_AUTOVSCROLL |
LTEXT "Description text:",IDC_DTEXTST,13,142,66,8
LTEXT "Output EXE file:",IDC_OEFST,13,171,51,8
LTEXT "Installer name",IDC_INAMEST,13,126,66,8
PUSHBUTTON "Test",IDC_TEST,251,213,50,14,NOT WS_VISIBLE
PUSHBUTTON "< Back",IDC_BACK,7,213,50,14,NOT WS_VISIBLE
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,210,347,1
EDITTEXT IDC_OUTPUTTEXT,7,7,347,202,ES_MULTILINE | ES_AUTOVSCROLL |
ES_AUTOHSCROLL | ES_READONLY | NOT WS_VISIBLE | ES_AUTOHSCROLL | ES_READONLY | NOT WS_VISIBLE |
WS_VSCROLL | WS_HSCROLL WS_VSCROLL | WS_HSCROLL
END END
@ -70,14 +76,14 @@ END
// //
#ifdef APSTUDIO_INVOKED #ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE GUIDELINES DESIGNINFO
BEGIN BEGIN
IDD_DIALOG1, DIALOG IDD_DIALOG1, DIALOG
BEGIN BEGIN
LEFTMARGIN, 7 LEFTMARGIN, 7
RIGHTMARGIN, 354 RIGHTMARGIN, 353
TOPMARGIN, 7 TOPMARGIN, 7
BOTTOMMARGIN, 227 BOTTOMMARGIN, 264
END END
END END
#endif // APSTUDIO_INVOKED #endif // APSTUDIO_INVOKED
@ -89,18 +95,18 @@ END
// TEXTINCLUDE // TEXTINCLUDE
// //
1 TEXTINCLUDE DISCARDABLE 1 TEXTINCLUDE
BEGIN BEGIN
"resource.h\0" "resource.h\0"
END END
2 TEXTINCLUDE DISCARDABLE 2 TEXTINCLUDE
BEGIN BEGIN
"#include ""afxres.h""\r\n" "#include ""afxres.h""\r\n"
"\0" "\0"
END END
3 TEXTINCLUDE DISCARDABLE 3 TEXTINCLUDE
BEGIN BEGIN
"\r\n" "\r\n"
"\0" "\0"
@ -116,14 +122,14 @@ END
// Icon with lowest ID value placed first to ensure application icon // Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems. // remains consistent on all systems.
IDI_ICON1 ICON DISCARDABLE "icon.ico" IDI_ICON1 ICON "icon.ico"
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
// 24 // RT_MANIFEST
// //
1 24 MOVEABLE PURE "zip2exe.xml" 1 RT_MANIFEST "zip2exe.xml"
#endif // English (U.S.) resources #endif // English (U.S.) resources
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////

View file

@ -1,5 +1,5 @@
//{{NO_DEPENDENCIES}} //{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file. // Microsoft Visual C++ generated include file.
// Used by res.rc // Used by res.rc
// //
#define IDD_DIALOG1 101 #define IDD_DIALOG1 101
@ -7,7 +7,6 @@
#define IDC_ZIPFILE 1000 #define IDC_ZIPFILE 1000
#define IDC_BROWSE 1001 #define IDC_BROWSE 1001
#define IDC_ZIPINFO_SUMMARY 1002 #define IDC_ZIPINFO_SUMMARY 1002
#define IDC_BROWSE3 1003
#define IDC_ZIPINFO_FILES 1004 #define IDC_ZIPINFO_FILES 1004
#define IDC_INSTPATH 1005 #define IDC_INSTPATH 1005
#define IDC_DESCTEXT 1006 #define IDC_DESCTEXT 1006
@ -17,16 +16,20 @@
#define IDC_SZIPFRAME 1010 #define IDC_SZIPFRAME 1010
#define IDC_OFRAME 1011 #define IDC_OFRAME 1011
#define IDC_INAMEST 1012 #define IDC_INAMEST 1012
#define IDC_DTEXTST 1013
#define IDC_DEPST 1014 #define IDC_DEPST 1014
#define IDC_OEFST 1015 #define IDC_OEFST 1015
#define IDC_OUTPUTTEXT 1016 #define IDC_OUTPUTTEXT 1016
#define IDC_TEST 1017 #define IDC_TEST 1017
#define IDC_BACK 1018 #define IDC_BACK 1018
#define IDC_COMPILER 1019 #define IDC_COMPILER 1019
#define IDC_RADIO1 1020 #define IDC_ZLIB 1020
#define IDC_RADIO2 1021 #define IDC_MODERNUI 1021
#define IDC_COMPRESSOR 1022 #define IDC_COMPRESSOR 1022
#define IDC_INTERFACE 1023
#define IDC_BZIP2 1024
#define IDC_CLASSICUI 1025
#define IDC_INFO 1026
#define IDC_NSISICON 1027
// Next default values for new objects // Next default values for new objects
// //
@ -34,7 +37,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS #ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 103 #define _APS_NEXT_RESOURCE_VALUE 103
#define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1023 #define _APS_NEXT_CONTROL_VALUE 1028
#define _APS_NEXT_SYMED_VALUE 101 #define _APS_NEXT_SYMED_VALUE 101
#endif #endif
#endif #endif

View file

@ -577,6 +577,10 @@ Section "Zip2Exe" SecContribZ2E
SectionIn 1 2 SectionIn 1 2
SetOutPath $INSTDIR\Bin SetOutPath $INSTDIR\Bin
File ..\Bin\zip2exe.exe File ..\Bin\zip2exe.exe
SetOutPath $INSTDIR\Contrib\zip2exe
File ..\Contrib\zip2exe\Base.nsh
File ..\Contrib\zip2exe\Modern.nsh
File ..\Contrib\zip2exe\Classic.nsh
SectionEnd SectionEnd