parent
bd20a2e6aa
commit
348caa1b80
|
@ -598,6 +598,41 @@
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkMenu" id="VideoMenu_menu">
|
<widget class="GtkMenu" id="VideoMenu_menu">
|
||||||
|
<child>
|
||||||
|
<widget class="GtkRadioMenuItem" id="VideoOpenGL">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">_OpenGL</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="active">True</property>
|
||||||
|
<property name="draw_as_radio">True</property>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkRadioMenuItem" id="VideoCairo">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">_Cairo</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="draw_as_radio">True</property>
|
||||||
|
<property name="group">VideoOpenGL</property>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkRadioMenuItem" id="VideoXv">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">_Xvideo</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="draw_as_radio">True</property>
|
||||||
|
<property name="group">VideoOpenGL</property>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkSeparatorMenuItem" id="separator57">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkRadioMenuItem" id="Video1x">
|
<widget class="GtkRadioMenuItem" id="Video1x">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
|
|
@ -124,8 +124,6 @@ Window::Window(GtkWindow * _pstWindow, const Glib::RefPtr<Xml> & _poXml) :
|
||||||
vSaveConfig(m_sConfigFile);
|
vSaveConfig(m_sConfigFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
vInitScreenArea();
|
|
||||||
|
|
||||||
vCreateFileOpenDialog();
|
vCreateFileOpenDialog();
|
||||||
vLoadHistoryFromConfig();
|
vLoadHistoryFromConfig();
|
||||||
vLoadJoypadsFromConfig();
|
vLoadJoypadsFromConfig();
|
||||||
|
@ -133,6 +131,33 @@ Window::Window(GtkWindow * _pstWindow, const Glib::RefPtr<Xml> & _poXml) :
|
||||||
Gtk::MenuItem * poMI;
|
Gtk::MenuItem * poMI;
|
||||||
Gtk::CheckMenuItem * poCMI;
|
Gtk::CheckMenuItem * poCMI;
|
||||||
|
|
||||||
|
// Video output menu
|
||||||
|
//
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
const char * m_csName;
|
||||||
|
const EVideoOutput m_eVideoOutput;
|
||||||
|
}
|
||||||
|
astVideoOutput[] =
|
||||||
|
{
|
||||||
|
{ "VideoOpenGL", OutputOpenGL },
|
||||||
|
{ "VideoCairo", OutputGtk },
|
||||||
|
{ "VideoXv", OutputXvideo }
|
||||||
|
};
|
||||||
|
EVideoOutput eDefaultVideoOutput = (EVideoOutput)m_poDisplayConfig->oGetKey<int>("output");
|
||||||
|
for (guint i = 0; i < G_N_ELEMENTS(astVideoOutput); i++)
|
||||||
|
{
|
||||||
|
poCMI = dynamic_cast<Gtk::CheckMenuItem *>(_poXml->get_widget(astVideoOutput[i].m_csName));
|
||||||
|
if (astVideoOutput[i].m_eVideoOutput == eDefaultVideoOutput)
|
||||||
|
{
|
||||||
|
poCMI->set_active();
|
||||||
|
vOnVideoOutputToggled(poCMI, eDefaultVideoOutput);
|
||||||
|
}
|
||||||
|
poCMI->signal_toggled().connect(sigc::bind(
|
||||||
|
sigc::mem_fun(*this, &Window::vOnVideoOutputToggled),
|
||||||
|
poCMI, astVideoOutput[i].m_eVideoOutput));
|
||||||
|
}
|
||||||
|
|
||||||
// File menu
|
// File menu
|
||||||
//
|
//
|
||||||
poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("FileOpen"));
|
poMI = dynamic_cast<Gtk::MenuItem *>(_poXml->get_widget("FileOpen"));
|
||||||
|
@ -861,17 +886,17 @@ Window::~Window()
|
||||||
m_poInstance = NULL;
|
m_poInstance = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Window::vInitScreenArea()
|
void Window::vInitScreenArea(EVideoOutput _eVideoOutput)
|
||||||
{
|
{
|
||||||
Gtk::Alignment * poC;
|
Gtk::Alignment * poC;
|
||||||
|
|
||||||
poC = dynamic_cast<Gtk::Alignment *>(m_poXml->get_widget("ScreenContainer"));
|
poC = dynamic_cast<Gtk::Alignment *>(m_poXml->get_widget("ScreenContainer"));
|
||||||
|
poC->remove();
|
||||||
poC->set(Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER, 0.0, 0.0);
|
poC->set(Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER, 0.0, 0.0);
|
||||||
EVideoOutput eVideoOutput = (EVideoOutput)m_poDisplayConfig->oGetKey<int>("output");
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
switch (eVideoOutput)
|
switch (_eVideoOutput)
|
||||||
{
|
{
|
||||||
#ifdef USE_OPENGL
|
#ifdef USE_OPENGL
|
||||||
case OutputOpenGL:
|
case OutputOpenGL:
|
||||||
|
|
|
@ -159,6 +159,7 @@ protected:
|
||||||
virtual void vOnFrameskipToggled(Gtk::CheckMenuItem * _poCMI, int _iValue);
|
virtual void vOnFrameskipToggled(Gtk::CheckMenuItem * _poCMI, int _iValue);
|
||||||
virtual void vOnThrottleToggled(Gtk::CheckMenuItem * _poCMI, int _iPercent);
|
virtual void vOnThrottleToggled(Gtk::CheckMenuItem * _poCMI, int _iPercent);
|
||||||
virtual void vOnThrottleOther(Gtk::CheckMenuItem * _poCMI);
|
virtual void vOnThrottleOther(Gtk::CheckMenuItem * _poCMI);
|
||||||
|
virtual void vOnVideoOutputToggled(Gtk::CheckMenuItem * _poCMI, int _iOutput);
|
||||||
virtual void vOnVideoScaleToggled(Gtk::CheckMenuItem * _poCMI, int _iScale);
|
virtual void vOnVideoScaleToggled(Gtk::CheckMenuItem * _poCMI, int _iScale);
|
||||||
virtual void vOnLayerToggled(Gtk::CheckMenuItem * _poCMI, int _iLayer);
|
virtual void vOnLayerToggled(Gtk::CheckMenuItem * _poCMI, int _iLayer);
|
||||||
virtual void vOnDirectories();
|
virtual void vOnDirectories();
|
||||||
|
@ -291,7 +292,7 @@ private:
|
||||||
void vUnInitSystem();
|
void vUnInitSystem();
|
||||||
void vInitConfig();
|
void vInitConfig();
|
||||||
void vCheckConfig();
|
void vCheckConfig();
|
||||||
void vInitScreenArea();
|
void vInitScreenArea(EVideoOutput _eVideoOutput);
|
||||||
void vLoadConfig(const std::string & _rsFile);
|
void vLoadConfig(const std::string & _rsFile);
|
||||||
void vSaveConfig(const std::string & _rsFile);
|
void vSaveConfig(const std::string & _rsFile);
|
||||||
void vLoadHistoryFromConfig();
|
void vLoadHistoryFromConfig();
|
||||||
|
|
|
@ -590,6 +590,18 @@ void Window::vOnThrottleOther(Gtk::CheckMenuItem * _poCMI)
|
||||||
vSelectBestThrottleItem();
|
vSelectBestThrottleItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Window::vOnVideoOutputToggled(Gtk::CheckMenuItem * _poCMI, int _iOutput)
|
||||||
|
{
|
||||||
|
if (! _poCMI->get_active())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_poDisplayConfig->vSetKey("output", _iOutput);
|
||||||
|
|
||||||
|
vInitScreenArea((EVideoOutput)_iOutput);
|
||||||
|
}
|
||||||
|
|
||||||
void Window::vOnVideoScaleToggled(Gtk::CheckMenuItem * _poCMI, int _iScale)
|
void Window::vOnVideoScaleToggled(Gtk::CheckMenuItem * _poCMI, int _iScale)
|
||||||
{
|
{
|
||||||
if (! _poCMI->get_active())
|
if (! _poCMI->get_active())
|
||||||
|
|
Loading…
Reference in New Issue