aboutsummaryrefslogtreecommitdiff
path: root/Src/installer/shared/ui/miniui/ui.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/installer/shared/ui/miniui/ui.c')
-rw-r--r--Src/installer/shared/ui/miniui/ui.c91
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;
+}