Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
76
Src/Plugins/Library/ml_local/pe_subclass.cpp
Normal file
76
Src/Plugins/Library/ml_local/pe_subclass.cpp
Normal file
|
@ -0,0 +1,76 @@
|
|||
#include "main.h"
|
||||
#include "api__ml_local.h"
|
||||
#include "resource.h"
|
||||
|
||||
static WNDPROC PE_oldWndProc;
|
||||
static HMENU last_viewmenu = NULL;
|
||||
static WORD waCmdMenuID;
|
||||
|
||||
static INT_PTR CALLBACK PE_newWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (uMsg == WM_COMMAND && wParam > 45000 && wParam < 57000)
|
||||
{
|
||||
int n = wParam - 45000;
|
||||
if (m_query_list[n])
|
||||
{
|
||||
queryItem *item = m_query_list[n];
|
||||
wchar_t configDir[MAX_PATH] = {0};
|
||||
PathCombineW(configDir, g_viewsDir, item->metafn);
|
||||
C_Config viewconf(configDir);
|
||||
main_playQuery(&viewconf, item->query, 0, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else if (uMsg == WM_INITMENUPOPUP)
|
||||
{
|
||||
HMENU hmenuPopup = (HMENU) wParam;
|
||||
if (hmenuPopup == wa_playlists_cmdmenu)
|
||||
{
|
||||
if (!waCmdMenuID)
|
||||
{
|
||||
waCmdMenuID = (WORD)SendMessage(plugin.hwndWinampParent,WM_WA_IPC,0,IPC_REGISTER_LOWORD_COMMAND);
|
||||
}
|
||||
if (last_viewmenu)
|
||||
{
|
||||
RemoveMenu(wa_playlists_cmdmenu, waCmdMenuID, MF_BYCOMMAND);
|
||||
DestroyMenu(last_viewmenu);
|
||||
last_viewmenu = NULL;
|
||||
}
|
||||
|
||||
mlGetTreeStruct mgts = { 1000, 45000, -1};
|
||||
last_viewmenu = (HMENU)SendMessage(plugin.hwndLibraryParent, WM_ML_IPC, (WPARAM) & mgts, ML_IPC_GETTREE);
|
||||
if (last_viewmenu)
|
||||
{
|
||||
MENUITEMINFOW menuItem = {sizeof(MENUITEMINFOW), MIIM_SUBMENU | MIIM_ID | MIIM_TYPE, MFT_STRING,
|
||||
MFS_ENABLED, waCmdMenuID, last_viewmenu, NULL, NULL, NULL,
|
||||
WASABI_API_LNGSTRINGW(IDS_OPEN_MEDIA_LIBRARY_VIEW_RESULTS), 0};
|
||||
|
||||
if (GetMenuItemCount(last_viewmenu) > 0)
|
||||
{
|
||||
InsertMenuItemW(wa_playlists_cmdmenu, 1, TRUE, &menuItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
DestroyMenu(last_viewmenu);
|
||||
last_viewmenu=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return CallWindowProc(PE_oldWndProc, hwndDlg, uMsg, wParam, lParam);
|
||||
}
|
||||
|
||||
static HWND hwnd_pe = NULL;
|
||||
void HookPlaylistEditor()
|
||||
{
|
||||
hwnd_pe = (HWND)SendMessage(plugin.hwndWinampParent, WM_WA_IPC, IPC_GETWND_PE, IPC_GETWND);
|
||||
|
||||
if (IsWindow(hwnd_pe))
|
||||
PE_oldWndProc = (WNDPROC) SetWindowLongPtrW(hwnd_pe, GWLP_WNDPROC, (LONG_PTR)PE_newWndProc);
|
||||
}
|
||||
|
||||
void UnhookPlaylistEditor()
|
||||
{
|
||||
SetWindowLongPtrW(hwnd_pe, GWLP_WNDPROC, (LONG_PTR)PE_oldWndProc);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue