/** (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