ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/EmuXPortal/trunk/EmuXPortal/Form1.cs
(Generate patch)

Comparing trunk/EmuXPortal/Form1.cs (file contents):
Revision 167 by william, Tue Oct 8 18:39:46 2013 UTC vs.
Revision 168 by william, Mon Aug 4 03:27:49 2014 UTC

# Line 46 | Line 46 | namespace EmuXPortal
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;
# Line 211 | Line 381 | namespace EmuXPortal
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  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines