From: S?bastien G. <kx...@us...> - 2004-05-10 14:59:54
|
Update of /cvsroot/vba/VisualBoyAdvance/src/gtk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10035 Modified Files: Makefile.am Makefile.in sigccompat.h system.cpp vba.glade window.cpp window.h windowcallbacks.cpp Log Message: Added joypad selection/configuration support, and autofire. Index: sigccompat.h =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/sigccompat.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** sigccompat.h 1 May 2004 14:03:59 -0000 1.1 --- sigccompat.h 10 May 2004 14:59:43 -0000 1.2 *************** *** 50,53 **** --- 50,59 ---- (dynamic_cast< T_obj1&>(_A_obj), _A_func); } + template <class T_return, class T_arg1,class T_arg2,class T_arg3, class T_obj1, class T_obj2> + inline Slot3<T_return, T_arg1,T_arg2,T_arg3> + slot( T_obj1& _A_obj, T_return (T_obj2::*_A_func)(T_arg1,T_arg2,T_arg3) ) + { return ::sigc::bound_mem_functor3<T_return, T_obj2, T_arg1,T_arg2,T_arg3> + (dynamic_cast< T_obj1&>(_A_obj), _A_func); } + } // namespace SigC Index: Makefile.am =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/Makefile.am,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Makefile.am 3 May 2004 17:00:26 -0000 1.5 --- Makefile.am 10 May 2004 14:59:43 -0000 1.6 *************** *** 11,14 **** --- 11,16 ---- input.h \ intl.h \ + joypadconfig.cpp \ + joypadconfig.h \ main.cpp \ menuitem.h \ Index: system.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/system.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** system.cpp 5 May 2004 16:01:12 -0000 1.7 --- system.cpp 10 May 2004 14:59:43 -0000 1.8 *************** *** 121,124 **** --- 121,125 ---- void systemScreenCapture(int _iNum) { + GUI()->vCaptureScreen(_iNum); } Index: window.h =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.h,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** window.h 5 May 2004 19:36:31 -0000 1.17 --- window.h 10 May 2004 14:59:43 -0000 1.18 *************** *** 32,35 **** --- 32,36 ---- #include <string> + #include <vector> #include <list> *************** *** 40,43 **** --- 41,45 ---- #include "filters.h" #include "input.h" + #include "joypadconfig.h" namespace VBA *************** *** 73,82 **** void vComputeFrameskip(int _iRate); void vShowSpeed(int _iSpeed); - inline u32 uiReadJoypad() const { return m_uiJoypadState; } inline ECartridge eGetCartridge() const { return m_eCartridge; } inline int iGetThrottle() const { return m_iThrottle; } protected: enum EShowSpeed { --- 75,88 ---- void vComputeFrameskip(int _iRate); void vShowSpeed(int _iSpeed); + void vCaptureScreen(int _iNum); + u32 uiReadJoypad(); inline ECartridge eGetCartridge() const { return m_eCartridge; } inline int iGetThrottle() const { return m_iThrottle; } protected: + Window(GtkWindow * _pstWindow, + const Glib::RefPtr<Gnome::Glade::Xml> & _poXml); + enum EShowSpeed { *************** *** 162,165 **** --- 168,172 ---- virtual void vOnSaveTypeToggled(Gtk::CheckMenuItem * _poCMI, int _iSaveType); virtual void vOnFlashSizeToggled(Gtk::CheckMenuItem * _poCMI, int _iFlashSize); + virtual void vOnScreenshotFormatToggled(Gtk::CheckMenuItem * _poCMI, std::string _sFormat); virtual void vOnSoundStatusToggled(Gtk::CheckMenuItem * _poCMI, int _iSoundStatus); virtual void vOnSoundEchoToggled(Gtk::CheckMenuItem * _poCMI); *************** *** 177,180 **** --- 184,190 ---- virtual void vOnDisableMMXToggled(Gtk::CheckMenuItem * _poCMI); #endif // MMX + virtual void vOnJoypadConfigure(int _iJoypad); + virtual void vOnJoypadToggled(Gtk::CheckMenuItem * _poCMI, int _iJoypad); + virtual void vOnAutofireToggled(Gtk::CheckMenuItem * _poCMI, std::string _sKey, u32 _uiKeyFlag); virtual void vOnHelpAbout(); virtual bool bOnEmuIdle(); *************** *** 186,192 **** private: - Window(GtkWindow * _pstWindow, - const Glib::RefPtr<Gnome::Glade::Xml> & _poXml); - // Config limits const int m_iFrameskipMin; --- 196,199 ---- *************** *** 210,213 **** --- 217,222 ---- const int m_iFilterIBMin; const int m_iFilterIBMax; + const int m_iJoypadMin; + const int m_iJoypadMax; static Window * m_poInstance; *************** *** 223,226 **** --- 232,236 ---- Config::Section * m_poDisplayConfig; Config::Section * m_poSoundConfig; + Config::Section * m_poInputConfig; #ifdef GTKMM20 *************** *** 255,258 **** --- 265,271 ---- SigC::Connection m_oEmuSig; + std::vector<JoypadConfig> m_oJoypads; + Keymap * m_poKeymap; + int m_iScreenWidth; int m_iScreenHeight; *************** *** 261,266 **** ECartridge m_eCartridge; EmulatedSystem m_stEmulator; - Keymap m_oKeymap; u32 m_uiJoypadState; bool m_bPaused; bool m_bWasEmulating; --- 274,280 ---- ECartridge m_eCartridge; EmulatedSystem m_stEmulator; u32 m_uiJoypadState; + u32 m_uiAutofireState; + bool m_bAutofireToggle; bool m_bPaused; bool m_bWasEmulating; *************** *** 283,287 **** void vClearHistoryMenu(); void vUpdateHistoryMenu(); ! void vLoadKeymap(); void vUpdateScreen(); void vDrawDefaultScreen(); --- 297,302 ---- void vClearHistoryMenu(); void vUpdateHistoryMenu(); ! void vLoadJoypadsFromConfig(); ! void vSaveJoypadsToConfig(); void vUpdateScreen(); void vDrawDefaultScreen(); Index: window.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/window.cpp,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** window.cpp 5 May 2004 19:36:31 -0000 1.17 --- window.cpp 10 May 2004 14:59:43 -0000 1.18 *************** *** 80,84 **** m_iFilter2xMax (LastFilter), m_iFilterIBMin (FirstFilterIB), ! m_iFilterIBMax (LastFilterIB) { m_poXml = _poXml; --- 80,86 ---- m_iFilter2xMax (LastFilter), m_iFilterIBMin (FirstFilterIB), ! m_iFilterIBMax (LastFilterIB), ! m_iJoypadMin (1), ! m_iJoypadMax (4) { m_poXml = _poXml; *************** *** 121,125 **** vLoadHistoryFromConfig(); ! vLoadKeymap(); Gtk::MenuItem * poMI; --- 123,127 ---- vLoadHistoryFromConfig(); ! vLoadJoypadsFromConfig(); Gtk::MenuItem * poMI; *************** *** 467,470 **** --- 469,498 ---- } + // Screenshot format menu + // + struct + { + const char * m_csName; + const char * m_csScreenshotFormat; + } + astScreenshotFormat[] = + { + { "ScreenshotFormatPNG", "png" }, + { "ScreenshotFormatBMP", "bmp" } + }; + std::string sDefaultScreenshotFormat = m_poCoreConfig->sGetKey("screenshot_format"); + for (guint i = 0; i < sizeof(astScreenshotFormat) / sizeof(astScreenshotFormat[0]); i++) + { + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astScreenshotFormat[i].m_csName)); + if (astScreenshotFormat[i].m_csScreenshotFormat == sDefaultScreenshotFormat) + { + poCMI->set_active(); + vOnScreenshotFormatToggled(poCMI, sDefaultScreenshotFormat); + } + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, std::string>( + SigC::slot(*this, &Window::vOnScreenshotFormatToggled), + poCMI, std::string(astScreenshotFormat[i].m_csScreenshotFormat))); + } + // Sound menu // *************** *** 724,727 **** --- 752,815 ---- } + // Joypad menu + // + poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("JoypadConfigure1")); + poMI->signal_activate().connect(SigC::bind<int>( + SigC::slot(*this, &Window::vOnJoypadConfigure), 1)); + + poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("JoypadConfigure2")); + poMI->signal_activate().connect(SigC::bind<int>( + SigC::slot(*this, &Window::vOnJoypadConfigure), 2)); + + poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("JoypadConfigure3")); + poMI->signal_activate().connect(SigC::bind<int>( + SigC::slot(*this, &Window::vOnJoypadConfigure), 3)); + + poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("JoypadConfigure4")); + poMI->signal_activate().connect(SigC::bind<int>( + SigC::slot(*this, &Window::vOnJoypadConfigure), 4)); + + int iDefaultJoypad = m_poInputConfig->oGetKey<int>("active_joypad"); + for (int i = m_iJoypadMin; i <= m_iJoypadMax; i++) + { + char csName[20]; + snprintf(csName, sizeof(csName), "Joypad%d", i); + + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(csName)); + if (i == iDefaultJoypad) + { + poCMI->set_active(); + vOnJoypadToggled(poCMI, iDefaultJoypad); + } + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, int>( + SigC::slot(*this, &Window::vOnJoypadToggled), + poCMI, i)); + } + + // Autofire menu + // + struct + { + const char * m_csKey; + const char * m_csName; + const EKeyFlag m_eKeyFlag; + } + astAutofire[] = + { + { "autofire_A", "AutofireA", KeyFlagA }, + { "autofire_B", "AutofireB", KeyFlagB }, + { "autofire_L", "AutofireL", KeyFlagL }, + { "autofire_R", "AutofireR", KeyFlagR } + }; + for (guint i = 0; i < sizeof(astAutofire) / sizeof(astAutofire[0]); i++) + { + poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astAutofire[i].m_csName)); + poCMI->set_active(m_poInputConfig->oGetKey<bool>(astAutofire[i].m_csKey)); + vOnAutofireToggled(poCMI, astAutofire[i].m_csName, astAutofire[i].m_eKeyFlag); + poCMI->signal_toggled().connect(SigC::bind<Gtk::CheckMenuItem *, std::string, u32>( + SigC::slot(*this, &Window::vOnAutofireToggled), + poCMI, astAutofire[i].m_csKey, astAutofire[i].m_eKeyFlag)); + } + // Help menu // *************** *** 751,754 **** --- 839,843 ---- vOnFileClose(); vSaveHistoryToConfig(); + vSaveJoypadsToConfig(); vSaveConfig(m_sConfigFile); *************** *** 758,761 **** --- 847,855 ---- } + if (m_poKeymap != NULL) + { + delete m_poKeymap; + } + m_poInstance = NULL; } *************** *** 866,887 **** // m_poCoreConfig = m_oConfig.poAddSection("Core"); ! m_poCoreConfig->vSetKey("load_game_auto", false ); ! m_poCoreConfig->vSetKey("frameskip", "auto" ); ! m_poCoreConfig->vSetKey("throttle", 0 ); ! m_poCoreConfig->vSetKey("layer_bg0", true ); ! m_poCoreConfig->vSetKey("layer_bg1", true ); ! m_poCoreConfig->vSetKey("layer_bg2", true ); ! m_poCoreConfig->vSetKey("layer_bg3", true ); ! m_poCoreConfig->vSetKey("layer_obj", true ); ! m_poCoreConfig->vSetKey("layer_win0", true ); ! m_poCoreConfig->vSetKey("layer_win1", true ); ! m_poCoreConfig->vSetKey("layer_objwin", true ); ! m_poCoreConfig->vSetKey("use_bios_file", false ); ! m_poCoreConfig->vSetKey("bios_file", "" ); ! m_poCoreConfig->vSetKey("save_type", SaveAuto ); ! m_poCoreConfig->vSetKey("flash_size", 64 ); ! m_poCoreConfig->vSetKey("gb_border", true ); ! m_poCoreConfig->vSetKey("gb_printer", false ); ! m_poCoreConfig->vSetKey("emulator_type", EmulatorAuto ); // Display section --- 960,982 ---- // m_poCoreConfig = m_oConfig.poAddSection("Core"); ! m_poCoreConfig->vSetKey("load_game_auto", false ); ! m_poCoreConfig->vSetKey("frameskip", "auto" ); ! m_poCoreConfig->vSetKey("throttle", 0 ); ! m_poCoreConfig->vSetKey("layer_bg0", true ); ! m_poCoreConfig->vSetKey("layer_bg1", true ); ! m_poCoreConfig->vSetKey("layer_bg2", true ); ! m_poCoreConfig->vSetKey("layer_bg3", true ); ! m_poCoreConfig->vSetKey("layer_obj", true ); ! m_poCoreConfig->vSetKey("layer_win0", true ); ! m_poCoreConfig->vSetKey("layer_win1", true ); ! m_poCoreConfig->vSetKey("layer_objwin", true ); ! m_poCoreConfig->vSetKey("use_bios_file", false ); ! m_poCoreConfig->vSetKey("bios_file", "" ); ! m_poCoreConfig->vSetKey("save_type", SaveAuto ); ! m_poCoreConfig->vSetKey("flash_size", 64 ); ! m_poCoreConfig->vSetKey("gb_border", true ); ! m_poCoreConfig->vSetKey("gb_printer", false ); ! m_poCoreConfig->vSetKey("emulator_type", EmulatorAuto ); ! m_poCoreConfig->vSetKey("screenshot_format", "png" ); // Display section *************** *** 912,915 **** --- 1007,1039 ---- m_poSoundConfig->vSetKey("quality", Sound22K ); m_poSoundConfig->vSetKey("volume", Sound100 ); + + // Input section + // + JoypadConfig oJoypadConfig; + oJoypadConfig.vSetDefault(); + m_poInputConfig = m_oConfig.poAddSection("Input"); + m_poInputConfig->vSetKey("active_joypad", m_iJoypadMin ); + for (int i = m_iJoypadMin; i <= m_iJoypadMax; i++) + { + char csPrefix[20]; + snprintf(csPrefix, sizeof(csPrefix), "joypad%d_", i); + std::string sPrefix(csPrefix); + m_poInputConfig->vSetKey(sPrefix + "up", oJoypadConfig.m_uiUp ); + m_poInputConfig->vSetKey(sPrefix + "down", oJoypadConfig.m_uiDown ); + m_poInputConfig->vSetKey(sPrefix + "left", oJoypadConfig.m_uiLeft ); + m_poInputConfig->vSetKey(sPrefix + "right", oJoypadConfig.m_uiRight ); + m_poInputConfig->vSetKey(sPrefix + "A", oJoypadConfig.m_uiA ); + m_poInputConfig->vSetKey(sPrefix + "B", oJoypadConfig.m_uiB ); + m_poInputConfig->vSetKey(sPrefix + "L", oJoypadConfig.m_uiL ); + m_poInputConfig->vSetKey(sPrefix + "R", oJoypadConfig.m_uiR ); + m_poInputConfig->vSetKey(sPrefix + "select", oJoypadConfig.m_uiSelect ); + m_poInputConfig->vSetKey(sPrefix + "start", oJoypadConfig.m_uiStart ); + m_poInputConfig->vSetKey(sPrefix + "speed", oJoypadConfig.m_uiSpeed ); + m_poInputConfig->vSetKey(sPrefix + "capture", oJoypadConfig.m_uiCapture ); + } + m_poInputConfig->vSetKey("autofire_A", false ); + m_poInputConfig->vSetKey("autofire_B", false ); + m_poInputConfig->vSetKey("autofire_L", false ); + m_poInputConfig->vSetKey("autofire_R", false ); } *************** *** 1003,1006 **** --- 1127,1136 ---- } + sValue = m_poCoreConfig->sGetKey("screenshot_format"); + if (sValue != "png" && sValue != "bmp") + { + sValue = "png"; + } + // Display section // *************** *** 1054,1057 **** --- 1184,1196 ---- m_poSoundConfig->vSetKey("volume", iAdjusted); } + + // Input section + // + iValue = m_poInputConfig->oGetKey<int>("active_joypad"); + iAdjusted = CLAMP(iValue, m_iJoypadMin, m_iJoypadMax); + if (iValue != iAdjusted) + { + m_poInputConfig->vSetKey("active_joypad", iAdjusted); + } } *************** *** 1158,1181 **** } ! void Window::vLoadKeymap() { ! // TODO : load from prefs ! m_oKeymap.vRegister(GDK_z, KeyA); ! m_oKeymap.vRegister(GDK_Z, KeyA); ! m_oKeymap.vRegister(GDK_x, KeyB); ! m_oKeymap.vRegister(GDK_X, KeyB); ! m_oKeymap.vRegister(GDK_BackSpace, KeySelect); ! m_oKeymap.vRegister(GDK_Return, KeyStart); ! m_oKeymap.vRegister(GDK_Right, KeyRight); ! m_oKeymap.vRegister(GDK_Left, KeyLeft); ! m_oKeymap.vRegister(GDK_Up, KeyUp); ! m_oKeymap.vRegister(GDK_Down, KeyDown); ! m_oKeymap.vRegister(GDK_s, KeyR); ! m_oKeymap.vRegister(GDK_S, KeyR); ! m_oKeymap.vRegister(GDK_a, KeyL); ! m_oKeymap.vRegister(GDK_A, KeyL); ! m_oKeymap.vRegister(GDK_space, KeySpeed); ! m_oKeymap.vRegister(GDK_F12, KeyCapture); } --- 1297,1349 ---- } ! void Window::vLoadJoypadsFromConfig() { ! m_oJoypads.clear(); ! for (int i = m_iJoypadMin; i <= m_iJoypadMax; i++) ! { ! char csPrefix[20]; ! snprintf(csPrefix, sizeof(csPrefix), "joypad%d_", i); ! std::string sPrefix(csPrefix); ! ! JoypadConfig oJoypadConfig; ! oJoypadConfig.m_uiUp = m_poInputConfig->oGetKey<guint>(sPrefix + "up"); ! oJoypadConfig.m_uiDown = m_poInputConfig->oGetKey<guint>(sPrefix + "down"); ! oJoypadConfig.m_uiLeft = m_poInputConfig->oGetKey<guint>(sPrefix + "left"); ! oJoypadConfig.m_uiRight = m_poInputConfig->oGetKey<guint>(sPrefix + "right"); ! oJoypadConfig.m_uiA = m_poInputConfig->oGetKey<guint>(sPrefix + "A"); ! oJoypadConfig.m_uiB = m_poInputConfig->oGetKey<guint>(sPrefix + "B"); ! oJoypadConfig.m_uiL = m_poInputConfig->oGetKey<guint>(sPrefix + "L"); ! oJoypadConfig.m_uiR = m_poInputConfig->oGetKey<guint>(sPrefix + "R"); ! oJoypadConfig.m_uiSelect = m_poInputConfig->oGetKey<guint>(sPrefix + "select"); ! oJoypadConfig.m_uiStart = m_poInputConfig->oGetKey<guint>(sPrefix + "start"); ! oJoypadConfig.m_uiSpeed = m_poInputConfig->oGetKey<guint>(sPrefix + "speed"); ! oJoypadConfig.m_uiCapture = m_poInputConfig->oGetKey<guint>(sPrefix + "capture"); ! ! m_oJoypads.push_back(oJoypadConfig); ! } ! } ! ! void Window::vSaveJoypadsToConfig() ! { ! for (int i = m_iJoypadMin; i <= m_iJoypadMax; i++) ! { ! char csPrefix[20]; ! snprintf(csPrefix, sizeof(csPrefix), "joypad%d_", i); ! std::string sPrefix(csPrefix); ! ! m_poInputConfig->vSetKey(sPrefix + "up", m_oJoypads[i - 1].m_uiUp ); ! m_poInputConfig->vSetKey(sPrefix + "down", m_oJoypads[i - 1].m_uiDown ); ! m_poInputConfig->vSetKey(sPrefix + "left", m_oJoypads[i - 1].m_uiLeft ); ! m_poInputConfig->vSetKey(sPrefix + "right", m_oJoypads[i - 1].m_uiRight ); ! m_poInputConfig->vSetKey(sPrefix + "A", m_oJoypads[i - 1].m_uiA ); ! m_poInputConfig->vSetKey(sPrefix + "B", m_oJoypads[i - 1].m_uiB ); ! m_poInputConfig->vSetKey(sPrefix + "L", m_oJoypads[i - 1].m_uiL ); ! m_poInputConfig->vSetKey(sPrefix + "R", m_oJoypads[i - 1].m_uiR ); ! m_poInputConfig->vSetKey(sPrefix + "select", m_oJoypads[i - 1].m_uiSelect ); ! m_poInputConfig->vSetKey(sPrefix + "start", m_oJoypads[i - 1].m_uiStart ); ! m_poInputConfig->vSetKey(sPrefix + "speed", m_oJoypads[i - 1].m_uiSpeed ); ! m_poInputConfig->vSetKey(sPrefix + "capture", m_oJoypads[i - 1].m_uiCapture ); ! } } *************** *** 1368,1371 **** --- 1536,1585 ---- } + void Window::vCaptureScreen(int _iNum) + { + std::string sBaseName; + std::string sCaptureDir = m_poDirConfig->sGetKey("captures"); + if (sCaptureDir == "") + { + sBaseName = sCutSuffix(m_sRomFile); + } + else + { + sBaseName = sCaptureDir + "/" + sCutSuffix(Glib::path_get_basename(m_sRomFile)); + } + std::string sFormat = m_poCoreConfig->sGetKey("screenshot_format"); + + char * csFile = g_strdup_printf("%s_%02d.%s", + sBaseName.c_str(), + _iNum, + sFormat.c_str()); + if (sFormat == "png") + { + m_stEmulator.emuWritePNG(csFile); + } + else + { + m_stEmulator.emuWriteBMP(csFile); + } + g_free(csFile); + } + + u32 Window::uiReadJoypad() + { + u32 uiJoypad = m_uiJoypadState; + + if (m_uiAutofireState != 0) + { + uiJoypad &= ~m_uiAutofireState; + if (m_bAutofireToggle) + { + uiJoypad |= m_uiAutofireState; + } + m_bAutofireToggle = ! m_bAutofireToggle; + } + + return uiJoypad; + } + bool Window::bLoadROM(const std::string & _rsFile) { *************** *** 1378,1382 **** if (eType == IMAGE_UNKNOWN) { ! systemMessage(0, _("Unknown file type %s"), csFile); return false; } --- 1592,1596 ---- if (eType == IMAGE_UNKNOWN) { ! vPopupError(_("Unknown file type %s"), csFile); return false; } Index: Makefile.in =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/Makefile.in,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Makefile.in 3 May 2004 17:00:26 -0000 1.5 --- Makefile.in 10 May 2004 14:59:43 -0000 1.6 *************** *** 164,167 **** --- 164,169 ---- input.h \ intl.h \ + joypadconfig.cpp \ + joypadconfig.h \ main.cpp \ menuitem.h \ *************** *** 290,297 **** am_gvba_OBJECTS = gvba-configfile.$(OBJEXT) gvba-filters.$(OBJEXT) \ ! gvba-input.$(OBJEXT) gvba-main.$(OBJEXT) \ ! gvba-screenarea.$(OBJEXT) gvba-system.$(OBJEXT) \ ! gvba-tools.$(OBJEXT) gvba-windowcallbacks.$(OBJEXT) \ ! gvba-window.$(OBJEXT) gvba_OBJECTS = $(am_gvba_OBJECTS) gvba_DEPENDENCIES = libgba.a --- 292,299 ---- am_gvba_OBJECTS = gvba-configfile.$(OBJEXT) gvba-filters.$(OBJEXT) \ ! gvba-input.$(OBJEXT) gvba-joypadconfig.$(OBJEXT) \ ! gvba-main.$(OBJEXT) gvba-screenarea.$(OBJEXT) \ ! gvba-system.$(OBJEXT) gvba-tools.$(OBJEXT) \ ! gvba-windowcallbacks.$(OBJEXT) gvba-window.$(OBJEXT) gvba_OBJECTS = $(am_gvba_OBJECTS) gvba_DEPENDENCIES = libgba.a *************** *** 303,307 **** @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/gvba-configfile.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/gvba-filters.Po \ ! @AMDEP_TRUE@ ./$(DEPDIR)/gvba-input.Po ./$(DEPDIR)/gvba-main.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/gvba-screenarea.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/gvba-system.Po \ --- 305,311 ---- @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/gvba-configfile.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/gvba-filters.Po \ ! @AMDEP_TRUE@ ./$(DEPDIR)/gvba-input.Po \ ! @AMDEP_TRUE@ ./$(DEPDIR)/gvba-joypadconfig.Po \ ! @AMDEP_TRUE@ ./$(DEPDIR)/gvba-main.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/gvba-screenarea.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/gvba-system.Po \ *************** *** 414,417 **** --- 418,422 ---- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gvba-filters.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gvba-input.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gvba-joypadconfig.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gvba-main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gvba-screenarea.Po@am__quote@ *************** *** 1336,1339 **** --- 1341,1366 ---- @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-input.obj `if test -f 'input.cpp'; then $(CYGPATH_W) 'input.cpp'; else $(CYGPATH_W) '$(srcdir)/input.cpp'; fi` + gvba-joypadconfig.o: joypadconfig.cpp + @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-joypadconfig.o -MD -MP -MF "$(DEPDIR)/gvba-joypadconfig.Tpo" \ + @am__fastdepCXX_TRUE@ -c -o gvba-joypadconfig.o `test -f 'joypadconfig.cpp' || echo '$(srcdir)/'`joypadconfig.cpp; \ + @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-joypadconfig.Tpo" "$(DEPDIR)/gvba-joypadconfig.Po"; \ + @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-joypadconfig.Tpo"; exit 1; \ + @am__fastdepCXX_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='joypadconfig.cpp' object='gvba-joypadconfig.o' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-joypadconfig.Po' tmpdepfile='$(DEPDIR)/gvba-joypadconfig.TPo' @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-joypadconfig.o `test -f 'joypadconfig.cpp' || echo '$(srcdir)/'`joypadconfig.cpp + + gvba-joypadconfig.obj: joypadconfig.cpp + @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-joypadconfig.obj -MD -MP -MF "$(DEPDIR)/gvba-joypadconfig.Tpo" \ + @am__fastdepCXX_TRUE@ -c -o gvba-joypadconfig.obj `if test -f 'joypadconfig.cpp'; then $(CYGPATH_W) 'joypadconfig.cpp'; else $(CYGPATH_W) '$(srcdir)/joypadconfig.cpp'; fi`; \ + @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/gvba-joypadconfig.Tpo" "$(DEPDIR)/gvba-joypadconfig.Po"; \ + @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/gvba-joypadconfig.Tpo"; exit 1; \ + @am__fastdepCXX_TRUE@ fi + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='joypadconfig.cpp' object='gvba-joypadconfig.obj' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/gvba-joypadconfig.Po' tmpdepfile='$(DEPDIR)/gvba-joypadconfig.TPo' @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -c -o gvba-joypadconfig.obj `if test -f 'joypadconfig.cpp'; then $(CYGPATH_W) 'joypadconfig.cpp'; else $(CYGPATH_W) '$(srcdir)/joypadconfig.cpp'; fi` + gvba-main.o: main.cpp @am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(gvba_CPPFLAGS) $(CPPFLAGS) $(gvba_CXXFLAGS) $(CXXFLAGS) -MT gvba-main.o -MD -MP -MF "$(DEPDIR)/gvba-main.Tpo" \ Index: vba.glade =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/vba.glade,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** vba.glade 5 May 2004 19:36:31 -0000 1.11 --- vba.glade 10 May 2004 14:59:43 -0000 1.12 *************** *** 51,55 **** <child internal-child="image"> ! <widget class="GtkImage" id="image116"> <property name="visible">True</property> <property name="stock">gtk-open</property> --- 51,55 ---- <child internal-child="image"> ! <widget class="GtkImage" id="image120"> <property name="visible">True</property> <property name="stock">gtk-open</property> *************** *** 473,477 **** <child internal-child="image"> ! <widget class="GtkImage" id="image117"> <property name="visible">True</property> <property name="stock">gtk-close</property> --- 473,477 ---- <child internal-child="image"> ! <widget class="GtkImage" id="image121"> <property name="visible">True</property> <property name="stock">gtk-close</property> *************** *** 494,498 **** <child internal-child="image"> ! <widget class="GtkImage" id="image118"> <property name="visible">True</property> <property name="stock">gtk-quit</property> --- 494,498 ---- <child internal-child="image"> ! <widget class="GtkImage" id="image122"> <property name="visible">True</property> <property name="stock">gtk-quit</property> *************** *** 1067,1070 **** --- 1067,1076 ---- <child> + <widget class="GtkSeparatorMenuItem" id="separator31"> + <property name="visible">True</property> + </widget> + </child> + + <child> <widget class="GtkMenuItem" id="EmulatorSelectBios"> <property name="visible">True</property> *************** *** 1082,1085 **** --- 1088,1129 ---- </widget> </child> + + <child> + <widget class="GtkSeparatorMenuItem" id="separator30"> + <property name="visible">True</property> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="ScreenshotFormatMenu"> + <property name="visible">True</property> + <property name="label" translatable="yes">Screenshot format</property> + <property name="use_underline">True</property> + + <child> + <widget class="GtkMenu" id="ScreenshotFormatMenu_menu"> + + <child> + <widget class="GtkRadioMenuItem" id="ScreenshotFormatPNG"> + <property name="visible">True</property> + <property name="label" translatable="yes">_PNG</property> + <property name="use_underline">True</property> + <property name="active">True</property> + </widget> + </child> + + <child> + <widget class="GtkRadioMenuItem" id="ScreenshotFormatBMP"> + <property name="visible">True</property> + <property name="label" translatable="yes">_BMP</property> + <property name="use_underline">True</property> + <property name="active">False</property> + <property name="group">ScreenshotFormatPNG</property> + </widget> + </child> + </widget> + </child> + </widget> + </child> </widget> </child> *************** *** 1752,1769 **** <child> - <widget class="GtkMenuItem" id="MotionConfigureMenu"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Motion configure...</property> - <property name="use_underline">True</property> - </widget> - </child> - - <child> - <widget class="GtkSeparatorMenuItem" id="separator25"> - <property name="visible">True</property> - </widget> - </child> - - <child> <widget class="GtkMenuItem" id="AutofireMenu"> <property name="visible">True</property> --- 1796,1799 ---- *************** *** 2793,2795 **** --- 2823,3470 ---- </widget> + <widget class="GtkDialog" id="JoypadConfigDialog"> + <property name="visible">True</property> + <property name="title" translatable="yes">Joypad config</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property> + <property name="modal">False</property> + <property name="resizable">True</property> + <property name="destroy_with_parent">True</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">False</property> + <property name="skip_pager_hint">False</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> + <property name="has_separator">True</property> + + <child internal-child="vbox"> + <widget class="GtkVBox" id="dialog-vbox4"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child internal-child="action_area"> + <widget class="GtkHButtonBox" id="dialog-action_area4"> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + + <child> + <widget class="GtkButton" id="cancelbutton3"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-cancel</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="response_id">-6</property> + </widget> + </child> + + <child> + <widget class="GtkButton" id="JoypadOkButton"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-ok</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="response_id">-5</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack_type">GTK_PACK_END</property> + </packing> + </child> + + <child> + <widget class="GtkAlignment" id="alignment1"> + <property name="visible">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xscale">0</property> + <property name="yscale">1</property> + <property name="top_padding">0</property> + <property name="bottom_padding">0</property> + <property name="left_padding">0</property> + <property name="right_padding">0</property> + + <child> + <widget class="GtkTable" id="table2"> + <property name="visible">True</property> + <property name="n_rows">12</property> + <property name="n_columns">2</property> + <property name="homogeneous">False</property> + <property name="row_spacing">5</property> + <property name="column_spacing">0</property> + + <child> + <widget class="GtkEntry" id="JoypadUpEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label12"> + <property name="visible">True</property> + <property name="label" translatable="yes">Down : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label13"> + <property name="visible">True</property> + <property name="label" translatable="yes">Left : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label14"> + <property name="visible">True</property> + <property name="label" translatable="yes">Right : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label15"> + <property name="visible">True</property> + <property name="label" translatable="yes">Button A : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label16"> + <property name="visible">True</property> + <property name="label" translatable="yes">Button B : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label17"> + <property name="visible">True</property> + <property name="label" translatable="yes">Button L : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">6</property> + <property name="bottom_attach">7</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label18"> + <property name="visible">True</property> + <property name="label" translatable="yes">Button R : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">7</property> + <property name="bottom_attach">8</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label19"> + <property name="visible">True</property> + <property name="label" translatable="yes">Select : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">8</property> + <property name="bottom_attach">9</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label20"> + <property name="visible">True</property> + <property name="label" translatable="yes">Start : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">9</property> + <property name="bottom_attach">10</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label21"> + <property name="visible">True</property> + <property name="label" translatable="yes">Speed : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">10</property> + <property name="bottom_attach">11</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label22"> + <property name="visible">True</property> + <property name="label" translatable="yes">Capture : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">11</property> + <property name="bottom_attach">12</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="JoypadDownEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="JoypadLeftEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="JoypadRightEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="JoypadAEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="JoypadBEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="JoypadLEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">6</property> + <property name="bottom_attach">7</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="JoypadREntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">7</property> + <property name="bottom_attach">8</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="JoypadSelectEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">8</property> + <property name="bottom_attach">9</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="JoypadStartEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">9</property> + <property name="bottom_attach">10</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="JoypadSpeedEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">10</property> + <property name="bottom_attach">11</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="JoypadCaptureEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">11</property> + <property name="bottom_attach">12</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label11"> + <property name="visible">True</property> + <property name="label" translatable="yes">Up : </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options">expand</property> + </packing> + </child> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + </child> + </widget> + </glade-interface> Index: windowcallbacks.cpp =================================================================== RCS file: /cvsroot/vba/VisualBoyAdvance/src/gtk/windowcallbacks.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** windowcallbacks.cpp 5 May 2004 19:36:31 -0000 1.6 --- windowcallbacks.cpp 10 May 2004 14:59:43 -0000 1.7 *************** *** 613,616 **** --- 613,621 ---- oDialog.add_filter(oBmpFilter); + if (m_poCoreConfig->sGetKey("screenshot_format") == "bmp") + { + oDialog.set_filter(oBmpFilter); + } + #endif // ! GTKMM20 *************** *** 622,626 **** #ifdef GTKMM20 ! sExt = ".png"; #else // ! GTKMM20 --- 627,631 ---- #ifdef GTKMM20 ! sExt = "." + m_poCoreConfig->sGetKey("screenshot_format"); #else // ! GTKMM20 *************** *** 1035,1038 **** --- 1040,1053 ---- } + void Window::vOnScreenshotFormatToggled(Gtk::CheckMenuItem * _poCMI, std::string _sFormat) + { + if (! _poCMI->get_active()) + { + return; + } + + m_poCoreConfig->vSetKey("screenshot_format", _sFormat); + } + void Window::vOnSoundStatusToggled(Gtk::CheckMenuItem * _poCMI, int _iSoundStatus) { *************** *** 1222,1225 **** --- 1237,1296 ---- #endif // MMX + void Window::vOnJoypadConfigure(int _iJoypad) + { + Glib::RefPtr<Xml> poXml; + poXml = Xml::create(PKGDATADIR "/vba.glade", "JoypadConfigDialog"); + + JoypadConfigDialog * poDialog = NULL; + poXml->get_widget_derived<JoypadConfigDialog>("JoypadConfigDialog", poDialog); + poDialog->set_transient_for(*this); + poDialog->vSetConfig(m_oJoypads[_iJoypad - 1]); + + if (poDialog->run() == Gtk::RESPONSE_OK) + { + m_oJoypads[_iJoypad - 1] = poDialog->stGetConfig(); + if (_iJoypad == m_poInputConfig->oGetKey<int>("active_joypad")) + { + if (m_poKeymap != NULL) + { + delete m_poKeymap; + } + m_poKeymap = m_oJoypads[_iJoypad - 1].poCreateKeymap(); + } + } + + delete poDialog; + } + + void Window::vOnJoypadToggled(Gtk::CheckMenuItem * _poCMI, int _iJoypad) + { + if (! _poCMI->get_active()) + { + return; + } + + if (m_poKeymap != NULL) + { + delete m_poKeymap; + } + m_poKeymap = m_oJoypads[_iJoypad - 1].poCreateKeymap(); + + m_poInputConfig->vSetKey("active_joypad", _iJoypad); + } + + void Window::vOnAutofireToggled(Gtk::CheckMenuItem * _poCMI, std::string _sKey, + u32 _uiKeyFlag) + { + if (_poCMI->get_active()) + { + m_uiAutofireState |= _uiKeyFlag; + } + else + { + m_uiAutofireState &= ~_uiKeyFlag; + } + m_poInputConfig->vSetKey(_sKey, _poCMI->get_active()); + } + void Window::vOnHelpAbout() { *************** *** 1285,1289 **** if ((_pstEvent->state & Gtk::AccelGroup::get_default_mod_mask()) ! || (eKey = m_oKeymap.eGetKey(_pstEvent->keyval)) == KeyNone) { return Gtk::Window::on_key_press_event(_pstEvent); --- 1356,1360 ---- if ((_pstEvent->state & Gtk::AccelGroup::get_default_mod_mask()) ! || (eKey = m_poKeymap->eGetKey(_pstEvent->hardware_keycode)) == KeyNone) { return Gtk::Window::on_key_press_event(_pstEvent); *************** *** 1343,1347 **** if ((_pstEvent->state & Gtk::AccelGroup::get_default_mod_mask()) ! || (eKey = m_oKeymap.eGetKey(_pstEvent->keyval)) == KeyNone) { return Gtk::Window::on_key_release_event(_pstEvent); --- 1414,1418 ---- if ((_pstEvent->state & Gtk::AccelGroup::get_default_mod_mask()) ! || (eKey = m_poKeymap->eGetKey(_pstEvent->hardware_keycode)) == KeyNone) { return Gtk::Window::on_key_release_event(_pstEvent); |