GTK : Introducing the new Game Boy config dialog
This commit is contained in:
parent
6b9ebdc62c
commit
1543a02585
|
@ -211,6 +211,7 @@ SET(SRC_GTK
|
||||||
src/gtk/system.cpp
|
src/gtk/system.cpp
|
||||||
src/gtk/windowcallbacks.cpp
|
src/gtk/windowcallbacks.cpp
|
||||||
src/gtk/filters.cpp
|
src/gtk/filters.cpp
|
||||||
|
src/gtk/gameboyconfig.cpp
|
||||||
src/gtk/joypadconfig.cpp
|
src/gtk/joypadconfig.cpp
|
||||||
src/gtk/directoriesconfig.cpp
|
src/gtk/directoriesconfig.cpp
|
||||||
src/gtk/displayconfig.cpp
|
src/gtk/displayconfig.cpp
|
||||||
|
|
|
@ -0,0 +1,92 @@
|
||||||
|
// -*- C++ -*-
|
||||||
|
// VisualBoyAdvance - Nintendo Gameboy/GameboyAdvance (TM) emulator.
|
||||||
|
// Copyright (C) 2008 VBA-M development team
|
||||||
|
|
||||||
|
// 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; either version 2, or(at your option)
|
||||||
|
// any later version.
|
||||||
|
//
|
||||||
|
// 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 for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program; if not, write to the Free Software Foundation,
|
||||||
|
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
#include "gameboyconfig.h"
|
||||||
|
|
||||||
|
#include <gtkmm/stock.h>
|
||||||
|
#include <gtkmm/frame.h>
|
||||||
|
#include <gtkmm/liststore.h>
|
||||||
|
|
||||||
|
#include "intl.h"
|
||||||
|
|
||||||
|
namespace VBA
|
||||||
|
{
|
||||||
|
|
||||||
|
GameBoyConfigDialog::GameBoyConfigDialog(GtkDialog* _pstDialog, const Glib::RefPtr<Gtk::Builder>& refBuilder) :
|
||||||
|
Gtk::Dialog(_pstDialog),
|
||||||
|
m_poConfig(0)
|
||||||
|
{
|
||||||
|
refBuilder->get_widget("SystemComboBox", m_poSystemComboBox);
|
||||||
|
refBuilder->get_widget("BorderCheckButton", m_poBorderCheckButton);
|
||||||
|
refBuilder->get_widget("PrinterCheckButton", m_poPrinterCheckButton);
|
||||||
|
|
||||||
|
m_poSystemComboBox->signal_changed().connect(sigc::mem_fun(*this, &GameBoyConfigDialog::vOnSystemChanged));
|
||||||
|
m_poBorderCheckButton->signal_toggled().connect(sigc::mem_fun(*this, &GameBoyConfigDialog::vOnBorderChanged));
|
||||||
|
m_poPrinterCheckButton->signal_toggled().connect(sigc::mem_fun(*this, &GameBoyConfigDialog::vOnPrinterChanged));
|
||||||
|
}
|
||||||
|
|
||||||
|
void GameBoyConfigDialog::vSetConfig(Config::Section * _poConfig, VBA::Window * _poWindow)
|
||||||
|
{
|
||||||
|
m_poConfig = _poConfig;
|
||||||
|
m_poWindow = _poWindow;
|
||||||
|
|
||||||
|
const int aEmulatorType[] = { 0, 2, 3, 5, 1, 4 };
|
||||||
|
|
||||||
|
VBA::Window::EEmulatorType eDefaultEmulatorType = (VBA::Window::EEmulatorType)m_poConfig->oGetKey<int>("emulator_type");
|
||||||
|
m_poSystemComboBox->set_active(aEmulatorType[eDefaultEmulatorType]);
|
||||||
|
|
||||||
|
bool bBorder = m_poConfig->oGetKey<bool>("gb_border");
|
||||||
|
m_poBorderCheckButton->set_active(bBorder);
|
||||||
|
|
||||||
|
bool bPrinter = m_poConfig->oGetKey<bool>("gb_printer");
|
||||||
|
m_poPrinterCheckButton->set_active(bPrinter);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GameBoyConfigDialog::vOnSystemChanged()
|
||||||
|
{
|
||||||
|
const VBA::Window::EEmulatorType aEmulatorType[] =
|
||||||
|
{
|
||||||
|
VBA::Window::EmulatorAuto,
|
||||||
|
VBA::Window::EmulatorCGB,
|
||||||
|
VBA::Window::EmulatorSGB,
|
||||||
|
VBA::Window::EmulatorGB,
|
||||||
|
VBA::Window::EmulatorGBA,
|
||||||
|
VBA::Window::EmulatorSGB2
|
||||||
|
};
|
||||||
|
|
||||||
|
int iSystem = m_poSystemComboBox->get_active_row_number();
|
||||||
|
m_poConfig->vSetKey("emulator_type", aEmulatorType[iSystem]);
|
||||||
|
|
||||||
|
m_poWindow->vApplyConfigGBSystem();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GameBoyConfigDialog::vOnBorderChanged()
|
||||||
|
{
|
||||||
|
bool bBorder = m_poBorderCheckButton->get_active();
|
||||||
|
m_poConfig->vSetKey("gb_border", bBorder);
|
||||||
|
m_poWindow->vApplyConfigGBBorder();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GameBoyConfigDialog::vOnPrinterChanged()
|
||||||
|
{
|
||||||
|
bool bPrinter = m_poPrinterCheckButton->get_active();
|
||||||
|
m_poConfig->vSetKey("gb_printer", bPrinter);
|
||||||
|
m_poWindow->vApplyConfigGBPrinter();
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace VBA
|
|
@ -0,0 +1,55 @@
|
||||||
|
// -*- C++ -*-
|
||||||
|
// VisualBoyAdvance - Nintendo Gameboy/GameboyAdvance (TM) emulator.
|
||||||
|
// Copyright (C) 2008 VBA-M development team
|
||||||
|
|
||||||
|
// 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; either version 2, or(at your option)
|
||||||
|
// any later version.
|
||||||
|
//
|
||||||
|
// 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 for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program; if not, write to the Free Software Foundation,
|
||||||
|
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
#ifndef __VBA_GAMEBOYCONFIG_H__
|
||||||
|
#define __VBA_GAMEBOYCONFIG_H__
|
||||||
|
|
||||||
|
#include <gtkmm/dialog.h>
|
||||||
|
#include <gtkmm/builder.h>
|
||||||
|
#include <gtkmm/combobox.h>
|
||||||
|
|
||||||
|
#include "configfile.h"
|
||||||
|
#include "window.h"
|
||||||
|
|
||||||
|
namespace VBA
|
||||||
|
{
|
||||||
|
|
||||||
|
class GameBoyConfigDialog : public Gtk::Dialog
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
GameBoyConfigDialog(GtkDialog* _pstDialog, const Glib::RefPtr<Gtk::Builder>& refBuilder);
|
||||||
|
|
||||||
|
void vSetConfig(Config::Section * _poConfig, VBA::Window * _poWindow);
|
||||||
|
|
||||||
|
private:
|
||||||
|
void vOnSystemChanged();
|
||||||
|
void vOnBorderChanged();
|
||||||
|
void vOnPrinterChanged();
|
||||||
|
|
||||||
|
VBA::Window * m_poWindow;
|
||||||
|
|
||||||
|
Config::Section * m_poConfig;
|
||||||
|
Gtk::ComboBox * m_poSystemComboBox;
|
||||||
|
Gtk::CheckButton * m_poBorderCheckButton;
|
||||||
|
Gtk::CheckButton * m_poPrinterCheckButton;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace VBA
|
||||||
|
|
||||||
|
|
||||||
|
#endif // __VBA_GAMEBOYCONFIG_H__
|
|
@ -0,0 +1,125 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!--Generated with glade3 3.4.5 on Tue Jan 6 21:21:29 2009 -->
|
||||||
|
<interface>
|
||||||
|
<object class="GtkListStore" id="model1">
|
||||||
|
<columns>
|
||||||
|
<column type="gchararray"/>
|
||||||
|
</columns>
|
||||||
|
<data>
|
||||||
|
<row>
|
||||||
|
<col id="0">Automatic</col>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<col id="0">Game Boy Advance</col>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<col id="0">Game Boy Color</col>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<col id="0">Super Game Boy</col>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<col id="0">Super Game Boy 2</col>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<col id="0">Game Boy</col>
|
||||||
|
</row>
|
||||||
|
</data>
|
||||||
|
</object>
|
||||||
|
<object class="GtkDialog" id="GameBoyConfigDialog">
|
||||||
|
<property name="border_width">5</property>
|
||||||
|
<property name="title" translatable="yes">Game Boy games settings</property>
|
||||||
|
<property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
|
||||||
|
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
||||||
|
<property name="has_separator">False</property>
|
||||||
|
<child internal-child="vbox">
|
||||||
|
<object class="GtkVBox" id="dialog-vbox1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkVBox" id="vbox1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkHBox" id="hbox1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="label1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="label" translatable="yes">Emulated system : </property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBox" id="SystemComboBox">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="model">model1</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCellRendererText" id="renderer1"/>
|
||||||
|
<attributes>
|
||||||
|
<attribute name="text">0</attribute>
|
||||||
|
</attributes>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCheckButton" id="BorderCheckButton">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="label" translatable="yes">Display Super Game Boy borders</property>
|
||||||
|
<property name="draw_indicator">True</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCheckButton" id="PrinterCheckButton">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="label" translatable="yes">Emulate a Game Boy Printer</property>
|
||||||
|
<property name="draw_indicator">True</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="position">2</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child internal-child="action_area">
|
||||||
|
<object class="GtkHButtonBox" id="dialog-action_area1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
||||||
|
<child>
|
||||||
|
<placeholder/>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="button1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
<property name="label" translatable="yes">gtk-close</property>
|
||||||
|
<property name="use_stock">True</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="pack_type">GTK_PACK_END</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<action-widgets>
|
||||||
|
<action-widget response="0">button1</action-widget>
|
||||||
|
</action-widgets>
|
||||||
|
</object>
|
||||||
|
</interface>
|
|
@ -605,81 +605,10 @@
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkMenuItem" id="GameboyMenu">
|
<widget class="GtkMenuItem" id="GameBoyConfigure">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="label" translatable="yes">_Gameboy</property>
|
<property name="label" translatable="yes">_Game Boy ...</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<child>
|
|
||||||
<widget class="GtkMenu" id="GameboyMenu_menu">
|
|
||||||
<child>
|
|
||||||
<widget class="GtkCheckMenuItem" id="GameboyBorder">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="label" translatable="yes">_Border</property>
|
|
||||||
<property name="use_underline">True</property>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<widget class="GtkCheckMenuItem" id="GameboyPrinter">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="label" translatable="yes">_Printer</property>
|
|
||||||
<property name="use_underline">True</property>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<widget class="GtkSeparatorMenuItem" id="separator16">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<widget class="GtkRadioMenuItem" id="GameboyAutomatic">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="label" translatable="yes">_Automatic</property>
|
|
||||||
<property name="use_underline">True</property>
|
|
||||||
<property name="active">True</property>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<widget class="GtkRadioMenuItem" id="GameboyGba">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="label" translatable="yes">_GBA</property>
|
|
||||||
<property name="use_underline">True</property>
|
|
||||||
<property name="group">GameboyAutomatic</property>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<widget class="GtkRadioMenuItem" id="GameboyCgb">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="label" translatable="yes">_CGB/GBC</property>
|
|
||||||
<property name="use_underline">True</property>
|
|
||||||
<property name="group">GameboyAutomatic</property>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<widget class="GtkRadioMenuItem" id="GameboySgb">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="label" translatable="yes">_SGB</property>
|
|
||||||
<property name="use_underline">True</property>
|
|
||||||
<property name="group">GameboyAutomatic</property>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<widget class="GtkRadioMenuItem" id="GameboySgb2">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="label" translatable="yes">SGB_2</property>
|
|
||||||
<property name="use_underline">True</property>
|
|
||||||
<property name="group">GameboyAutomatic</property>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<widget class="GtkRadioMenuItem" id="GameboyGb">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="label" translatable="yes">G_B</property>
|
|
||||||
<property name="use_underline">True</property>
|
|
||||||
<property name="group">GameboyAutomatic</property>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include "../gb/gb.h"
|
#include "../gb/gb.h"
|
||||||
#include "../gb/gbGlobals.h"
|
#include "../gb/gbGlobals.h"
|
||||||
#include "../gb/gbSound.h"
|
#include "../gb/gbSound.h"
|
||||||
|
#include "../gb/gbPrinter.h"
|
||||||
#include "../Util.h"
|
#include "../Util.h"
|
||||||
|
|
||||||
#include "tools.h"
|
#include "tools.h"
|
||||||
|
@ -145,6 +146,9 @@ Window::Window(GtkWindow * _pstWindow, const Glib::RefPtr<Xml> & _poXml) :
|
||||||
vApplyConfigFilterIB();
|
vApplyConfigFilterIB();
|
||||||
vApplyConfigMute();
|
vApplyConfigMute();
|
||||||
vApplyConfigVolume();
|
vApplyConfigVolume();
|
||||||
|
vApplyConfigGBSystem();
|
||||||
|
vApplyConfigGBBorder();
|
||||||
|
vApplyConfigGBPrinter();
|
||||||
|
|
||||||
Gtk::MenuItem * poMI;
|
Gtk::MenuItem * poMI;
|
||||||
Gtk::CheckMenuItem * poCMI;
|
Gtk::CheckMenuItem * poCMI;
|
||||||
|
@ -390,49 +394,9 @@ Window::Window(GtkWindow * _pstWindow, const Glib::RefPtr<Xml> & _poXml) :
|
||||||
poCMI, astFlashSize[i].m_iFlashSize));
|
poCMI, astFlashSize[i].m_iFlashSize));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gameboy menu
|
// Game Boy menu
|
||||||
//
|
poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("GameBoyConfigure"));
|
||||||
poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("GameboyBorder"));
|
poMI->signal_activate().connect(sigc::mem_fun(*this, &Window::vOnGameBoyConfigure));
|
||||||
poCMI->set_active(m_poCoreConfig->oGetKey<bool>("gb_border"));
|
|
||||||
vOnGBBorderToggled(poCMI);
|
|
||||||
poCMI->signal_toggled().connect(sigc::bind(
|
|
||||||
sigc::mem_fun(*this, &Window::vOnGBBorderToggled),
|
|
||||||
poCMI));
|
|
||||||
|
|
||||||
poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget("GameboyPrinter"));
|
|
||||||
poCMI->set_active(m_poCoreConfig->oGetKey<bool>("gb_printer"));
|
|
||||||
vOnGBPrinterToggled(poCMI);
|
|
||||||
poCMI->signal_toggled().connect(sigc::bind(
|
|
||||||
sigc::mem_fun(*this, &Window::vOnGBPrinterToggled),
|
|
||||||
poCMI));
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
const char * m_csName;
|
|
||||||
const EEmulatorType m_eEmulatorType;
|
|
||||||
}
|
|
||||||
astEmulatorType[] =
|
|
||||||
{
|
|
||||||
{ "GameboyAutomatic", EmulatorAuto },
|
|
||||||
{ "GameboyGba", EmulatorGBA },
|
|
||||||
{ "GameboyCgb", EmulatorCGB },
|
|
||||||
{ "GameboySgb", EmulatorSGB },
|
|
||||||
{ "GameboySgb2", EmulatorSGB2 },
|
|
||||||
{ "GameboyGb", EmulatorGB }
|
|
||||||
};
|
|
||||||
EEmulatorType eDefaultEmulatorType = (EEmulatorType)m_poCoreConfig->oGetKey<int>("emulator_type");
|
|
||||||
for (guint i = 0; i < G_N_ELEMENTS(astEmulatorType); i++)
|
|
||||||
{
|
|
||||||
poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astEmulatorType[i].m_csName));
|
|
||||||
if (astEmulatorType[i].m_eEmulatorType == eDefaultEmulatorType)
|
|
||||||
{
|
|
||||||
poCMI->set_active();
|
|
||||||
vOnEmulatorTypeToggled(poCMI, eDefaultEmulatorType);
|
|
||||||
}
|
|
||||||
poCMI->signal_toggled().connect(sigc::bind(
|
|
||||||
sigc::mem_fun(*this, &Window::vOnEmulatorTypeToggled),
|
|
||||||
poCMI, astEmulatorType[i].m_eEmulatorType));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Display menu
|
// Display menu
|
||||||
poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("DisplayConfigure"));
|
poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("DisplayConfigure"));
|
||||||
|
@ -933,6 +897,35 @@ void Window::vApplyConfigSoundSampleRate()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Window::vApplyConfigGBSystem()
|
||||||
|
{
|
||||||
|
gbEmulatorType = m_poCoreConfig->oGetKey<int>("emulator_type");
|
||||||
|
}
|
||||||
|
|
||||||
|
void Window::vApplyConfigGBBorder()
|
||||||
|
{
|
||||||
|
gbBorderOn = m_poCoreConfig->oGetKey<bool>("gb_border");
|
||||||
|
if (emulating && m_eCartridge == CartridgeGB && gbBorderOn)
|
||||||
|
{
|
||||||
|
gbSgbRenderBorder();
|
||||||
|
}
|
||||||
|
vUpdateScreen();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Window::vApplyConfigGBPrinter()
|
||||||
|
{
|
||||||
|
bool bPrinter = m_poCoreConfig->oGetKey<bool>("gb_printer");
|
||||||
|
if (bPrinter)
|
||||||
|
{
|
||||||
|
gbSerialFunction = gbPrinterSend;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gbSerialFunction = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Window::vHistoryAdd(const std::string & _rsFile)
|
void Window::vHistoryAdd(const std::string & _rsFile)
|
||||||
{
|
{
|
||||||
std::string sURL = "file://" + _rsFile;
|
std::string sURL = "file://" + _rsFile;
|
||||||
|
|
|
@ -60,6 +60,16 @@ public:
|
||||||
OutputOpenGL,
|
OutputOpenGL,
|
||||||
OutputXvideo
|
OutputXvideo
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum EEmulatorType
|
||||||
|
{
|
||||||
|
EmulatorAuto,
|
||||||
|
EmulatorCGB,
|
||||||
|
EmulatorSGB,
|
||||||
|
EmulatorGB,
|
||||||
|
EmulatorGBA,
|
||||||
|
EmulatorSGB2
|
||||||
|
};
|
||||||
|
|
||||||
// GB/GBA screen sizes
|
// GB/GBA screen sizes
|
||||||
const int m_iGBScreenWidth;
|
const int m_iGBScreenWidth;
|
||||||
|
@ -82,6 +92,9 @@ public:
|
||||||
void vApplyConfigMute();
|
void vApplyConfigMute();
|
||||||
void vApplyConfigVolume();
|
void vApplyConfigVolume();
|
||||||
void vApplyConfigSoundSampleRate();
|
void vApplyConfigSoundSampleRate();
|
||||||
|
void vApplyConfigGBSystem();
|
||||||
|
void vApplyConfigGBBorder();
|
||||||
|
void vApplyConfigGBPrinter();
|
||||||
void vUpdateScreen();
|
void vUpdateScreen();
|
||||||
|
|
||||||
inline ECartridge eGetCartridge() const { return m_eCartridge; }
|
inline ECartridge eGetCartridge() const { return m_eCartridge; }
|
||||||
|
@ -114,16 +127,6 @@ protected:
|
||||||
SoundOn
|
SoundOn
|
||||||
};
|
};
|
||||||
|
|
||||||
enum EEmulatorType
|
|
||||||
{
|
|
||||||
EmulatorAuto,
|
|
||||||
EmulatorCGB,
|
|
||||||
EmulatorSGB,
|
|
||||||
EmulatorGB,
|
|
||||||
EmulatorGBA,
|
|
||||||
EmulatorSGB2
|
|
||||||
};
|
|
||||||
|
|
||||||
enum EColorFormat
|
enum EColorFormat
|
||||||
{
|
{
|
||||||
ColorFormatRGB,
|
ColorFormatRGB,
|
||||||
|
@ -153,12 +156,10 @@ protected:
|
||||||
virtual void vOnShowSpeedToggled(Gtk::CheckMenuItem * _poCMI, int _iShowSpeed);
|
virtual void vOnShowSpeedToggled(Gtk::CheckMenuItem * _poCMI, int _iShowSpeed);
|
||||||
virtual void vOnSaveTypeToggled(Gtk::CheckMenuItem * _poCMI, int _iSaveType);
|
virtual void vOnSaveTypeToggled(Gtk::CheckMenuItem * _poCMI, int _iSaveType);
|
||||||
virtual void vOnFlashSizeToggled(Gtk::CheckMenuItem * _poCMI, int _iFlashSize);
|
virtual void vOnFlashSizeToggled(Gtk::CheckMenuItem * _poCMI, int _iFlashSize);
|
||||||
virtual void vOnGBBorderToggled(Gtk::CheckMenuItem * _poCMI);
|
|
||||||
virtual void vOnGBPrinterToggled(Gtk::CheckMenuItem * _poCMI);
|
|
||||||
virtual void vOnEmulatorTypeToggled(Gtk::CheckMenuItem * _poCMI, int _iEmulatorType);
|
|
||||||
virtual void vOnJoypadConfigure();
|
virtual void vOnJoypadConfigure();
|
||||||
virtual void vOnDisplayConfigure();
|
virtual void vOnDisplayConfigure();
|
||||||
virtual void vOnSoundConfigure();
|
virtual void vOnSoundConfigure();
|
||||||
|
virtual void vOnGameBoyConfigure();
|
||||||
virtual void vOnHelpAbout();
|
virtual void vOnHelpAbout();
|
||||||
virtual bool bOnEmuIdle();
|
virtual bool bOnEmuIdle();
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,6 @@
|
||||||
#include "../gba/Sound.h"
|
#include "../gba/Sound.h"
|
||||||
#include "../gb/gb.h"
|
#include "../gb/gb.h"
|
||||||
#include "../gb/gbGlobals.h"
|
#include "../gb/gbGlobals.h"
|
||||||
#include "../gb/gbPrinter.h"
|
|
||||||
#include "../Util.h"
|
#include "../Util.h"
|
||||||
#include "../sdl/inputSDL.h"
|
#include "../sdl/inputSDL.h"
|
||||||
|
|
||||||
|
@ -39,6 +38,7 @@
|
||||||
#include "directoriesconfig.h"
|
#include "directoriesconfig.h"
|
||||||
#include "displayconfig.h"
|
#include "displayconfig.h"
|
||||||
#include "soundconfig.h"
|
#include "soundconfig.h"
|
||||||
|
#include "gameboyconfig.h"
|
||||||
|
|
||||||
namespace VBA
|
namespace VBA
|
||||||
{
|
{
|
||||||
|
@ -471,36 +471,6 @@ void Window::vOnFlashSizeToggled(Gtk::CheckMenuItem * _poCMI, int _iFlashSize)
|
||||||
m_poCoreConfig->vSetKey("flash_size", _iFlashSize);
|
m_poCoreConfig->vSetKey("flash_size", _iFlashSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Window::vOnGBBorderToggled(Gtk::CheckMenuItem * _poCMI)
|
|
||||||
{
|
|
||||||
gbBorderOn = _poCMI->get_active();
|
|
||||||
if (emulating && m_eCartridge == CartridgeGB && _poCMI->get_active())
|
|
||||||
{
|
|
||||||
gbSgbRenderBorder();
|
|
||||||
}
|
|
||||||
vUpdateScreen();
|
|
||||||
m_poCoreConfig->vSetKey("gb_border", _poCMI->get_active());
|
|
||||||
}
|
|
||||||
|
|
||||||
void Window::vOnGBPrinterToggled(Gtk::CheckMenuItem * _poCMI)
|
|
||||||
{
|
|
||||||
if (_poCMI->get_active())
|
|
||||||
{
|
|
||||||
gbSerialFunction = gbPrinterSend;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gbSerialFunction = NULL;
|
|
||||||
}
|
|
||||||
m_poCoreConfig->vSetKey("gb_printer", _poCMI->get_active());
|
|
||||||
}
|
|
||||||
|
|
||||||
void Window::vOnEmulatorTypeToggled(Gtk::CheckMenuItem * _poCMI, int _iEmulatorType)
|
|
||||||
{
|
|
||||||
gbEmulatorType = _iEmulatorType;
|
|
||||||
m_poCoreConfig->vSetKey("emulator_type", _iEmulatorType);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Window::vOnJoypadConfigure()
|
void Window::vOnJoypadConfigure()
|
||||||
{
|
{
|
||||||
JoypadConfigDialog oDialog(m_poInputConfig);
|
JoypadConfigDialog oDialog(m_poInputConfig);
|
||||||
|
@ -534,6 +504,19 @@ void Window::vOnSoundConfigure()
|
||||||
poDialog->hide();
|
poDialog->hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Window::vOnGameBoyConfigure()
|
||||||
|
{
|
||||||
|
std::string sUiFile = sGetUiFilePath("gameboy.ui");
|
||||||
|
Glib::RefPtr<Gtk::Builder> poBuilder = Gtk::Builder::create_from_file(sUiFile);
|
||||||
|
|
||||||
|
GameBoyConfigDialog * poDialog = 0;
|
||||||
|
poBuilder->get_widget_derived("GameBoyConfigDialog", poDialog);
|
||||||
|
poDialog->vSetConfig(m_poCoreConfig, this);
|
||||||
|
poDialog->set_transient_for(*this);
|
||||||
|
poDialog->run();
|
||||||
|
poDialog->hide();
|
||||||
|
}
|
||||||
|
|
||||||
void Window::vOnHelpAbout()
|
void Window::vOnHelpAbout()
|
||||||
{
|
{
|
||||||
Gtk::AboutDialog oAboutDialog;
|
Gtk::AboutDialog oAboutDialog;
|
||||||
|
|
Loading…
Reference in New Issue