+ } else if(hwnd == wnd_finish) {
+ static struct finish_data data;
+ switch(message)
+ {
+ case WM_CREATE: {
+ /* TODO:
+
+ "swftools has been installed into directory %s
+ successfully"
+
+ [x] Create Desktop Shortcut
+ [x] Create Start Menu Entry
+
+ */
+
+ RECT rc;
+ CREATESTRUCT*cs = ((LPCREATESTRUCT)lParam);
+ GetClientRect (hwnd, &rc);
+ data.width = rc.right - rc.left;
+ data.height = rc.bottom - rc.top;
+
+ data.text = malloc(strlen(install_path)+256);
+ sprintf(data.text, "SWFTools has been installed into directory\r\n%s\r\nsucessfully.", install_path);
+
+ data.installButton = CreateWindow (
+ WC_BUTTON,
+ "Finish",
+ WS_CHILD | WS_VISIBLE | WS_TABSTOP,
+ (data.width - 80)/2,
+ data.height - 32,
+ 80,
+ 32,
+ hwnd,
+ (HMENU)0xabce,
+ cs->hInstance,
+ NULL
+ );
+
+ if(config_createLinks) {
+ data.check1 = CreateWindow (
+ WC_BUTTON,
+ "Create Desktop Shortcut",
+ WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_CHECKBOX,
+ 32, data.height - 96,
+ data.width-32*2, 32,
+ hwnd, (HMENU)0xabcf, cs->hInstance, NULL);
+
+ data.check2 = CreateWindow (
+ WC_BUTTON,
+ "Create Start Menu Entry",
+ WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_CHECKBOX,
+ 32, data.height - 64,
+ data.width-32*2, 32,
+ hwnd, (HMENU)0xabd0, cs->hInstance, NULL);
+
+ SendDlgItemMessage(hwnd, 0xabcf, BM_SETCHECK, config_createStartmenu, 0);
+ SendDlgItemMessage(hwnd, 0xabd0, BM_SETCHECK, config_createDesktop, 0);
+ }
+ }
+ case WM_PAINT: {
+ TEXTMETRIC tm;
+ HDC hdc;
+ PAINTSTRUCT ps;
+ RECT rc;
+ hdc = GetDC(hwnd);
+ SelectObject(hdc, GetStockObject(DEFAULT_GUI_FONT));
+ GetTextMetrics(hdc, &tm);
+ ReleaseDC(hwnd, hdc);
+ hdc = BeginPaint (hwnd, &ps);
+ SetBkMode(hdc, TRANSPARENT);
+ rc.left = 0;
+ rc.top = 10;
+ rc.right = data.width;
+ rc.bottom = data.height-40-32;
+ DrawText(hdc, data.text, -1, &rc, DT_CENTER | DT_VCENTER);
+ EndPaint (hwnd, &ps);
+ return 0;
+
+ return DefWindowProc(hwnd, message, wParam, lParam);
+ }
+ case WM_COMMAND: {
+ if((wParam&0xffff) == 0xabce) {
+ data.ok = 1;
+ DestroyWindow(hwnd);
+ return 0;
+ }
+ if((wParam&0xffff) == 0xabcf) {
+ config_createDesktop = SendDlgItemMessage(hwnd, 0xabcf, BM_GETCHECK, 0, 0);
+ config_createDesktop^=1;
+ SendDlgItemMessage(hwnd, 0xabcf, BM_SETCHECK, config_createDesktop, 0);
+ return 0;
+ }
+ if((wParam&0xffff) == 0xabd0) {
+ config_createStartmenu = SendDlgItemMessage(hwnd, 0xabd0, BM_GETCHECK, 0, 0);
+ config_createStartmenu^=1;
+ SendDlgItemMessage(hwnd, 0xabd0, BM_SETCHECK, config_createStartmenu, 0);
+ return 0;
+ }
+ }
+ case WM_DESTROY: {
+ free(data.text);data.text = 0;
+ if(!data.ok) {
+ do_abort = 1;
+ PostQuitMessage(0);
+ }
+ wnd_finish = 0;
+ return DefWindowProc(hwnd, message, wParam, lParam);
+ }
+ }
+ } else if(hwnd == wnd_background) {
+ switch(message)
+ {
+ case WM_PAINT: {
+ HDC hdc;
+ PAINTSTRUCT ps;
+ RECT rc;
+ hdc = BeginPaint(hwnd, &ps);
+ SetBkMode(hdc, TRANSPARENT);
+
+ HPEN pen = CreatePen(PS_SOLID, 2, RGB(255, 255, 0));
+ HPEN oldPen = (HPEN)SelectObject(hdc, pen);
+
+ MoveToEx(hdc, 10, 10, 0);
+ LineTo(hdc, 100, 100);
+
+ SelectObject(hdc, oldPen);
+ DeleteObject(pen);
+
+ EndPaint(hwnd, &ps);
+ return 1;
+ }
+ }