📄 dialog.cpp
字号:
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);
// 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_hAllItem))
{
EnableMenuItem(hMenu, ID_EDIT_REMOVE, MF_ENABLED);
}
if(!IsItemSelected(m_hPlaylistItem) &&
!IsItemSelected(m_hNewPlaylistItem) &&
!IsItemSelected(m_hPortableItem) &&
!IsItemSelected(m_hNewPortableItem) &&
trackCount)
{
EnableMenuItem(hMenu, ID_EDIT_EDITINFO, MF_ENABLED);
}
/*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))
{
EnableMenuItem(hMenu, ID_EDIT_EDITINFO, MF_ENABLED);
SendMessage(m_hToolbar, TB_ENABLEBUTTON,
ID_EDIT_EDITINFO, MAKELPARAM(TRUE, 0));
}*/
sMenuItem.cbSize = sizeof(MENUITEMINFO);
sMenuItem.fMask = MIIM_DATA|MIIM_TYPE;
sMenuItem.fType = MFT_STRING;
sMenuItem.dwTypeData = "&Remove Items from Catalog...";
sMenuItem.cch = strlen(sMenuItem.dwTypeData);
SetMenuItemInfo(hMenu, ID_EDIT_REMOVE, false, &sMenuItem);
TV_ITEM tv_item;
bool enableEditPlaylist = false;
if(m_hNewPlaylistItem)
{
// get the first playlist item
tv_item.hItem = TreeView_GetChild(m_hMusicView, m_hPlaylistItem);
tv_item.mask = TVIF_STATE|TVIF_PARAM;
tv_item.stateMask = TVIS_SELECTED;
tv_item.state = 0;
// skip the "Create New Playlist..." item
if(tv_item.hItem)
tv_item.hItem = TreeView_GetNextSibling(m_hMusicView, tv_item.hItem);
if(tv_item.hItem)
{
BOOL result = FALSE;
do
{
result = TreeView_GetItem(m_hMusicView, &tv_item);
if(result && (tv_item.state & TVIS_SELECTED))
{
enableEditPlaylist = true;
break;
}
}while(result &&
(tv_item.hItem = TreeView_GetNextSibling(m_hMusicView,
tv_item.hItem)));
}
}
EnableMenuItem(hMenu, ID_EDIT_EDITPLAYLIST,
enableEditPlaylist ? MF_ENABLED : MF_GRAYED);
EnableMenuItem(GetSubMenu(hMenuRoot, 0), ID_FILE_EXPORTPLAYLIST,
enableEditPlaylist ? MF_ENABLED : MF_GRAYED);
}
else
{
EnableMenuItem(hMenu, ID_EDIT_EDITPLAYLIST, MF_GRAYED);
}
sMenuItem.cbSize = sizeof(MENUITEMINFO);
sMenuItem.fMask = MIIM_DATA;
sMenuItem.fType = MFT_STRING;
//sMenuItem.fState = (oType.length() == 0) ? MFS_GRAYED : MFS_ENABLED;
//oText = string("&Edit") + oType + string("...");
//sMenuItem.dwTypeData = (char *)oText.c_str();
//sMenuItem.cch = strlen(sMenuItem.dwTypeData);
//SetMenuItemInfo(hMenu, ID_EDIT_EDIT, false, &sMenuItem);
//oText = string("&Remove") + oType + string(" from Catalog...");
//sMenuItem.dwTypeData = (char *)oText.c_str();
//sMenuItem.cch = strlen(sMenuItem.dwTypeData);
//SetMenuItemInfo(hMenu, ID_EDIT_REMOVE, false, &sMenuItem);
//oText = string("Remove") + oType + string(" from &Disk...");
//sMenuItem.dwTypeData = (char *)oText.c_str();
//sMenuItem.cch = strlen(sMenuItem.dwTypeData);
//SetMenuItemInfo(hMenu, ID_EDIT_REMOVEFROMDISK, false, &sMenuItem);
//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));
hMenu = GetSubMenu(hMenuRoot, 3);
sMenuItem.fMask = MIIM_STATE;
switch(m_plm->GetRepeatMode())
{
case kPlaylistMode_RepeatNone:
sMenuItem.fState = MFS_CHECKED;
SetMenuItemInfo(hMenu, ID_CONTROLS_REPEATNONE, false, &sMenuItem);
sMenuItem.fState = MFS_UNCHECKED;
SetMenuItemInfo(hMenu, ID_CONTROLS_REPEATONE, false, &sMenuItem);
sMenuItem.fState = MFS_UNCHECKED;
SetMenuItemInfo(hMenu, ID_CONTROLS_REPEATALL, false, &sMenuItem);
break;
case kPlaylistMode_RepeatOne:
sMenuItem.fState = MFS_UNCHECKED;
SetMenuItemInfo(hMenu, ID_CONTROLS_REPEATNONE, false, &sMenuItem);
sMenuItem.fState = MFS_CHECKED;
SetMenuItemInfo(hMenu, ID_CONTROLS_REPEATONE, false, &sMenuItem);
sMenuItem.fState = MFS_UNCHECKED;
SetMenuItemInfo(hMenu, ID_CONTROLS_REPEATALL, false, &sMenuItem);
break;
case kPlaylistMode_RepeatAll:
sMenuItem.fState = MFS_UNCHECKED;
SetMenuItemInfo(hMenu, ID_CONTROLS_REPEATNONE, false, &sMenuItem);
sMenuItem.fState = MFS_UNCHECKED;
SetMenuItemInfo(hMenu, ID_CONTROLS_REPEATONE, false, &sMenuItem);
sMenuItem.fState = MFS_CHECKED;
SetMenuItemInfo(hMenu, ID_CONTROLS_REPEATALL, false, &sMenuItem);
break;
}
sMenuItem.fState = m_plm->GetShuffleMode() ? MFS_CHECKED:MFS_UNCHECKED;
SetMenuItemInfo(hMenu, ID_CONTROLS_SHUFFLE, false, &sMenuItem);
sMenuItem.fState = m_plm->GetShuffleMode() ? MFS_UNCHECKED: MFS_CHECKED;
SetMenuItemInfo(hMenu, ID_CONTROLS_NORMALORDER, false, &sMenuItem);
}
void MusicBrowserUI::ShowHelp(uint32 topic)
{
string oHelpFile;
char dir[MAX_PATH];
uint32 len = sizeof(dir);
m_context->prefs->GetInstallDirectory(dir, &len);
oHelpFile = string(dir);
oHelpFile += string("\\"BRANDING_HELP_FILE);
WinHelp(m_hWnd, oHelpFile.c_str(), HELP_CONTEXT, topic);
}
static
UINT
APIENTRY
OpenFileHookProc( HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam)
{
UINT result = 0;
static OPENFILENAME* ofn = NULL;
switch(msg)
{
case WM_INITDIALOG:
{
ofn = (OPENFILENAME*)lParam;
HWND hwndURL = GetDlgItem(hwnd, IDC_URL);
vector<PlaylistItem*>* url_list = (vector<PlaylistItem*>*)ofn->lCustData;
vector<PlaylistItem*>::iterator i = url_list->begin();
for(i; i != url_list->end(); i++)
{
ComboBox_AddString(hwndURL, (*i)->URL().c_str());
}
ofn->lCustData = 0;
break;
}
case WM_COMMAND:
{
switch(wParam)
{
case IDC_OPEN_URL:
{
char* url = new char[ofn->nMaxFile + 1];
if(GetDlgItemText( hwnd,
IDC_URL,
url,
ofn->nMaxFile))
{
*ofn->lpstrFile = 0x00;
if(!strstr(url, "://"))
{
strcpy(ofn->lpstrFile, "http://");
}
strcat(ofn->lpstrFile, url);
PostMessage(GetParent(hwnd),
WM_COMMAND,
IDCANCEL,
0);
ofn->lCustData = 1;
}
delete url;
result = 1;
break;
}
}
break;
}
case WM_NOTIFY:
{
OFNOTIFY* notify = (OFNOTIFY*)lParam;
switch(notify->hdr.code)
{
case CDN_FILEOK:
{
break;
}
}
break;
}
}
return result;
}
bool
MusicBrowserUI::
FileOpenDialog(HWND hwnd,
const char* title,
const char* filter,
vector<string>* fileList,
bool allowURL)
{
bool result = false;
OPENFILENAME ofn;
char initialDir[MAX_PATH] = {0x00};
uint32 initialDirSize = sizeof(initialDir);
char installDir[MAX_PATH] = {0x00};
uint32 installDirSize = sizeof(i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -