diff options
Diffstat (limited to 'Src/installer/shared/ui/miniui/ui.c')
-rw-r--r-- | Src/installer/shared/ui/miniui/ui.c | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/Src/installer/shared/ui/miniui/ui.c b/Src/installer/shared/ui/miniui/ui.c new file mode 100644 index 00000000..a426499d --- /dev/null +++ b/Src/installer/shared/ui/miniui/ui.c @@ -0,0 +1,91 @@ +// ui.cpp : Defines the entry point for the application. +// + +#include <windows.h> +#include "resource.h" + +HINSTANCE g_hInstance; +HWND m_curwnd; + +LPTSTR windows[] = { + MAKEINTRESOURCE(IDD_LICENSE), + MAKEINTRESOURCE(IDD_SELCOM), + MAKEINTRESOURCE(IDD_DIR), + MAKEINTRESOURCE(IDD_INSTFILES), + MAKEINTRESOURCE(IDD_UNINST) +}; + +BOOL CALLBACK GenericProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) { + static LOGBRUSH b = {BS_SOLID, RGB(255,0,0), 0}; + static HBRUSH red; + + if (!red) + red = CreateBrushIndirect(&b); + + switch (uMsg) { + case WM_CTLCOLORSTATIC: + return (int)red; + } + return 0; +} + +BOOL CALLBACK DialogProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) { + static int i = -1; + switch (uMsg) { + case WM_INITDIALOG: + ShowWindow(GetDlgItem(hwndDlg, IDC_CHILDRECT), SW_SHOW); + ShowWindow(hwndDlg, SW_SHOW); + break; + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDOK: + case IDC_BACK: + i+=(LOWORD(wParam)==IDOK)?1:-1; + if (i < 0) { + i++; + break; + } + if (i >= (int)sizeof(windows)/sizeof(char*)) { + 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; + } + return 0; +} + +int APIENTRY WinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPSTR lpCmdLine, + int nCmdShow) +{ + + g_hInstance = GetModuleHandle(0); + + DialogBox( + g_hInstance, + MAKEINTRESOURCE(IDD_INST), + 0, + DialogProc + ); + + ExitProcess(0); + + return 0; +} |