mirror of
https://github.com/reactos/reactos.git
synced 2026-05-30 14:34:57 +08:00
[SHELL32] Modify context menu to include Align To Grid, and remove Line Up Icons
Implement support for using Align To Grid, which itself simply sets the LVS_EX_SNAPTOGRID extended style of the list view control
This commit is contained in:
committed by
Giannis Adamopoulos
parent
733a32dade
commit
c82ba3485e
@@ -116,6 +116,7 @@ class CDefView :
|
||||
HRESULT _MergeToolbar();
|
||||
BOOL _Sort();
|
||||
HRESULT _DoFolderViewCB(UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
HRESULT _GetSnapToGrid();
|
||||
|
||||
public:
|
||||
CDefView();
|
||||
@@ -571,6 +572,9 @@ BOOL CDefView::CreateList()
|
||||
if (m_FolderSettings.fFlags & FWF_AUTOARRANGE)
|
||||
dwStyle |= LVS_AUTOARRANGE;
|
||||
|
||||
if (m_FolderSettings.fFlags & FWF_SNAPTOGRID)
|
||||
dwExStyle |= LVS_EX_SNAPTOGRID;
|
||||
|
||||
if (m_FolderSettings.fFlags & FWF_DESKTOP)
|
||||
m_FolderSettings.fFlags |= FWF_NOCLIENTEDGE | FWF_NOSCROLL;
|
||||
|
||||
@@ -1311,13 +1315,20 @@ HRESULT CDefView::FillArrangeAsMenu(HMENU hmenuArrange)
|
||||
if (m_FolderSettings.ViewMode == FVM_DETAILS || m_FolderSettings.ViewMode == FVM_LIST)
|
||||
{
|
||||
EnableMenuItem(hmenuArrange, FCIDM_SHVIEW_AUTOARRANGE, MF_BYCOMMAND | MF_GRAYED);
|
||||
EnableMenuItem(hmenuArrange, FCIDM_SHVIEW_ALIGNTOGRID, MF_BYCOMMAND | MF_GRAYED);
|
||||
}
|
||||
else
|
||||
{
|
||||
EnableMenuItem(hmenuArrange, FCIDM_SHVIEW_AUTOARRANGE, MF_BYCOMMAND);
|
||||
EnableMenuItem(hmenuArrange, FCIDM_SHVIEW_AUTOARRANGE, MF_BYCOMMAND);
|
||||
EnableMenuItem(hmenuArrange, FCIDM_SHVIEW_ALIGNTOGRID, MF_BYCOMMAND);
|
||||
|
||||
if (GetAutoArrange() == S_OK)
|
||||
CheckMenuItem(hmenuArrange, FCIDM_SHVIEW_AUTOARRANGE, MF_CHECKED);
|
||||
|
||||
if (_GetSnapToGrid() == S_OK)
|
||||
CheckMenuItem(hmenuArrange, FCIDM_SHVIEW_ALIGNTOGRID, MF_CHECKED);
|
||||
else
|
||||
CheckMenuItem(hmenuArrange, FCIDM_SHVIEW_ALIGNTOGRID, MF_UNCHECKED);
|
||||
}
|
||||
|
||||
|
||||
@@ -1770,6 +1781,12 @@ LRESULT CDefView::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHand
|
||||
case FCIDM_SHVIEW_SNAPTOGRID:
|
||||
m_ListView.Arrange(LVA_SNAPTOGRID);
|
||||
break;
|
||||
case FCIDM_SHVIEW_ALIGNTOGRID:
|
||||
if (_GetSnapToGrid() == S_OK)
|
||||
m_ListView.SetExtendedListViewStyle(0, LVS_EX_SNAPTOGRID);
|
||||
else
|
||||
ArrangeGrid();
|
||||
break;
|
||||
case FCIDM_SHVIEW_AUTOARRANGE:
|
||||
if (GetAutoArrange() == S_OK)
|
||||
m_ListView.ModifyStyle(LVS_AUTOARRANGE, 0);
|
||||
@@ -2729,6 +2746,12 @@ HRESULT STDMETHODCALLTYPE CDefView::GetAutoArrange()
|
||||
return ((m_ListView.GetStyle() & LVS_AUTOARRANGE) ? S_OK : S_FALSE);
|
||||
}
|
||||
|
||||
HRESULT CDefView::_GetSnapToGrid()
|
||||
{
|
||||
DWORD dwExStyle = (DWORD)m_ListView.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
|
||||
return ((dwExStyle & LVS_EX_SNAPTOGRID) ? S_OK : S_FALSE);
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CDefView::SelectItem(int iItem, DWORD dwFlags)
|
||||
{
|
||||
LVITEMW lvItem;
|
||||
@@ -2905,8 +2928,8 @@ HRESULT STDMETHODCALLTYPE CDefView::GetArrangeParam(LPARAM *sort)
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CDefView::ArrangeGrid()
|
||||
{
|
||||
FIXME("(%p) stub\n", this);
|
||||
return E_NOTIMPL;
|
||||
m_ListView.SetExtendedListViewStyle(LVS_EX_SNAPTOGRID, LVS_EX_SNAPTOGRID);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CDefView::AutoArrange()
|
||||
|
||||
Reference in New Issue
Block a user