| 
									
										
										
										
											2010-12-05 15:59:11 +00:00
										 |  |  | // Copyright (C) 2003 Dolphin Project.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // This program is free software: you can redistribute it and/or modify
 | 
					
						
							|  |  |  | // it under the terms of the GNU General Public License as published by
 | 
					
						
							|  |  |  | // the Free Software Foundation, version 2.0.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // This program is distributed in the hope that it will be useful,
 | 
					
						
							|  |  |  | // but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					
						
							|  |  |  | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					
						
							|  |  |  | // GNU General Public License 2.0 for more details.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // A copy of the GPL 2.0 should have been included with the program.
 | 
					
						
							|  |  |  | // If not, see http://www.gnu.org/licenses/
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Official SVN repository and contact information can be found at
 | 
					
						
							|  |  |  | // http://code.google.com/p/dolphin-emu/
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef _PLUGIN_VIDEOSOFTWARE_CONFIG_DIAG_H_
 | 
					
						
							|  |  |  | #define _PLUGIN_VIDEOSOFTWARE_CONFIG_DIAG_H_
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <vector>
 | 
					
						
							|  |  |  | #include <string>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-01-29 06:26:03 +00:00
										 |  |  | #include "SWVideoConfig.h"
 | 
					
						
							| 
									
										
										
										
											2010-12-05 15:59:11 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include <wx/wx.h>
 | 
					
						
							|  |  |  | #include <wx/textctrl.h>
 | 
					
						
							|  |  |  | #include <wx/button.h>
 | 
					
						
							|  |  |  | #include <wx/stattext.h>
 | 
					
						
							|  |  |  | #include <wx/combobox.h>
 | 
					
						
							|  |  |  | #include <wx/checkbox.h>
 | 
					
						
							|  |  |  | #include <wx/notebook.h>
 | 
					
						
							|  |  |  | #include <wx/panel.h>
 | 
					
						
							|  |  |  | #include <wx/spinctrl.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <typename W> | 
					
						
							|  |  |  | class BoolSetting : public W | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  | 	BoolSetting(wxWindow* parent, const wxString& label, bool &setting, bool reverse = false, long style = 0); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	void UpdateValue(wxCommandEvent& ev) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		m_setting = (ev.GetInt() != 0) ^ m_reverse; | 
					
						
							|  |  |  | 		ev.Skip(); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  | 	bool& m_setting; | 
					
						
							|  |  |  | 	const bool m_reverse; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | template <typename T> | 
					
						
							|  |  |  | class IntegerSetting : public wxSpinCtrl | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  | 	IntegerSetting(wxWindow* parent, const wxString& label, T& setting, int minVal, int maxVal, long style = 0); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	void UpdateValue(wxCommandEvent& ev) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		m_setting = ev.GetInt(); | 
					
						
							|  |  |  | 		ev.Skip(); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | private: | 
					
						
							|  |  |  | 	T& m_setting; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef BoolSetting<wxCheckBox> SettingCheckBox; | 
					
						
							|  |  |  | typedef IntegerSetting<u32> U32Setting; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class VideoConfigDialog : public wxDialog | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  | 	VideoConfigDialog(wxWindow* parent, const std::string &title, const std::string& ininame); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | protected: | 
					
						
							|  |  |  | 	void Event_ClickClose(wxCommandEvent&); | 
					
						
							|  |  |  | 	void Event_Close(wxCloseEvent&); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-01-28 18:39:30 +00:00
										 |  |  | 	SWVideoConfig& vconfig; | 
					
						
							| 
									
										
										
										
											2010-12-05 15:59:11 +00:00
										 |  |  | 	std::string ininame; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 |