[BROWSEUI] Add a hack and abuse ISFB_STATE_QLINKSMODE to make the quick launch band to be aligned to left and show no text

This commit is contained in:
Giannis Adamopoulos 2017-10-20 16:23:17 +03:00 committed by Giannis Adamopoulos
parent ee3b732043
commit bab9a54039
2 changed files with 23 additions and 3 deletions

View file

@ -184,6 +184,13 @@ HRESULT CBandSiteMenu::_CreateBuiltInISFBand(UINT uID, REFIID riid, void** ppv)
if (FAILED_UNEXPECTEDLY(hr)) if (FAILED_UNEXPECTEDLY(hr))
return hr; return hr;
/* HACK! We shouldn't pass ISFB_STATE_QLINKSMODE and CISFBand shouldn't handle it! */
if (uID == IDM_TASKBAR_TOOLBARS_QUICKLAUNCH)
{
BANDINFOSFB bisfb = {ISFB_MASK_STATE, ISFB_STATE_QLINKSMODE, ISFB_STATE_QLINKSMODE};
pISFB->SetBandInfoSFB(&bisfb);
}
return pISFB->QueryInterface(riid, ppv); return pISFB->QueryInterface(riid, ppv);
} }

View file

@ -71,6 +71,9 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
if (m_hWnd == NULL) if (m_hWnd == NULL)
return E_FAIL; return E_FAIL;
if (!m_textFlag)
SendMessage(m_hWnd, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_MIXEDBUTTONS);
// Set the image list. // Set the image list.
HIMAGELIST* piml; HIMAGELIST* piml;
HRESULT hr = SHGetImageList(SHIL_SMALL, IID_IImageList, (void**)&piml); HRESULT hr = SHGetImageList(SHIL_SMALL, IID_IImageList, (void**)&piml);
@ -243,7 +246,10 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
if (pdbi->dwMask & DBIM_MINSIZE) if (pdbi->dwMask & DBIM_MINSIZE)
{ {
pdbi->ptMinSize.x = -1; if (m_QLaunch)
pdbi->ptMinSize.x = idealSize.x;
else
pdbi->ptMinSize.x = -1;
pdbi->ptMinSize.y = idealSize.y; pdbi->ptMinSize.y = idealSize.y;
} }
if (pdbi->dwMask & DBIM_MAXSIZE) if (pdbi->dwMask & DBIM_MAXSIZE)
@ -260,14 +266,18 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
} }
if (pdbi->dwMask & DBIM_TITLE) if (pdbi->dwMask & DBIM_TITLE)
{ {
if (!ILGetDisplayNameEx(NULL, m_pidl, pdbi->wszTitle, ILGDN_INFOLDER)) if (m_QLaunch || !ILGetDisplayNameEx(NULL, m_pidl, pdbi->wszTitle, ILGDN_INFOLDER))
{ {
pdbi->dwMask &= ~DBIM_TITLE; pdbi->dwMask &= ~DBIM_TITLE;
} }
} }
if (pdbi->dwMask & DBIM_MODEFLAGS) if (pdbi->dwMask & DBIM_MODEFLAGS)
{ {
pdbi->dwModeFlags = DBIMF_NORMAL | DBIMF_VARIABLEHEIGHT | DBIMF_USECHEVRON | DBIMF_NOMARGINS | DBIMF_BKCOLOR | DBIMF_ADDTOFRONT; pdbi->dwModeFlags = DBIMF_NORMAL | DBIMF_VARIABLEHEIGHT | DBIMF_USECHEVRON | DBIMF_NOMARGINS | DBIMF_BKCOLOR;
if (m_QLaunch)
{
pdbi->dwModeFlags |= DBIMF_ADDTOFRONT;
}
} }
if (pdbi->dwMask & DBIM_BKCOLOR) if (pdbi->dwMask & DBIM_BKCOLOR)
pdbi->dwMask &= ~DBIM_BKCOLOR; pdbi->dwMask &= ~DBIM_BKCOLOR;
@ -509,6 +519,9 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
(pbi->dwStateMask & ISFB_STATE_QLINKSMODE)) (pbi->dwStateMask & ISFB_STATE_QLINKSMODE))
{ {
m_QLaunch = true; m_QLaunch = true;
m_textFlag = false;
if (m_hWnd)
SendMessage(m_hWnd, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_MIXEDBUTTONS);
} }
return E_NOTIMPL; return E_NOTIMPL;