46 |
|
c.BorderStyle = BorderStyle.FixedSingle; |
47 |
|
CurrentPlatformControl = c; |
48 |
|
} |
49 |
+ |
void game_ctrl_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) |
50 |
+ |
{ |
51 |
+ |
GameControl c = sender as GameControl; |
52 |
+ |
|
53 |
+ |
int changeAmount = 0; |
54 |
+ |
int currentPosition = 0; |
55 |
+ |
|
56 |
+ |
if (e.KeyCode == Keys.F && e.Modifiers.HasFlag(Keys.Control)) |
57 |
+ |
{ |
58 |
+ |
IRomConfig config = c.Tag as IRomConfig; |
59 |
+ |
if (config == null) |
60 |
+ |
{ |
61 |
+ |
log.WriteLine("Unable to add/remove from/to favorites (config is null): {0} [{1}]", config.RomTitle, config.RomFile); |
62 |
+ |
} |
63 |
+ |
else |
64 |
+ |
{ |
65 |
+ |
var isFavorite = RomFavorite.IsFavorite(config); |
66 |
+ |
if (isFavorite) |
67 |
+ |
{ |
68 |
+ |
// add to favorites |
69 |
+ |
log.WriteLine("Removing from favorites: {0} [{1}]", config.RomTitle, config.RomFile); |
70 |
+ |
if (!RomFavorite.RemoveFavorite(config)) |
71 |
+ |
{ |
72 |
+ |
log.WriteLine("Failed to remove from favorites: {0} [{1}]", config.RomTitle, config.RomFile); |
73 |
+ |
} |
74 |
+ |
else |
75 |
+ |
{ |
76 |
+ |
log.WriteLine("Removed from favorites: {0} [{1}]", config.RomTitle, config.RomFile); |
77 |
+ |
} |
78 |
+ |
} |
79 |
+ |
else |
80 |
+ |
{ |
81 |
+ |
// add to favorites |
82 |
+ |
log.WriteLine("Adding to favorites: {0} [{1}]", config.RomTitle, config.RomFile); |
83 |
+ |
if (!RomFavorite.AddFavorite(config)) |
84 |
+ |
{ |
85 |
+ |
log.WriteLine("Failed to add to favorites: {0} [{1}]", config.RomTitle, config.RomFile); |
86 |
+ |
} |
87 |
+ |
else |
88 |
+ |
{ |
89 |
+ |
log.WriteLine("Added to favorites: {0} [{1}]", config.RomTitle, config.RomFile); |
90 |
+ |
} |
91 |
+ |
} |
92 |
+ |
log.WriteLine("Updateing favorites"); |
93 |
+ |
if (!RomFavorite.UpdateFavorites()) |
94 |
+ |
{ |
95 |
+ |
log.WriteLine("Failed to update favorites"); |
96 |
+ |
} |
97 |
+ |
else |
98 |
+ |
{ |
99 |
+ |
log.WriteLine("Updated favorites"); |
100 |
+ |
} |
101 |
+ |
} |
102 |
+ |
return; // stop processing other keys |
103 |
|
|
104 |
+ |
} |
105 |
+ |
if (e.KeyCode == Keys.Home) |
106 |
+ |
{ |
107 |
+ |
rom_flow.Controls[0].Select(); |
108 |
+ |
rom_flow.ScrollControlIntoView(rom_flow.Controls[0]); |
109 |
+ |
} |
110 |
+ |
if (e.KeyCode == Keys.End) |
111 |
+ |
{ |
112 |
+ |
rom_flow.Controls[rom_flow.Controls.Count - 1].Select(); |
113 |
+ |
rom_flow.ScrollControlIntoView(rom_flow.Controls[rom_flow.Controls.Count - 1]); |
114 |
+ |
} |
115 |
+ |
if (e.KeyCode == Keys.PageUp) |
116 |
+ |
{ |
117 |
+ |
changeAmount = rom_flow.VerticalScroll.LargeChange; |
118 |
+ |
currentPosition = rom_flow.VerticalScroll.Value; |
119 |
+ |
if ((currentPosition - changeAmount) > rom_flow.VerticalScroll.Minimum) |
120 |
+ |
{ |
121 |
+ |
try |
122 |
+ |
{ |
123 |
+ |
rom_flow.VerticalScroll.Value += changeAmount; |
124 |
+ |
} |
125 |
+ |
catch |
126 |
+ |
{ |
127 |
+ |
rom_flow.Controls[0].Select(); |
128 |
+ |
rom_flow.ScrollControlIntoView(platform_flow.Controls[0]); |
129 |
+ |
rom_flow.PerformLayout(); |
130 |
+ |
return; |
131 |
+ |
} |
132 |
+ |
} |
133 |
+ |
else |
134 |
+ |
{ |
135 |
+ |
rom_flow.Controls[0].Select(); |
136 |
+ |
rom_flow.ScrollControlIntoView(platform_flow.Controls[0]); |
137 |
+ |
} |
138 |
+ |
GameControl s = game_ctrl_get_last_visible(); |
139 |
+ |
s.Select(); |
140 |
+ |
rom_flow.ScrollControlIntoView(s); |
141 |
+ |
rom_flow.PerformLayout(); |
142 |
+ |
} |
143 |
+ |
if (e.KeyCode == Keys.PageDown) |
144 |
+ |
{ |
145 |
+ |
changeAmount = rom_flow.VerticalScroll.LargeChange; |
146 |
+ |
currentPosition = rom_flow.VerticalScroll.Value; |
147 |
+ |
if ((currentPosition - changeAmount) < rom_flow.VerticalScroll.Maximum) |
148 |
+ |
{ |
149 |
+ |
rom_flow.VerticalScroll.Value += changeAmount; |
150 |
+ |
} |
151 |
+ |
else |
152 |
+ |
{ |
153 |
+ |
rom_flow.VerticalScroll.Value = rom_flow.VerticalScroll.Maximum; |
154 |
+ |
} |
155 |
+ |
GameControl s = game_ctrl_get_last_visible(); |
156 |
+ |
s.Select(); |
157 |
+ |
rom_flow.ScrollControlIntoView(s); |
158 |
+ |
rom_flow.PerformLayout(); |
159 |
+ |
} |
160 |
+ |
|
161 |
+ |
if (e.KeyCode == Keys.Enter) |
162 |
+ |
{ |
163 |
+ |
IRomConfig config = c.Tag as IRomConfig; |
164 |
+ |
|
165 |
+ |
Process p = new Process(); |
166 |
+ |
|
167 |
+ |
p.StartInfo.FileName = config.Config.GameExe == "" ? config.Config.EmuPath : config.Config.GameExe; |
168 |
+ |
p.StartInfo.Arguments = config.Config.GameExeArgs == "" ? EmuConfigLoader.GetEMUOptions(log, config) : config.Config.GameExeArgs; |
169 |
+ |
p.Start(); |
170 |
+ |
|
171 |
+ |
// minimize EmuXPortal |
172 |
+ |
this.WindowState = FormWindowState.Minimized; |
173 |
+ |
// wait for exit of game |
174 |
+ |
p.WaitForExit(); |
175 |
+ |
// maximize EmuXPortal |
176 |
+ |
this.WindowState = FormWindowState.Maximized; |
177 |
+ |
} |
178 |
+ |
if (e.KeyCode == Keys.Back) |
179 |
+ |
{ |
180 |
+ |
rom_flow.Visible = false; |
181 |
+ |
platform_flow.Visible = true; |
182 |
+ |
} |
183 |
+ |
|
184 |
+ |
if ((e.KeyCode >= Keys.A && e.KeyCode <= Keys.Z) || |
185 |
+ |
(e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9)) |
186 |
+ |
{ |
187 |
+ |
char t = (char)e.KeyCode; |
188 |
+ |
GameControl ctrl = (rom_flow.GetNextControl(CurrentPlatformControl, true) as GameControl); |
189 |
+ |
if (ctrl == null) { ctrl = (rom_flow.GetNextControl(rom_flow.Controls[0], true) as GameControl); } |
190 |
+ |
bool found = false; |
191 |
+ |
GameControl pc = CurrentGameControl; |
192 |
+ |
bool wrapped = false; |
193 |
+ |
bool not_found = true; |
194 |
+ |
while (!found) |
195 |
+ |
{ |
196 |
+ |
if (wrapped) |
197 |
+ |
{ |
198 |
+ |
foreach (Control ctl in rom_flow.Controls) |
199 |
+ |
{ |
200 |
+ |
GameControl p_ctl = ctl as GameControl; if (p_ctl.GameName.ToLower().StartsWith(t.ToString().ToLower())) { not_found = false; } |
201 |
+ |
} |
202 |
+ |
if (not_found) { found = true; } |
203 |
+ |
} |
204 |
+ |
ctrl = (rom_flow.GetNextControl(pc, true) as GameControl); |
205 |
+ |
if (ctrl == null) |
206 |
+ |
{ |
207 |
+ |
ctrl = rom_flow.Controls[0] as GameControl; |
208 |
+ |
wrapped = true; |
209 |
+ |
} |
210 |
+ |
if (ctrl.GameName.ToLower().StartsWith(t.ToString().ToLower())) |
211 |
+ |
{ |
212 |
+ |
rom_flow.ScrollControlIntoView(ctrl); |
213 |
+ |
ctrl.Select(); |
214 |
+ |
found = true; |
215 |
+ |
} |
216 |
+ |
pc = ctrl; |
217 |
+ |
} |
218 |
+ |
} |
219 |
+ |
} |
220 |
|
void platform_ctrl_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) |
221 |
|
{ |
222 |
|
PlatformControl c = sender as PlatformControl; |
381 |
|
} |
382 |
|
return s; |
383 |
|
} |
384 |
< |
void game_ctrl_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) |
215 |
< |
{ |
216 |
< |
GameControl c = sender as GameControl; |
217 |
< |
|
218 |
< |
int changeAmount = 0; |
219 |
< |
int currentPosition = 0; |
220 |
< |
if (e.KeyCode == Keys.Home) |
221 |
< |
{ |
222 |
< |
rom_flow.Controls[0].Select(); |
223 |
< |
rom_flow.ScrollControlIntoView(rom_flow.Controls[0]); |
224 |
< |
} |
225 |
< |
if (e.KeyCode == Keys.End) |
226 |
< |
{ |
227 |
< |
rom_flow.Controls[rom_flow.Controls.Count - 1].Select(); |
228 |
< |
rom_flow.ScrollControlIntoView(rom_flow.Controls[rom_flow.Controls.Count - 1]); |
229 |
< |
} |
230 |
< |
if (e.KeyCode == Keys.PageUp) |
231 |
< |
{ |
232 |
< |
changeAmount = rom_flow.VerticalScroll.LargeChange; |
233 |
< |
currentPosition = rom_flow.VerticalScroll.Value; |
234 |
< |
if ((currentPosition - changeAmount) > rom_flow.VerticalScroll.Minimum) |
235 |
< |
{ |
236 |
< |
try |
237 |
< |
{ |
238 |
< |
rom_flow.VerticalScroll.Value += changeAmount; |
239 |
< |
} |
240 |
< |
catch |
241 |
< |
{ |
242 |
< |
rom_flow.Controls[0].Select(); |
243 |
< |
rom_flow.ScrollControlIntoView(platform_flow.Controls[0]); |
244 |
< |
rom_flow.PerformLayout(); |
245 |
< |
return; |
246 |
< |
} |
247 |
< |
} |
248 |
< |
else |
249 |
< |
{ |
250 |
< |
rom_flow.Controls[0].Select(); |
251 |
< |
rom_flow.ScrollControlIntoView(platform_flow.Controls[0]); |
252 |
< |
} |
253 |
< |
GameControl s = game_ctrl_get_last_visible(); |
254 |
< |
s.Select(); |
255 |
< |
rom_flow.ScrollControlIntoView(s); |
256 |
< |
rom_flow.PerformLayout(); |
257 |
< |
} |
258 |
< |
if (e.KeyCode == Keys.PageDown) |
259 |
< |
{ |
260 |
< |
changeAmount = rom_flow.VerticalScroll.LargeChange; |
261 |
< |
currentPosition = rom_flow.VerticalScroll.Value; |
262 |
< |
if ((currentPosition - changeAmount) < rom_flow.VerticalScroll.Maximum) |
263 |
< |
{ |
264 |
< |
rom_flow.VerticalScroll.Value += changeAmount; |
265 |
< |
} |
266 |
< |
else |
267 |
< |
{ |
268 |
< |
rom_flow.VerticalScroll.Value = rom_flow.VerticalScroll.Maximum; |
269 |
< |
} |
270 |
< |
GameControl s = game_ctrl_get_last_visible(); |
271 |
< |
s.Select(); |
272 |
< |
rom_flow.ScrollControlIntoView(s); |
273 |
< |
rom_flow.PerformLayout(); |
274 |
< |
} |
275 |
< |
|
276 |
< |
if (e.KeyCode == Keys.Enter) |
277 |
< |
{ |
278 |
< |
IRomConfig config = c.Tag as IRomConfig; |
279 |
< |
|
280 |
< |
Process p = new Process(); |
281 |
< |
|
282 |
< |
p.StartInfo.FileName = config.Config.GameExe == "" ? config.Config.EmuPath : config.Config.GameExe; |
283 |
< |
p.StartInfo.Arguments = config.Config.GameExeArgs == "" ? EmuConfigLoader.GetEMUOptions(log, config) : config.Config.GameExeArgs; |
284 |
< |
p.Start(); |
285 |
< |
|
286 |
< |
// minimize EmuXPortal |
287 |
< |
this.WindowState = FormWindowState.Minimized; |
288 |
< |
// wait for exit of game |
289 |
< |
p.WaitForExit(); |
290 |
< |
// maximize EmuXPortal |
291 |
< |
this.WindowState = FormWindowState.Maximized; |
292 |
< |
} |
293 |
< |
if (e.KeyCode == Keys.Back) |
294 |
< |
{ |
295 |
< |
rom_flow.Visible = false; |
296 |
< |
platform_flow.Visible = true; |
297 |
< |
} |
298 |
< |
|
299 |
< |
if ( (e.KeyCode >= Keys.A && e.KeyCode <= Keys.Z) || |
300 |
< |
(e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9)) |
301 |
< |
{ |
302 |
< |
char t = (char)e.KeyCode; |
303 |
< |
GameControl ctrl = (rom_flow.GetNextControl(CurrentPlatformControl, true) as GameControl); |
304 |
< |
if (ctrl == null) { ctrl = (rom_flow.GetNextControl(rom_flow.Controls[0], true) as GameControl); } |
305 |
< |
bool found = false; |
306 |
< |
GameControl pc = CurrentGameControl; |
307 |
< |
bool wrapped = false; |
308 |
< |
bool not_found = true; |
309 |
< |
while (!found) |
310 |
< |
{ |
311 |
< |
if (wrapped) |
312 |
< |
{ |
313 |
< |
foreach (Control ctl in rom_flow.Controls) |
314 |
< |
{ |
315 |
< |
GameControl p_ctl = ctl as GameControl; if (p_ctl.GameName.ToLower().StartsWith(t.ToString().ToLower())) { not_found = false; } |
316 |
< |
} |
317 |
< |
if (not_found) { found = true; } |
318 |
< |
} |
319 |
< |
ctrl = (rom_flow.GetNextControl(pc, true) as GameControl); |
320 |
< |
if (ctrl == null) |
321 |
< |
{ |
322 |
< |
ctrl = rom_flow.Controls[0] as GameControl; |
323 |
< |
wrapped = true; |
324 |
< |
} |
325 |
< |
if (ctrl.GameName.ToLower().StartsWith(t.ToString().ToLower())) |
326 |
< |
{ |
327 |
< |
rom_flow.ScrollControlIntoView(ctrl); |
328 |
< |
ctrl.Select(); |
329 |
< |
found = true; |
330 |
< |
} |
331 |
< |
pc = ctrl; |
332 |
< |
} |
333 |
< |
} |
334 |
< |
} |
384 |
> |
|
385 |
|
|
386 |
|
#region Background Workers |
387 |
|
|