mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-12-29 16:16:06 +00:00
291 lines
8.9 KiB
C++
291 lines
8.9 KiB
C++
|
/** (c) Nullsoft, Inc. C O N F I D E N T I A L
|
||
|
** Filename:
|
||
|
** Project:
|
||
|
** Description:
|
||
|
** Author:
|
||
|
** Created:
|
||
|
**/
|
||
|
|
||
|
#include "main.h"
|
||
|
#include "resource.h"
|
||
|
#include "options.h"
|
||
|
|
||
|
static HWND subWnd;
|
||
|
|
||
|
static LRESULT CALLBACK ClassicUIProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam)
|
||
|
{
|
||
|
hi helpinfo[]={
|
||
|
{IDC_SNAP,IDS_P_DISP_SNAP},
|
||
|
{IDC_SNAPW,IDS_P_DISP_SNAPW},
|
||
|
{IDC_HIGHLIGHT,IDS_P_DISP_HILITE},
|
||
|
{IDC_CLUTTERBAR,IDS_P_DISP_CB},
|
||
|
{IDC_TTIPS,IDS_P_DISP_TTIPS},
|
||
|
{IDC_WA_CURSORS,IDS_P_DISP_CURSORS},
|
||
|
{IDC_BIFONT,IDS_P_DISP_BIFONT},
|
||
|
{IDC_BIFONT_ALT,IDS_P_DISP_BIFONT_ALT},
|
||
|
{IDC_EQDSIZE,IDS_P_O_EQDS},
|
||
|
{IDC_SPLB,IDS_P_O_SPLB},
|
||
|
{IDC_CHECK2,IDS_P_DISP_FREESIZE},
|
||
|
{IDC_KEEPONSCREEN,IDS_P_O_LITESTEP},
|
||
|
{IDC_AOVD,IDS_P_O_AOVD},
|
||
|
{IDC_POS_IN_SONGTICKER,IDS_P_DISP_PLPOS},
|
||
|
};
|
||
|
DO_HELP();
|
||
|
switch (uMsg)
|
||
|
{
|
||
|
case WM_INITDIALOG:
|
||
|
CheckDlgButton(hwndDlg,IDC_SNAP,config_snap?1:0);
|
||
|
SetDlgItemInt(hwndDlg,IDC_SNAPW,config_snaplen,0);
|
||
|
CheckDlgButton(hwndDlg,IDC_HIGHLIGHT,config_hilite?1:0);
|
||
|
CheckDlgButton(hwndDlg,IDC_CLUTTERBAR,config_ascb_new?1:0);
|
||
|
CheckDlgButton(hwndDlg,IDC_TTIPS,config_ttips?1:0);
|
||
|
CheckDlgButton(hwndDlg,IDC_WA_CURSORS,config_usecursors?1:0);
|
||
|
CheckDlgButton(hwndDlg,IDC_BIFONT,config_bifont?1:0);
|
||
|
CheckDlgButton(hwndDlg,IDC_BIFONT_ALT,config_bifont_alt?1:0);
|
||
|
CheckDlgButton(hwndDlg,IDC_SPLB,config_ospb?1:0);
|
||
|
CheckDlgButton(hwndDlg,IDC_CHECK2,config_embedwnd_freesize?1:0);
|
||
|
CheckDlgButton(hwndDlg,IDC_EQDSIZE,config_eqdsize?1:0);
|
||
|
CheckDlgButton(hwndDlg,IDC_KEEPONSCREEN,(config_keeponscreen&1)?0:1);
|
||
|
CheckDlgButton(hwndDlg,IDC_AOVD,(config_keeponscreen&2)?1:0);
|
||
|
CheckDlgButton(hwndDlg,IDC_POS_IN_SONGTICKER,config_dotitlenum?1:0);
|
||
|
|
||
|
EnableWindow(GetDlgItem(hwndDlg,IDC_BIFONT_ALT),!config_bifont);
|
||
|
break;
|
||
|
|
||
|
case WM_COMMAND:
|
||
|
switch (LOWORD(wParam))
|
||
|
{
|
||
|
case IDC_CHECK2:
|
||
|
config_embedwnd_freesize=!!IsDlgButtonChecked(hwndDlg,IDC_CHECK2);
|
||
|
return 0;
|
||
|
|
||
|
case IDC_EQDSIZE:
|
||
|
config_eqdsize = (BST_CHECKED == IsDlgButtonChecked(hwndDlg,IDC_EQDSIZE));
|
||
|
set_aot(0);
|
||
|
break;
|
||
|
|
||
|
case IDC_SPLB:
|
||
|
config_ospb = (BST_CHECKED == IsDlgButtonChecked(hwndDlg,IDC_SPLB));
|
||
|
break;
|
||
|
|
||
|
case IDC_BIFONT:
|
||
|
config_bifont = (BST_CHECKED == IsDlgButtonChecked(hwndDlg,IDC_BIFONT)) ? 1 : 0;
|
||
|
EnableWindow(GetDlgItem(hwndDlg,IDC_BIFONT_ALT),!config_bifont);
|
||
|
g_need_titleupd=1;
|
||
|
InvalidateRect(hPLWindow, NULL, TRUE);
|
||
|
break;
|
||
|
|
||
|
case IDC_BIFONT_ALT:
|
||
|
config_bifont_alt = (BST_CHECKED == IsDlgButtonChecked(hwndDlg,IDC_BIFONT_ALT)) ? 1 : 0;
|
||
|
if (config_dsize)
|
||
|
{
|
||
|
draw_reinit_plfont(1);
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case IDC_POS_IN_SONGTICKER:
|
||
|
config_dotitlenum = IsDlgButtonChecked(hwndDlg,IDC_POS_IN_SONGTICKER)?1:0;
|
||
|
draw_songname(FileTitle, &ui_songposition, PlayList_getcurrentlength());
|
||
|
break;
|
||
|
|
||
|
case IDC_SNAP: config_snap = IsDlgButtonChecked(hwndDlg,IDC_SNAP)?1:0; break;
|
||
|
|
||
|
case IDC_SNAPW:
|
||
|
if (HIWORD(wParam) == EN_CHANGE) {
|
||
|
int t,a;
|
||
|
a=GetDlgItemInt(hwndDlg,IDC_SNAPW,&t,0);
|
||
|
if (t) config_snaplen= (unsigned char)a;
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case IDC_HIGHLIGHT: config_hilite = IsDlgButtonChecked(hwndDlg,IDC_HIGHLIGHT)?1:0; set_aot(0); break;
|
||
|
|
||
|
case IDC_CLUTTERBAR:
|
||
|
config_ascb_new = IsDlgButtonChecked(hwndDlg,IDC_CLUTTERBAR)?1:0;
|
||
|
if (hMainWindow) draw_clutterbar(0);
|
||
|
break;
|
||
|
|
||
|
case IDC_TTIPS:
|
||
|
config_ttips = IsDlgButtonChecked(hwndDlg,IDC_TTIPS)?1:0;
|
||
|
set_aot(0);
|
||
|
break;
|
||
|
|
||
|
case IDC_WA_CURSORS:
|
||
|
config_usecursors = IsDlgButtonChecked(hwndDlg,IDC_WA_CURSORS)?1:0;
|
||
|
break;
|
||
|
|
||
|
case IDC_KEEPONSCREEN:
|
||
|
case IDC_AOVD:
|
||
|
{
|
||
|
config_keeponscreen = IsDlgButtonChecked(hwndDlg,IDC_KEEPONSCREEN)?0:1;
|
||
|
config_keeponscreen |= IsDlgButtonChecked(hwndDlg,IDC_AOVD)?2:0;
|
||
|
SetWindowLongPtrW(hMainWindow,GWLP_USERDATA,(config_keeponscreen&2)?0x49474541:0);
|
||
|
SetWindowLongPtrW(hPLWindow,GWLP_USERDATA,(config_keeponscreen&2)?0x49474541:0);
|
||
|
SetWindowLongPtrW(hEQWindow,GWLP_USERDATA,(config_keeponscreen&2)?0x49474541:0);
|
||
|
// SetWindowLong(hMBWindow,GWL_USERDATA,(config_keeponscreen&2)?0x49474541:0);
|
||
|
SetWindowLongPtrW(hVideoWindow,GWLP_USERDATA,(config_keeponscreen&2)?0x49474541:0);
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
return FALSE;
|
||
|
}
|
||
|
return FALSE;
|
||
|
} //display
|
||
|
|
||
|
static LRESULT CALLBACK ClassicVisProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam)
|
||
|
{
|
||
|
static int text_ids[4]=
|
||
|
{
|
||
|
IDS_P_CLASSIC_70FPS,
|
||
|
IDS_P_CLASSIC_35FPS,
|
||
|
IDS_P_CLASSIC_18FPS,
|
||
|
IDS_P_CLASSIC_9FPS
|
||
|
};
|
||
|
#if 0
|
||
|
hi helpinfo[]={
|
||
|
{IDC_USEID4,IDS_P_O_ONLOAD},
|
||
|
};
|
||
|
DO_HELP();
|
||
|
#endif
|
||
|
if(uMsg == WM_INITDIALOG)
|
||
|
{
|
||
|
SendMessageW(GetDlgItem(hwndDlg,IDC_SLIDER3),TBM_SETRANGEMAX,0,3);
|
||
|
SendMessageW(GetDlgItem(hwndDlg,IDC_SLIDER3),TBM_SETRANGEMIN,0,0);
|
||
|
SendMessageW(GetDlgItem(hwndDlg,IDC_SLIDER3),TBM_SETPOS,1,4-config_saref);
|
||
|
|
||
|
SendMessageW(GetDlgItem(hwndDlg,IDC_SLIDER1),TBM_SETRANGEMAX,0,4);
|
||
|
SendMessageW(GetDlgItem(hwndDlg,IDC_SLIDER1),TBM_SETRANGEMIN,0,0);
|
||
|
SendMessageW(GetDlgItem(hwndDlg,IDC_SLIDER1),TBM_SETPOS,1,config_safalloff);
|
||
|
|
||
|
SendMessageW(GetDlgItem(hwndDlg,IDC_SLIDER2),TBM_SETRANGEMAX,0,4);
|
||
|
SendMessageW(GetDlgItem(hwndDlg,IDC_SLIDER2),TBM_SETRANGEMIN,0,0);
|
||
|
SendMessageW(GetDlgItem(hwndDlg,IDC_SLIDER2),TBM_SETPOS,1,config_sa_peak_falloff);
|
||
|
|
||
|
SetDlgItemTextW(hwndDlg,IDC_RRATE,getStringW(text_ids[config_saref-1],NULL,0));
|
||
|
if (config_sa == 1) CheckDlgButton(hwndDlg,IDC_RADIO1,BST_CHECKED);
|
||
|
else if (config_sa == 2) CheckDlgButton(hwndDlg,IDC_RADIO2,BST_CHECKED);
|
||
|
else CheckDlgButton(hwndDlg,IDC_RADIO3,BST_CHECKED);
|
||
|
|
||
|
if ((config_safire&3) == 1) CheckDlgButton(hwndDlg,IDC_RADIO5,BST_CHECKED);
|
||
|
else if ((config_safire&3) == 2) CheckDlgButton(hwndDlg,IDC_RADIO6,BST_CHECKED);
|
||
|
else CheckDlgButton(hwndDlg,IDC_RADIO4,BST_CHECKED);
|
||
|
|
||
|
if (config_sa_peaks) CheckDlgButton(hwndDlg,IDC_CHECK1,BST_CHECKED);
|
||
|
if ((config_safire&32)) CheckDlgButton(hwndDlg,IDC_RADIO7,BST_CHECKED);
|
||
|
else CheckDlgButton(hwndDlg,IDC_RADIO8,BST_CHECKED);
|
||
|
|
||
|
if (((config_safire>>2)&3)==0) CheckDlgButton(hwndDlg,IDC_RADIO9,BST_CHECKED);
|
||
|
else if (((config_safire>>2)&3)==1) CheckDlgButton(hwndDlg,IDC_RADIO10,BST_CHECKED);
|
||
|
else CheckDlgButton(hwndDlg,IDC_RADIO11,BST_CHECKED);
|
||
|
}
|
||
|
|
||
|
if (uMsg == WM_HSCROLL)
|
||
|
{
|
||
|
HWND swnd = (HWND) lParam;
|
||
|
int t=(int)SendMessageW(swnd,TBM_GETPOS,0,0);
|
||
|
if (swnd == GetDlgItem(hwndDlg,IDC_SLIDER3))
|
||
|
{
|
||
|
config_saref=(unsigned char)(4-t);
|
||
|
SetDlgItemTextW(hwndDlg,IDC_RRATE,getStringW(text_ids[config_saref-1],NULL,0));
|
||
|
}
|
||
|
|
||
|
if (swnd == GetDlgItem(hwndDlg,IDC_SLIDER2))
|
||
|
{
|
||
|
config_sa_peak_falloff = (unsigned char)t;
|
||
|
}
|
||
|
|
||
|
if (swnd == GetDlgItem(hwndDlg,IDC_SLIDER1))
|
||
|
{
|
||
|
config_safalloff= (unsigned char)t;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (uMsg == WM_COMMAND)
|
||
|
switch (LOWORD(wParam))
|
||
|
{
|
||
|
case IDC_RADIO1:
|
||
|
case IDC_RADIO2:
|
||
|
case IDC_RADIO3:
|
||
|
if (IsDlgButtonChecked(hwndDlg,IDC_RADIO1)) config_sa=1;
|
||
|
else if (IsDlgButtonChecked(hwndDlg,IDC_RADIO2)) config_sa=2;
|
||
|
else config_sa=0;
|
||
|
sa_setthread(config_sa);
|
||
|
break;
|
||
|
|
||
|
case IDC_RADIO4:
|
||
|
case IDC_RADIO5:
|
||
|
case IDC_RADIO6:
|
||
|
config_safire &= ~3;
|
||
|
if (IsDlgButtonChecked(hwndDlg,IDC_RADIO5)) config_safire |= 1;
|
||
|
else if (IsDlgButtonChecked(hwndDlg,IDC_RADIO6)) config_safire |= 2;
|
||
|
break;
|
||
|
|
||
|
case IDC_CHECK1:
|
||
|
config_sa_peaks = IsDlgButtonChecked(hwndDlg,IDC_CHECK1)?1:0;
|
||
|
break;
|
||
|
|
||
|
case IDC_RADIO7:
|
||
|
case IDC_RADIO8:
|
||
|
if (IsDlgButtonChecked(hwndDlg,IDC_RADIO7)) config_safire|=32;
|
||
|
else config_safire&=~32;
|
||
|
break;
|
||
|
|
||
|
case IDC_RADIO9:
|
||
|
case IDC_RADIO10:
|
||
|
case IDC_RADIO11:
|
||
|
config_safire &= ~(3<<2);
|
||
|
if (IsDlgButtonChecked(hwndDlg,IDC_RADIO10)) config_safire |= 1<<2;
|
||
|
else if (IsDlgButtonChecked(hwndDlg,IDC_RADIO11)) config_safire |= 2<<2;
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
const int controls[] =
|
||
|
{
|
||
|
IDC_SLIDER1,
|
||
|
IDC_SLIDER2,
|
||
|
IDC_SLIDER3,
|
||
|
};
|
||
|
if (FALSE != DirectMouseWheel_ProcessDialogMessage(hwndDlg, uMsg, wParam, lParam, controls, ARRAYSIZE(controls)))
|
||
|
return TRUE;
|
||
|
|
||
|
return FALSE;
|
||
|
} // vis options
|
||
|
|
||
|
multiPage classicPages[] = {
|
||
|
{IDD_CLASSIC_UI, ClassicUIProc},
|
||
|
{IDD_CLASSIC_VIS, ClassicVisProc},
|
||
|
};
|
||
|
|
||
|
INT_PTR CALLBACK classicSkinProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam)
|
||
|
{
|
||
|
switch (uMsg)
|
||
|
{
|
||
|
case WM_INITDIALOG:
|
||
|
{
|
||
|
TCITEMW item = {0};
|
||
|
HWND tabwnd=GetDlgItem(hwndDlg,IDC_TAB1);
|
||
|
item.mask=TCIF_TEXT;
|
||
|
item.pszText=getStringW(IDS_P_CLASSICUI,NULL,0);
|
||
|
SendMessageW(tabwnd, TCM_INSERTITEMW, 0, (LPARAM)&item);
|
||
|
item.pszText=getStringW(IDS_P_CLASSICVIS,NULL,0);
|
||
|
SendMessageW(tabwnd, TCM_INSERTITEMW, 1, (LPARAM)&item);
|
||
|
|
||
|
TabCtrl_SetCurSel(tabwnd,config_last_classic_skin_page);
|
||
|
subWnd = _dosetsel(hwndDlg,subWnd,&config_last_classic_skin_page,classicPages,sizeof(classicPages)/sizeof(classicPages[0]));
|
||
|
}
|
||
|
return 0;
|
||
|
|
||
|
case WM_NOTIFY:
|
||
|
{
|
||
|
LPNMHDR p=(LPNMHDR)lParam;
|
||
|
if (p->idFrom == IDC_TAB1 && p->code == TCN_SELCHANGE)
|
||
|
subWnd = _dosetsel(hwndDlg,subWnd,&config_last_classic_skin_page,classicPages,sizeof(classicPages)/sizeof(classicPages[0]));
|
||
|
}
|
||
|
return 0;
|
||
|
|
||
|
case WM_DESTROY:
|
||
|
subWnd=NULL;
|
||
|
return 0;
|
||
|
}
|
||
|
return 0;
|
||
|
}
|