📄 dialogs.c
字号:
wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = SkinBrowserWndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hIcon = gui->icon; wc.hbrBackground = SOLID_GREY2; wc.lpszClassName = "Skin Browser"; wc.lpszMenuName = NULL; RegisterClass(&wc); x = (GetSystemMetrics(SM_CXSCREEN) / 2) - (180 / 2); y = (GetSystemMetrics(SM_CYSCREEN) / 2) - (102 / 2); hWnd = CreateWindow("Skin Browser", "Skin Browser", WS_POPUPWINDOW |WS_CAPTION, x, y, 180, 102, NULL, NULL, hInstance, NULL); SetWindowLongPtr(hWnd, GWLP_USERDATA, (DWORD) gui); ShowWindow(hWnd, SW_SHOW); UpdateWindow(hWnd);}#ifdef USE_DVDREADstatic LRESULT CALLBACK TitleChapterWndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam){ static HWND title; static HWND chapter; HWND wdg; int i=0, j=0; char titles[MAX_PATH] = ""; char chapters[MAX_PATH] = ""; gui_t *gui = (gui_t *) GetWindowLongPtr(hwnd, GWLP_USERDATA); switch (iMsg) { case WM_CREATE: wdg = CreateWindow("button", "Ok", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 4, 43, 80, 25, hwnd, (HMENU) ID_OK, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); SendMessage(wdg, WM_SETFONT, (WPARAM) GetStockObject(DEFAULT_GUI_FONT), 0); wdg = CreateWindow("button", "Cancel", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 90, 43, 80, 25, hwnd, (HMENU) ID_CANCEL, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); SendMessage(wdg, WM_SETFONT, (WPARAM) GetStockObject(DEFAULT_GUI_FONT), 0); title = CreateWindow("combobox", NULL, CBS_DROPDOWNLIST | CB_SHOWDROPDOWN | CBS_NOINTEGRALHEIGHT | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 4, 10, 80, 160, hwnd, (HMENU) ID_TITLESEL, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); SendMessage(title, WM_SETFONT, (WPARAM) GetStockObject(DEFAULT_GUI_FONT), 0); chapter = CreateWindow("combobox", NULL, CBS_DROPDOWNLIST | CB_SHOWDROPDOWN | CBS_NOINTEGRALHEIGHT | CBS_HASSTRINGS | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 90, 10, 80, 160, hwnd, (HMENU) ID_CHAPTERSEL, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); SendMessage(chapter, WM_SETFONT, (WPARAM) GetStockObject(DEFAULT_GUI_FONT), 0); for (i=0; i<guiIntfStruct.DVD.titles; i++) { /* we have to reverse the order here because of the way CB_INSERTSTRING adds items */ sprintf(&titles[i], "%d", guiIntfStruct.DVD.titles - i); SendDlgItemMessage(hwnd, ID_TITLESEL, CB_INSERTSTRING, 0, (LPARAM) &titles[i]); } SendDlgItemMessage(hwnd, ID_TITLESEL, CB_SETCURSEL, dvd_title, 0); for (j=0; j<guiIntfStruct.DVD.chapters; j++) { sprintf(&chapters[j], "%d", guiIntfStruct.DVD.chapters - j); SendDlgItemMessage(hwnd, ID_CHAPTERSEL, CB_INSERTSTRING, 0, (LPARAM) &chapters[j]); } SendDlgItemMessage(hwnd, ID_CHAPTERSEL, CB_SETCURSEL, dvd_chapter, 0); break; case WM_COMMAND: { switch (LOWORD(wParam)) { case ID_CANCEL: DestroyWindow(hwnd); return 0; case ID_OK: { guiIntfStruct.DVD.current_title = SendMessage(title, CB_GETCURSEL, 0, 0) + 1; guiIntfStruct.DVD.current_chapter = SendMessage(chapter, CB_GETCURSEL, 0, 0) + 1; if((guiIntfStruct.DVD.current_title != 0 || guiIntfStruct.DVD.current_chapter != 0)) { gui->startplay(gui); DestroyWindow(hwnd); } } break; } } return 0; case WM_DESTROY: PostQuitMessage (0); return 0; } return DefWindowProc(hwnd, iMsg, wParam, lParam);}void display_chapterselwindow(gui_t *gui){ HWND hWnd; HINSTANCE hInstance = GetModuleHandle(NULL); WNDCLASS wc; int x, y; if (guiIntfStruct.StreamType != STREAMTYPE_DVD) return; if (FindWindow(NULL, "Select Title/Chapter...")) return; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = TitleChapterWndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hCursor = LoadCursor(NULL,IDC_ARROW); wc.hIcon = gui->icon; wc.hbrBackground = SOLID_GREY2; wc.lpszClassName = "Select Title/Chapter..."; wc.lpszMenuName = NULL; RegisterClass(&wc); x = (GetSystemMetrics(SM_CXSCREEN) / 2) - (180 / 2); y = (GetSystemMetrics(SM_CYSCREEN) / 2) - (100 / 2); hWnd = CreateWindow("Select Title/Chapter...", "Select Title/Chapter...", WS_POPUPWINDOW | WS_CAPTION, x, y, 180, 100, NULL, NULL, hInstance, NULL); SetWindowLongPtr(hWnd, GWLP_USERDATA, (DWORD) gui); ShowWindow(hWnd, SW_SHOW); UpdateWindow(hWnd);}#endifstatic LRESULT CALLBACK EqWndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam){ HWND btn, label, eq0, eq1, eq2, eq3; switch (iMsg) { case WM_CREATE: { btn = CreateWindow("button", "Reset", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 157, 143, 80, 25, hwnd, (HMENU) ID_DEFAULTS, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); SendMessage(btn, WM_SETFONT, (WPARAM) GetStockObject(DEFAULT_GUI_FONT), 0); btn = CreateWindow("button", "Close", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 243, 143, 80, 25, hwnd, (HMENU) ID_CLOSE, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); SendMessage(btn, WM_SETFONT, (WPARAM) GetStockObject(DEFAULT_GUI_FONT), 0); label = CreateWindow("static", "Brightness", WS_CHILD | WS_VISIBLE, 12, 122, 70, 15, hwnd, NULL, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); SendMessage(label, WM_SETFONT, (WPARAM) GetStockObject(DEFAULT_GUI_FONT), 0); label = CreateWindow("static", "Contrast", WS_CHILD | WS_VISIBLE, 99, 122, 70, 15, hwnd, NULL, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); SendMessage(label, WM_SETFONT, (WPARAM) GetStockObject(DEFAULT_GUI_FONT), 0); label = CreateWindow("static", "Hue", WS_CHILD | WS_VISIBLE, 191, 122, 70, 15, hwnd, NULL, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); SendMessage(label, WM_SETFONT, (WPARAM) GetStockObject(DEFAULT_GUI_FONT), 0); label = CreateWindow("static", "Saturation", WS_CHILD | WS_VISIBLE, 260, 122, 70, 15, hwnd, NULL, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); SendMessage(label, WM_SETFONT, (WPARAM) GetStockObject(DEFAULT_GUI_FONT), 0); eq0 = CreateWindow(TRACKBAR_CLASS, "brightness", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_DISABLED | TBS_VERT | TBS_NOTICKS, 30, 0, 20, 120, hwnd, (HMENU) ID_EQ0, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); SendDlgItemMessage(hwnd, ID_EQ0, TBM_SETRANGE, 1, MAKELONG(0, 200)); eq1 = CreateWindow(TRACKBAR_CLASS, "contrast", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_DISABLED | TBS_VERT | TBS_NOTICKS, 112, 0, 20, 120, hwnd, (HMENU) ID_EQ1, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); SendDlgItemMessage(hwnd, ID_EQ1, TBM_SETRANGE, 1, MAKELONG(0, 200)); eq2 = CreateWindow(TRACKBAR_CLASS, "hue", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_DISABLED | TBS_VERT | TBS_NOTICKS, 194, 0, 20, 120, hwnd, (HMENU) ID_EQ2, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); SendDlgItemMessage(hwnd, ID_EQ2, TBM_SETRANGE, 1, MAKELONG(0, 200)); eq3 = CreateWindow(TRACKBAR_CLASS, "saturation", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_DISABLED | TBS_VERT | TBS_NOTICKS, 276, 0, 20, 120, hwnd, (HMENU) ID_EQ3, ((LPCREATESTRUCT) lParam) -> hInstance, NULL); SendDlgItemMessage(hwnd, ID_EQ3, TBM_SETRANGE, 1, MAKELONG(0, 200)); if(guiIntfStruct.sh_video && guiIntfStruct.Playing) { EnableWindow(eq0, 1); EnableWindow(eq1, 1); EnableWindow(eq2, 1); EnableWindow(eq3, 1); get_video_colors(guiIntfStruct.sh_video, "brightness", &vo_gamma_brightness); get_video_colors(guiIntfStruct.sh_video, "contrast", &vo_gamma_contrast); get_video_colors(guiIntfStruct.sh_video, "hue", &vo_gamma_hue); get_video_colors(guiIntfStruct.sh_video, "saturation", &vo_gamma_saturation); } SendDlgItemMessage(hwnd, ID_EQ0, TBM_SETPOS, 1, (LPARAM)100 - vo_gamma_brightness); SendDlgItemMessage(hwnd, ID_EQ1, TBM_SETPOS, 1, (LPARAM)100 - vo_gamma_contrast); SendDlgItemMessage(hwnd, ID_EQ2, TBM_SETPOS, 1, (LPARAM)100 - vo_gamma_hue); SendDlgItemMessage(hwnd, ID_EQ3, TBM_SETPOS, 1, (LPARAM)100 - vo_gamma_saturation); break; } case WM_VSCROLL: { switch (LOWORD(wParam)) { case TB_THUMBTRACK: if(guiIntfStruct.sh_video && guiIntfStruct.Playing) { vo_gamma_brightness = 100 - SendDlgItemMessage(hwnd, ID_EQ0, TBM_GETPOS, 0, 0); set_video_colors(guiIntfStruct.sh_video, "brightness", vo_gamma_brightness); vo_gamma_contrast = 100 - SendDlgItemMessage(hwnd, ID_EQ1, TBM_GETPOS, 0, 0); set_video_colors(guiIntfStruct.sh_video, "contrast", vo_gamma_contrast); vo_gamma_hue = 100 - SendDlgItemMessage(hwnd, ID_EQ2, TBM_GETPOS, 0, 0); set_video_colors(guiIntfStruct.sh_video, "hue", vo_gamma_hue); vo_gamma_saturation = 100 - SendDlgItemMessage(hwnd, ID_EQ3, TBM_GETPOS, 0, 0); set_video_colors(guiIntfStruct.sh_video, "saturation", vo_gamma_saturation); } else { EnableWindow(GetDlgItem(hwnd, ID_EQ0), 0); EnableWindow(GetDlgItem(hwnd, ID_EQ1), 0); EnableWindow(GetDlgItem(hwnd, ID_EQ2), 0); EnableWindow(GetDlgItem(hwnd, ID_EQ3), 0); } break; } } case WM_CTLCOLORDLG: case WM_CTLCOLORSTATIC: { HDC hdc = (HDC)wParam; SetBkMode(hdc, TRANSPARENT); return (INT_PTR)SOLID_GREY2; } break; case WM_COMMAND: { switch (LOWORD(wParam)) { case ID_CLOSE: DestroyWindow(hwnd); return 0; case ID_DEFAULTS: if(guiIntfStruct.sh_video && guiIntfStruct.Playing) { vo_gamma_brightness=0; SendDlgItemMessage(hwnd, ID_EQ0, TBM_SETPOS, 1, (LPARAM)100); set_video_colors(guiIntfStruct.sh_video, "brightness", vo_gamma_brightness); vo_gamma_contrast=0; SendDlgItemMessage(hwnd, ID_EQ1, TBM_SETPOS, 1, (LPARAM)100); set_video_colors(guiIntfStruct.sh_video, "contrast", vo_gamma_contrast); vo_gamma_hue=0; SendDlgItemMessage(hwnd, ID_EQ2, TBM_SETPOS, 1, (LPARAM)100); set_video_colors(guiIntfStruct.sh_video, "hue", vo_gamma_hue); vo_gamma_saturation=0; SendDlgItemMessage(hwnd, ID_EQ3, TBM_SETPOS, 1, (LPARAM)100); set_video_colors(guiIntfStruct.sh_video, "saturation", vo_gamma_saturation); } break; } } return 0; case WM_DESTROY: PostQuitMessage (0); return 0; } return DefWindowProc(hwnd, iMsg, wParam, lParam);}void display_eqwindow(gui_t *gui){ HWND hWnd; HINSTANCE hInstance = GetModuleHandle(NULL); WNDCLASS wc; int x, y; if(!guiIntfStruct.sh_video) return; if(FindWindow(NULL, "MPlayer - Equalizer")) return; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = EqWndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hCursor = LoadCursor(NULL,IDC_ARROW); wc.hIcon = gui->icon; wc.hbrBackground = SOLID_GREY2; wc.lpszClassName = "MPlayer - Equalizer"; wc.lpszMenuName = NULL; RegisterClass(&wc); x = (GetSystemMetrics(SM_CXSCREEN) / 2) - (332 / 2); y = (GetSystemMetrics(SM_CYSCREEN) / 2) - (200 / 2); hWnd = CreateWindow("MPlayer - Equalizer", "MPlayer - Equalizer", WS_POPUPWINDOW | WS_CAPTION, x, y, 332, 200, NULL, NULL, hInstance, NULL); SetWindowLongPtr(hWnd, GWLP_USERDATA, (DWORD) gui); ShowWindow(hWnd, SW_SHOW); UpdateWindow(hWnd);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -