New About Boxes

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@1067 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
rainwater 2002-09-20 14:37:29 +00:00
parent b588f97ad5
commit 3cd3086bcf
4 changed files with 158 additions and 14 deletions

View file

@ -210,6 +210,11 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
DialogBox(g_hInstance,MAKEINTRESOURCE(DLG_ABOUT),g_hwnd,(DLGPROC)AboutProc);
return TRUE;
}
case IDM_ABOUTNSIS:
{
DialogBox(g_hInstance,MAKEINTRESOURCE(DLG_ABOUTNSIS),g_hwnd,(DLGPROC)AboutNSISProc);
return TRUE;
}
case IDM_NSISHOME:
{
ShellExecute(g_hwnd,"open",NSIS_URL,NULL,NULL,SW_SHOWNORMAL);
@ -448,7 +453,91 @@ BOOL CALLBACK DialogResize(HWND hWnd, LPARAM /* unused */)
return TRUE;
}
#define CONTRIBCOUNT 3
char * ContribUsers[] = {
"Fritz Elfert",
"Justin Frankel",
"Amir Szekely"
};
extern char *g_branding;
BOOL CALLBACK AboutNSISProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
switch(msg) {
case WM_INITDIALOG:
{
HFONT bfont = CreateFont(14,0,0,0,FW_BOLD,FALSE,FALSE,FALSE,DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
FIXED_PITCH|FF_DONTCARE, "MS Shell Dlg");
HFONT hFont = CreateFont(12,0,0,0,FW_NORMAL,0,0,0,DEFAULT_CHARSET,OUT_CHARACTER_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FIXED_PITCH|FF_DONTCARE,"MS Shell Dlg");
if (bfont) SendDlgItemMessage(hwndDlg, IDC_NSISVER, WM_SETFONT, (WPARAM)bfont, FALSE);
SetDlgItemText(hwndDlg,IDC_NSISVER,g_branding);
SendDlgItemMessage(hwndDlg,IDC_NSISNFO,WM_SETFONT,(WPARAM)hFont,0);
SendDlgItemMessage(hwndDlg,IDC_NSISNFO,EM_SETBKGNDCOLOR,0,GetSysColor(COLOR_BTNFACE));
{
char *s;
s = (char *)GlobalAlloc(GPTR,lstrlen(EXENAME)+10);
wsprintf(s,"%s /license",EXENAME);
STARTUPINFO si={sizeof(si),};
SECURITY_ATTRIBUTES sa={sizeof(sa),};
SECURITY_DESCRIPTOR sd={0,};
PROCESS_INFORMATION pi={0,};
HANDLE newstdout=0,read_stdout=0;
OSVERSIONINFO osv={sizeof(osv)};
GetVersionEx(&osv);
if (osv.dwPlatformId == VER_PLATFORM_WIN32_NT) {
InitializeSecurityDescriptor(&sd,SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&sd,true,NULL,false);
sa.lpSecurityDescriptor = &sd;
}
else sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = true;
if (!CreatePipe(&read_stdout,&newstdout,&sa,0)) {
return 0;
}
GetStartupInfo(&si);
si.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
si.hStdOutput = newstdout;
si.hStdError = newstdout;
if (!CreateProcess(NULL,s,NULL,NULL,TRUE,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi)) {
CloseHandle(newstdout);
CloseHandle(read_stdout);
return 0;
}
char szBuf[2048];
DWORD dwRead = 1;
DWORD dwExit = !STILL_ACTIVE;
if (WaitForSingleObject(pi.hProcess,10000)!=WAIT_OBJECT_0) {
return 0;
}
ReadFile(read_stdout, szBuf, sizeof(szBuf)-1, &dwRead, NULL);
szBuf[dwRead] = 0;
if (lstrlen(szBuf)==0) EndDialog(hwndDlg,TRUE);
SetDlgItemText(hwndDlg,IDC_NSISNFO,szBuf);
GlobalFree(s);
}
break;
}
case WM_CLOSE:
EndDialog(hwndDlg, TRUE);
break;
case WM_COMMAND:
{
switch (LOWORD(wParam)) {
case WM_CLOSE:
case IDOK:
EndDialog(hwndDlg, TRUE);
break;
}
}
}
return FALSE;
}
BOOL CALLBACK AboutProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
static HBRUSH hBrush;
switch(msg) {
case WM_INITDIALOG:
{
@ -465,9 +554,25 @@ BOOL CALLBACK AboutProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
}
SetDlgItemText(hwndDlg,IDC_ABOUTVERSION,NSISW_VERSION);
SetDlgItemText(hwndDlg,IDC_ABOUTCOPY,COPYRIGHT);
SetDlgItemText(hwndDlg,IDC_ABOUTPORTIONS,CONTRIBUTOR);
HWND ilist = GetDlgItem(hwndDlg,IDC_CONTRIB);
int i;
if (ilist) {
for (i = 0; i < CONTRIBCOUNT; i++) {
SendMessage(ilist, LB_ADDSTRING, 0, (LPARAM) ContribUsers[i]);
SendMessage(ilist, LB_SETITEMDATA, i, (LPARAM) i);
}
}
break;
}
case WM_CTLCOLORDLG:
case WM_CTLCOLORSTATIC:
case WM_CTLCOLORLISTBOX:
{
if(!hBrush) hBrush=CreateSolidBrush(GetSysColor(COLOR_BTNFACE));
SetBkColor((HDC)wParam, GetSysColor(COLOR_BTNFACE));
SelectObject((HDC)wParam, hBrush);
return((LONG)hBrush);
}
case WM_CLOSE:
EndDialog(hwndDlg, TRUE);
break;
@ -477,6 +582,7 @@ BOOL CALLBACK AboutProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
case WM_CLOSE:
case IDOK:
EndDialog(hwndDlg, TRUE);
break;
}
}
}

View file

@ -33,7 +33,6 @@
#define NSIS_URL "http://sourceforge.net/projects/nsis/"
#define USAGE "Usage:\r\n\r\n - File | Load Script...\r\n - Drag the .nsi file into this window\r\n - Right click the .nsi file and choose \"Compile NSI\""
#define COPYRIGHT "Copyright (c) 2002 Robert Rainwater"
#define CONTRIBUTOR "Contributors: Justin Frankel, Fritz Elfert, and Amir Szekely"
#define DOCPATH "http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/nsis/NSIS/docs/index.html?rev=HEAD"
#define LOCALDOCS "\\docs\\index.html"
#define NSISERROR "Unable to intialize MakeNSIS. Please verify that makensis.exe is in the same directory as makensisw.exe."
@ -65,6 +64,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, char *cmdParam, int cm
static BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
DWORD WINAPI MakeNSISProc(LPVOID p);
BOOL CALLBACK DialogResize(HWND hWnd, LPARAM /* unused*/);
BOOL CALLBACK AboutNSISProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
BOOL CALLBACK AboutProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
void CompileNSISScript();

View file

@ -11,6 +11,7 @@
#define IDI_ABOUT 110
#define IDM_LOGWIN 111
#define IDI_SHELL 112
#define DLG_ABOUTNSIS 113
#define IDC_LOGWIN 402
#define IDC_VERSION 405
#define IDC_CLOSE 406
@ -25,20 +26,24 @@
#define IDC_ABOUTVERSION 1001
#define IDC_ABOUTCOPY 1003
#define IDC_ABOUTPORTIONS 1005
#define IDC_CONTRIB 1009
#define IDC_NSISVER 1010
#define IDC_NSISNFO 1011
#define IDM_TEST 40002
#define IDM_EDITSCRIPT 40003
#define IDM_DOCS 40004
#define IDM_LOADSCRIPT 40005
#define IDM_FIND 40006
#define IDM_SELECTALL 40007
#define IDM_ABOUTNSIS 40008
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 113
#define _APS_NEXT_COMMAND_VALUE 40008
#define _APS_NEXT_CONTROL_VALUE 1009
#define _APS_NEXT_RESOURCE_VALUE 114
#define _APS_NEXT_COMMAND_VALUE 40009
#define _APS_NEXT_CONTROL_VALUE 1013
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

View file

@ -2,6 +2,11 @@
//
#include "resource.h"
// Generated Help ID header file
#define APSTUDIO_HIDDEN_SYMBOLS
#include "resource.hm"
#undef APSTUDIO_HIDDEN_SYMBOLS
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
@ -90,7 +95,8 @@ BEGIN
MENUITEM "NSIS Home", IDM_NSISHOME
MENUITEM "Documentation", IDM_DOCS
MENUITEM SEPARATOR
MENUITEM "&About", IDM_ABOUT
MENUITEM "About &NSIS", IDM_ABOUTNSIS
MENUITEM "&About MakeNSISW", IDM_ABOUT
END
END
@ -132,7 +138,7 @@ END
DLG_MAIN DIALOG DISCARDABLE 0, 0, 361, 228
STYLE DS_3DLOOK | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP |
WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_CLIPCHILDREN
WS_VISIBLE | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
CAPTION "MakeNSIS"
MENU IDM_MENU
FONT 8, "MS Shell Dlg"
@ -146,18 +152,37 @@ BEGIN
PUSHBUTTON "&Test Installer",IDC_TEST,230,208,60,15,WS_DISABLED
END
DLG_ABOUT DIALOG DISCARDABLE 0, 0, 235, 86
DLG_ABOUT DIALOGEX 0, 0, 235, 105
STYLE DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_CAPTION |
WS_SYSMENU
CAPTION "About MakeNSISW"
FONT 8, "MS Shell Dlg"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
ICON IDI_ICON,IDC_STATIC,7,4,20,20
DEFPUSHBUTTON "Clo&se",IDOK,185,64,43,15
ICON IDI_ICON,IDC_STATIC,7,4,21,20
DEFPUSHBUTTON "Clo&se",IDOK,185,86,43,15
LTEXT "MakeNSISW",IDC_ABOUTVERSION,44,4,184,8
LTEXT "Copyright",IDC_ABOUTCOPY,44,18,184,8
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,45,55,183,1
LTEXT "Portions Copyright",IDC_ABOUTPORTIONS,44,30,184,20
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,47,78,181,1
LTEXT "Other Contributors:",IDC_ABOUTPORTIONS,44,30,184,10,0,0,
HIDC_ABOUTPORTIONS
LISTBOX IDC_CONTRIB,48,40,179,33,LBS_SORT | LBS_NOINTEGRALHEIGHT |
LBS_NOSEL | NOT WS_BORDER | WS_VSCROLL | WS_TABSTOP,
WS_EX_TRANSPARENT
END
DLG_ABOUTNSIS DIALOG DISCARDABLE 0, 0, 311, 161
STYLE DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_CAPTION |
WS_SYSMENU
CAPTION "About NSIS"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "&Close",IDOK,254,140,50,14
ICON IDI_ICON,IDC_STATIC,7,7,20,20
LTEXT "NSIS",IDC_NSISVER,38,13,90,11
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,133,297,1
CONTROL "",IDC_NSISNFO,"RICHEDIT",ES_MULTILINE | ES_AUTOVSCROLL |
ES_NOHIDESEL | ES_READONLY | ES_NUMBER | WS_BORDER |
WS_VSCROLL,7,32,297,97
END
@ -174,7 +199,15 @@ BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 228
TOPMARGIN, 4
BOTTOMMARGIN, 79
BOTTOMMARGIN, 101
END
DLG_ABOUTNSIS, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 304
TOPMARGIN, 7
BOTTOMMARGIN, 154
END
END
#endif // APSTUDIO_INVOKED