diff --git a/Contrib/Makensisw/Readme.txt b/Contrib/Makensisw/Readme.txt index 93c83ff8..7193292c 100644 --- a/Contrib/Makensisw/Readme.txt +++ b/Contrib/Makensisw/Readme.txt @@ -201,6 +201,8 @@ Version History 2.3.4 - Added Window Info/Spy feature +- System DPI aware +- New toolbar images Copyright Information diff --git a/Contrib/Makensisw/SConscript b/Contrib/Makensisw/SConscript index ca3fc062..5bb1d0e7 100644 --- a/Contrib/Makensisw/SConscript +++ b/Contrib/Makensisw/SConscript @@ -18,11 +18,16 @@ resources = Split(""" assoc_nsi.ico assoc_nsh.ico makensisw.xml - logo.bmp toolbar.bmp - toolbar24.bmp - toolbar24d.bmp - toolbar24h.bmp + toolbar16n24.bmp + toolbar16d24.bmp + toolbar16h24.bmp + toolbar24n24.bmp + toolbar24d24.bmp + toolbar24h24.bmp + toolbar32n24.bmp + toolbar32d24.bmp + toolbar32h24.bmp """) libs = Split(""" diff --git a/Contrib/Makensisw/logo.bmp b/Contrib/Makensisw/logo.bmp deleted file mode 100644 index e2245921..00000000 Binary files a/Contrib/Makensisw/logo.bmp and /dev/null differ diff --git a/Contrib/Makensisw/logo.psp b/Contrib/Makensisw/logo.psp deleted file mode 100644 index 3ad05dce..00000000 --- a/Contrib/Makensisw/logo.psp +++ /dev/null @@ -1 +0,0 @@ -Paint Shop Pro Image File diff --git a/Contrib/Makensisw/makensisw.cpp b/Contrib/Makensisw/makensisw.cpp index 635f3e02..e1e6d099 100644 --- a/Contrib/Makensisw/makensisw.cpp +++ b/Contrib/Makensisw/makensisw.cpp @@ -192,6 +192,44 @@ DWORD CALLBACK SaveFileStreamCallback(DWORD_PTR dwCookie, LPBYTE pbBuff, LONG cb return (*pcb = (LONG) cbio, !wop); } +static void ToolBarSizeChanged(HWND hDlg) +{ + RECT r; + HWND hEd = GetDlgItem(hDlg, IDC_LOGWIN); + GetWindowRect(g_toolbar.hwnd, &r); + LONG tbh = RectH(r); + GetWindowRect(hEd, &r); + LONG oldh = RectH(r), margin = DlgUnitToPixelY(hDlg, 7), top = tbh + margin; + POINT pt = { r.left, r.top }; + ScreenToClient(hDlg, &pt); + SetWindowPos(hEd, 0, pt.x, top, RectW(r), oldh + (pt.y - top), SWP_NOZORDER|SWP_NOACTIVATE); // Update IDC_LOGWIN position and size +} + +static BOOL CALLBACK DialogResize(HWND hWnd, LPARAM /* unused */) +{ + RECT r, r2; + GetWindowRect(hWnd, &r); + ScreenToClient(g_sdata.hwnd, ((LPPOINT)&r)+0), ScreenToClient(g_sdata.hwnd, ((LPPOINT)&r)+1); + switch (GetDlgCtrlID(hWnd)) + { + case IDC_TOOLBAR: + GetWindowRect(hWnd, &r2); + SetWindowPos(hWnd, 0, 0, 0, RectW(r) + g_resize.dx, RectH(r2), SWP_NOMOVE|SWP_NOZORDER|SWP_NOACTIVATE); + break; + case IDC_LOGWIN: + SetWindowPos(hWnd, 0, r.left, r.top, RectW(r) + g_resize.dx, RectH(r) + g_resize.dy, SWP_NOZORDER|SWP_NOMOVE|SWP_NOACTIVATE); + break; + case IDC_TEST: + case IDCANCEL: + SetWindowPos(hWnd, 0, r.left + g_resize.dx, r.top + g_resize.dy, 0, 0, SWP_NOZORDER|SWP_NOSIZE|SWP_NOACTIVATE); + break; + default: + SetWindowPos(hWnd, 0, r.left, r.top + g_resize.dy, RectW(r) + g_resize.dx, RectH(r), SWP_NOZORDER|SWP_NOACTIVATE); + break; + } + RedrawWindow(hWnd,NULL,NULL,RDW_INVALIDATE); + return TRUE; +} INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { @@ -219,6 +257,7 @@ INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam SetScript(_T("")); g_sdata.compressor = COMPRESSOR_NONE_SELECTED; g_sdata.userSelectCompressor = FALSE; + ToolBarSizeChanged(hwndDlg); ProcessCommandLine(); @@ -227,7 +266,7 @@ INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam } if(g_sdata.userSelectCompressor) { - if (DialogBox(g_sdata.hInstance,MAKEINTRESOURCE(DLG_COMPRESSOR),g_sdata.hwnd,(DLGPROC)CompressorProc)) { + if (DialogBox(g_sdata.hInstance,MAKEINTRESOURCE(DLG_COMPRESSOR),g_sdata.hwnd,API_cast(CompressorProc))) { EnableItems(g_sdata.hwnd); return TRUE; } @@ -295,16 +334,12 @@ INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam } case WM_SIZE: { - if ((wParam == SIZE_MAXHIDE)||(wParam == SIZE_MAXSHOW)) return TRUE; - RECT rSize; - if (hwndDlg == g_sdata.hwnd) { - GetClientRect(g_sdata.hwnd, &rSize); - if (((rSize.right==0)&&(rSize.bottom==0))||((g_resize.resizeRect.right==0)&&(g_resize.resizeRect.bottom==0))) return TRUE; - g_resize.dx = rSize.right - g_resize.resizeRect.right; - g_resize.dy = rSize.bottom - g_resize.resizeRect.bottom; - EnumChildWindows(g_sdata.hwnd, DialogResize, (LPARAM)0); - g_resize.resizeRect = rSize; - } + if (wParam == SIZE_MAXHIDE || wParam == SIZE_MAXSHOW) return TRUE; + const LONG oldW = g_resize.resizeRect.right, oldH = g_resize.resizeRect.bottom; + GetClientRect(hwndDlg, &g_resize.resizeRect); + g_resize.dx = g_resize.resizeRect.right - oldW; + g_resize.dy = g_resize.resizeRect.bottom - oldH; + EnumChildWindows(g_sdata.hwnd, DialogResize, (LPARAM) 0); return TRUE; } case WM_SIZING: @@ -317,7 +352,7 @@ INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam { RECT r = g_resize.griprect; MapWindowPoints(hwndDlg, 0, (POINT*)&r, 2); - POINT pt = {GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)}; + POINT pt = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) }; if (PtInRect(&r, pt)) { SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, HTBOTTOMRIGHT); @@ -590,7 +625,7 @@ INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam } case IDM_SETTINGS: { - DialogBox(g_sdata.hInstance,MAKEINTRESOURCE(DLG_SETTINGS),g_sdata.hwnd,(DLGPROC)SettingsProc); + DialogBox(g_sdata.hInstance,MAKEINTRESOURCE(DLG_SETTINGS),g_sdata.hwnd,API_cast(SettingsProc)); return TRUE; } case IDM_WNDSPY: @@ -788,35 +823,6 @@ logappendfinal: return 0; } -BOOL CALLBACK DialogResize(HWND hWnd, LPARAM /* unused */) -{ - RECT r; - GetWindowRect(hWnd, &r); - ScreenToClient(g_sdata.hwnd, (LPPOINT)&r); - ScreenToClient(g_sdata.hwnd, ((LPPOINT)&r)+1); - if(hWnd != g_toolbar.hwnd) { - switch (GetDlgCtrlID(hWnd)) { - case IDC_LOGWIN: - SetWindowPos(hWnd, 0, r.left, r.top,r.right - r.left + g_resize.dx, r.bottom - r.top + g_resize.dy, SWP_NOZORDER|SWP_NOMOVE); - break; - case IDC_TEST: - case IDCANCEL: - SetWindowPos(hWnd, 0, r.left + g_resize.dx, r.top + g_resize.dy, 0, 0, SWP_NOZORDER|SWP_NOSIZE); - break; - default: - SetWindowPos(hWnd, 0, r.left, r.top + g_resize.dy, r.right - r.left + g_resize.dx, r.bottom - r.top, SWP_NOZORDER); - break; - } - } - else { - RECT r2; - GetWindowRect(g_toolbar.hwnd, &r2); - SetWindowPos(hWnd, 0, 0, 0, r.right - r.left + g_resize.dx, r2.bottom-r2.top, SWP_NOMOVE|SWP_NOZORDER); - } - RedrawWindow(hWnd,NULL,NULL,RDW_INVALIDATE); - return TRUE; -} - static INT_PTR CALLBACK AboutProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { ABOUTDLGDATA &dd = *(ABOUTDLGDATA*) g_ModalDlgData; switch(msg) { @@ -828,7 +834,7 @@ static INT_PTR CALLBACK AboutProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM const TCHAR txt[] = TEXT("MakeNSISW"); INT dt = DT_NOCLIP|DT_NOPREFIX|DT_SINGLELINE|DT_VCENTER, cch = COUNTOF(txt) - 1, line = DpiScaleY(dis.hwndItem, 2), shadow = 1; GetClientRect(dis.hwndItem, &r); - if (!dd.FinalHeaderPos) + if (!dd.hHeaderFont) dd.hHeaderFont = CreateFont(0, CFF_RAWSIZE, r.bottom / 2, FW_BOLD, DEFAULT_PITCH|FF_DONTCARE, ANSI_CHARSET, _T("Trebuchet MS")); // IE4.01SP2+ HGDIOBJ hOrgFont = SelectObject(dis.hDC, dd.hHeaderFont); DrawHorzGradient(dis.hDC, r.left, r.top, r.right, r.bottom - line, RGB(22, 77, 160), RGB(29, 100, 207)); diff --git a/Contrib/Makensisw/makensisw.h b/Contrib/Makensisw/makensisw.h index f363c7b1..af0d5aad 100644 --- a/Contrib/Makensisw/makensisw.h +++ b/Contrib/Makensisw/makensisw.h @@ -64,8 +64,8 @@ #define EXENAME _T("makensis.exe") #define MAX_STRING 256 #define TIMEOUT 100 -#define MINWIDTH 350 -#define MINHEIGHT 180 +#define MINWIDTH 400 +#define MINHEIGHT 220 #define COMPRESSOR_MESSAGE _T("\n\nThe %s compressor created the smallest installer (%d bytes).") #define RESTORED_COMPRESSOR_MESSAGE _T("\n\nThe %s compressor created the smallest installer (%d bytes).") #define EXE_HEADER_COMPRESSOR_STAT _T("EXE header size:") @@ -164,7 +164,6 @@ extern void* g_ModalDlgData; DWORD WINAPI MakeNSISProc(LPVOID TreadParam); INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); -BOOL CALLBACK DialogResize(HWND hWnd, LPARAM /* unused*/); typedef struct { enum { TID_HEADER = 1 }; diff --git a/Contrib/Makensisw/makensisw.xml b/Contrib/Makensisw/makensisw.xml index 0eefac85..d3b2799f 100644 --- a/Contrib/Makensisw/makensisw.xml +++ b/Contrib/Makensisw/makensisw.xml @@ -8,6 +8,7 @@ +true diff --git a/Contrib/Makensisw/resource.h b/Contrib/Makensisw/resource.h index b207f362..b2301557 100644 --- a/Contrib/Makensisw/resource.h +++ b/Contrib/Makensisw/resource.h @@ -36,17 +36,24 @@ #define IDI_ASSOC_NSH 113 #define IDB_LOGO 115 #define DLG_SETTINGS 116 +#define DLG_WNDSPY 117 #define IDB_TOOLBAR 122 #define DLG_COMPRESSOR 124 #define DLG_SYMBOLSET 125 -#define IDB_TOOLBAR24 129 -#define IDB_TOOLBAR24D 130 -#define IDB_TOOLBAR24H 131 -#define DLG_WNDSPY 133 +#define IDB_TOOLBAR16N24 129 +#define IDB_TOOLBAR16D24 130 +#define IDB_TOOLBAR16H24 131 +#define IDB_TOOLBAR24N24 132 +#define IDB_TOOLBAR24D24 133 +#define IDB_TOOLBAR24H24 134 +#define IDB_TOOLBAR32N24 135 +#define IDB_TOOLBAR32D24 136 +#define IDB_TOOLBAR32H24 137 #define IDC_VERSION 200 -#define IDC_LOGWIN 201 -#define IDC_TEST 202 +#define IDC_TOOLBAR 201 +#define IDC_LOGWIN 202 +#define IDC_TEST 203 #define IDC_ABOUTVERSION 220 #define IDC_ABOUTCOPY 221 #define IDC_ABOUTPORTIONS 222 @@ -119,7 +126,7 @@ // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 134 +#define _APS_NEXT_RESOURCE_VALUE 138 #define _APS_NEXT_COMMAND_VALUE 537 #define _APS_NEXT_CONTROL_VALUE 241 #define _APS_NEXT_SYMED_VALUE 101 diff --git a/Contrib/Makensisw/resource.rc b/Contrib/Makensisw/resource.rc index ae9dc4e1..6e92dcdf 100644 --- a/Contrib/Makensisw/resource.rc +++ b/Contrib/Makensisw/resource.rc @@ -166,7 +166,7 @@ FONT 8, "MS Shell Dlg" BEGIN CONTROL "",IDC_LOGWIN,RICHEDIT_CLASS,ES_MULTILINE | ES_AUTOVSCROLL | ES_NOHIDESEL | ES_READONLY | ES_SAVESEL | - WS_TABSTOP | WS_BORDER | WS_VSCROLL,7,22,345,186 + WS_TABSTOP | WS_BORDER | WS_VSCROLL,7,22,348,190 CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,220,346,1 LTEXT "",IDC_VERSION,7,230,200,12,WS_DISABLED DEFPUSHBUTTON "Test &Installer",IDC_TEST,230,226,60,15,WS_DISABLED | WS_TABSTOP @@ -327,11 +327,16 @@ END // Bitmap // -//IDB_LOGO BITMAP "logo.bmp" IDB_TOOLBAR BITMAP "toolbar.bmp" -IDB_TOOLBAR24 BITMAP "toolbar24.bmp" -IDB_TOOLBAR24D BITMAP "toolbar24d.bmp" -IDB_TOOLBAR24H BITMAP "toolbar24h.bmp" +IDB_TOOLBAR16N24 BITMAP "toolbar16n24.bmp" +IDB_TOOLBAR16D24 BITMAP "toolbar16d24.bmp" // Note: This image should NEVER be <= 256 colors because then Windows will create its own disabled effect +IDB_TOOLBAR16H24 BITMAP "toolbar16h24.bmp" +IDB_TOOLBAR24N24 BITMAP "toolbar24n24.bmp" +IDB_TOOLBAR24D24 BITMAP "toolbar24d24.bmp" // Note: This image should NEVER be <= 256 colors because then Windows will create its own disabled effect +IDB_TOOLBAR24H24 BITMAP "toolbar24h24.bmp" +IDB_TOOLBAR32N24 BITMAP "toolbar32n24.bmp" +IDB_TOOLBAR32D24 BITMAP "toolbar32d24.bmp" // Note: This image should NEVER be <= 256 colors because then Windows will create its own disabled effect +IDB_TOOLBAR32H24 BITMAP "toolbar32h24.bmp" ///////////////////////////////////////////////////////////////////////////// // diff --git a/Contrib/Makensisw/toolbar.bmp b/Contrib/Makensisw/toolbar.bmp index f4ecbdfe..d5b6b6b4 100644 Binary files a/Contrib/Makensisw/toolbar.bmp and b/Contrib/Makensisw/toolbar.bmp differ diff --git a/Contrib/Makensisw/toolbar.cpp b/Contrib/Makensisw/toolbar.cpp index 152a507a..452795ff 100644 --- a/Contrib/Makensisw/toolbar.cpp +++ b/Contrib/Makensisw/toolbar.cpp @@ -51,21 +51,27 @@ static const TBBTNDESC g_TBBtnsDesc[BUTTONCOUNT] = { /*TBB_TEST */ { MKNAMEDTBBTNDESC(TEST, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON ) }, /*TBB_COMPRESSOR*/ { MKNAMEDTBBTNDESC(COMPRESSOR, TBSTATE_ENABLED, TBSTYLE_DROPDOWN) }, /*TBB_EDITSCRIPT*/ { MKNAMEDTBBTNDESC(EDITSCRIPT, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON ) }, -/*TBB_BROWSESCR */ { MKNAMEDTBBTNDESC(BROWSESCR, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON ) }, -/*TBB_SEP3 */ { TBSTYLE_SEP }, -/*TBB_NSISHOME */ { MKNAMEDTBBTNDESC(NSISHOME, TBSTATE_ENABLED, TBSTYLE_BUTTON ) }, -/*TBB_DOCS */ { MKNAMEDTBBTNDESC(DOCS, TBSTATE_ENABLED, TBSTYLE_BUTTON ) } +/*TBB_BROWSESCR */ { MKNAMEDTBBTNDESC(BROWSESCR, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON ) } }; +static const BYTE g_TBIL[] = { +/* 16 */ IDB_TOOLBAR16N24, IDB_TOOLBAR16D24, IDB_TOOLBAR16H24, +/* 24 */ IDB_TOOLBAR24N24, IDB_TOOLBAR24D24, IDB_TOOLBAR24H24, +/* 32 */ IDB_TOOLBAR32N24, IDB_TOOLBAR32D24, IDB_TOOLBAR32H24 +}; + +static void LoadToolBarImages(); + void CreateToolBar() { g_toolbar.hwnd = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE | TBSTYLE_TRANSPARENT | TBSTYLE_FLAT, - 0, 0, 0, 30, g_sdata.hwnd, NULL, g_sdata.hInstance, NULL); + 0, 0, 0, 0, g_sdata.hwnd, (HMENU) IDC_TOOLBAR, g_sdata.hInstance, NULL); TBBUTTON tbbs[BUTTONCOUNT]; SendMessage(g_toolbar.hwnd, TB_BUTTONSTRUCTSIZE, sizeof(tbbs[0]), 0); - for (UINT i = 0; i < BUTTONCOUNT; ++i) { + for (UINT i = 0; i < BUTTONCOUNT; ++i) + { tbbs[i].iBitmap = g_TBBtnsDesc[i].ImgIdx; tbbs[i].idCommand = g_TBBtnsDesc[i].CmdId; tbbs[i].fsState = g_TBBtnsDesc[i].State; @@ -73,47 +79,55 @@ void CreateToolBar() tbbs[i].dwData = 0, tbbs[i].iString = 0; } SendMessage(g_toolbar.hwnd, TB_ADDBUTTONS, BUTTONCOUNT, (LPARAM) &tbbs); + LoadToolBarImages(); +} - // For Comctl32.dll version detection - #ifndef _WIN64 +static void LoadToolBarImages() +{ + HWND hTB = g_toolbar.hwnd; + // Comctl32.dll version detection +#ifndef _WIN64 HMODULE hMod = GetModuleHandle(_T("comctl32.dll")); - const FARPROC hasCC4_70 = sizeof(TCHAR) > 1 ? (FARPROC) TRUE : GetProcAddress(hMod, "InitCommonControlsEx"); // NT4 shipped with v4.70 + const FARPROC hasCC4_70 = (SupportsW95()) ? GetProcAddress(hMod, "InitCommonControlsEx") : (FARPROC) TRUE; // NT4 shipped with v4.70 const FARPROC hasCC4_71 = (SupportsWNT4() || SupportsW95()) ? GetProcAddress(hMod, "DllGetVersion") : (FARPROC) TRUE; // IE4 shipped with v4.71 - #else +#else const bool hasCC4_70 = true, hasCC4_71 = true; - #endif +#endif - if (hasCC4_70) { // Version 4.70 - // Modern toolbar, 24-bit bitmaps + UINT iltypecount = 3, s16 = DpiScaleY(hTB, 16), imgsize, iloffs; // 144dpi(150%)=24 120dpi(125%)=20 + if (s16 > 24) + imgsize = 32, iloffs = 2 * iltypecount; + else if (s16 > 16) + imgsize = 24, iloffs = 1 * iltypecount; + else + imgsize = 16, iloffs = 0 * iltypecount; - g_toolbar.imagelist = ImageList_LoadImage(g_sdata.hInstance, MAKEINTRESOURCE(IDB_TOOLBAR24), 16, 0, RGB(255, 0, 255), IMAGE_BITMAP, LR_CREATEDIBSECTION); - g_toolbar.imagelistd = ImageList_LoadImage(g_sdata.hInstance, MAKEINTRESOURCE(IDB_TOOLBAR24D), 16, 0, RGB(255, 0, 255), IMAGE_BITMAP, LR_CREATEDIBSECTION); - g_toolbar.imagelisth = ImageList_LoadImage(g_sdata.hInstance, MAKEINTRESOURCE(IDB_TOOLBAR24H), 16, 0, RGB(255, 0, 255), IMAGE_BITMAP, LR_CREATEDIBSECTION); - - SendMessage(g_toolbar.hwnd, TB_SETIMAGELIST, 0, (LPARAM) g_toolbar.imagelist); - SendMessage(g_toolbar.hwnd, TB_SETDISABLEDIMAGELIST, 0, (LPARAM) g_toolbar.imagelistd); - SendMessage(g_toolbar.hwnd, TB_SETHOTIMAGELIST, 0, (LPARAM) g_toolbar.imagelisth); - - if (hasCC4_71) { // Version 4.71 - SendMessage(g_toolbar.hwnd, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_DRAWDDARROWS); - } + if (hasCC4_70) + { + // Version 4.70 => Modern toolbar, 24-bit bitmaps + g_toolbar.imagelist = ImageList_LoadImage(g_sdata.hInstance, MAKEINTRESOURCE(g_TBIL[iloffs+0]), imgsize, 0, RGB(255, 0, 255), IMAGE_BITMAP, LR_CREATEDIBSECTION); + g_toolbar.imagelistd = ImageList_LoadImage(g_sdata.hInstance, MAKEINTRESOURCE(g_TBIL[iloffs+1]), imgsize, 0, RGB(255, 0, 255), IMAGE_BITMAP, LR_CREATEDIBSECTION); + g_toolbar.imagelisth = ImageList_LoadImage(g_sdata.hInstance, MAKEINTRESOURCE(g_TBIL[iloffs+2]), imgsize, 0, RGB(255, 0, 255), IMAGE_BITMAP, LR_CREATEDIBSECTION); + SendMessage(hTB, TB_SETIMAGELIST, 0, (LPARAM) g_toolbar.imagelist); + SendMessage(hTB, TB_SETDISABLEDIMAGELIST, 0, (LPARAM) g_toolbar.imagelistd); + SendMessage(hTB, TB_SETHOTIMAGELIST, 0, (LPARAM) g_toolbar.imagelisth); + if (hasCC4_71) + SendMessage(hTB, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_DRAWDDARROWS); } - else { - // Old Windows 95 toolbar, 256 color bitmap with system palette - + else + { + // Version 4.00 => Old Windows 95 toolbar, 256 color bitmap with system palette TBADDBITMAP tbBitmap; - tbBitmap.hInst = g_sdata.hInstance; tbBitmap.nID = IDB_TOOLBAR; - SendMessage(g_toolbar.hwnd, TB_ADDBITMAP, IMAGECOUNT, (LPARAM) &tbBitmap); + SendMessage(hTB, TB_ADDBITMAP, IMAGECOUNT, (LPARAM) &tbBitmap); } } void UpdateToolBarCompressorButton() { - int iBitmap; - int iString; + int iBitmap, iString; TCHAR szBuffer[124]; // increased to 124 for good measure, also. TCHAR temp[64]; // increased to 64. Hit limit 08/20/2007 -- Jim Park. diff --git a/Contrib/Makensisw/toolbar.h b/Contrib/Makensisw/toolbar.h index e6beeac3..c0a6d806 100644 --- a/Contrib/Makensisw/toolbar.h +++ b/Contrib/Makensisw/toolbar.h @@ -24,8 +24,6 @@ #define TOOLBAR_H #include -#define BUTTONCOUNT 15 - #define TBB_LOADSCRIPT 0 #define TBB_SAVE 1 #define TBB_SEP1 2 @@ -38,11 +36,7 @@ #define TBB_COMPRESSOR 9 #define TBB_EDITSCRIPT 10 #define TBB_BROWSESCR 11 -#define TBB_SEP3 12 -#define TBB_NSISHOME 13 -#define TBB_DOCS 14 - -#define IMAGECOUNT 16 +#define BUTTONCOUNT 12 #define IDB_LOADSCRIPT 0 #define IDB_SAVE 1 @@ -53,14 +47,13 @@ #define IDB_EDITSCRIPT 6 #define IDB_BROWSESCR 7 #define IDB_CLEARLOG 8 -#define IDB_NSISHOME 9 -#define IDB_DOCS 10 -#define IDB_COMPRESSOR 11 -#define IDB_COMPRESSOR_SCRIPT 11 -#define IDB_COMPRESSOR_BZIP2 12 -#define IDB_COMPRESSOR_ZLIB 13 -#define IDB_COMPRESSOR_BEST 14 -#define IDB_COMPRESSOR_LZMA 15 +#define IDB_COMPRESSOR_SCRIPT 9 +#define IDB_COMPRESSOR_BZIP2 10 +#define IDB_COMPRESSOR_ZLIB 11 +#define IDB_COMPRESSOR_BEST 12 +#define IDB_COMPRESSOR_LZMA 13 +#define IMAGECOUNT 14 +#define IDB_COMPRESSOR IDB_COMPRESSOR_SCRIPT typedef struct ToolBarStruct { HWND hwnd; diff --git a/Contrib/Makensisw/toolbar16d24.bmp b/Contrib/Makensisw/toolbar16d24.bmp new file mode 100644 index 00000000..2db72f2a Binary files /dev/null and b/Contrib/Makensisw/toolbar16d24.bmp differ diff --git a/Contrib/Makensisw/toolbar16h24.bmp b/Contrib/Makensisw/toolbar16h24.bmp new file mode 100644 index 00000000..c1eeb2d5 Binary files /dev/null and b/Contrib/Makensisw/toolbar16h24.bmp differ diff --git a/Contrib/Makensisw/toolbar16n24.bmp b/Contrib/Makensisw/toolbar16n24.bmp new file mode 100644 index 00000000..6ce050cb Binary files /dev/null and b/Contrib/Makensisw/toolbar16n24.bmp differ diff --git a/Contrib/Makensisw/toolbar24.bmp b/Contrib/Makensisw/toolbar24.bmp deleted file mode 100644 index 91d123a0..00000000 Binary files a/Contrib/Makensisw/toolbar24.bmp and /dev/null differ diff --git a/Contrib/Makensisw/toolbar24d.bmp b/Contrib/Makensisw/toolbar24d.bmp deleted file mode 100644 index b384a966..00000000 Binary files a/Contrib/Makensisw/toolbar24d.bmp and /dev/null differ diff --git a/Contrib/Makensisw/toolbar24d24.bmp b/Contrib/Makensisw/toolbar24d24.bmp new file mode 100644 index 00000000..81322abf Binary files /dev/null and b/Contrib/Makensisw/toolbar24d24.bmp differ diff --git a/Contrib/Makensisw/toolbar24h.bmp b/Contrib/Makensisw/toolbar24h.bmp deleted file mode 100644 index e9fc7d51..00000000 Binary files a/Contrib/Makensisw/toolbar24h.bmp and /dev/null differ diff --git a/Contrib/Makensisw/toolbar24h24.bmp b/Contrib/Makensisw/toolbar24h24.bmp new file mode 100644 index 00000000..bff0b81e Binary files /dev/null and b/Contrib/Makensisw/toolbar24h24.bmp differ diff --git a/Contrib/Makensisw/toolbar24n24.bmp b/Contrib/Makensisw/toolbar24n24.bmp new file mode 100644 index 00000000..658220e4 Binary files /dev/null and b/Contrib/Makensisw/toolbar24n24.bmp differ diff --git a/Contrib/Makensisw/toolbar32d24.bmp b/Contrib/Makensisw/toolbar32d24.bmp new file mode 100644 index 00000000..fb43260a Binary files /dev/null and b/Contrib/Makensisw/toolbar32d24.bmp differ diff --git a/Contrib/Makensisw/toolbar32h24.bmp b/Contrib/Makensisw/toolbar32h24.bmp new file mode 100644 index 00000000..7845aba1 Binary files /dev/null and b/Contrib/Makensisw/toolbar32h24.bmp differ diff --git a/Contrib/Makensisw/toolbar32n24.bmp b/Contrib/Makensisw/toolbar32n24.bmp new file mode 100644 index 00000000..664c57da Binary files /dev/null and b/Contrib/Makensisw/toolbar32n24.bmp differ diff --git a/Contrib/Makensisw/utils.cpp b/Contrib/Makensisw/utils.cpp index b585b508..3794e287 100644 --- a/Contrib/Makensisw/utils.cpp +++ b/Contrib/Makensisw/utils.cpp @@ -1034,7 +1034,7 @@ int DpiScaleY(HWND hWnd, int Val) HFONT CreateFontHelper(INT_PTR Data, int Height, DWORD p1, LPCTSTR Face) { - UINT16 w = LOBYTE(p1)<<2, flags = HIBYTE(p1), cs = HIWORD(LOBYTE(p1)), paf = HIWORD(HIBYTE(p1)); + WORD w = LOBYTE(p1)<<2, flags = HIBYTE(p1), cs = HIWORD(LOBYTE(p1)), paf = HIWORD(HIBYTE(p1)); if (flags & CFF_DPIPT) { UINT dpi = (flags & CFF_DPIFROMHWND) ? DpiGetForWindow((HWND) Data) : (UINT) Data; @@ -1065,10 +1065,11 @@ static BOOL DrawHorzGradient(HDC hDC, const RECT&rect, COLOR16 r1, COLOR16 g1, C BOOL DrawHorzGradient(HDC hDC, LONG l, LONG t, LONG r, LONG b, COLORREF c1, COLORREF c2) { RECT rect = { l, t, r, b }; - return DrawHorzGradient(hDC, rect, (UINT16)GetRValue(c1)<<8, (UINT16)GetGValue(c1)<<8, (UINT16)GetBValue(c1)<<8, (UINT16)GetRValue(c2)<<8, (UINT16)GetGValue(c2)<<8, (UINT16)GetBValue(c2)<<8); + return DrawHorzGradient(hDC, rect, (WORD)GetRValue(c1)<<8, (WORD)GetGValue(c1)<<8, (WORD)GetBValue(c1)<<8, (WORD)GetRValue(c2)<<8, (WORD)GetGValue(c2)<<8, (WORD)GetBValue(c2)<<8); } long DlgUnitToPixelX(HWND hDlg, long x) { RECT r = { x, 0, 0, 0 }; MapDialogRect(hDlg, &r); return r.left; } +long DlgUnitToPixelY(HWND hDlg, long y) { RECT r = { 0, y, 0, 0 }; MapDialogRect(hDlg, &r); return r.top; } #ifndef SP_GRIPPER #ifndef HTHEME diff --git a/Contrib/Makensisw/utils.h b/Contrib/Makensisw/utils.h index 2f09a7c6..aa46dcff 100644 --- a/Contrib/Makensisw/utils.h +++ b/Contrib/Makensisw/utils.h @@ -88,12 +88,12 @@ HMENU FindSubMenu(HMENU hMenu, UINT uId); typedef enum { CFF_RAWSIZE = 0x00, CFF_DPIPT = 0x01, CFF_DPIFROMHWND = 0x02 } CREATEFONTFLAGS; HFONT CreateFontHelper(INT_PTR Data, int Height, DWORD p1, LPCTSTR Face); -inline HFONT CreateFont(INT_PTR Data, UINT16 Flags, int Height, UINT16 Weight, BYTE PitchAndFamily, BYTE CharSet, LPCTSTR Face) +inline HFONT CreateFont(INT_PTR Data, WORD Flags, int Height, WORD Weight, BYTE PitchAndFamily, BYTE CharSet, LPCTSTR Face) { DWORD packed = MAKELONG(MAKEWORD(Weight>>2, Flags), MAKEWORD(CharSet, PitchAndFamily)); return CreateFontHelper(Data, Height, packed, Face); } -inline HFONT CreateFontPt(HWND hWndDPI, int Height, UINT16 Weight, BYTE PitchAndFamily, BYTE CharSet, LPCTSTR Face) +inline HFONT CreateFontPt(HWND hWndDPI, int Height, WORD Weight, BYTE PitchAndFamily, BYTE CharSet, LPCTSTR Face) { return CreateFont((INT_PTR) hWndDPI, CFF_DPIFROMHWND|CFF_DPIPT, Height, Weight, PitchAndFamily, CharSet, Face); } @@ -101,6 +101,7 @@ BOOL DrawHorzGradient(HDC hDC, LONG l, LONG t, LONG r, LONG b, COLORREF c1, COLO inline long RectW(const RECT&r) { return r.right - r.left; } inline long RectH(const RECT&r) { return r.bottom - r.top; } long DlgUnitToPixelX(HWND hDlg, long x); +long DlgUnitToPixelY(HWND hDlg, long y); UINT DpiGetForWindow(HWND hWnd); int DpiScaleY(HWND hWnd, int Val);