📄 dialog.cpp
字号:
{
/*RECT catalogRect,playlistRect;
GetWindowRect(m_hMusicView, &catalogRect);
GetWindowRect(m_hPlaylistView, &playlistRect);
MapWindowPoints(NULL, m_hWnd, (LPPOINT)&catalogRect, 2);
MapWindowPoints(NULL, m_hWnd, (LPPOINT)&playlistRect, 2);
m_splitterRect.top = playlistRect.top;
m_splitterRect.bottom = playlistRect.bottom;
m_splitterRect.left = catalogRect.right + 1;
m_splitterRect.right = playlistRect.left - 1;*/
if(PtInRect(&m_splitterRect, sPoint))
{
//m_overSplitter = true;
::SetCursor(m_hSplitterCursor);
}
else
{
//m_overSplitter = false;
::SetCursor(LoadCursor(NULL, IDC_ARROW));
}
}
}
void MusicBrowserUI::MouseButtonDown(int keys, int x, int y)
{
RECT catalogRect,playlistRect;
RECT clientRect;
POINT pt;
pt.x = x;
pt.y = y;
GetClientRect(m_hWnd, &clientRect);
//InflateRect(&clientRect, -150, 0);
clientRect.left += 125;
clientRect.right -= 175;
GetWindowRect(m_hMusicView, &catalogRect);
GetWindowRect(m_hPlaylistView, &playlistRect);
MapWindowPoints(m_hWnd, NULL, (LPPOINT)&pt, 1);
MapWindowPoints(m_hWnd, NULL, (LPPOINT)&clientRect, 2);
m_splitterRect.top = playlistRect.top;
m_splitterRect.bottom = playlistRect.bottom;
m_splitterRect.left = catalogRect.right + 1;
m_splitterRect.right = playlistRect.left - 1;
if(PtInRect(&m_splitterRect, pt))
{
m_trackSplitter = true;
SetCapture(m_hWnd);
ClipCursor(&clientRect);
m_hSavedCursor = ::SetCursor(m_hSplitterCursor);
HDC hdc = GetDC(NULL);
HBRUSH oldBrush = (HBRUSH)SelectObject(hdc, m_splitterBrush);
PatBlt(hdc,
m_splitterRect.left,
m_splitterRect.top,
m_splitterRect.right - m_splitterRect.left,
m_splitterRect.bottom - m_splitterRect.top,
PATINVERT);
SelectObject(hdc, oldBrush);
ReleaseDC(NULL, hdc);
}
}
void MusicBrowserUI::MouseButtonUp(int keys, int x, int y)
{
POINT pt;
pt.x = x;
pt.y = y;
if(m_trackSplitter)
{
m_trackSplitter = false;
ReleaseCapture();
ClipCursor(NULL);
::SetCursor(m_hSavedCursor);
HDC hdc = GetDC(NULL);
HBRUSH oldBrush = (HBRUSH)SelectObject(hdc, m_splitterBrush);
PatBlt(hdc,
m_splitterRect.left,
m_splitterRect.top,
m_splitterRect.right - m_splitterRect.left,
m_splitterRect.bottom - m_splitterRect.top,
PATINVERT);
SelectObject(hdc, oldBrush);
ReleaseDC(NULL, hdc);
RECT catalogRect, playlistRect, titleRect;
int32 delta;
GetWindowRect(m_hMusicView, &catalogRect);
GetWindowRect(m_hPlaylistView, &playlistRect);
GetWindowRect(m_hPlaylistTitle, &titleRect);
delta = (m_splitterRect.right + 1) - playlistRect.left;
catalogRect.right = m_splitterRect.left - 1;
playlistRect.left = m_splitterRect.right + 1;
titleRect.left += delta;
MapWindowPoints(NULL, m_hWnd, (LPPOINT)&catalogRect, 2);
MapWindowPoints(NULL, m_hWnd, (LPPOINT)&playlistRect, 2);
MapWindowPoints(NULL, m_hWnd, (LPPOINT)&titleRect, 2);
MoveWindow(m_hMusicView,
catalogRect.left,
catalogRect.top,
(catalogRect.right - catalogRect.left),
catalogRect.bottom - catalogRect.top,
TRUE);
MoveWindow(m_hPlaylistView,
playlistRect.left,
playlistRect.top,
(playlistRect.right - playlistRect.left),
playlistRect.bottom - playlistRect.top,
TRUE);
MoveWindow(m_hPlaylistTitle,
titleRect.left,
titleRect.top,
(titleRect.right - titleRect.left),
titleRect.bottom - titleRect.top,
TRUE);
m_splitterRect.top = playlistRect.top;
m_splitterRect.bottom = playlistRect.bottom;
m_splitterRect.left = catalogRect.right + 1;
m_splitterRect.right = playlistRect.left - 1;
}
}
void MusicBrowserUI::UpdateButtonStates()
{
// start off disabling everything, then enable only what
// should be.
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_EDIT_REMOVE, MAKELPARAM(FALSE, 0));
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_EDIT_EDITINFO, MAKELPARAM(FALSE, 0));
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_EDIT_ADDTRACK, MAKELPARAM(FALSE, 0));
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_EDIT_MOVEUP, MAKELPARAM(FALSE, 0));
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_EDIT_MOVEDOWN, MAKELPARAM(FALSE, 0));
// File Menu
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_FILE_SAVEPLAYLIST, MAKELPARAM(m_bListChanged, 0));
if(m_hPlaylistView == GetFocus())
{
// Can we move items up and down?
uint32 index = ListView_GetItemCount(m_hPlaylistView);
uint32 count = ListView_GetSelectedCount(m_hPlaylistView);
uint32 state;
state = ListView_GetItemState(m_hPlaylistView,
index - 1,
LVIS_SELECTED);
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_EDIT_MOVEDOWN, MAKELPARAM(!(state & LVIS_SELECTED || !count), 0));
state = ListView_GetItemState(m_hPlaylistView,
0,
LVIS_SELECTED);
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_EDIT_MOVEUP, MAKELPARAM(!(state & LVIS_SELECTED || !count), 0));
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_EDIT_REMOVE, MAKELPARAM(count!=0, 0));
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_EDIT_EDITINFO, MAKELPARAM(count!=0, 0));
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_EDIT_ADDTRACK, 0);
}
// what about items which deal with the treeview?
//HTREEITEM treeSelect = TreeView_GetSelection(m_hMusicView);
if(m_hMusicView == GetFocus())
{
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_EDIT_ADDTRACK, 0);
uint32 trackCount = 0;
uint32 playlistCount = 0;
trackCount = GetSelectedTrackCount();
playlistCount = GetSelectedPlaylistCount();
if(trackCount + playlistCount)
{
if(!IsItemSelected(m_hNewPlaylistItem) &&
!IsItemSelected(m_hNewPlaylistItem))
{
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_EDIT_ADDTRACK, MAKELPARAM(TRUE, 0));
}
if(!IsItemSelected(m_hPlaylistItem) &&
!IsItemSelected(m_hNewPlaylistItem) &&
!IsItemSelected(m_hPortableItem) &&
!IsItemSelected(m_hNewPortableItem) &&
!IsItemSelected(m_hMyMusicItem) &&
!IsItemSelected(m_hAllItem))
{
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_EDIT_REMOVE, MAKELPARAM(TRUE, 0));
}
if(!IsItemSelected(m_hPlaylistItem) &&
!IsItemSelected(m_hNewPlaylistItem) &&
!IsItemSelected(m_hPortableItem) &&
!IsItemSelected(m_hNewPortableItem) &&
trackCount)
{
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_EDIT_EDITINFO, MAKELPARAM(TRUE, 0));
}
/*if(!IsItemSelected(m_hNewPlaylistItem) && !IsItemSelected(m_hAllItem) &&
!IsItemSelected(m_hMyMusicItem) && !IsItemSelected(m_hUncatItem) &&
!IsItemSelected(m_hPlaylistItem) && !IsItemSelected(m_hPortableItem) &&
(playlistCount && !trackCount) &&
!IsItemSelected(m_hMyMusicItem) &&
!IsItemSelected(m_hUncatItem) &&
!IsItemSelected(m_hAllItem))
{
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_EDIT_EDITINFO, MAKELPARAM(TRUE, 0));
}*/
}
else
{
// Edit Menu
SendMessage(m_hToolbar, TB_ENABLEBUTTON, ID_EDIT_REMOVE, 0);
SendMessage(m_hToolbar, TB_ENABLEBUTTON, ID_EDIT_EDITINFO, 0);
}
}
//SendMessage(m_hToolbar, TB_ENABLEBUTTON, ID_EDIT_EDIT,
// MAKELONG(oType.length() != 0, 0));
//SendMessage(m_hToolbar, TB_ENABLEBUTTON, ID_EDIT_REMOVE,
/// MAKELONG(oType.length() != 0, 0));
}
void MusicBrowserUI::UpdateMenuStates()
{
HMENU hMenuRoot, hMenu;
MENUITEMINFO sMenuItem;
hMenuRoot = GetMenu(m_hWnd);
// File Menu
hMenu = GetSubMenu(hMenuRoot, 0);
EnableMenuItem(hMenu, ID_FILE_SAVEPLAYLIST,
m_bListChanged ? MF_ENABLED : MF_GRAYED );
// start off disabled... might enable below
EnableMenuItem(hMenu, ID_FILE_EXPORTPLAYLIST, MF_GRAYED);
// Edit Menu
hMenu = GetSubMenu(hMenuRoot, 1);
// start off disabled... might enable below
EnableMenuItem(hMenu, ID_EDIT_REMOVE, MF_GRAYED);
EnableMenuItem(hMenu, ID_EDIT_EDITINFO, MF_GRAYED);
sMenuItem.cbSize = sizeof(MENUITEMINFO);
sMenuItem.fMask = MIIM_DATA|MIIM_TYPE;
sMenuItem.fType = MFT_STRING;
sMenuItem.dwTypeData = "&Remove Items...";
sMenuItem.cch = strlen(sMenuItem.dwTypeData);
SetMenuItemInfo(hMenu, ID_EDIT_REMOVE, false, &sMenuItem);
hMenu = GetSubMenu(hMenuRoot, 5);
EnableMenuItem(hMenu, ID_EDIT_STARTSIGNATURING,
m_sigsExist ? MF_ENABLED : MF_GRAYED);
sMenuItem.cbSize = sizeof(MENUITEMINFO);
sMenuItem.fMask = MIIM_DATA|MIIM_TYPE;
sMenuItem.fType = MFT_STRING;
sMenuItem.dwTypeData = "Start Signaturing";
if (!m_sigsStart)
sMenuItem.dwTypeData = "Stop Signaturing";
sMenuItem.cch = strlen(sMenuItem.dwTypeData);
SetMenuItemInfo(hMenu, ID_EDIT_STARTSIGNATURING, false,
&sMenuItem);
bool advancedRelate = false;
m_context->prefs->GetPrefBoolean(kAdvancedRelatablePref, &advancedRelate);
EnableMenuItem(hMenu, ID_EDIT_SUBMITPLAYLIST,
advancedRelate ? MF_ENABLED : MF_GRAYED);
hMenu = GetSubMenu(hMenuRoot, 1);
// Can we move items up and down?
uint32 index = ListView_GetItemCount(m_hPlaylistView);
uint32 count = ListView_GetSelectedCount(m_hPlaylistView);
if(count && m_hPlaylistView == GetFocus())
{
uint32 state;
state = ListView_GetItemState(m_hPlaylistView,
index - 1,
LVIS_SELECTED);
EnableMenuItem(hMenu, ID_EDIT_MOVEDOWN,
(state & LVIS_SELECTED) ? MF_GRAYED : MF_ENABLED );
state = ListView_GetItemState(m_hPlaylistView,
0,
LVIS_SELECTED);
EnableMenuItem(hMenu, ID_EDIT_MOVEUP,
(state & LVIS_SELECTED) ? MF_GRAYED : MF_ENABLED );
EnableMenuItem(hMenu, ID_EDIT_REMOVE, MF_ENABLED);
EnableMenuItem(hMenu, ID_EDIT_EDITINFO, MF_ENABLED);
sMenuItem.cbSize = sizeof(MENUITEMINFO);
sMenuItem.fMask = MIIM_DATA|MIIM_TYPE;
sMenuItem.fType = MFT_STRING;
sMenuItem.dwTypeData = "&Remove Tracks from Playlist";
sMenuItem.cch = strlen(sMenuItem.dwTypeData);
SetMenuItemInfo(hMenu, ID_EDIT_REMOVE, false, &sMenuItem);
}
else
{
EnableMenuItem(hMenu, ID_EDIT_MOVEUP, MF_GRAYED);
EnableMenuItem(hMenu, ID_EDIT_MOVEDOWN, MF_GRAYED);
}
// what about items which deal with the treeview?
EnableMenuItem(hMenu, ID_EDIT_ADDTRACK, MF_GRAYED);
//HTREEITEM treeSelect = TreeView_GetSelection(m_hMusicView);
uint32 trackCount = 0;
uint32 playlistCount = 0;
trackCount = GetSelectedTrackCount();
playlistCount = GetSelectedPlaylistCount();
if((trackCount + playlistCount) && m_hMusicView == GetFocus())
{
if(!IsItemSelected(m_hNewPlaylistItem) &&
!IsItemSelected(m_hNewPlaylistItem))
{
EnableMenuItem(hMenu, ID_EDIT_ADDTRACK, MF_ENABLED );
}
if(!IsItemSelected(m_hPlaylistItem) &&
!IsItemSelected(m_hNewPlaylistItem) &&
!IsItemSelected(m_hPortableItem) &&
!IsItemSelected(m_hNewPortableItem) &&
!IsItemSelected(m_hMyMusicItem) &&
!IsItemSelected
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -