modern 24-bit toolbar for comctl32 => 4.70
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3344 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
898401b262
commit
b65f878e84
9 changed files with 80 additions and 19 deletions
|
@ -52,13 +52,13 @@ void CreateToolBar()
|
|||
tbButton[TBB_SEP1] = CreateToolBarButton(0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0);
|
||||
tbButton[TBB_COPY] = CreateToolBarButton(IDB_COPY, IDM_COPY, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0);
|
||||
tbButton[TBB_FIND] = CreateToolBarButton(IDB_FIND, IDM_FIND, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0);
|
||||
tbButton[TBB_CLEARLOG] = CreateToolBarButton(IDB_CLEARLOG, IDM_CLEARLOG, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0);
|
||||
tbButton[TBB_SEP2] = CreateToolBarButton(0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0);
|
||||
tbButton[TBB_RECOMPILE] = CreateToolBarButton(IDB_RECOMPILE, IDM_RECOMPILE, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0);
|
||||
tbButton[TBB_COMPRESSOR] = CreateToolBarButton(IDB_COMPRESSOR, IDM_COMPRESSOR, TBSTATE_ENABLED, TBSTYLE_DROPDOWN, 0, 0);
|
||||
tbButton[TBB_TEST] = CreateToolBarButton(IDB_TEST, IDM_TEST, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0);
|
||||
tbButton[TBB_EDITSCRIPT] = CreateToolBarButton(IDB_EDITSCRIPT, IDM_EDITSCRIPT, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0);
|
||||
tbButton[TBB_BROWSESCR] = CreateToolBarButton(IDB_BROWSESCR, IDM_BROWSESCR, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 0);
|
||||
tbButton[TBB_CLEARLOG] = CreateToolBarButton(IDB_CLEARLOG, IDM_CLEARLOG, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0);
|
||||
tbButton[TBB_SEP3] = CreateToolBarButton(0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0);
|
||||
tbButton[TBB_NSISHOME] = CreateToolBarButton(IDB_NSISHOME, IDM_NSISHOME, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0);
|
||||
tbButton[TBB_DOCS] = CreateToolBarButton(IDB_DOCS, IDM_DOCS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0);
|
||||
|
@ -73,16 +73,39 @@ void CreateToolBar()
|
|||
(HMENU) TOOLBAR_ID,
|
||||
g_sdata.hInstance,
|
||||
NULL );
|
||||
|
||||
TBADDBITMAP tbBitmap;
|
||||
|
||||
tbBitmap.hInst = g_sdata.hInstance;
|
||||
tbBitmap.nID = IDB_TOOLBAR;
|
||||
|
||||
SendMessage(g_toolbar.hwnd, TB_BUTTONSTRUCTSIZE, sizeof(tbButton[0]), 0);
|
||||
SendMessage(g_toolbar.hwnd, TB_ADDBITMAP, IMAGECOUNT, (LONG) &tbBitmap);
|
||||
SendMessage(g_toolbar.hwnd, TB_ADDBUTTONS, BUTTONCOUNT, (LONG) &tbButton);
|
||||
SendMessage(g_toolbar.hwnd, TB_SETEXTENDEDSTYLE, 0, (LPARAM) (DWORD) TBSTYLE_EX_DRAWDDARROWS);
|
||||
|
||||
// For Comctl32.dll version detection
|
||||
HMODULE hMod = GetModuleHandle("comctl32.dll");
|
||||
|
||||
if (GetProcAddress(hMod, "InitCommonControlsEx")) { // Version 4.70
|
||||
// Modern toolbar, 24-bit bitmaps
|
||||
|
||||
SendMessage(g_toolbar.hwnd, TB_SETIMAGELIST, 0, (LPARAM) ImageList_LoadImage(g_sdata.hInstance, MAKEINTRESOURCE(IDB_TOOLBAR24), 16, 0, RGB(255, 0, 255), IMAGE_BITMAP, LR_CREATEDIBSECTION));
|
||||
SendMessage(g_toolbar.hwnd, TB_SETDISABLEDIMAGELIST, 0, (LPARAM) ImageList_LoadImage(g_sdata.hInstance, MAKEINTRESOURCE(IDB_TOOLBAR24D), 16, 0, RGB(255, 0, 255), IMAGE_BITMAP, LR_CREATEDIBSECTION));
|
||||
SendMessage(g_toolbar.hwnd, TB_SETHOTIMAGELIST, 0, (LPARAM) ImageList_LoadImage(g_sdata.hInstance, MAKEINTRESOURCE(IDB_TOOLBAR24H), 16, 0, RGB(255, 0, 255), IMAGE_BITMAP, LR_CREATEDIBSECTION));
|
||||
|
||||
// Version 4.71
|
||||
if (GetProcAddress(hMod, "DllGetVersion")) {
|
||||
SendMessage(g_toolbar.hwnd, TB_SETEXTENDEDSTYLE, 0, (LPARAM) (DWORD) TBSTYLE_EX_DRAWDDARROWS);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// 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, (LONG) &tbBitmap);
|
||||
}
|
||||
|
||||
FreeLibrary(hMod);
|
||||
|
||||
HMENU toolmenu = GetSubMenu(g_sdata.menu, SCRIPT_MENU_INDEX);
|
||||
g_toolbar.dropdownmenu = GetSubMenu(toolmenu, COMPRESSOR_MENU_INDEX);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue