⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dialog.cpp

📁 freeamp有名的媒体播放器
💻 CPP
📖 第 1 页 / 共 5 页
字号:
                        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 + -