aboutsummaryrefslogtreecommitdiff
path: root/Src/Winamp/options_classic.cpp
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Winamp/options_classic.cpp
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/Winamp/options_classic.cpp')
-rw-r--r--Src/Winamp/options_classic.cpp291
1 files changed, 291 insertions, 0 deletions
diff --git a/Src/Winamp/options_classic.cpp b/Src/Winamp/options_classic.cpp
new file mode 100644
index 00000000..d876428a
--- /dev/null
+++ b/Src/Winamp/options_classic.cpp
@@ -0,0 +1,291 @@
+/** (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;
+} \ No newline at end of file