Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
203
Src/Winamp/options_plugins.cpp
Normal file
203
Src/Winamp/options_plugins.cpp
Normal file
|
@ -0,0 +1,203 @@
|
|||
/** (c) Nullsoft, Inc. C O N F I D E N T I A L
|
||||
** Filename:
|
||||
** Project:
|
||||
** Description:
|
||||
** Author:
|
||||
** Created:
|
||||
**/
|
||||
#include "main.h"
|
||||
#include "Options.h"
|
||||
#include "resource.h"
|
||||
|
||||
static int CALLBACK WINAPI BrowseCallbackProc_VIS( HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
|
||||
{
|
||||
if (uMsg == BFFM_INITIALIZED)
|
||||
{
|
||||
SendMessageW(hwnd, BFFM_SETSELECTIONW, 1, (LPARAM)VISDIR);
|
||||
|
||||
// this is not nice but it fixes the selection not working correctly on all OSes
|
||||
EnumChildWindows(hwnd, browseEnumProc, 0);
|
||||
}
|
||||
if (uMsg == WM_CREATE) SetWindowTextW(hwnd,getStringW(IDS_SELVISDIR,NULL,0));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int CALLBACK WINAPI BrowseCallbackProc_DSP( HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
|
||||
{
|
||||
if (uMsg == BFFM_INITIALIZED)
|
||||
{
|
||||
SendMessageW(hwnd, BFFM_SETSELECTIONW, 1, (LPARAM)DSPDIR);
|
||||
|
||||
// this is not nice but it fixes the selection not working correctly on all OSes
|
||||
EnumChildWindows(hwnd, browseEnumProc, 0);
|
||||
}
|
||||
if (uMsg == WM_CREATE) SetWindowTextW(hwnd,getStringW(IDS_SELDSPDIR,NULL,0));
|
||||
return 0;
|
||||
}
|
||||
|
||||
void SetButtonText(HWND hwndDlg, int id, wchar_t* path)
|
||||
{
|
||||
HWND control = GetDlgItem(hwndDlg, id);
|
||||
HDC hdc = GetDC(control);
|
||||
RECT r = {0};
|
||||
wchar_t temp[MAX_PATH] = {0};
|
||||
|
||||
lstrcpynW(temp, path, MAX_PATH);
|
||||
SelectObject(hdc, (HFONT)SendMessageW(control, WM_GETFONT, 0, 0));
|
||||
GetClientRect(control, &r);
|
||||
r.left += 5;
|
||||
r.right -= 5;
|
||||
DrawTextW(hdc, temp, -1, &r, DT_PATH_ELLIPSIS | DT_WORD_ELLIPSIS | DT_MODIFYSTRING);
|
||||
SetWindowTextW(control, temp);
|
||||
ReleaseDC(control, hdc);
|
||||
}
|
||||
|
||||
|
||||
INT_PTR CALLBACK PlugProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam)
|
||||
{
|
||||
hi helpinfo[]={
|
||||
{IDC_VISDIR, IDS_P_PLUG_VISDIR},
|
||||
{IDC_DSPDIR, IDS_P_PLUG_DSPDIR},
|
||||
{IDC_VISPRIO, IDS_P_PLUG_PRIO},
|
||||
{IDC_AUTOEXEC, IDS_P_PLUG_AUTO},
|
||||
{IDC_DISVIS, IDS_P_PLUG_DIS},
|
||||
{IDC_SAFEMODE, IDS_P_PLUG_SAFEMODE},
|
||||
{IDC_SAFEMODEALWAYS, IDS_P_PLUG_SAFEMODEALWAYS},
|
||||
{IDC_CHECK1, IDS_P_PLUG_DISSEHVIS},
|
||||
{IDC_CHECK5, IDS_P_PLUG_DISSEHGEN},
|
||||
{IDC_CHECK6, IDS_P_PLUG_DISSEHDSP},
|
||||
};
|
||||
|
||||
DO_HELP();
|
||||
|
||||
if (uMsg == WM_INITDIALOG)
|
||||
{
|
||||
CheckDlgButton(hwndDlg, IDC_AUTOEXEC, config_visplugin_autoexec ? BST_CHECKED : BST_UNCHECKED);
|
||||
CheckDlgButton(hwndDlg, IDC_DISVIS, config_disvis ? BST_CHECKED : BST_UNCHECKED);
|
||||
CheckDlgButton(hwndDlg, IDC_CHECK1, (config_no_visseh & 1) ? BST_CHECKED : BST_UNCHECKED);
|
||||
CheckDlgButton(hwndDlg, IDC_CHECK6, (config_no_visseh & 2) ? BST_CHECKED : BST_UNCHECKED);
|
||||
CheckDlgButton(hwndDlg, IDC_CHECK5, (config_no_visseh & 4) ? BST_CHECKED : BST_UNCHECKED);
|
||||
CheckDlgButton(hwndDlg, IDC_SAFEMODEALWAYS, _r_i("safemode", 0) ? BST_CHECKED : BST_UNCHECKED);
|
||||
|
||||
SendDlgItemMessage(hwndDlg, IDC_VISPRIO, TBM_SETRANGE, TRUE, MAKELONG(0, 4));
|
||||
SendDlgItemMessage(hwndDlg, IDC_VISPRIO, TBM_SETPOS, TRUE, config_visplugin_priority);
|
||||
SetDlgItemTextW(hwndDlg, IDC_VISDIR, VISDIR);
|
||||
SetButtonText(hwndDlg, IDC_VISDIR, VISDIR);
|
||||
SetDlgItemTextW(hwndDlg, IDC_DSPDIR, DSPDIR);
|
||||
SetButtonText(hwndDlg, IDC_DSPDIR, DSPDIR);
|
||||
|
||||
if (g_safeMode)
|
||||
{
|
||||
SetDlgItemTextW(hwndDlg, IDC_SAFEMODE, getStringW(IDS_RESTART_NORMAL, NULL, 0));
|
||||
}
|
||||
}
|
||||
|
||||
if (uMsg == WM_HSCROLL)
|
||||
{
|
||||
HWND swnd = (HWND)lParam;
|
||||
if (swnd == GetDlgItem(hwndDlg, IDC_VISPRIO))
|
||||
{
|
||||
config_visplugin_priority = (unsigned char) SendDlgItemMessage(hwndDlg, IDC_VISPRIO, TBM_GETPOS, 0, 0);
|
||||
vis_setprio();
|
||||
}
|
||||
}
|
||||
|
||||
if (uMsg == WM_COMMAND)
|
||||
{
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case IDC_CHECK1:
|
||||
case IDC_CHECK5:
|
||||
case IDC_CHECK6:
|
||||
config_no_visseh =
|
||||
(IsDlgButtonChecked(hwndDlg, IDC_CHECK1) ? 1 : 0) |
|
||||
(IsDlgButtonChecked(hwndDlg, IDC_CHECK6) ? 2 : 0) |
|
||||
(IsDlgButtonChecked(hwndDlg, IDC_CHECK5) ? 4 : 0);
|
||||
break;
|
||||
|
||||
case IDC_AUTOEXEC:
|
||||
config_visplugin_autoexec = IsDlgButtonChecked(hwndDlg, IDC_AUTOEXEC) ? 1 : 0;
|
||||
break;
|
||||
|
||||
case IDC_DISVIS:
|
||||
config_disvis = IsDlgButtonChecked(hwndDlg, IDC_DISVIS) ? 1 : 0;
|
||||
break;
|
||||
|
||||
case IDC_VISDIR:
|
||||
{
|
||||
BROWSEINFOW bi = {0};
|
||||
wchar_t name[MAX_PATH] = {0};
|
||||
bi.hwndOwner = hMainWindow;
|
||||
bi.pszDisplayName = name;
|
||||
bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE;
|
||||
bi.lpfn = BrowseCallbackProc_VIS;
|
||||
ITEMIDLIST *idlist = SHBrowseForFolderW(&bi);
|
||||
if (idlist)
|
||||
{
|
||||
wchar_t path[MAX_PATH] = {0};
|
||||
SHGetPathFromIDListW(idlist, path);
|
||||
Shell_Free(idlist);
|
||||
lstrcpynW(VISDIR, path, MAX_PATH);
|
||||
SetDlgItemTextW(hwndDlg, IDC_VISDIR,VISDIR);
|
||||
_w_sW("VISDir", VISDIR);
|
||||
SetButtonText(hwndDlg, IDC_VISDIR, VISDIR);
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
|
||||
case IDC_DSPDIR:
|
||||
{
|
||||
BROWSEINFOW bi = {0};
|
||||
wchar_t name[MAX_PATH] = {0};
|
||||
bi.hwndOwner = hMainWindow;
|
||||
bi.pszDisplayName = name;
|
||||
bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE;
|
||||
bi.lpfn = BrowseCallbackProc_DSP;
|
||||
ITEMIDLIST *idlist = SHBrowseForFolderW(&bi);
|
||||
if (idlist)
|
||||
{
|
||||
wchar_t path[MAX_PATH] = {0};
|
||||
SHGetPathFromIDListW(idlist, path);
|
||||
Shell_Free(idlist);
|
||||
lstrcpynW(DSPDIR, path, MAX_PATH);
|
||||
SetDlgItemTextW(hwndDlg, IDC_DSPDIR, DSPDIR);
|
||||
_w_sW("DSPDir", DSPDIR);
|
||||
SetButtonText(hwndDlg, IDC_DSPDIR, DSPDIR);
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
|
||||
case IDC_SAFEMODE:
|
||||
if (LPMessageBox(hwndDlg, IDS_RESTART_SAFE, IDS_RESTART, MB_YESNO | MB_ICONQUESTION | MB_TOPMOST) == IDYES)
|
||||
{
|
||||
_w_i("show_prefs", 30);
|
||||
PostMessageW(hMainWindow, WM_USER, 0, (!g_safeMode ? IPC_RESTARTSAFEWINAMP : IPC_RESTARTWINAMP));
|
||||
}
|
||||
return FALSE;
|
||||
|
||||
case IDC_SAFEMODEALWAYS:
|
||||
{
|
||||
int mode = (IsDlgButtonChecked(hwndDlg, IDC_SAFEMODEALWAYS) ? 1 : 0);
|
||||
_w_i("safemode", mode);
|
||||
if (mode != !!g_safeMode)
|
||||
{
|
||||
if (LPMessageBox(hwndDlg, IDS_RESTART_SAFE, IDS_RESTART, MB_YESNO | MB_ICONQUESTION | MB_TOPMOST) == IDYES)
|
||||
{
|
||||
_w_i("show_prefs", 30);
|
||||
PostMessageW(hMainWindow, WM_USER, 0, (!g_safeMode ? IPC_RESTARTSAFEWINAMP : IPC_RESTARTWINAMP));
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const int controls[] =
|
||||
{
|
||||
IDC_VISPRIO,
|
||||
};
|
||||
if (FALSE != DirectMouseWheel_ProcessDialogMessage(hwndDlg, uMsg, wParam, lParam, controls, ARRAYSIZE(controls)))
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
} //audio
|
Loading…
Add table
Add a link
Reference in a new issue