annotate gui/win32/gui.c @ 35429:3a9048421524

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