annotate gui/win32/gui.c @ 36672:e1e9f2ea17c9

Revise GUI help message texts. Remove colons, ellipses and newlines from the end of the texts. This reduces the amount of texts to be translated, enhances reusability and harmonizes the visual appearance of the different GUI localizations. Additionally, make the necessary code changes.
author ib
date Fri, 31 Jan 2014 16:37:52 +0000
parents 7d250553d451
children eed2fb870f43
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1 /*
23079
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
2 * MPlayer GUI for Win32
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
3 * Copyright (C) 2003 Sascha Sommer <saschasommer@freenet.de>
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
4 * Copyright (C) 2006 Erik Augustson <erik_27can@yahoo.com>
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
5 * Copyright (C) 2006 Gianluigi Tiesi <sherpya@netfarm.it>
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
6 *
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
7 * This file is part of MPlayer.
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
8 *
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
9 * MPlayer is free software; you can redistribute it and/or modify
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
10 * it under the terms of the GNU General Public License as published by
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
12 * (at your option) any later version.
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
13 *
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
14 * MPlayer is distributed in the hope that it will be useful,
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
17 * GNU General Public License for more details.
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
18 *
26457
9ba6d4487292 Use standard GPL header.
diego
parents: 26372
diff changeset
19 * You should have received a copy of the GNU General Public License along
9ba6d4487292 Use standard GPL header.
diego
parents: 26372
diff changeset
20 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
9ba6d4487292 Use standard GPL header.
diego
parents: 26372
diff changeset
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23079
8e9b11648f40 Use proper GPL header.
diego
parents: 23078
diff changeset
22 */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
23
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
24 #include <stdio.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
25 #include <stdlib.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
26 #include <ctype.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
27 #include <fcntl.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
28 #include <windows.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
29 #include <windowsx.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
30 #include <shlobj.h>
23091
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
31
35450
31a5320909f7 Don't include config.h if not necessary.
ib
parents: 35002
diff changeset
32 #include "config.h"
31511
13ca93203358 Factorize MPlayer/MEncoder version string handling.
diego
parents: 30684
diff changeset
33 #include "mpcommon.h"
23091
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
34 #include "mplayer.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
35 #include "mp_fifo.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
36 #include "mp_msg.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
37 #include "help_mp.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
38 #include "input/input.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
39 #include "input/mouse.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
40 #include "osdep/keycodes.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
41 #include "stream/stream.h"
52488bb09d90 Consistently use quotes instead of angled brackets in #include
diego
parents: 23079
diff changeset
42 #include "libvo/video_out.h"
30684
dc7ed18ea0df Include libmpcodecs/vd.h for declaration of "fullscreen".
zuxy
parents: 30558
diff changeset
43 #include "libmpcodecs/vd.h"
26372
76413880bfad Update include paths to account for build system changes.
diego
parents: 26193
diff changeset
44 #include "gui/interface.h"
33761
16286ee1fc71 Fix Win32 GUI compilation problems.
ib
parents: 33640
diff changeset
45 #include "gui/ui/actions.h"
35528
ab07b17fddfb Rebuild GUI directory structure.
ib
parents: 35521
diff changeset
46 #include "gui/ui/ui.h"
33770
6134493605c6 Use macro nfree() in Win32 GUI code.
ib
parents: 33761
diff changeset
47 #include "gui/util/mem.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
48 #include "gui.h"
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
49 #include "dialogs.h"
33965
8a480da297e5 Add an about box to the Win32 GUI.
ib
parents: 33782
diff changeset
50 #include "version.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
51
34684
b03481253518 Cosmetic: Prefer C style for single line comments.
ib
parents: 34454
diff changeset
52 /* HACK around bug in old mingw */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
53 #undef INVALID_FILE_ATTRIBUTES
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
54 #define INVALID_FILE_ATTRIBUTES ((DWORD)-1)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
55
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
56 #ifndef WM_XBUTTONDOWN
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
57 # define WM_XBUTTONDOWN 0x020B
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
58 # define WM_XBUTTONUP 0x020C
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
59 # define WM_XBUTTONDBLCLK 0x020D
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
60 #endif
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
61
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
62 /* Globals / Externs */
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
63 float video_aspect;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
64
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
65 DWORD oldtime;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
66 NOTIFYICONDATA nid;
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
67 int console_state = FALSE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
68 play_tree_t *playtree = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
69
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
70 static HBRUSH colorbrush = NULL; //Handle to colorkey brush
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
71 static COLORREF windowcolor = RGB(255,0,255); //Windowcolor == colorkey
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
72
34163
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
73 /**
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
74 * @brief Convert an UTF-8 encoded string into ANSI codepage encoding.
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
75 *
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
76 * @param utf8 UTF-8 encoded string
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
77 *
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
78 * @return string containing ANSI codepage encoding of @a utf8 (or, in case
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
79 * of error, a string containing the question mark character)
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
80 */
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
81 LPSTR acp (LPCSTR utf8)
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
82 {
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
83 static LPSTR acp_str = NULL;
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
84 int chars;
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
85 LPWSTR uc_str;
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
86
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
87 chars = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0);
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
88
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
89 if (chars)
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
90 {
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
91 uc_str = malloc(sizeof(*uc_str) * (chars + 1));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
92
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
93 if (uc_str)
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
94 {
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
95 MultiByteToWideChar(CP_UTF8, 0, utf8, -1, uc_str, chars);
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
96
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
97 chars = WideCharToMultiByte(CP_ACP, 0, uc_str, -1, NULL, 0, NULL, 0);
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
98
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
99 if (chars)
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
100 {
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
101 free(acp_str);
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
102 acp_str = malloc(sizeof(*acp_str) * (chars + 1));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
103
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
104 if (acp_str)
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
105 {
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
106 WideCharToMultiByte(CP_ACP, 0, uc_str, -1, acp_str, chars, NULL, 0);
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
107 free(uc_str);
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
108
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
109 return acp_str;
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
110 }
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
111 }
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
112
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
113 free(uc_str);
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
114 }
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
115 }
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
116
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
117 return "?";
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
118 }
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
119
35001
05d54ab2ba5c Add check-mark for menu item "Debug Console".
ib
parents: 34996
diff changeset
120 static void console_toggle(gui_t *gui)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
121 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
122 if (console_state)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
123 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
124 FreeConsole();
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
125 console = FALSE;
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
126 console_state = FALSE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
127 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
128 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
129 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
130 /* This code comes from: http://dslweb.nwnexus.com/~ast/dload/guicon.htm */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
131 CONSOLE_SCREEN_BUFFER_INFO coninfo;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
132 FILE *fp;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
133 HWND hwnd = NULL;
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
134 console = TRUE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
135 AllocConsole();
31511
13ca93203358 Factorize MPlayer/MEncoder version string handling.
diego
parents: 30684
diff changeset
136 SetConsoleTitle(mplayer_version);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
137
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
138 /* disable the close button for now */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
139 while (!hwnd)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
140 {
31511
13ca93203358 Factorize MPlayer/MEncoder version string handling.
diego
parents: 30684
diff changeset
141 hwnd = FindWindow(NULL, mplayer_version);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
142 Sleep(100);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
143 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
144 DeleteMenu(GetSystemMenu(hwnd, 0), SC_CLOSE, MF_BYCOMMAND);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
145
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
146 GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
147 coninfo.dwSize.Y = 1000;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
148 SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
149 fp = freopen("con", "w", stdout);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
150 *stdout = *fp;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
151 setvbuf(stdout, NULL, _IONBF, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
152 fp = freopen("con", "r", stdin);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
153 *stdin = *fp;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
154 setvbuf(stdin, NULL, _IONBF, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
155 fp = freopen("con", "w", stdout);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
156 *stderr = *fp;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
157 setvbuf(stderr, NULL, _IONBF, 0);
36053
7affacef2f88 Define "MPlayer" string.
ib
parents: 35528
diff changeset
158 print_version(MPlayer);
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
159 console_state = TRUE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
160 }
35002
64d72a128ea8 Rewrite condition and use console_state instead of console.
ib
parents: 35001
diff changeset
161
64d72a128ea8 Rewrite condition and use console_state instead of console.
ib
parents: 35001
diff changeset
162 if (gui)
64d72a128ea8 Rewrite condition and use console_state instead of console.
ib
parents: 35001
diff changeset
163 {
64d72a128ea8 Rewrite condition and use console_state instead of console.
ib
parents: 35001
diff changeset
164 CheckMenuItem(gui->traymenu, ID_CONSOLE, MF_BYCOMMAND | (console_state ? MF_CHECKED : MF_UNCHECKED));
64d72a128ea8 Rewrite condition and use console_state instead of console.
ib
parents: 35001
diff changeset
165 CheckMenuItem(gui->menu, ID_CONSOLE, MF_BYCOMMAND | (console_state ? MF_CHECKED : MF_UNCHECKED));
64d72a128ea8 Rewrite condition and use console_state instead of console.
ib
parents: 35001
diff changeset
166 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
167 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
168
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35501
diff changeset
169 void capitalize(char *fname)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
170 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
171 unsigned int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
172 BOOL cap = TRUE;
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35501
diff changeset
173 for (i=0; i < strlen(fname); i++)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
174 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
175 if (cap)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
176 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
177 cap = FALSE;
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35501
diff changeset
178 fname[i] = toupper(fname[i]);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
179 }
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35501
diff changeset
180 else if (fname[i] == ' ')
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
181 cap = TRUE;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
182 else
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35501
diff changeset
183 fname[i] = tolower(fname[i]);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
184 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
185 }
33965
8a480da297e5 Add an about box to the Win32 GUI.
ib
parents: 33782
diff changeset
186 static void display_about_box(HWND hWnd)
8a480da297e5 Add an about box to the Win32 GUI.
ib
parents: 33782
diff changeset
187 {
8a480da297e5 Add an about box to the Win32 GUI.
ib
parents: 33782
diff changeset
188 char about_msg[512];
36053
7affacef2f88 Define "MPlayer" string.
ib
parents: 35528
diff changeset
189 snprintf(about_msg, sizeof(about_msg), MP_TITLE "\n" COPYRIGHT, MPlayer);
36670
7d250553d451 Revise GUI help message texts.
ib
parents: 36278
diff changeset
190 MessageBox(hWnd, about_msg, acp(MSGTR_MENU_AboutMPlayer), MB_OK);
33965
8a480da297e5 Add an about box to the Win32 GUI.
ib
parents: 33782
diff changeset
191 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
192
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
193 static image *get_drawground(HWND hwnd)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
194 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
195 gui_t * gui = (gui_t *) GetWindowLongPtr(hwnd, GWLP_USERDATA);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
196 unsigned int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
197 if(!gui) return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
198 for(i=0; i<gui->window_priv_count; i++)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
199 if(gui->window_priv[i]->hwnd==hwnd)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
200 return &gui->window_priv[i]->img;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
201 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
202 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
203
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
204 static HBITMAP get_bitmap(HWND hwnd)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
205 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
206 gui_t *gui = (gui_t *) GetWindowLongPtr(hwnd, GWLP_USERDATA);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
207 unsigned int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
208 if(!gui) return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
209 for(i=0; i<gui->window_priv_count; i++)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
210 if(gui->window_priv[i]->hwnd == hwnd)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
211 return gui->window_priv[i]->bitmap;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
212 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
213 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
214
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
215 static int get_windowtype(HWND hwnd)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
216 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
217 gui_t *gui = (gui_t *) GetWindowLongPtr(hwnd, GWLP_USERDATA);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
218 unsigned int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
219 if(!gui) return -1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
220 for(i=0; i<gui->window_priv_count; i++)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
221 if(gui->window_priv[i]->hwnd == hwnd)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
222 return gui->window_priv[i]->type;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
223 return -1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
224 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
225
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
226 static void uninit(gui_t *gui)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
227 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
228 if(gui->skin) destroy_window(gui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
229 if(gui->playlist) gui->playlist->free_playlist(gui->playlist);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
230 gui->playlist = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
231 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
232
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
233 /*
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
234 the gui message handler
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
235 tries to handle the incoming messages
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
236 and passes them to the player's message handler if it can't handle them
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
237 */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
238 static void handlemsg(HWND hWnd, int msg)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
239 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
240 gui_t *gui = (gui_t *) GetWindowLongPtr(hWnd, GWLP_USERDATA);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
241 if(msg == evNone) return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
242
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
243 switch(msg)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
244 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
245 case evLoadPlay:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
246 case evLoad:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
247 if(display_openfilewindow(gui, 0) && (msg == evLoadPlay))
34325
fc74085e2487 Fix bug in Win32 GUI introduced in r34403.
ib
parents: 34321
diff changeset
248 gui->playercontrol(evLoadPlay);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
249 return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
250 case evLoadSubtitle:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
251 display_opensubtitlewindow(gui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
252 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
253 case evPreferences:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
254 display_prefswindow(gui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
255 return;
34321
daebf766dea6 Cosmetic: Synchronize evPlaylist event and message names.
ib
parents: 34315
diff changeset
256 case evPlaylist:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
257 display_playlistwindow(gui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
258 return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
259 case evSkinBrowser:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
260 display_skinbrowser(gui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
261 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
262 case evEqualizer:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
263 display_eqwindow(gui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
264 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
265 case evAbout:
33965
8a480da297e5 Add an about box to the Win32 GUI.
ib
parents: 33782
diff changeset
266 display_about_box(hWnd);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
267 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
268 case evIconify:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
269 ShowWindow(hWnd, SW_MINIMIZE);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
270 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
271 case evIncVolume:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
272 mplayer_put_key(KEY_VOLUME_UP);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
273 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
274 case evDecVolume:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
275 mplayer_put_key(KEY_VOLUME_DOWN);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
276 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
277 default:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
278 mp_msg(MSGT_GPLAYER, MSGL_V, "[GUI] received msg %s (%i)\n", gui->skin->geteventname(msg), msg);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
279 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
280 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
281 gui->playercontrol(msg);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
282 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
283
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
284 static widget *clickedinsidewidget(gui_t *gui, int window, int x, int y)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
285 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
286 unsigned int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
287 widget *item;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
288 for(i=0; i<gui->skin->widgetcount; i++)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
289 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
290 item = gui->skin->widgets[i];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
291 if((item->window == window) && (item->x <= x) && (item->x + item->width >= x) &&
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
292 (item->y <= y) && (item->y + item->height >= y))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
293 return item;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
294 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
295 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
296 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
297
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
298 /* updates sliders and the display */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
299 static void updatedisplay(gui_t *gui, HWND hwnd)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
300 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
301 unsigned int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
302 window_priv_t *priv = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
303 DWORD time = timeGetTime();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
304
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
305 if(!hwnd) return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
306
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
307 /* load all potmeters hpotmeters */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
308 for(i=0; i<gui->skin->widgetcount; i++)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
309 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
310 if(gui->skin->widgets[i]->type == tyHpotmeter || gui->skin->widgets[i]->type == tyPotmeter)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
311 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
312 if(gui->skin->widgets[i]->msg == evSetVolume)
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 32537
diff changeset
313 gui->skin->widgets[i]->value = guiInfo.Volume;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
314 else if(gui->skin->widgets[i]->msg == evSetMoviePosition)
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 32537
diff changeset
315 gui->skin->widgets[i]->value = guiInfo.Position;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
316 else if(gui->skin->widgets[i]->msg == evSetBalance)
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 32537
diff changeset
317 gui->skin->widgets[i]->value = guiInfo.Balance;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
318 if(gui->skin->widgets[i]->window == get_windowtype(hwnd))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
319 renderwidget(gui->skin, get_drawground(hwnd), gui->skin->widgets[i],
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
320 gui->skin->widgets[i]->pressed ? 0 : 1);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
321 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
322 /* update some buttons */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
323 if(gui->skin->widgets[i]->type == tyButton && gui->skin->widgets[i]->window == get_windowtype(hwnd))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
324 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
325 if(gui->skin->widgets[i]->msg == evPlaySwitchToPause)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
326 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 32537
diff changeset
327 gui->skin->widgets[i]->value = guiInfo.Playing;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
328 renderwidget(gui->skin, get_drawground(hwnd), gui->skin->widgets[i],
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33580
diff changeset
329 guiInfo.Playing == GUI_PLAY ? 0 : 1);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
330 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
331 if(gui->skin->widgets[i]->msg == evMute)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
332 {
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 32537
diff changeset
333 gui->skin->widgets[i]->value = guiInfo.Volume;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
334 renderwidget(gui->skin, get_drawground(hwnd), gui->skin->widgets[i],
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 32537
diff changeset
335 guiInfo.Volume == 0.0f ? 0 : 1);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
336 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
337 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
338 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
339
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
340 /* updating the display once a 100.second is enough imo */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
341 if((time - oldtime) < 100) return;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
342 oldtime=time;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
343
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
344 for (i=0; i<gui->window_priv_count; i++)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
345 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
346 if(gui->window_priv[i]->hwnd == hwnd)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
347 priv=gui->window_priv[i];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
348 }// Sherpya
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
349 /* display the status msgs */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
350 renderinfobox(gui->skin, priv);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
351 RedrawWindow(hwnd, NULL, NULL, RDW_INVALIDATE);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
352 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
353
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
354 static LRESULT CALLBACK VideoProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
355 {
36262
703a51ce08c8 Enable the change of the movie aspect ratio on the fly.
ib
parents: 36053
diff changeset
356 float aspect;
36274
ba5fa3e71247 Keep paused mode when changing the aspect ratio.
ib
parents: 36272
diff changeset
357 char cmd[40];
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
358 gui_t *gui = (gui_t *) GetWindowLongPtr(hWnd, GWLP_USERDATA);
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
359 if (gui && (gui->videowindow != hWnd)) return FALSE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
360
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
361 switch (message)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
362 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
363 case WM_CLOSE:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
364 handlemsg(hWnd, evExit);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
365 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
366 case WM_DESTROY:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
367 PostQuitMessage(0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
368 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
369 case WM_KEYDOWN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
370 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
371 switch(wParam)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
372 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
373 case VK_LEFT:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
374 mplayer_put_key(KEY_LEFT);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
375 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
376 case VK_UP:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
377 mplayer_put_key(KEY_UP);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
378 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
379 case VK_RIGHT:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
380 mplayer_put_key(KEY_RIGHT);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
381 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
382 case VK_DOWN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
383 mplayer_put_key(KEY_DOWN);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
384 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
385 case VK_TAB:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
386 mplayer_put_key(KEY_TAB);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
387 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
388 case VK_BACK:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
389 mplayer_put_key(KEY_BS);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
390 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
391 case VK_DELETE:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
392 mplayer_put_key(KEY_DELETE);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
393 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
394 case VK_INSERT:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
395 mplayer_put_key(KEY_INSERT);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
396 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
397 case VK_HOME:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
398 mplayer_put_key(KEY_HOME);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
399 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
400 case VK_END:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
401 mplayer_put_key(KEY_END);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
402 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
403 case VK_PRIOR:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
404 mplayer_put_key(KEY_PAGE_UP);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
405 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
406 case VK_NEXT:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
407 mplayer_put_key(KEY_PAGE_DOWN);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
408 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
409 case VK_ESCAPE:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
410 mplayer_put_key(KEY_ESC);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
411 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
412 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
413 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
414 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
415 case WM_COMMAND:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
416 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
417 switch(LOWORD(wParam))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
418 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
419 case IDEXIT:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
420 PostQuitMessage(0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
421 handlemsg(hWnd, evExit);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
422 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
423 case IDFILE_OPEN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
424 handlemsg(hWnd, evLoadPlay);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
425 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
426 case IDURL_OPEN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
427 display_openurlwindow(gui, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
428 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
429 case IDDIR_OPEN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
430 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
431 static char path[MAX_PATH];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
432 BROWSEINFO bi;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
433 LPITEMIDLIST pidl;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
434 memset(&bi, 0, sizeof(BROWSEINFO));
36672
e1e9f2ea17c9 Revise GUI help message texts.
ib
parents: 36670
diff changeset
435 bi.lpszTitle = acp(MSGTR_DirectorySelect":");
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
436 pidl = SHBrowseForFolder(&bi);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
437 if (SHGetPathFromIDList(pidl, path))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
438 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
439 gui->playlist->clear_playlist(gui->playlist);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
440 adddirtoplaylist(gui->playlist, path, TRUE);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
441 gui->startplay(gui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
442 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
443 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
444 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
445 case ID_PTRACK:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
446 handlemsg(hWnd, evPrev);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
447 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
448 case ID_SEEKB:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
449 handlemsg(hWnd, evBackward10sec);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
450 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
451 case ID_PLAY:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
452 handlemsg(hWnd, evPlaySwitchToPause);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
453 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
454 case ID_STOP:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
455 handlemsg(hWnd, evStop);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
456 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
457 case ID_SEEKF:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
458 handlemsg(hWnd, evForward10sec);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
459 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
460 case ID_NTRACK:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
461 handlemsg(hWnd, evNext);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
462 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
463 case ID_CHAPTERSEL:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
464 display_chapterselwindow(gui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
465 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
466 case ID_FULLSCREEN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
467 mp_input_queue_cmd(mp_input_parse_cmd("vo_fullscreen"));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
468 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
469 case ID_MUTE:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
470 mp_input_queue_cmd(mp_input_parse_cmd("mute"));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
471 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
472 case ID_ASPECT1:
36262
703a51ce08c8 Enable the change of the movie aspect ratio on the fly.
ib
parents: 36053
diff changeset
473 case ID_ASPECT2:
703a51ce08c8 Enable the change of the movie aspect ratio on the fly.
ib
parents: 36053
diff changeset
474 case ID_ASPECT3:
703a51ce08c8 Enable the change of the movie aspect ratio on the fly.
ib
parents: 36053
diff changeset
475 case ID_ASPECT4:
703a51ce08c8 Enable the change of the movie aspect ratio on the fly.
ib
parents: 36053
diff changeset
476 switch (LOWORD(wParam))
703a51ce08c8 Enable the change of the movie aspect ratio on the fly.
ib
parents: 36053
diff changeset
477 {
36263
ea4c4dbae852 Cosmetic: Adjust indent.
ib
parents: 36262
diff changeset
478 case ID_ASPECT1:
ea4c4dbae852 Cosmetic: Adjust indent.
ib
parents: 36262
diff changeset
479 aspect = 16.0f / 9.0f;
ea4c4dbae852 Cosmetic: Adjust indent.
ib
parents: 36262
diff changeset
480 break;
ea4c4dbae852 Cosmetic: Adjust indent.
ib
parents: 36262
diff changeset
481 case ID_ASPECT2:
ea4c4dbae852 Cosmetic: Adjust indent.
ib
parents: 36262
diff changeset
482 aspect = 4.0f / 3.0f;
ea4c4dbae852 Cosmetic: Adjust indent.
ib
parents: 36262
diff changeset
483 break;
ea4c4dbae852 Cosmetic: Adjust indent.
ib
parents: 36262
diff changeset
484 case ID_ASPECT3:
36276
f7ef757c95c0 Be more pedantic about type of the constant.
ib
parents: 36274
diff changeset
485 aspect = 2.35f;
36263
ea4c4dbae852 Cosmetic: Adjust indent.
ib
parents: 36262
diff changeset
486 break;
ea4c4dbae852 Cosmetic: Adjust indent.
ib
parents: 36262
diff changeset
487 default:
36272
aa0011dfbfdc Use again special value -1 to set original aspect ratio.
ib
parents: 36264
diff changeset
488 aspect = -1;
36263
ea4c4dbae852 Cosmetic: Adjust indent.
ib
parents: 36262
diff changeset
489 break;
36262
703a51ce08c8 Enable the change of the movie aspect ratio on the fly.
ib
parents: 36053
diff changeset
490 }
36274
ba5fa3e71247 Keep paused mode when changing the aspect ratio.
ib
parents: 36272
diff changeset
491 snprintf(cmd, sizeof(cmd), "pausing_keep switch_ratio %f", aspect);
36262
703a51ce08c8 Enable the change of the movie aspect ratio on the fly.
ib
parents: 36053
diff changeset
492 mp_input_queue_cmd(mp_input_parse_cmd(cmd));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
493 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
494 case IDSUB_TOGGLE:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
495 mp_input_queue_cmd(mp_input_parse_cmd("sub_visibility"));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
496 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
497 case IDSUB_CYCLE:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
498 mp_input_queue_cmd(mp_input_parse_cmd("sub_select"));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
499 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
500 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
501 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
502 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
503 case WM_CHAR:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
504 mplayer_put_key(wParam);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
505 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
506 case WM_DROPFILES:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
507 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
508 if(!lParam)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
509 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
510 char file[MAX_PATH];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
511 int filecount = DragQueryFile((HDROP) wParam, -1, file, MAX_PATH);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
512 int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
513 for(i=0; i<filecount; i++)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
514 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
515 DragQueryFile((HDROP) wParam, i, file, MAX_PATH);
35452
f42cc2361ee4 Cosmetic: Rename uiSetFileName().
ib
parents: 35450
diff changeset
516 uiSetFile(NULL, file, STREAMTYPE_FILE);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
517 if(!parse_filename(file, playtree, mconfig, 1))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
518 gui->playlist->add_track(gui->playlist, file, NULL, NULL, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
519 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
520 DragFinish((HDROP) wParam);
34325
fc74085e2487 Fix bug in Win32 GUI introduced in r34403.
ib
parents: 34321
diff changeset
521 gui->playercontrol(evLoadPlay);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
522 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
523 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
524 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
525 gui->playlist->clear_playlist(gui->playlist);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
526 gui->playlist->add_track(gui->playlist, (const char *) wParam, NULL, NULL, 0);
34325
fc74085e2487 Fix bug in Win32 GUI introduced in r34403.
ib
parents: 34321
diff changeset
527 gui->playercontrol(evLoadPlay);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
528 }
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
529 SetForegroundWindow(gui->videowindow);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
530 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
531 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
532 case WM_LBUTTONDOWN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
533 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
534 if(!vo_nomouse_input)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
535 mplayer_put_key(MOUSE_BTN0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
536 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
537 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
538 case WM_MBUTTONDOWN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
539 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
540 if(!vo_nomouse_input)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
541 mplayer_put_key(MOUSE_BTN1);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
542 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
543 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
544 case WM_RBUTTONDOWN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
545 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
546 POINT point;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
547 point.x = GET_X_LPARAM(lParam);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
548 point.y = GET_Y_LPARAM(lParam);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
549 ClientToScreen(hWnd, &point);
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 32537
diff changeset
550 if(guiInfo.StreamType == STREAMTYPE_DVD)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
551 EnableMenuItem(gui->dvdmenu, ID_CHAPTERSEL, MF_BYCOMMAND | MF_ENABLED);
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
552 TrackPopupMenu(gui->videomenu, 0, point.x, point.y, 0, hWnd, NULL);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
553 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
554 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
555 case WM_LBUTTONDBLCLK:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
556 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
557 if(!vo_nomouse_input)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
558 mplayer_put_key(MOUSE_BTN0_DBL);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
559 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
560 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
561 case WM_MBUTTONDBLCLK:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
562 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
563 if(!vo_nomouse_input)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
564 mplayer_put_key(MOUSE_BTN1_DBL);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
565 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
566 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
567 case WM_RBUTTONDBLCLK:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
568 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
569 if(!vo_nomouse_input)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
570 mplayer_put_key(MOUSE_BTN2_DBL);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
571 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
572 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
573 case WM_MOUSEWHEEL:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
574 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
575 int x = GET_WHEEL_DELTA_WPARAM(wParam);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
576 if(vo_nomouse_input)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
577 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
578 if (x > 0)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
579 mplayer_put_key(MOUSE_BTN3);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
580 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
581 mplayer_put_key(MOUSE_BTN4);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
582 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
583 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
584 case WM_XBUTTONDOWN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
585 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
586 if(vo_nomouse_input)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
587 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
588 if(HIWORD(wParam) == 1)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
589 mplayer_put_key(MOUSE_BTN5);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
590 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
591 mplayer_put_key(MOUSE_BTN6);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
592 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
593 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
594 case WM_XBUTTONDBLCLK:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
595 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
596 if(vo_nomouse_input)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
597 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
598 if(HIWORD(wParam) == 1)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
599 mplayer_put_key(MOUSE_BTN5_DBL);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
600 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
601 mplayer_put_key(MOUSE_BTN6_DBL);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
602 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
603 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
604 case WM_TIMER:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
605 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
606 if(fullscreen) while(ShowCursor(FALSE) >= 0){}
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
607 KillTimer(hWnd, ID_TIMER);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
608 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
609 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
610 case WM_MOUSEMOVE:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
611 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
612 ShowCursor(TRUE);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
613 SetTimer(hWnd, ID_TIMER, 3000, (TIMERPROC) NULL);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
614 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
615 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
616 case WM_WINDOWPOSCHANGED:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
617 {
34996
ebcc17a3c165 Fix compiler warnings (comparison between signed and unsigned).
ib
parents: 34995
diff changeset
618 uint32_t tmpheight=0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
619 static uint32_t rect_width;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
620 static uint32_t rect_height;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
621 RECT rd;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
622 POINT pt;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
623 pt.x = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
624 pt.y = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
625 GetClientRect(hWnd, &rd);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
626 ClientToScreen(hWnd, &pt);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
627
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
628 rect_width = rd.right - rd.left;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
629 rect_height = rd.bottom - rd.top;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
630
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
631 /* maintain our aspect ratio */
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
632 tmpheight = ((float)rect_width/video_aspect);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
633 tmpheight += tmpheight % 2;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
634 if(tmpheight > rect_height)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
635 {
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
636 rect_width = ((float)rect_height*video_aspect);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
637 rect_width += rect_width % 2;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
638 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
639 else rect_height = tmpheight;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
640
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
641 rd.right = rd.left + rect_width;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
642 rd.bottom = rd.top + rect_height;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
643
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
644 AdjustWindowRect(&rd, WS_OVERLAPPEDWINDOW | WS_SIZEBOX, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
645 SetWindowPos(hWnd, 0, fullscreen?0:pt.x+rd.left, fullscreen?0:pt.y+rd.top,
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
646 fullscreen?vo_screenwidth:rd.right-rd.left, fullscreen?vo_screenheight:rd.bottom-rd.top, SWP_NOOWNERZORDER);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
647 SetForegroundWindow(hWnd);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
648 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
649 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
650 case WM_SYSCOMMAND:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
651 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
652 switch(wParam)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
653 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
654 case SC_SCREENSAVE:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
655 case SC_MONITORPOWER:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
656 mp_msg(MSGT_VO, MSGL_V ,"<vo_directx><INFO>killing screensaver\n" );
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
657 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
658 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
659 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
660 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
661 case WM_PAINT:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
662 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
663 PAINTSTRUCT ps;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
664 RECT rect;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
665 HDC hdc = BeginPaint(hWnd, &ps);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
666 HDC hMemDC = CreateCompatibleDC(hdc);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
667 HBRUSH blackbrush = (HBRUSH)GetStockObject(BLACK_BRUSH);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
668 int width, height;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
669 GetClientRect(hWnd, &rect);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
670 width = rect.right - rect.left;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
671 height = rect.bottom - rect.top;
33615
1f9a31d4f114 Replace all playback integer constants by their symbolic constants.
ib
parents: 33580
diff changeset
672 if(guiInfo.Playing == GUI_STOP)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
673 {
34996
ebcc17a3c165 Fix compiler warnings (comparison between signed and unsigned).
ib
parents: 34995
diff changeset
674 unsigned int i;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
675 window *desc = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
676
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
677 for (i=0; i<gui->skin->windowcount; i++)
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
678 if(gui->skin->windows[i]->type == wiVideo)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
679 desc = gui->skin->windows[i];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
680
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
681 SelectObject(hMemDC, get_bitmap(hWnd));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
682 StretchBlt(hdc, 0, 0, width, height, hMemDC, 0, 0, desc->base->bitmap[0]->width,
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
683 desc->base->bitmap[0]->height, SRCCOPY);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
684 } else {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
685 FillRect(GetDC(hWnd), &rect, fullscreen?blackbrush:colorbrush);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
686 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
687 DeleteDC(hMemDC);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
688 EndPaint(hWnd, &ps);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
689 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
690 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
691 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
692 return DefWindowProc(hWnd, message, wParam, lParam);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
693 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
694
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
695 /* Window Proc for the gui Window */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
696 static LRESULT CALLBACK EventProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
697 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
698 gui_t *gui = (gui_t *) GetWindowLongPtr(hWnd, GWLP_USERDATA);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
699
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
700 /* Avoid processing when then window doesn't match gui mainwindow */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
701 if (gui && (gui->mainwindow != hWnd)) return FALSE;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
702
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
703 switch (message)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
704 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
705 case WM_CLOSE:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
706 handlemsg(hWnd, evExit);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
707 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
708 case WM_DESTROY:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
709 PostQuitMessage(0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
710 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
711 case WM_SYSTRAY:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
712 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
713 switch(lParam)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
714 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
715 POINT cursor;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
716 case WM_RBUTTONDOWN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
717 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
718 GetCursorPos(&cursor);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
719 SetForegroundWindow(hWnd);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
720 TrackPopupMenu(gui->traymenu, 0, cursor.x, cursor.y, 0, hWnd, NULL);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
721 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
722 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
723 case WM_MBUTTONDBLCLK:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
724 case WM_LBUTTONDBLCLK:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
725 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
726 if(IsWindowVisible(hWnd)) ShowWindow(hWnd, SW_HIDE);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
727 else { ShowWindow(hWnd, SW_SHOW); SetForegroundWindow(hWnd); }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
728 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
729 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
730 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
731 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
732 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
733 case WM_KEYDOWN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
734 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
735 switch(wParam)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
736 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
737 case VK_LEFT:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
738 mplayer_put_key(KEY_LEFT);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
739 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
740 case VK_UP:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
741 mplayer_put_key(KEY_UP);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
742 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
743 case VK_RIGHT:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
744 mplayer_put_key(KEY_RIGHT);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
745 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
746 case VK_DOWN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
747 mplayer_put_key(KEY_DOWN);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
748 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
749 case VK_TAB:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
750 mplayer_put_key(KEY_TAB);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
751 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
752 case VK_BACK:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
753 mplayer_put_key(KEY_BS);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
754 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
755 case VK_DELETE:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
756 mplayer_put_key(KEY_DELETE);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
757 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
758 case VK_INSERT:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
759 mplayer_put_key(KEY_INSERT);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
760 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
761 case VK_HOME:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
762 mplayer_put_key(KEY_HOME);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
763 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
764 case VK_END:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
765 mplayer_put_key(KEY_END);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
766 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
767 case VK_PRIOR:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
768 mplayer_put_key(KEY_PAGE_UP);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
769 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
770 case VK_NEXT:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
771 mplayer_put_key(KEY_PAGE_DOWN);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
772 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
773 case VK_ESCAPE:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
774 mplayer_put_key(KEY_ESC);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
775 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
776 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
777 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
778 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
779 case WM_CHAR:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
780 mplayer_put_key(wParam);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
781 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
782 case WM_COPYDATA:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
783 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
784 if(lParam)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
785 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
786 PCOPYDATASTRUCT cdData;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
787 cdData = (PCOPYDATASTRUCT) lParam;
35452
f42cc2361ee4 Cosmetic: Rename uiSetFileName().
ib
parents: 35450
diff changeset
788 uiSetFile(NULL, cdData->lpData, STREAMTYPE_FILE);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
789 if(!parse_filename(cdData->lpData, playtree, mconfig, 1))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
790 gui->playlist->add_track(gui->playlist, cdData->lpData, NULL, NULL, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
791 gui->startplay(gui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
792 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
793 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
794 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
795 case WM_DROPFILES:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
796 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
797 if(!lParam)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
798 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
799 char file[MAX_PATH];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
800 int filecount = DragQueryFile((HDROP) wParam, -1, file, MAX_PATH);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
801 int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
802 for(i=0; i<filecount; i++)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
803 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
804 DragQueryFile((HDROP) wParam, i, file, MAX_PATH);
35452
f42cc2361ee4 Cosmetic: Rename uiSetFileName().
ib
parents: 35450
diff changeset
805 uiSetFile(NULL, file, STREAMTYPE_FILE);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
806 if(!parse_filename(file, playtree, mconfig, 1))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
807 gui->playlist->add_track(gui->playlist, file, NULL, NULL, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
808 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
809 DragFinish((HDROP) wParam);
34325
fc74085e2487 Fix bug in Win32 GUI introduced in r34403.
ib
parents: 34321
diff changeset
810 gui->playercontrol(evLoadPlay);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
811 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
812 else
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
813 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
814 gui->playlist->clear_playlist(gui->playlist);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
815 gui->playlist->add_track(gui->playlist, (const char *) wParam, NULL, NULL, 0);
34325
fc74085e2487 Fix bug in Win32 GUI introduced in r34403.
ib
parents: 34321
diff changeset
816 gui->playercontrol(evLoadPlay);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
817 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
818 SetForegroundWindow(gui->mainwindow);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
819 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
820 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
821 case WM_LBUTTONDOWN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
822 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
823 SetCapture(hWnd);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
824 gui->mousex = GET_X_LPARAM(lParam);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
825 gui->mousey = GET_Y_LPARAM(lParam);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
826 /* inside a widget */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
827 gui->activewidget = clickedinsidewidget(gui, get_windowtype(hWnd), gui->mousex, gui->mousey);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
828 if(gui->activewidget)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
829 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
830 gui->activewidget->pressed = 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
831 gui->mousewx = gui->mousex - gui->activewidget->x;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
832 gui->mousewy = gui->mousey - gui->activewidget->y;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
833 renderwidget(gui->skin, get_drawground(hWnd), gui->activewidget, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
834 RedrawWindow(hWnd, NULL, NULL, RDW_INVALIDATE);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
835 handlemsg(hWnd, gui->activewidget->msg);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
836 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
837 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
838 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
839 case WM_CAPTURECHANGED:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
840 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
841 if(gui->activewidget)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
842 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
843 gui->activewidget->pressed = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
844 renderwidget(gui->skin, get_drawground(hWnd), gui->activewidget, 1);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
845 RedrawWindow(hWnd, NULL, NULL, RDW_INVALIDATE);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
846 gui->activewidget = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
847 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
848 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
849 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
850 case WM_LBUTTONUP:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
851 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
852 ReleaseCapture();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
853 if(gui->activewidget)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
854 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
855 gui->activewidget->pressed = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
856 renderwidget(gui->skin, get_drawground(hWnd), gui->activewidget, 1);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
857 RedrawWindow(hWnd, NULL, NULL, RDW_INVALIDATE);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
858 gui->activewidget = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
859 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
860 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
861 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
862 case WM_RBUTTONDOWN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
863 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
864 POINT point;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
865 char device[MAX_PATH];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
866 char searchpath[MAX_PATH];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
867 int len, pos = 0, cdromdrive = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
868 UINT errmode;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
869 point.x = GET_X_LPARAM(lParam);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
870 point.y = GET_Y_LPARAM(lParam);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
871 ClientToScreen(hWnd, &point);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
872 errmode = SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
873 while (GetMenuItemCount(gui->diskmenu) > 0)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
874 DeleteMenu(gui->diskmenu, 0, MF_BYPOSITION);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
875 len = GetLogicalDriveStrings(MAX_PATH, device);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
876 while(pos < len)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
877 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
878 if(GetDriveType(device + pos) == DRIVE_CDROM)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
879 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
880 char volname[MAX_PATH];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
881 char menuitem[MAX_PATH];
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
882 int flags = MF_STRING, enable = FALSE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
883 mp_msg(MSGT_GPLAYER, MSGL_V, "[GUI] checking %s for CD/VCD/SVCD/DVDs\n", device + pos);
34454
5a45efc630b8 Remove all unnecessary #ifdefs from GUI code.
ib
parents: 34452
diff changeset
884 #ifdef CONFIG_DVDREAD
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
885 sprintf(searchpath, "%sVIDEO_TS", device + pos);
34452
c3e63d8b6cf3 Reduce number and avoid conditional definition of searchpath variables.
ib
parents: 34405
diff changeset
886 if(GetFileAttributes(searchpath) != INVALID_FILE_ATTRIBUTES)
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
887 enable = TRUE;
34454
5a45efc630b8 Remove all unnecessary #ifdefs from GUI code.
ib
parents: 34452
diff changeset
888 #endif
34452
c3e63d8b6cf3 Reduce number and avoid conditional definition of searchpath variables.
ib
parents: 34405
diff changeset
889 sprintf(searchpath, "%sMpegav", device + pos);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
890 if(GetFileAttributes(searchpath) != INVALID_FILE_ATTRIBUTES)
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
891 enable = TRUE;
34405
35fd66684548 Use cdparanoia compatibility names for CD function calls.
ib
parents: 34391
diff changeset
892 #ifdef CONFIG_CDDA
34452
c3e63d8b6cf3 Reduce number and avoid conditional definition of searchpath variables.
ib
parents: 34405
diff changeset
893 sprintf(searchpath, "%sTrack01.cda", device + pos);
c3e63d8b6cf3 Reduce number and avoid conditional definition of searchpath variables.
ib
parents: 34405
diff changeset
894 if(GetFileAttributes(searchpath) != INVALID_FILE_ATTRIBUTES)
35501
7bb176fac55c Use boolean symbolic constants in Win32 GUI.
ib
parents: 35452
diff changeset
895 enable = TRUE;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
896 #endif
34452
c3e63d8b6cf3 Reduce number and avoid conditional definition of searchpath variables.
ib
parents: 34405
diff changeset
897 flags |= (enable ? MF_ENABLED : MF_GRAYED);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
898 volname[0] = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
899 strcpy(menuitem, device + pos);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
900 menuitem[strlen(menuitem) - 1]=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
901 GetVolumeInformation(device + pos, volname, MAX_PATH, NULL, NULL, NULL, NULL, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
902 if (strlen(volname))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
903 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
904 capitalize(volname);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
905 strcat(menuitem, " - ");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
906 strcat(menuitem, volname);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
907 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
908 AppendMenu(gui->diskmenu, flags, IDPLAYDISK + cdromdrive, menuitem);
34979
93a763f04563 Fix bug with definition of IDPLAYDISK in Win32 GUI.
ib
parents: 34697
diff changeset
909 if (++cdromdrive == IDPLAYDISK_LIMIT - IDPLAYDISK) break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
910 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
911 pos += strlen(device + pos) + 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
912 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
913 SetErrorMode(errmode);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
914 TrackPopupMenu(gui->menu, 0, point.x, point.y, 0, hWnd, NULL);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
915 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
916 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
917 case WM_MOUSEMOVE:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
918 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
919 if(wParam & MK_LBUTTON)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
920 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
921 POINT point;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
922 RECT rect;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
923 if(gui->activewidget)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
924 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
925 widget *item = gui->activewidget;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
926
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
927 if(item->type == tyHpotmeter)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
928 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
929 item->x = GET_X_LPARAM(lParam) - gui->mousewx;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
930 item->value = (float)((float)((item->x - item->wx) * 100.0f) / (float)(item->wwidth - item->width));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
931 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
932 if(item->type == tyPotmeter)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
933 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
934 gui->mousewx = GET_X_LPARAM(lParam) - gui->activewidget->x;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
935 item->value = (float) (gui->mousewx * 100.0f) / (float) item->wwidth;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
936 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
937
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
938 if((item->type == tyPotmeter) || (item->type == tyHpotmeter) || (item->type == tyVpotmeter))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
939 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
940 /* Bound checks */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
941 if(item->value > 100.0f)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
942 item->value = 100.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
943 else if(item->value < 0.0f)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
944 item->value = 0.0f;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
945
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
946 if(item->msg == evSetVolume)
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 32537
diff changeset
947 guiInfo.Volume = (float) item->value;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
948 else if(item->msg == evSetMoviePosition)
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 32537
diff changeset
949 guiInfo.Position = (float) item->value;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
950 else if(item->msg == evSetBalance)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
951 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
952 /* make the range for 50% a bit bigger, because the sliders for balance usually suck */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
953 if((item->value - 50.0f < 1.5f) && (item->value - 50.0f > -1.5f))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
954 item->value = 50.0f;
33555
c5a19bbeac2b Cosmetic: Rename some GUI variables and functions.
ib
parents: 32537
diff changeset
955 guiInfo.Balance = (float) item->value;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
956 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
957 updatedisplay(gui, hWnd);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
958 handlemsg(hWnd, item->msg);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
959 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
960 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
961 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
962 point.x = GET_X_LPARAM(lParam);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
963 point.y = GET_Y_LPARAM(lParam);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
964 ClientToScreen(hWnd, &point);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
965 GetWindowRect(hWnd, &rect);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
966 MoveWindow(hWnd, point.x - gui->mousex, point.y - gui->mousey,
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
967 rect.right-rect.left,rect.bottom-rect.top,TRUE);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
968 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
969 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
970 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
971 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
972 case WM_COMMAND:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
973 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
974 switch(LOWORD(wParam))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
975 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
976 case IDEXIT:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
977 PostQuitMessage(0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
978 handlemsg(hWnd, evExit);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
979 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
980 case IDFILE_OPEN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
981 handlemsg(hWnd, evLoadPlay);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
982 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
983 case IDDIR_OPEN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
984 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
985 static char path[MAX_PATH];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
986 BROWSEINFO bi;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
987 LPITEMIDLIST pidl;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
988 memset(&bi, 0, sizeof(BROWSEINFO));
36672
e1e9f2ea17c9 Revise GUI help message texts.
ib
parents: 36670
diff changeset
989 bi.lpszTitle = acp(MSGTR_DirectorySelect":");
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
990 pidl = SHBrowseForFolder(&bi);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
991 if (SHGetPathFromIDList(pidl, path))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
992 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
993 gui->playlist->clear_playlist(gui->playlist);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
994 adddirtoplaylist(gui->playlist, path, TRUE);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
995 gui->startplay(gui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
996 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
997 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
998 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
999 case ID_SKINBROWSER:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1000 handlemsg(hWnd, evSkinBrowser);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1001 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1002 case IDURL_OPEN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1003 display_openurlwindow(gui, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1004 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1005 case ID_MUTE:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1006 mp_input_queue_cmd(mp_input_parse_cmd("mute"));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1007 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1008 case IDSUBTITLE_OPEN:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1009 display_opensubtitlewindow(gui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1010 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1011 case ID_PTRACK:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1012 handlemsg(hWnd, evPrev);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1013 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1014 case ID_SEEKB:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1015 handlemsg(hWnd, evBackward10sec);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1016 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1017 case ID_PLAY:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1018 handlemsg(hWnd, evPlaySwitchToPause);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1019 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1020 case ID_STOP:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1021 handlemsg(hWnd, evStop);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1022 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1023 case ID_SEEKF:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1024 handlemsg(hWnd, evForward10sec);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1025 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1026 case ID_NTRACK:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1027 handlemsg(hWnd, evNext);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1028 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1029 case ID_SHOWHIDE:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1030 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1031 if(IsWindowVisible(hWnd)) ShowWindow(hWnd, SW_HIDE);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1032 else ShowWindow(hWnd, SW_SHOW);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1033 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1034 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1035 case ID_PLAYLIST:
34321
daebf766dea6 Cosmetic: Synchronize evPlaylist event and message names.
ib
parents: 34315
diff changeset
1036 handlemsg(hWnd, evPlaylist);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1037 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1038 case ID_PREFS:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1039 handlemsg(hWnd, evPreferences);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1040 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1041 case ID_CONSOLE:
35001
05d54ab2ba5c Add check-mark for menu item "Debug Console".
ib
parents: 34996
diff changeset
1042 console_toggle(gui);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1043 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1044 case ID_ONLINEHELP:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1045 ShellExecute(NULL, "open", ONLINE_HELP_URL, NULL, NULL, SW_SHOWNORMAL);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1046 break;
33965
8a480da297e5 Add an about box to the Win32 GUI.
ib
parents: 33782
diff changeset
1047 case IDHELP_ABOUT:
8a480da297e5 Add an about box to the Win32 GUI.
ib
parents: 33782
diff changeset
1048 handlemsg(hWnd, evAbout);
8a480da297e5 Add an about box to the Win32 GUI.
ib
parents: 33782
diff changeset
1049 break;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1050 }
34979
93a763f04563 Fix bug with definition of IDPLAYDISK in Win32 GUI.
ib
parents: 34697
diff changeset
1051 if(LOWORD(wParam) >= IDPLAYDISK && LOWORD(wParam) < IDPLAYDISK_LIMIT)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1052 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1053 char device[MAX_PATH];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1054 char searchpath[MAX_PATH];
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35501
diff changeset
1055 char file[MAX_PATH];
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1056 int len, pos = 0, cdromdrive = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1057 len = GetLogicalDriveStrings(MAX_PATH, device);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1058 while(pos < len)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1059 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1060 if(GetDriveType(device + pos)==DRIVE_CDROM)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1061 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1062 if(LOWORD(wParam) - IDPLAYDISK == cdromdrive)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1063 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1064 sprintf(searchpath, "%sVIDEO_TS", device + pos);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1065 if(GetFileAttributes(searchpath) != INVALID_FILE_ATTRIBUTES)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1066 {
32537
8fa2f43cb760 Remove most of the NULL pointer check before free all over the code
cboesch
parents: 31532
diff changeset
1067 free(dvd_device);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1068 dvd_device = strdup(device + pos);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1069 handlemsg(hWnd, evPlayDVD);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1070 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1071 sprintf(searchpath, "%sTrack01.cda", device + pos);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1072 if(GetFileAttributes(searchpath) != INVALID_FILE_ATTRIBUTES)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1073 {
32537
8fa2f43cb760 Remove most of the NULL pointer check before free all over the code
cboesch
parents: 31532
diff changeset
1074 free(cdrom_device);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1075 cdrom_device = strdup(device + pos);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1076 /* mplayer doesn't seem to like the trailing \ after the device name */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1077 cdrom_device[2]=0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1078 handlemsg(hWnd, evPlayCD);
23147
21c35763b178 compilation fix for disabling dvd functionality, patch by <bangbangbear at gmail dot com>, slightly modified by me.
vayne
parents: 23091
diff changeset
1079 } else {
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1080 HANDLE searchhndl;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1081 WIN32_FIND_DATA finddata;
34092
dbf5042ab255 Don't use the Windows style path separator character in Win32 GUI.
ib
parents: 33965
diff changeset
1082 sprintf(searchpath, "%smpegav/*.dat", device + pos);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1083 if((searchhndl=FindFirstFile(searchpath, &finddata)) != INVALID_HANDLE_VALUE)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1084 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1085 mp_msg(MSGT_GPLAYER,MSGL_V, "Opening VCD/SVCD\n");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1086 gui->playlist->clear_playlist(gui->playlist);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1087 do
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1088 {
35521
baf53d200292 Avoid using local variables named filename.
ib
parents: 35501
diff changeset
1089 sprintf(file, "%smpegav/%s", device + pos, finddata.cFileName);
baf53d200292 Avoid using local variables named filename.
ib
parents: 35501
diff changeset
1090 gui->playlist->add_track(gui->playlist, file, NULL, NULL, 0);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1091 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1092 while(FindNextFile(searchhndl, &finddata));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1093 FindClose(searchhndl);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1094 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1095 gui->startplay(gui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1096 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1097 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1098 cdromdrive++;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1099 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1100 pos += strlen(device + pos) + 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1101 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1102 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1103 break;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1104 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1105 case WM_PAINT:
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1106 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1107 PAINTSTRUCT ps;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1108 RECT rd;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1109 HDC hdc = BeginPaint(hWnd, &ps);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1110 HDC hMemDC = CreateCompatibleDC(hdc);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1111 int width, height;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1112 GetClientRect(hWnd, &rd);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1113 width = rd.right - rd.left;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1114 height = rd.bottom - rd.top;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1115 SelectObject(hMemDC, get_bitmap(hWnd));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1116 BitBlt(hdc, 0, 0, width, height, hMemDC, 0, 0, SRCCOPY);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1117 DeleteDC(hMemDC);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1118 EndPaint(hWnd, &ps);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1119 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1120 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1121 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1122 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1123 return DefWindowProc(hWnd, message, wParam, lParam);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1124 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1125
27292
80ee781f6528 Remove unnecessary and troublesome inline
zuxy
parents: 27274
diff changeset
1126 static void startplay(gui_t *gui)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1127 {
34325
fc74085e2487 Fix bug in Win32 GUI introduced in r34403.
ib
parents: 34321
diff changeset
1128 gui->playercontrol(evLoadPlay);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1129 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1130
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1131 /* returns the bits per pixel of the desktop */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1132 /* the format is always in BGR byte order */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1133 static int GetDesktopBitsPerPixel(void)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1134 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1135 HWND desktop=GetDesktopWindow();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1136 HDC dc=GetDC(desktop);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1137 int bpp=GetDeviceCaps(dc, BITSPIXEL);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1138 ReleaseDC(desktop, dc);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1139 return bpp;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1140 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1141
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1142 /* unloads a skin and destroys its windows */
28051
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27391
diff changeset
1143 int destroy_window(gui_t *gui)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1144 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1145 RECT rd;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1146 unsigned int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1147
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1148 /* Save position: MSDN says don't pass workspace coordinates
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1149 * to CreateWindow() or SetWindowPos(), as both of which expect
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1150 * screen coordinates; resulting in the window appearing in the
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1151 * wrong location.
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1152 * -Erik
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1153 */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1154
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1155 /* main window position */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1156 if(IsIconic(gui->mainwindow))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1157 ShowWindow(gui->mainwindow, SW_SHOWNORMAL);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1158 GetWindowRect(gui->mainwindow, &rd);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1159 gui_main_pos_x = rd.left;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1160 gui_main_pos_y = rd.top;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1161
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1162 /* video window position */
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1163 if(IsIconic(gui->videowindow))
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1164 ShowWindow(gui->videowindow, SW_SHOWNORMAL);
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1165 GetWindowRect(gui->videowindow, &rd);
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1166 gui_video_pos_x = rd.left;
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1167 gui_video_pos_y = rd.top;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1168
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1169 for(i=0; i<gui->window_priv_count; i++)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1170 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1171 if(gui->window_priv[i]->bitmap)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1172 DeleteObject(gui->window_priv[i]->bitmap);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1173 free(gui->window_priv[i]);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1174 }
33770
6134493605c6 Use macro nfree() in Win32 GUI code.
ib
parents: 33761
diff changeset
1175 nfree(gui->window_priv);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1176 gui->window_priv_count = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1177
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1178 /* destroy the main window */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1179 if(gui->mainwindow)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1180 DestroyWindow(gui->mainwindow);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1181 gui->mainwindow = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1182
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1183 /* destroy the video window */
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1184 if(gui->videowindow)
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1185 DestroyWindow(gui->videowindow);
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1186 gui->videowindow = NULL;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1187
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1188 UnregisterClass(gui->classname, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1189 DestroyIcon(gui->icon);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1190
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1191 gui->skin->freeskin(gui->skin);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1192 gui->skin = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1193 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1194 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1195
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1196 static void create_menu(gui_t *gui)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1197 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1198 gui->diskmenu = CreatePopupMenu();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1199 gui->menu=CreatePopupMenu();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1200 gui->trayplaymenu = CreatePopupMenu();
34163
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1201 AppendMenu(gui->menu, MF_STRING | MF_POPUP, (UINT_PTR) gui->trayplaymenu, acp(MSGTR_MENU_Open));
36672
e1e9f2ea17c9 Revise GUI help message texts.
ib
parents: 36670
diff changeset
1202 AppendMenu(gui->trayplaymenu, MF_STRING, IDFILE_OPEN, acp(MSGTR_MENU_PlayFile"..."));
e1e9f2ea17c9 Revise GUI help message texts.
ib
parents: 36670
diff changeset
1203 AppendMenu(gui->trayplaymenu, MF_STRING, IDURL_OPEN, acp(MSGTR_MENU_PlayURL"..."));
e1e9f2ea17c9 Revise GUI help message texts.
ib
parents: 36670
diff changeset
1204 AppendMenu(gui->trayplaymenu, MF_STRING, IDDIR_OPEN, acp(MSGTR_MENU_PlayDirectory"..."));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1205 AppendMenu(gui->menu, MF_SEPARATOR, 0, 0);
34163
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1206 AppendMenu(gui->menu, MF_STRING | MF_POPUP, (UINT_PTR) gui->diskmenu, acp(MSGTR_MENU_PlayDisc));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1207 AppendMenu(gui->menu, MF_SEPARATOR, 0, 0);
36672
e1e9f2ea17c9 Revise GUI help message texts.
ib
parents: 36670
diff changeset
1208 AppendMenu(gui->menu, MF_STRING, IDSUBTITLE_OPEN, acp(MSGTR_MENU_LoadSubtitle"..."));
34163
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1209 AppendMenu(gui->menu, MF_STRING, ID_SKINBROWSER, acp(MSGTR_MENU_SkinBrowser));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1210 AppendMenu(gui->menu, MF_SEPARATOR, 0, 0);
34163
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1211 AppendMenu(gui->menu, MF_STRING, ID_PREFS, acp(MSGTR_MENU_Preferences));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1212 AppendMenu(gui->menu, MF_STRING, ID_CONSOLE, acp(MSGTR_MENU_DebugConsole));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1213 AppendMenu(gui->menu, MF_STRING, ID_ONLINEHELP, acp(MSGTR_MENU_OnlineHelp));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1214 AppendMenu(gui->menu, MF_STRING, IDHELP_ABOUT, acp(MSGTR_MENU_AboutMPlayer));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1215 AppendMenu(gui->menu, MF_SEPARATOR, 0, 0);
34163
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1216 AppendMenu(gui->menu, MF_STRING, IDEXIT, acp(MSGTR_MENU_Exit));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1217 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1218
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1219 static void create_traymenu(gui_t *gui)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1220 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1221 gui->traymenu = CreatePopupMenu();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1222 gui->trayplaybackmenu = CreatePopupMenu();
34163
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1223 AppendMenu(gui->traymenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->trayplaymenu, acp(MSGTR_MENU_Open));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1224 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0);
34163
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1225 AppendMenu(gui->traymenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->trayplaybackmenu, acp(MSGTR_MENU_Playing));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1226 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_SEEKB, acp(MSGTR_MENU_SeekBack));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1227 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_PTRACK, acp(MSGTR_MENU_PrevStream));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1228 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_PLAY, acp(MSGTR_MENU_Play "/" MSGTR_MENU_Pause));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1229 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_STOP, acp(MSGTR_MENU_Stop));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1230 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_NTRACK, acp(MSGTR_MENU_NextStream));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1231 AppendMenu(gui->trayplaybackmenu, MF_STRING, ID_SEEKF, acp(MSGTR_MENU_SeekForw));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1232 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0);
34163
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1233 AppendMenu(gui->traymenu, MF_STRING, ID_MUTE, acp(MSGTR_MENU_Mute));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1234 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0);
34163
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1235 AppendMenu(gui->traymenu, MF_STRING, IDSUBTITLE_OPEN, acp(MSGTR_MENU_LoadSubtitle));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1236 AppendMenu(gui->traymenu, MF_STRING, ID_PLAYLIST, acp(MSGTR_MENU_PlayList));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1237 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0);
34163
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1238 AppendMenu(gui->traymenu, MF_STRING, ID_SHOWHIDE, acp(MSGTR_MENU_ShowHide));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1239 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0);
34163
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1240 AppendMenu(gui->traymenu, MF_STRING, ID_PREFS, acp(MSGTR_MENU_Preferences));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1241 AppendMenu(gui->traymenu, MF_STRING, ID_CONSOLE, acp(MSGTR_MENU_DebugConsole));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1242 AppendMenu(gui->traymenu, MF_STRING, ID_ONLINEHELP, acp(MSGTR_MENU_OnlineHelp));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1243 AppendMenu(gui->traymenu, MF_STRING, IDHELP_ABOUT, acp(MSGTR_MENU_AboutMPlayer));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1244 AppendMenu(gui->traymenu, MF_SEPARATOR, 0, 0);
34163
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1245 AppendMenu(gui->traymenu, MF_STRING, IDEXIT, acp(MSGTR_MENU_Exit));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1246 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1247
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1248 static void create_videomenu(gui_t *gui)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1249 {
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1250 gui->videomenu = CreatePopupMenu();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1251 gui->dvdmenu = CreatePopupMenu();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1252 gui->aspectmenu = CreatePopupMenu();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1253 gui->subtitlemenu = CreatePopupMenu();
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1254 AppendMenu(gui->videomenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->trayplaymenu, acp(MSGTR_MENU_Open));
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1255 AppendMenu(gui->videomenu, MF_SEPARATOR, 0, 0);
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1256 AppendMenu(gui->videomenu, MF_STRING, ID_SEEKB, acp(MSGTR_MENU_SeekBack));
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1257 AppendMenu(gui->videomenu, MF_STRING, ID_PTRACK, acp(MSGTR_MENU_PrevStream));
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1258 AppendMenu(gui->videomenu, MF_STRING, ID_PLAY, acp(MSGTR_MENU_Play "/" MSGTR_MENU_Pause));
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1259 AppendMenu(gui->videomenu, MF_STRING, ID_STOP, acp(MSGTR_MENU_Stop));
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1260 AppendMenu(gui->videomenu, MF_STRING, ID_NTRACK, acp(MSGTR_MENU_NextStream));
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1261 AppendMenu(gui->videomenu, MF_STRING, ID_SEEKF, acp(MSGTR_MENU_SeekForw));
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1262 AppendMenu(gui->videomenu, MF_SEPARATOR, 0, 0);
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1263 AppendMenu(gui->videomenu, MF_STRING, ID_FULLSCREEN, acp(MSGTR_MENU_FullScreen));
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1264 AppendMenu(gui->videomenu, MF_STRING, ID_MUTE, acp(MSGTR_MENU_Mute));
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1265 AppendMenu(gui->videomenu, MF_SEPARATOR, 0, 0);
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1266 AppendMenu(gui->videomenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->aspectmenu, acp(MSGTR_MENU_AspectRatio));
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1267 AppendMenu(gui->videomenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->subtitlemenu, acp(MSGTR_MENU_Subtitles));
34454
5a45efc630b8 Remove all unnecessary #ifdefs from GUI code.
ib
parents: 34452
diff changeset
1268 #ifdef CONFIG_DVDREAD
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1269 AppendMenu(gui->videomenu, MF_STRING | MF_POPUP, (UINT_PTR) gui->dvdmenu, acp(MSGTR_MENU_DVD));
36672
e1e9f2ea17c9 Revise GUI help message texts.
ib
parents: 36670
diff changeset
1270 AppendMenu(gui->dvdmenu, MF_STRING | MF_GRAYED, ID_CHAPTERSEL, acp(MSGTR_SelectTitleChapter"..."));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1271 #endif
34163
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1272 AppendMenu(gui->subtitlemenu, MF_STRING, IDSUB_TOGGLE, acp(MSGTR_MENU_SubtitlesOnOff));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1273 AppendMenu(gui->subtitlemenu, MF_STRING, IDSUB_CYCLE, acp(MSGTR_MENU_SubtitleLanguages));
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1274 AppendMenu(gui->aspectmenu, MF_STRING, ID_ASPECT1, "16:9");
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1275 AppendMenu(gui->aspectmenu, MF_STRING, ID_ASPECT2, "4:3");
36278
32c93d835e3e Enable localization of ratio text.
ib
parents: 36277
diff changeset
1276 AppendMenu(gui->aspectmenu, MF_STRING, ID_ASPECT3, acp(MSGTR_MENU_235));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1277 AppendMenu(gui->aspectmenu, MF_SEPARATOR, 0, 0);
34163
95c396eb89ab Internationalize and localize the Win32 GUI.
ib
parents: 34162
diff changeset
1278 AppendMenu(gui->aspectmenu, MF_STRING, ID_ASPECT4, acp(MSGTR_MENU_Original));
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1279 AppendMenu(gui->videomenu, MF_SEPARATOR, 0, 0);
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1280 AppendMenu(gui->videomenu, MF_STRING, IDEXIT, acp(MSGTR_MENU_Exit));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1281 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1282
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1283 static void maketransparent(HWND hwnd, COLORREF crTransparent)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1284 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1285 HDC mdc = GetDC(hwnd);
34133
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1286 RECT wrd, crd;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1287 HRGN crRgnres, crRgn, crRgnTmp;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1288 int iX = 0, iY = 0, iLeftX = 0;
34133
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1289 int border, title;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1290 int width, height;
34133
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1291
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1292 GetWindowRect(hwnd, &wrd);
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1293 GetClientRect(hwnd, &crd);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1294
34133
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1295 border = (wrd.right - wrd.left - crd.right) / 2;
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1296 title = (wrd.bottom - wrd.top - crd.bottom) - border;
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1297
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1298 width = crd.right - crd.left;
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1299 height = crd.bottom - crd.top;
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1300
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1301 /* create the title bar region */
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1302 crRgn = CreateRectRgn(0, 0, width + border + border, title);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1303
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1304 /* Create a region from a bitmap with transparency colour of Purple */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1305 for (iY = -1; iY < height; iY++)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1306 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1307 do
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1308 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1309 /* skip over transparent pixels at start of lines */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1310 while (iX <= width && GetPixel(mdc,iX, iY) == crTransparent) iX++;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1311
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1312 /* remember this pixel */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1313 iLeftX = iX;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1314
34133
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1315 /* now find last non transparent pixel */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1316 while (iX <= width && GetPixel(mdc,iX, iY) != crTransparent) ++iX;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1317
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1318 /* create a temp region on this info */
34133
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1319 crRgnTmp = CreateRectRgn(iLeftX + border, iY + title, iX + border, iY + title + 1);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1320
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1321 /* combine into main region */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1322 crRgnres = crRgn;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1323 CombineRgn(crRgnres, crRgn, crRgnTmp, RGN_OR);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1324 crRgn = crRgnres;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1325
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1326 /* delete the temp region for next pass (otherwise you'll get an ASSERT) */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1327 DeleteObject(crRgnTmp);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1328 } while (iX < width);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1329 iX = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1330 }
34133
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1331
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1332 /* left border region */
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1333 crRgnTmp = CreateRectRgn(0, title, border, title + height);
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1334 CombineRgn(crRgn, crRgn, crRgnTmp, RGN_OR);
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1335 DeleteObject(crRgnTmp);
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1336
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1337 /* right border region */
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1338 crRgnTmp = CreateRectRgn(width + border, title, width + border + border, title + height);
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1339 CombineRgn(crRgn, crRgn, crRgnTmp, RGN_OR);
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1340 DeleteObject(crRgnTmp);
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1341
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1342 /* bottom region */
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1343 crRgnTmp = CreateRectRgn(0, title + height, width + border + border, title + height + border);
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1344 CombineRgn(crRgn, crRgn, crRgnTmp, RGN_OR);
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1345 DeleteObject(crRgnTmp);
568f3a8e1b89 Support transparency in decorated windows in the Win32 GUI.
ib
parents: 34092
diff changeset
1346
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1347 SetWindowRgn(hwnd, crRgn, TRUE);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1348 DeleteObject(crRgn);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1349 ReleaseDC(hwnd,mdc);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1350 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1351
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1352 static int window_render(gui_t *gui, HWND hWnd, HDC hdc, window_priv_t *priv, window *desc, BITMAPINFO binfo)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1353 {
34996
ebcc17a3c165 Fix compiler warnings (comparison between signed and unsigned).
ib
parents: 34995
diff changeset
1354 unsigned int i;
33638
dbca6aa18b50 Cast new user data value in SetWindowLongPtr() to LONG_PTR.
ib
parents: 33615
diff changeset
1355 SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR) gui);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1356 (gui->window_priv_count)++;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1357 gui->window_priv = realloc(gui->window_priv, sizeof(window_priv_t *) * gui->window_priv_count);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1358 priv = gui->window_priv[gui->window_priv_count - 1] = calloc(1, sizeof(window_priv_t));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1359 priv->hwnd = hWnd;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1360 priv->type = desc->type;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1361 priv->background = desc->base->bitmap[0];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1362 memcpy(&priv->img, desc->base->bitmap[0], sizeof(image));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1363 hdc = GetDC(hWnd);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1364 binfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1365 binfo.bmiHeader.biWidth = priv->img.width;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1366 binfo.bmiHeader.biHeight = -priv->img.height;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1367 binfo.bmiHeader.biPlanes = 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1368 binfo.bmiHeader.biSizeImage = priv->img.width * priv->img.height * (gui->screenbpp / 8);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1369 binfo.bmiHeader.biXPelsPerMeter = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1370 binfo.bmiHeader.biYPelsPerMeter = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1371 binfo.bmiHeader.biClrUsed = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1372 binfo.bmiHeader.biClrImportant = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1373 binfo.bmiHeader.biBitCount = gui->screenbpp;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1374 binfo.bmiHeader.biCompression = BI_RGB;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1375 priv->bitmap = CreateDIBSection(hdc, &binfo, DIB_RGB_COLORS, (void **) &priv->img.data, NULL, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1376 if(!priv->bitmap)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1377 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1378 mp_msg(MSGT_GPLAYER, MSGL_FATAL, "[GUI] unable to create bitmap for skinned window\n");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1379 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1380 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1381 memcpy(priv->img.data, desc->base->bitmap[0]->data, binfo.bmiHeader.biSizeImage);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1382 ReleaseDC(hWnd,hdc);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1383
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1384 for (i=0; i<gui->skin->widgetcount; i++)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1385 if(gui->skin->widgets[i]->window == desc->type)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1386 renderwidget(gui->skin, &priv->img, gui->skin->widgets[i], 1);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1387
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1388 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1389 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1390
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1391 /* creates the video window */
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1392 int create_videowindow(gui_t *gui)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1393 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1394 HINSTANCE instance = GetModuleHandle(NULL);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1395 WNDCLASS wc;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1396 RECT rect;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1397 DWORD style = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1398 HDC hdc = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1399 BITMAPINFO binfo;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1400 window_priv_t *priv = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1401 window *desc = NULL;
34996
ebcc17a3c165 Fix compiler warnings (comparison between signed and unsigned).
ib
parents: 34995
diff changeset
1402 unsigned int i;
ebcc17a3c165 Fix compiler warnings (comparison between signed and unsigned).
ib
parents: 34995
diff changeset
1403 int x = -1, y = -1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1404 vo_colorkey = 0xff00ff;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1405
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1406 for (i=0; i<gui->skin->windowcount; i++)
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1407 if(gui->skin->windows[i]->type == wiVideo)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1408 desc = gui->skin->windows[i];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1409
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1410 if(!desc)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1411 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1412 mp_msg(MSGT_GPLAYER, MSGL_FATAL, "[GUI] Invalid skin description\n");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1413 return 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1414 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1415
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1416 windowcolor = vo_colorkey;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1417 colorbrush = CreateSolidBrush(windowcolor);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1418 wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1419 wc.lpfnWndProc = VideoProc;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1420 wc.cbClsExtra = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1421 wc.cbWndExtra = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1422 wc.hInstance = instance;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1423 wc.hCursor = LoadCursor(NULL, IDC_ARROW);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1424 wc.hIcon = gui->icon;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1425 wc.hbrBackground = NULL; //WM_PAINT will handle background color switching;
34162
9b1b7d46b8d0 Change Win32 GUI window captions.
ib
parents: 34134
diff changeset
1426 wc.lpszClassName = "MPlayer - Video";
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1427 wc.lpszMenuName = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1428 RegisterClass(&wc);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1429
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1430 /* create the video window menu */
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1431 create_videomenu(gui);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1432
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1433 rect.top = rect.left = 100;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1434 rect.bottom = rect.top+desc->base->bitmap[0]->height;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1435 rect.right = rect.left+desc->base->bitmap[0]->width;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1436
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1437 /* our window aspect */
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1438 video_aspect = (float)(rect.right-rect.left)/(rect.bottom-rect.top);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1439
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1440 style = fullscreen?WS_VISIBLE | WS_POPUP:WS_OVERLAPPEDWINDOW | WS_SYSMENU | WS_MINIMIZEBOX;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1441 AdjustWindowRect(&rect, style, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1442
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1443 if (gui_video_pos_x >= 0)
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1444 x = gui_video_pos_x;
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1445 if (gui_video_pos_y >= 0)
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1446 y = gui_video_pos_y;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1447
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1448 /* out of bounds check */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1449 if (x <= -1 || (x+(rect.right-rect.left) > GetSystemMetrics(SM_CXSCREEN)))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1450 x = CW_USEDEFAULT;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1451 if (y <= -1 || (y+(rect.bottom-rect.top) > GetSystemMetrics(SM_CYSCREEN)))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1452 y = x;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1453
34994
b6ac08b94fc3 Go without pointless variable hWnd/hwnd.
ib
parents: 34993
diff changeset
1454 gui->videowindow = CreateWindowEx(0, "MPlayer - Video", "MPlayer - Video", style,
34995
4c589a12ff6c Cosmetic: Adjust indent.
ib
parents: 34994
diff changeset
1455 x, y, rect.right-rect.left, rect.bottom-rect.top,
4c589a12ff6c Cosmetic: Adjust indent.
ib
parents: 34994
diff changeset
1456 NULL, NULL, instance, NULL);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1457
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1458 /* load all the window images */
34994
b6ac08b94fc3 Go without pointless variable hWnd/hwnd.
ib
parents: 34993
diff changeset
1459 window_render(gui, gui->videowindow, hdc, priv, desc, binfo);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1460
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1461 /* enable drag and drop support */
34994
b6ac08b94fc3 Go without pointless variable hWnd/hwnd.
ib
parents: 34993
diff changeset
1462 DragAcceptFiles(gui->videowindow, TRUE);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1463
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1464 if(video_window)
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1465 WinID = gui->videowindow;
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1466 ShowWindow(gui->videowindow, SW_SHOW);
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1467 UpdateWindow(gui->videowindow);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1468 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1469 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1470
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1471 /* loads/updates a skin and creates windows for it */
28051
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 27391
diff changeset
1472 int create_window(gui_t *gui, char *skindir)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1473 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1474 HINSTANCE instance = GetModuleHandle(NULL);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1475 WNDCLASS wc;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1476 RECT rect;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1477 DWORD style = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1478 HDC hdc = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1479 BITMAPINFO binfo;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1480 window_priv_t *priv = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1481 window *desc = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1482 char dir[MAX_PATH];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1483 unsigned int i;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1484 int x = -1, y = -1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1485
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1486 /* destroy the current main window */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1487 if(gui->skin) destroy_window(gui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1488
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1489 /* get screenproperties */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1490 gui->screenbpp = GetDesktopBitsPerPixel();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1491 gui->screenw = GetSystemMetrics(SM_CXSCREEN);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1492 gui->screenh = GetSystemMetrics(SM_CYSCREEN);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1493
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1494 /* load the new skin */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1495 gui->skin = loadskin(skindir, gui->screenbpp);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1496 if(!gui->skin)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1497 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1498 mp_msg(MSGT_GPLAYER, MSGL_FATAL, "[GUI] fatal error during skinload\n");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1499 /* Set default Skin */
32537
8fa2f43cb760 Remove most of the NULL pointer check before free all over the code
cboesch
parents: 31532
diff changeset
1500 free(skinName);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1501 skinName = strdup("Blue");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1502 /* then force write conf */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1503 cfg_write();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1504 return 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1505 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1506
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1507 /* find the description of the mainwindow */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1508 for (i=0; i<gui->skin->windowcount; i++)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1509 if(gui->skin->windows[i]->type == wiMain)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1510 desc = gui->skin->windows[i];
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1511
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1512 if(!desc)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1513 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1514 mp_msg(MSGT_GPLAYER, MSGL_FATAL, "[GUI] Invalid skin description\n");
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1515 return 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1516 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1517
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1518 /* load the icon from the executable */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1519 GetModuleFileName(NULL, dir, MAX_PATH);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1520 gui->icon = ExtractIcon(instance, dir, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1521
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1522 /* create the window class */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1523 wc.style = CS_HREDRAW | CS_VREDRAW;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1524 wc.lpfnWndProc = EventProc;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1525 wc.cbClsExtra = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1526 wc.cbWndExtra = 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1527 wc.hInstance = instance;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1528 wc.hCursor = LoadCursor(NULL, IDC_ARROW);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1529 wc.hIcon = gui->icon;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1530 wc.hbrBackground = CreateSolidBrush(RGB(0, 0, 0));
36053
7affacef2f88 Define "MPlayer" string.
ib
parents: 35528
diff changeset
1531 wc.lpszClassName = gui->classname = MPlayer;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1532 wc.lpszMenuName = NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1533 RegisterClass(&wc);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1534
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1535 /* create a context menu */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1536 create_menu(gui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1537 /* create the systray menu */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1538 create_traymenu(gui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1539
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1540 /* create the mainwindow */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1541 /* TODO implement aligning as described in skin.html */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1542 rect.top = rect.left = 100;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1543 rect.bottom = rect.top+desc->base->bitmap[0]->height;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1544 rect.right = rect.left+desc->base->bitmap[0]->width;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1545 if(desc->decoration) style = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1546 else style = WS_POPUP | WS_SYSMENU;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1547
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1548 AdjustWindowRect(&rect, style, 0);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1549
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1550 /* Check if out of screen */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1551 if (gui_main_pos_x >= 0)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1552 x = gui_main_pos_x;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1553 if (gui_main_pos_y >= 0)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1554 y = gui_main_pos_y;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1555
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1556 if (x <= -1 || (x+(rect.right-rect.left) > GetSystemMetrics(SM_CXFULLSCREEN)))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1557 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1558 x = (GetSystemMetrics(SM_CXSCREEN) / 2) - ((rect.right-rect.left) / 2);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1559 gui_main_pos_x = x;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1560 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1561 if (y <= -1 || (y+(rect.bottom-rect.top) > GetSystemMetrics(SM_CYFULLSCREEN)))
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1562 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1563 y = ((GetSystemMetrics(SM_CYSCREEN)-40) - (rect.bottom-rect.top));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1564 gui_main_pos_y = y;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1565 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1566
36053
7affacef2f88 Define "MPlayer" string.
ib
parents: 35528
diff changeset
1567 gui->mainwindow = CreateWindowEx(0, gui->classname, MPlayer, style,
34995
4c589a12ff6c Cosmetic: Adjust indent.
ib
parents: 34994
diff changeset
1568 x, y, rect.right-rect.left, rect.bottom-rect.top,
4c589a12ff6c Cosmetic: Adjust indent.
ib
parents: 34994
diff changeset
1569 NULL, NULL, instance, NULL);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1570
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1571 /* set the systray icon properties */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1572 nid.cbSize = sizeof(NOTIFYICONDATA);
34994
b6ac08b94fc3 Go without pointless variable hWnd/hwnd.
ib
parents: 34993
diff changeset
1573 nid.hWnd = gui->mainwindow;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1574 nid.uID = 1;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1575 nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1576 nid.uCallbackMessage = WM_SYSTRAY;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1577 nid.hIcon = gui->icon;
36053
7affacef2f88 Define "MPlayer" string.
ib
parents: 35528
diff changeset
1578 strcpy(nid.szTip, MPlayer);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1579
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1580 /* register the systray icon */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1581 Shell_NotifyIcon(NIM_ADD, &nid);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1582
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1583 /* load all the window images */
34994
b6ac08b94fc3 Go without pointless variable hWnd/hwnd.
ib
parents: 34993
diff changeset
1584 window_render(gui, gui->mainwindow, hdc, priv, desc, binfo);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1585
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1586 /* enable drag and drop support */
34994
b6ac08b94fc3 Go without pointless variable hWnd/hwnd.
ib
parents: 34993
diff changeset
1587 DragAcceptFiles(gui->mainwindow, TRUE);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1588
34994
b6ac08b94fc3 Go without pointless variable hWnd/hwnd.
ib
parents: 34993
diff changeset
1589 updatedisplay(gui, gui->mainwindow);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1590
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1591 /* display */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1592 ShowWindow(gui->mainwindow, SW_SHOW);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1593 UpdateWindow(gui->mainwindow);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1594 maketransparent(gui->mainwindow, RGB(255, 0, 255));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1595 return 0;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1596 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1597
33781
cdd4fc0616b6 Fix memory leak in the Win32 GUI.
ib
parents: 33770
diff changeset
1598 gui_t *create_gui(char *skindir, void (*playercontrol)(int event))
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1599 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1600 gui_t *gui = calloc(1, sizeof(gui_t));
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1601 char temp[MAX_PATH];
36053
7affacef2f88 Define "MPlayer" string.
ib
parents: 35528
diff changeset
1602 HWND runningmplayer = FindWindow(MPlayer, MPlayer);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1603
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1604 if(runningmplayer)
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1605 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1606 free(gui);
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1607 return NULL;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1608 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1609
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1610 gui->startplay = startplay;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1611 gui->playercontrol = playercontrol;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1612 gui->uninit = uninit;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1613 gui->updatedisplay = updatedisplay;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1614
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1615 /* create playlist */
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1616 gui->playlist = create_playlist();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1617
34092
dbf5042ab255 Don't use the Windows style path separator character in Win32 GUI.
ib
parents: 33965
diff changeset
1618 sprintf(temp, "%s/%s", skindir, skinName);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1619 if(create_window(gui, temp)) return NULL;
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
1620 if(create_videowindow(gui)) return NULL;
35001
05d54ab2ba5c Add check-mark for menu item "Debug Console".
ib
parents: 34996
diff changeset
1621 if(console) console_toggle(gui);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1622 return gui;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
1623 }