/[EmuXPortal]/branches/mono/EmuXPortal/Form1.cs
ViewVC logotype

Diff of /branches/mono/EmuXPortal/Form1.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 160 by william, Tue Oct 8 18:39:46 2013 UTC revision 168 by william, Mon Aug 4 03:27:49 2014 UTC
# Line 46  namespace EmuXPortal Line 46  namespace EmuXPortal
46              c.BorderStyle = BorderStyle.FixedSingle;              c.BorderStyle = BorderStyle.FixedSingle;
47              CurrentPlatformControl = c;              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)          void platform_ctrl_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
221          {          {
222              PlatformControl c = sender as PlatformControl;              PlatformControl c = sender as PlatformControl;
# Line 211  namespace EmuXPortal Line 381  namespace EmuXPortal
381              }              }
382              return s;              return s;
383          }          }
384          void game_ctrl_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)        
         {  
             GameControl c = sender as GameControl;  
   
             int changeAmount = 0;  
             int currentPosition = 0;  
             if (e.KeyCode == Keys.Home)  
             {  
                 rom_flow.Controls[0].Select();  
                 rom_flow.ScrollControlIntoView(rom_flow.Controls[0]);  
             }  
             if (e.KeyCode == Keys.End)  
             {  
                 rom_flow.Controls[rom_flow.Controls.Count - 1].Select();  
                 rom_flow.ScrollControlIntoView(rom_flow.Controls[rom_flow.Controls.Count - 1]);  
             }  
             if (e.KeyCode == Keys.PageUp)  
             {  
                 changeAmount = rom_flow.VerticalScroll.LargeChange;  
                 currentPosition = rom_flow.VerticalScroll.Value;  
                 if ((currentPosition - changeAmount) > rom_flow.VerticalScroll.Minimum)  
                 {  
                     try  
                     {  
                         rom_flow.VerticalScroll.Value += changeAmount;  
                     }  
                     catch  
                     {  
                         rom_flow.Controls[0].Select();  
                         rom_flow.ScrollControlIntoView(platform_flow.Controls[0]);  
                         rom_flow.PerformLayout();  
                         return;  
                     }  
                 }  
                 else  
                 {  
                     rom_flow.Controls[0].Select();  
                     rom_flow.ScrollControlIntoView(platform_flow.Controls[0]);  
                 }  
                 GameControl s = game_ctrl_get_last_visible();  
                 s.Select();  
                 rom_flow.ScrollControlIntoView(s);  
                 rom_flow.PerformLayout();  
             }  
             if (e.KeyCode == Keys.PageDown)  
             {  
                 changeAmount = rom_flow.VerticalScroll.LargeChange;  
                 currentPosition = rom_flow.VerticalScroll.Value;  
                 if ((currentPosition - changeAmount) < rom_flow.VerticalScroll.Maximum)  
                 {  
                     rom_flow.VerticalScroll.Value += changeAmount;  
                 }  
                 else  
                 {  
                     rom_flow.VerticalScroll.Value = rom_flow.VerticalScroll.Maximum;  
                 }  
                 GameControl s = game_ctrl_get_last_visible();  
                 s.Select();  
                 rom_flow.ScrollControlIntoView(s);  
                 rom_flow.PerformLayout();  
             }  
   
             if (e.KeyCode == Keys.Enter)  
             {  
                 IRomConfig config = c.Tag as IRomConfig;  
   
                 Process p = new Process();  
   
                 p.StartInfo.FileName = config.Config.GameExe == "" ? config.Config.EmuPath : config.Config.GameExe;  
                 p.StartInfo.Arguments = config.Config.GameExeArgs == "" ? EmuConfigLoader.GetEMUOptions(log, config) : config.Config.GameExeArgs;  
                 p.Start();  
   
                 // minimize EmuXPortal  
                 this.WindowState = FormWindowState.Minimized;  
                 // wait for exit of game  
                 p.WaitForExit();  
                 // maximize EmuXPortal  
                 this.WindowState = FormWindowState.Maximized;  
             }  
             if (e.KeyCode == Keys.Back)  
             {  
                 rom_flow.Visible = false;  
                 platform_flow.Visible = true;  
             }  
   
             if ( (e.KeyCode >= Keys.A && e.KeyCode <= Keys.Z) ||  
                 (e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9))  
             {  
                 char t = (char)e.KeyCode;  
                 GameControl ctrl = (rom_flow.GetNextControl(CurrentPlatformControl, true) as GameControl);  
                 if (ctrl == null) { ctrl = (rom_flow.GetNextControl(rom_flow.Controls[0], true) as GameControl); }  
                 bool found = false;  
                 GameControl pc = CurrentGameControl;  
                 bool wrapped = false;  
                 bool not_found = true;  
                 while (!found)  
                 {  
                     if (wrapped)  
                     {  
                         foreach (Control ctl in rom_flow.Controls)  
                         {  
                             GameControl p_ctl = ctl as GameControl; if (p_ctl.GameName.ToLower().StartsWith(t.ToString().ToLower())) { not_found = false; }  
                         }  
                         if (not_found) { found = true; }  
                     }  
                     ctrl = (rom_flow.GetNextControl(pc, true) as GameControl);  
                     if (ctrl == null)  
                     {  
                         ctrl = rom_flow.Controls[0] as GameControl;  
                         wrapped = true;  
                     }  
                     if (ctrl.GameName.ToLower().StartsWith(t.ToString().ToLower()))  
                     {  
                         rom_flow.ScrollControlIntoView(ctrl);  
                         ctrl.Select();  
                         found = true;  
                     }  
                     pc = ctrl;  
                 }            
             }  
         }  
385    
386          #region Background Workers          #region Background Workers
387    

Legend:
Removed from v.160  
changed lines
  Added in v.168

  ViewVC Help
Powered by ViewVC 1.1.22