aboutsummaryrefslogtreecommitdiff
path: root/Src/Winamp/options_bookmarks.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_bookmarks.cpp
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/Winamp/options_bookmarks.cpp')
-rw-r--r--Src/Winamp/options_bookmarks.cpp386
1 files changed, 386 insertions, 0 deletions
diff --git a/Src/Winamp/options_bookmarks.cpp b/Src/Winamp/options_bookmarks.cpp
new file mode 100644
index 00000000..3bcaa759
--- /dev/null
+++ b/Src/Winamp/options_bookmarks.cpp
@@ -0,0 +1,386 @@
+/** (c) Nullsoft, Inc. C O N F I D E N T I A L
+ ** Filename:
+ ** Project:
+ ** Description:
+ ** Author:
+ ** Created:
+ **/
+#include "main.h"
+#if 0 // no more minibrowser
+
+static int listDragging=0,listSel=-1;
+
+static WNDPROC OldBookListProc;
+
+static BOOL CALLBACK BookListProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam)
+{
+ switch (uMsg)
+ {
+ case WM_LBUTTONDOWN:
+ if (!listDragging)
+ {
+ POINT p;
+ RECT r;
+ GetCursorPos(&p);
+ GetWindowRect(hwndDlg,&r);
+ if (p.x >= r.left && p.x < r.right && p.y >= r.top && p.y < r.bottom)
+ {
+ int x=SendMessageW(hwndDlg,LB_ITEMFROMPOINT,0,MAKELPARAM(p.x-r.left,p.y-r.top-2));
+ if (!HIWORD(x))
+ {
+ listDragging=1;
+ listSel=x;
+ }
+ }
+ }
+ break;
+// case WM_KILLFOCUS:
+ case WM_LBUTTONUP:
+ listDragging=0;
+ listSel=-1;
+ break;
+ }
+ return CallWindowProc(OldBookListProc,hwndDlg,uMsg,wParam,lParam);
+}
+
+static char *g_bmedit_fn, *g_bmedit_ft;
+
+static BOOL CALLBACK BookMarkEditProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam)
+{
+ switch (uMsg)
+ {
+ case WM_INITDIALOG:
+ SetDlgItemText(hwndDlg,IDC_TITLE,g_bmedit_ft);
+ SetDlgItemText(hwndDlg,IDC_FILE,g_bmedit_fn);
+ return 0;
+ case WM_COMMAND:
+ switch (LOWORD(wParam))
+ {
+ case IDOK:
+ GetDlgItemText(hwndDlg,IDC_TITLE,g_bmedit_ft,4095);
+ GetDlgItemText(hwndDlg,IDC_FILE,g_bmedit_fn,MAX_PATH);
+ case IDCANCEL:
+ EndDialog(hwndDlg,0);
+ return 0;
+ }
+ return 0;
+ }
+ return 0;
+}
+
+static BOOL CALLBACK BookProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam)
+{
+// hi helpinfo[]={
+// };
+// DO_HELP();
+ switch (uMsg)
+ {
+ case WM_CTLCOLORLISTBOX:
+ if(listDragging)
+ {
+ POINT p;
+ RECT r;
+ int thisp;
+ GetCursorPos(&p);
+ GetWindowRect(GetDlgItem(hwndDlg,IDC_SELBOX),&r);
+ thisp=SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_ITEMFROMPOINT,0,MAKELPARAM(p.x-r.left,p.y-r.top-2));
+ if(HIWORD(thisp))
+ {
+ // mouse pointer outside client area
+ thisp=LOWORD(thisp);
+ }
+ if (listSel != -1 && listSel != thisp)
+ {
+ int len=SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_GETCOUNT,0,0);
+ // move listSel to thisp.
+ if (thisp >= 0 && listSel >= 0 && thisp < len && listSel < len) {
+ char fn[MAX_PATH] = {0};
+ char file1[MAX_PATH] = {0}, title1[4096] = {0};
+ FILE *fp,*fpo;
+ Bookmark_getfn(fn);
+ fp=fopen(fn,"rt");
+
+ fpo=fopen(TEMP_FILE,"wt");
+ if (fp&&fpo)
+ {
+ char ft[4096] = {0};
+ int x=0;
+ while (1)
+ {
+ if (x == listSel)
+ {
+ fgets(file1,MAX_PATH,fp);
+ fgets(title1,4096,fp);
+ }
+ else
+ {
+ fgets(fn,MAX_PATH,fp);
+ fgets(ft,4096,fp);
+ }
+ if (feof(fp)) break;
+ x++;
+ }
+ fseek(fp,0,SEEK_SET);
+ x=0;
+ while (1)
+ {
+ fgets(fn,MAX_PATH,fp);
+ fgets(ft,4096,fp);
+ if (feof(fp)) break;
+ if (listSel < thisp)
+ {
+ if (x != listSel) fprintf(fpo,"%s%s",fn,ft);
+ if (x == thisp) fprintf(fpo,"%s%s",file1,title1);
+ }
+ else
+ {
+ if (x == thisp) fprintf(fpo,"%s%s",file1,title1);
+ if (x != listSel) fprintf(fpo,"%s%s",fn,ft);
+ }
+ x++;
+ }
+ }
+ if (fp) fclose(fp);
+ if (fpo) fclose(fpo);
+ if (fp && fpo)
+ {
+ Bookmark_getfn(fn);
+ DeleteFile(fn);
+ MoveFile(TEMP_FILE,fn);
+ SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_GETTEXT,(WPARAM)listSel,(LPARAM)title1);
+ SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_DELETESTRING,(WPARAM)listSel,0);
+ SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_INSERTSTRING,(WPARAM)thisp,(LPARAM)title1);
+ listSel=thisp;
+ SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_SETCURSEL,thisp,0);
+ }
+ }
+
+ }
+ }
+ return 0;
+ case WM_USER+32:
+ if (wParam == 1024 && lParam == 3213)
+ {
+ char fn[MAX_PATH] = {0};
+
+ FILE *fp;
+ SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_RESETCONTENT,0,0);
+ Bookmark_getfn(fn);
+ fp=fopen(fn,"rt");
+ if (fp)
+ {
+ while (1)
+ {
+ char ft[4096] = {0};
+ fgets(fn,MAX_PATH,fp);
+ if (feof(fp)) break;
+ fgets(ft,4096,fp);
+ if (feof(fp)) break;
+ if (ft[0] && fn[0])
+ {
+ if (fn[lstrlen(fn)-1]=='\n') fn[lstrlen(fn)-1]=0;
+ if (ft[lstrlen(ft)-1]=='\n') ft[lstrlen(ft)-1]=0;
+ if (ft[0] && fn[0])
+ {
+ SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_ADDSTRING,0,(LPARAM)ft);
+ }
+ }
+ }
+ fclose(fp);
+ }
+ }
+ return 0;
+ case WM_INITDIALOG:
+ {
+ char fn[MAX_PATH] = {0};
+
+ FILE *fp;
+ OldBookListProc=(WNDPROC)SetWindowLong(GetDlgItem(hwndDlg,IDC_SELBOX), GWLP_WNDPROC,(LONG)BookListProc);
+ listDragging=0;
+ listSel=-1;
+ Bookmark_getfn(fn);
+ fp=fopen(fn,"rt");
+ if (fp)
+ {
+ while (1)
+ {
+ char ft[4096] = {0};
+ fgets(fn,MAX_PATH,fp);
+ if (feof(fp)) break;
+ fgets(ft,4096,fp);
+ if (feof(fp)) break;
+ if (ft[0] && fn[0])
+ {
+ if (fn[lstrlen(fn)-1]=='\n') fn[lstrlen(fn)-1]=0;
+ if (ft[lstrlen(ft)-1]=='\n') ft[lstrlen(ft)-1]=0;
+ if (ft[0] && fn[0])
+ {
+ SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_ADDSTRING,0,(LPARAM)ft);
+ }
+ }
+ }
+ fclose(fp);
+ }
+ }
+ return TRUE;
+ case WM_COMMAND:
+ switch (LOWORD(wParam))
+ {
+ case IDC_BUTTON5:
+ case IDC_SELBOX:
+ case IDC_BUTTON4: // open
+ if (LOWORD(wParam) != IDC_SELBOX || HIWORD(wParam) == LBN_DBLCLK)
+ {
+ int x,len,openDir=0;
+ char fn[MAX_PATH] = {0};
+ FILE *fp;
+ Bookmark_getfn(fn);
+ fp=fopen(fn,"rt");
+
+ if (fp)
+ {
+ len=SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_GETCOUNT,0,0);
+ for (x = 0; x < len; x ++)
+ {
+ char ft[4096] = {0};
+ fgets(fn,MAX_PATH,fp);
+ fgets(ft,4096,fp);
+ if (feof(fp)) break;
+ if (SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_GETSEL,x,0))
+ {
+ if (ft[0] && fn[0])
+ {
+ if (fn[lstrlen(fn)-1]=='\n') fn[lstrlen(fn)-1]=0;
+ if (ft[lstrlen(ft)-1]=='\n') ft[lstrlen(ft)-1]=0;
+ if (ft[0] && fn[0])
+ {
+ if (!strstr(fn,"http://"))
+ {
+ int ga=GetFileAttributes(fn);
+ if ((ga!=0xffffffff) && (ga & FILE_ATTRIBUTE_DIRECTORY))
+ {
+ getNewFile((LOWORD(wParam) != IDC_BUTTON5),hwndDlg,fn);
+ openDir=1;
+ }
+ }
+ if(!openDir)
+ {
+ if (LOWORD(wParam) != IDC_BUTTON5) PlayList_delete();
+ PlayList_appendthing(fn);
+ }
+ }
+ }
+ }
+ }
+ if (LOWORD(wParam) != IDC_BUTTON5 && !openDir)
+ {
+ if (config_shuffle) PlayList_randpos(-BIGINT);
+ else PlayList_setposition(0);
+ PlayList_getcurrent(FileName,FileTitle,FileTitleNum);
+ plEditRefresh();
+ StartPlaying();
+ }
+ else
+ plEditRefresh();
+ fclose(fp);
+ }
+ }
+ return 0;
+ case IDC_EDITBOOK:
+ {
+ int sel=SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_GETCURSEL,0,0);
+ if (sel != LB_ERR)
+ {
+ int x;
+ char fn[MAX_PATH] = {0};
+ FILE *fp,*fpo;
+ Bookmark_getfn(fn);
+ fp=fopen(fn,"rt");
+
+ fpo=fopen(TEMP_FILE,"wt");
+ if (fp&&fpo)
+ {
+ x=0;
+ while (1)
+ {
+ char ft[4096] = {0};
+ fgets(fn,MAX_PATH,fp);
+ fgets(ft,4096,fp);
+ if (feof(fp)) break;
+ if (fn[lstrlen(fn)-1]=='\n') fn[lstrlen(fn)-1]=0;
+ if (ft[lstrlen(ft)-1]=='\n') ft[lstrlen(ft)-1]=0;
+ if (x==sel)
+ {
+ g_bmedit_fn=fn;
+ g_bmedit_ft=ft;
+ LPDialogBox(IDD_EDITBOOKMARK,hwndDlg,BookMarkEditProc);
+ SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_DELETESTRING,x,0);
+ SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_INSERTSTRING,x,(LPARAM)ft);
+ SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_SETCURSEL,x,0);
+ }
+ fprintf(fpo,"%s\n%s\n",fn,ft);
+ x++;
+ }
+ }
+ if (fp) fclose(fp);
+ if (fpo) fclose(fpo);
+ if (fp && fpo)
+ {
+ Bookmark_getfn(fn);
+ DeleteFile(fn);
+ MoveFile(TEMP_FILE,fn);
+ }
+ }
+ }
+ return 0;
+ case IDC_BUTTON1: // remove
+ {
+ int sel=SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_GETCURSEL,0,0);
+ if (sel != LB_ERR) {
+ char fn[MAX_PATH] = {0};
+ FILE *fp,*fpo;
+ Bookmark_getfn(fn);
+ fp=fopen(fn,"rt");
+
+ fpo=fopen(TEMP_FILE,"wt");
+ if (fp&&fpo)
+ {
+ int l=0;
+ int x=0;
+ while (1)
+ {
+ char ft[4096] = {0};
+ fgets(fn,MAX_PATH,fp);
+ fgets(ft,4096,fp);
+ if (feof(fp)) break;
+ if (x == sel)
+ {
+ l=x-1;
+ SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_DELETESTRING,x,0);
+ }
+ else
+ {
+ fprintf(fpo,"%s%s",fn,ft);
+ }
+ x++;
+ }
+ SendDlgItemMessage(hwndDlg,IDC_SELBOX,LB_SETCURSEL,l,0);
+ }
+ if (fp) fclose(fp);
+ if (fpo) fclose(fpo);
+ if (fp && fpo)
+ {
+ Bookmark_getfn(fn);
+ DeleteFile(fn);
+ MoveFile(TEMP_FILE,fn);
+ }
+ }
+ }
+ break;
+ }
+ return FALSE;
+ }
+ return 0;
+}
+
+#endif