2002-09-03 10:14:22 +00:00
|
|
|
// ui.cpp : Defines the entry point for the application.
|
|
|
|
//
|
2010-03-24 17:22:56 +00:00
|
|
|
// Unicode support by Jim Park -- 08/10/2007
|
2002-09-03 10:14:22 +00:00
|
|
|
|
2012-10-13 01:47:50 +00:00
|
|
|
#include "../../Source/Platform.h"
|
2005-03-17 21:26:59 +00:00
|
|
|
#include <windows.h>
|
|
|
|
#include <commctrl.h>
|
2002-09-03 10:14:22 +00:00
|
|
|
#include "resource.h"
|
|
|
|
|
|
|
|
HINSTANCE g_hInstance;
|
|
|
|
HWND m_curwnd;
|
|
|
|
|
2012-10-13 01:47:50 +00:00
|
|
|
const TCHAR* windows[] = {
|
2002-09-03 10:14:22 +00:00
|
|
|
MAKEINTRESOURCE(IDD_LICENSE),
|
|
|
|
MAKEINTRESOURCE(IDD_SELCOM),
|
|
|
|
MAKEINTRESOURCE(IDD_DIR),
|
|
|
|
MAKEINTRESOURCE(IDD_INSTFILES),
|
|
|
|
MAKEINTRESOURCE(IDD_UNINST)
|
|
|
|
};
|
|
|
|
|
2013-09-06 23:48:59 +00:00
|
|
|
INT_PTR CALLBACK GenericProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) {
|
2002-09-03 10:14:22 +00:00
|
|
|
static LOGBRUSH b = {BS_SOLID, RGB(255,0,0), 0};
|
2005-06-22 15:55:41 +00:00
|
|
|
static HBRUSH red;
|
|
|
|
|
|
|
|
if (!red)
|
|
|
|
red = CreateBrushIndirect(&b);
|
|
|
|
|
2002-09-03 10:14:22 +00:00
|
|
|
switch (uMsg) {
|
|
|
|
case WM_CTLCOLORSTATIC:
|
2013-09-06 23:48:59 +00:00
|
|
|
return (INT_PTR)red;
|
2002-09-03 10:14:22 +00:00
|
|
|
}
|
2013-09-06 23:48:59 +00:00
|
|
|
return FALSE;
|
2002-09-03 10:14:22 +00:00
|
|
|
}
|
|
|
|
|
2013-09-06 23:48:59 +00:00
|
|
|
INT_PTR CALLBACK DialogProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) {
|
2002-09-03 10:14:22 +00:00
|
|
|
static int i = -1;
|
2013-09-06 23:48:59 +00:00
|
|
|
switch (uMsg) {
|
|
|
|
case WM_INITDIALOG:
|
|
|
|
SetWindowText(hwndDlg, _T("NSIS User Interface - Testing"));
|
|
|
|
SetWindowText(GetDlgItem(hwndDlg, IDC_VERSTR), _T("NSIS version"));
|
|
|
|
SetWindowText(GetDlgItem(hwndDlg, IDC_BACK), _T("< Back"));
|
|
|
|
SetWindowText(GetDlgItem(hwndDlg, IDOK), _T("Next >"));
|
|
|
|
SetWindowText(GetDlgItem(hwndDlg, IDCANCEL), _T("Cancel"));
|
|
|
|
ShowWindow(GetDlgItem(hwndDlg, IDC_BACK), SW_SHOW);
|
|
|
|
ShowWindow(GetDlgItem(hwndDlg, IDC_CHILDRECT), SW_SHOW);
|
2002-09-03 10:14:22 +00:00
|
|
|
SendMessage(hwndDlg, WM_COMMAND, MAKEWORD(IDOK, 0), 0);
|
2013-09-06 23:48:59 +00:00
|
|
|
ShowWindow(hwndDlg, SW_SHOW);
|
|
|
|
break;
|
|
|
|
case WM_COMMAND:
|
2002-09-03 10:14:22 +00:00
|
|
|
switch (LOWORD(wParam)) {
|
|
|
|
case IDOK:
|
|
|
|
case IDC_BACK:
|
|
|
|
i+=(LOWORD(wParam)==IDOK)?1:-1;
|
|
|
|
if (i < 0) {
|
|
|
|
i++;
|
|
|
|
break;
|
|
|
|
}
|
2010-03-24 17:22:56 +00:00
|
|
|
if (i >= (int)sizeof(windows)/sizeof(TCHAR*)) {
|
2002-09-03 10:14:22 +00:00
|
|
|
i--;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
if (m_curwnd) DestroyWindow(m_curwnd);
|
|
|
|
m_curwnd=CreateDialog(g_hInstance,windows[i],hwndDlg,GenericProc);
|
|
|
|
if (m_curwnd)
|
|
|
|
{
|
|
|
|
RECT r;
|
|
|
|
GetWindowRect(GetDlgItem(hwndDlg,IDC_CHILDRECT),&r);
|
|
|
|
ScreenToClient(hwndDlg,(LPPOINT)&r);
|
|
|
|
SetWindowPos(m_curwnd,0,r.left,r.top,0,0,SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOZORDER);
|
|
|
|
ShowWindow(m_curwnd,SW_SHOWNA);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
EndDialog(hwndDlg, 0);
|
|
|
|
PostQuitMessage(0);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
break;
|
2012-10-13 01:47:50 +00:00
|
|
|
}
|
2013-09-06 23:48:59 +00:00
|
|
|
return FALSE;
|
2002-09-03 10:14:22 +00:00
|
|
|
}
|
|
|
|
|
2012-10-13 01:47:50 +00:00
|
|
|
NSIS_ENTRYPOINT_SIMPLEGUI
|
|
|
|
int WINAPI _tWinMain(HINSTANCE hInst,HINSTANCE hOldInst,LPTSTR CmdLineParams,int ShowCmd)
|
2002-09-03 10:14:22 +00:00
|
|
|
{
|
|
|
|
InitCommonControls();
|
2012-10-13 01:47:50 +00:00
|
|
|
g_hInstance = hInst;
|
2010-03-24 17:22:56 +00:00
|
|
|
LoadLibrary(_T("RichEd32.dll"));
|
2014-02-08 00:13:52 +00:00
|
|
|
return (int) DialogBox(g_hInstance,MAKEINTRESOURCE(IDD_INST),0,DialogProc);
|
2005-03-17 21:26:59 +00:00
|
|
|
}
|
2012-10-13 01:47:50 +00:00
|
|
|
|