1 ////////////////////////////////////////////////////////////////////////////////////////
2 //
3 // Nestopia - NES/Famicom emulator written in C++
4 //
5 // Copyright (C) 2003-2008 Martin Freij
6 //
7 // This file is part of Nestopia.
8 //
9 // Nestopia is free software; you can redistribute it and/or modify
10 // it under the terms of the GNU General Public License as published by
11 // the Free Software Foundation; either version 2 of the License, or
12 // (at your option) any later version.
13 //
14 // Nestopia is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 // GNU General Public License for more details.
18 //
19 // You should have received a copy of the GNU General Public License
20 // along with Nestopia; if not, write to the Free Software
21 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
22 //
23 ////////////////////////////////////////////////////////////////////////////////////////
24 
25 #ifndef NST_DIALOG_FDS_H
26 #define NST_DIALOG_FDS_H
27 
28 #pragma once
29 
30 #include "NstWindowDialog.hpp"
31 
32 namespace Nestopia
33 {
34 	namespace Window
35 	{
36 		class Fds
37 		{
38 		public:
39 
40 			Fds(Managers::Emulator&,const Configuration&,const Managers::Paths&);
41 			~Fds();
42 
43 			void Save(Configuration&) const;
44 			void QueryBiosFile();
45 
46 			enum Led
47 			{
48 				LED_DISABLED,
49 				LED_SCREEN,
50 				LED_NUM_LOCK,
51 				LED_CAPS_LOCK,
52 				LED_SCROLL_LOCK
53 			};
54 
55 		private:
56 
57 			struct Handlers;
58 
59 			void SubmitBios();
60 
61 			ibool OnInitDialog (Param&);
62 			ibool OnCmdBrowse  (Param&);
63 			ibool OnCmdDefault (Param&);
64 			ibool OnCmdClear   (Param&);
65 			ibool OnCmdOk      (Param&);
66 
67 			Dialog dialog;
68 
69 			struct
70 			{
71 				Led led;
72 				Path bios;
73 			}   settings;
74 
75 			Managers::Emulator& emulator;
76 			const Managers::Paths& paths;
77 
78 		public:
79 
Open()80 			void Open()
81 			{
82 				dialog.Open();
83 			}
84 
GetLed() const85 			Led GetLed() const
86 			{
87 				return settings.led;
88 			}
89 		};
90 	}
91 }
92 
93 #endif
94