void Window::vUpdateScreen() { if (m_eCartridge == CartridgeGB) { if (gbBorderOn) { m_iScreenWidth = m_iSGBScreenWidth; m_iScreenHeight = m_iSGBScreenHeight; gbBorderLineSkip = m_iSGBScreenWidth; gbBorderColumnSkip = (m_iSGBScreenWidth - m_iGBScreenWidth) / 2; gbBorderRowSkip = (m_iSGBScreenHeight - m_iGBScreenHeight) / 2; } else { m_iScreenWidth = m_iGBScreenWidth; m_iScreenHeight = m_iGBScreenHeight; gbBorderLineSkip = m_iGBScreenWidth; gbBorderColumnSkip = 0; gbBorderRowSkip = 0; } } else if (m_eCartridge == CartridgeGBA) { m_iScreenWidth = m_iGBAScreenWidth; m_iScreenHeight = m_iGBAScreenHeight; } g_return_if_fail(m_iScreenWidth >= 1 && m_iScreenHeight >= 1); m_poScreenArea->vSetSize(m_iScreenWidth, m_iScreenHeight); m_poScreenArea->vSetScale(m_poDisplayConfig->oGetKey<int>("scale")); resize(1, 1); if (emulating) { vDrawScreen(); } else { vDrawDefaultScreen(); } }
void Window::vOnFileClose() { if (m_eCartridge != CartridgeNone) { soundPause(); vStopEmu(); vSetDefaultTitle(); vDrawDefaultScreen(); vSaveBattery(); vSaveCheats(); m_stEmulator.emuCleanUp(); m_eCartridge = CartridgeNone; emulating = 0; vUpdateGameSlots(); for (std::list<Gtk::Widget *>::iterator it = m_listSensitiveWhenPlaying.begin(); it != m_listSensitiveWhenPlaying.end(); it++) { (*it)->set_sensitive(false); } m_poFilePauseItem->set_active(false); } }