mirror of https://github.com/stella-emu/stella.git
some minor UI cosmetics
This commit is contained in:
parent
be775b53e3
commit
3f5440bb24
|
@ -63,7 +63,7 @@ void Properties::set(PropertyType key, const string& value)
|
||||||
case Display_PPBlend:
|
case Display_PPBlend:
|
||||||
{
|
{
|
||||||
int blend = atoi(myProperties[key].c_str());
|
int blend = atoi(myProperties[key].c_str());
|
||||||
if(blend < 1 || blend > 100)
|
if(blend < 0 || blend > 100)
|
||||||
myProperties[key] = ourDefaultProperties[key];
|
myProperties[key] = ourDefaultProperties[key];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,14 +111,14 @@ GameInfoDialog::GameInfoDialog(
|
||||||
myFormatDetected = new StaticTextWidget(myTab, ifont, myFormat->getRight() + 8, ypos + 4, "SECAM60 detected");
|
myFormatDetected = new StaticTextWidget(myTab, ifont, myFormat->getRight() + 8, ypos + 4, "SECAM60 detected");
|
||||||
|
|
||||||
// Phosphor
|
// Phosphor
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP * 2;
|
||||||
myPhosphor = new CheckboxWidget(myTab, font, HBORDER, ypos + 1, "Phosphor", kPhosphorChanged);
|
myPhosphor = new CheckboxWidget(myTab, font, HBORDER, ypos + 1, "Phosphor (enabled for all ROMs)", kPhosphorChanged);
|
||||||
wid.push_back(myPhosphor);
|
wid.push_back(myPhosphor);
|
||||||
|
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
myPPBlend = new SliderWidget(myTab, font,
|
myPPBlend = new SliderWidget(myTab, font,
|
||||||
HBORDER + 20, ypos,
|
HBORDER + 20, ypos,
|
||||||
"Blend ", 0, kPPBlendChanged, 7 * fontWidth, "%");
|
"Blend ", 0, kPPBlendChanged, 4 * fontWidth, "%");
|
||||||
myPPBlend->setMinValue(0); myPPBlend->setMaxValue(100);
|
myPPBlend->setMinValue(0); myPPBlend->setMaxValue(100);
|
||||||
myPPBlend->setTickmarkInterval(2);
|
myPPBlend->setTickmarkInterval(2);
|
||||||
wid.push_back(myPPBlend);
|
wid.push_back(myPPBlend);
|
||||||
|
@ -392,12 +392,14 @@ void GameInfoDialog::loadEmulationProperties(const Properties& props)
|
||||||
bool usePhosphor = props.get(Display_Phosphor) == "YES";
|
bool usePhosphor = props.get(Display_Phosphor) == "YES";
|
||||||
myPhosphor->setState(usePhosphor);
|
myPhosphor->setState(usePhosphor);
|
||||||
myPhosphor->setEnabled(!alwaysPhosphor);
|
myPhosphor->setEnabled(!alwaysPhosphor);
|
||||||
|
if (alwaysPhosphor)
|
||||||
|
myPhosphor->setLabel("Phosphor (enabled for all ROMs)");
|
||||||
|
else
|
||||||
|
myPhosphor->setLabel("Phosphor");
|
||||||
myPPBlend->setEnabled(!alwaysPhosphor && usePhosphor);
|
myPPBlend->setEnabled(!alwaysPhosphor && usePhosphor);
|
||||||
|
|
||||||
const string& blend = props.get(Display_PPBlend);
|
const string& blend = props.get(Display_PPBlend);
|
||||||
myPPBlend->setValue(atoi(blend.c_str()));
|
myPPBlend->setValue(atoi(blend.c_str()));
|
||||||
myPPBlend->setValueLabel(blend == "0" ? "Default" : blend);
|
|
||||||
myPPBlend->setValueUnit(blend == "0" ? "" : "%");
|
|
||||||
|
|
||||||
mySound->setState(props.get(Cartridge_Sound) == "STEREO");
|
mySound->setState(props.get(Cartridge_Sound) == "STEREO");
|
||||||
// if stereo is always enabled, disable game specific stereo setting
|
// if stereo is always enabled, disable game specific stereo setting
|
||||||
|
@ -511,7 +513,7 @@ void GameInfoDialog::saveConfig()
|
||||||
myGameProperties.set(Display_Format, myFormat->getSelectedTag().toString());
|
myGameProperties.set(Display_Format, myFormat->getSelectedTag().toString());
|
||||||
myGameProperties.set(Display_Phosphor, myPhosphor->getState() ? "YES" : "NO");
|
myGameProperties.set(Display_Phosphor, myPhosphor->getState() ? "YES" : "NO");
|
||||||
|
|
||||||
myGameProperties.set(Display_PPBlend, myPPBlend->getValueLabel() == "Default" ? "0" :
|
myGameProperties.set(Display_PPBlend, myPPBlend->getValueLabel() == "Off" ? "0" :
|
||||||
myPPBlend->getValueLabel());
|
myPPBlend->getValueLabel());
|
||||||
myGameProperties.set(Cartridge_Sound, mySound->getState() ? "STEREO" : "MONO");
|
myGameProperties.set(Cartridge_Sound, mySound->getState() ? "STEREO" : "MONO");
|
||||||
|
|
||||||
|
@ -700,7 +702,7 @@ void GameInfoDialog::handleCommand(CommandSender* sender, int cmd,
|
||||||
case kPPBlendChanged:
|
case kPPBlendChanged:
|
||||||
if(myPPBlend->getValue() == 0)
|
if(myPPBlend->getValue() == 0)
|
||||||
{
|
{
|
||||||
myPPBlend->setValueLabel("Default");
|
myPPBlend->setValueLabel("Off");
|
||||||
myPPBlend->setValueUnit("");
|
myPPBlend->setValueUnit("");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -265,9 +265,9 @@ void StellaSettingsDialog::setDefaults()
|
||||||
// TV effects
|
// TV effects
|
||||||
myTVMode->setSelected("0", "0");
|
myTVMode->setSelected("0", "0");
|
||||||
// TV scanline intensity
|
// TV scanline intensity
|
||||||
myTVScanIntense->setValue(4); // = 26%
|
myTVScanIntense->setValue(0); // = off
|
||||||
// TV phosphor blend
|
// TV phosphor blend
|
||||||
myTVPhosLevel->setValue(6); // = 45%
|
myTVPhosLevel->setValue(0); // = off
|
||||||
|
|
||||||
// Load the default game properties
|
// Load the default game properties
|
||||||
Properties defaultProperties;
|
Properties defaultProperties;
|
||||||
|
@ -295,12 +295,12 @@ void StellaSettingsDialog::handleCommand(CommandSender* sender, int cmd,
|
||||||
|
|
||||||
case kScanlinesChanged:
|
case kScanlinesChanged:
|
||||||
if(myTVScanIntense->getValue() == 0)
|
if(myTVScanIntense->getValue() == 0)
|
||||||
myTVScanIntense->setValueLabel("off");
|
myTVScanIntense->setValueLabel("Off");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case kPhosphorChanged:
|
case kPhosphorChanged:
|
||||||
if(myTVPhosLevel->getValue() == 0)
|
if(myTVPhosLevel->getValue() == 0)
|
||||||
myTVPhosLevel->setValueLabel("off");
|
myTVPhosLevel->setValueLabel("Off");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -246,25 +246,25 @@ VideoDialog::VideoDialog(OSystem& osystem, DialogContainer& parent,
|
||||||
xpos += INDENT - 2; ypos += 0;
|
xpos += INDENT - 2; ypos += 0;
|
||||||
lwidth = font.getStringWidth("Saturation ");
|
lwidth = font.getStringWidth("Saturation ");
|
||||||
|
|
||||||
#define CREATE_CUSTOM_SLIDERS(obj, desc) \
|
#define CREATE_CUSTOM_SLIDERS(obj, desc, cmd) \
|
||||||
myTV ## obj = \
|
myTV ## obj = \
|
||||||
new SliderWidget(myTab, font, xpos, ypos-1, swidth, lineHeight, \
|
new SliderWidget(myTab, font, xpos, ypos-1, swidth, lineHeight, \
|
||||||
desc, lwidth, 0, fontWidth*4, "%"); \
|
desc, lwidth, cmd, fontWidth*4, "%"); \
|
||||||
myTV ## obj->setMinValue(0); myTV ## obj->setMaxValue(100); \
|
myTV ## obj->setMinValue(0); myTV ## obj->setMaxValue(100); \
|
||||||
myTV ## obj->setTickmarkInterval(2); \
|
myTV ## obj->setTickmarkInterval(2); \
|
||||||
wid.push_back(myTV ## obj); \
|
wid.push_back(myTV ## obj); \
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
CREATE_CUSTOM_SLIDERS(Contrast, "Contrast ")
|
CREATE_CUSTOM_SLIDERS(Contrast, "Contrast ", 0)
|
||||||
CREATE_CUSTOM_SLIDERS(Bright, "Brightness ")
|
CREATE_CUSTOM_SLIDERS(Bright, "Brightness ", 0)
|
||||||
CREATE_CUSTOM_SLIDERS(Hue, "Hue ")
|
CREATE_CUSTOM_SLIDERS(Hue, "Hue ", 0)
|
||||||
CREATE_CUSTOM_SLIDERS(Satur, "Saturation ")
|
CREATE_CUSTOM_SLIDERS(Satur, "Saturation ", 0)
|
||||||
CREATE_CUSTOM_SLIDERS(Gamma, "Gamma ")
|
CREATE_CUSTOM_SLIDERS(Gamma, "Gamma ", 0)
|
||||||
CREATE_CUSTOM_SLIDERS(Sharp, "Sharpness ")
|
CREATE_CUSTOM_SLIDERS(Sharp, "Sharpness ", 0)
|
||||||
CREATE_CUSTOM_SLIDERS(Res, "Resolution ")
|
CREATE_CUSTOM_SLIDERS(Res, "Resolution ", 0)
|
||||||
CREATE_CUSTOM_SLIDERS(Artifacts, "Artifacts ")
|
CREATE_CUSTOM_SLIDERS(Artifacts, "Artifacts ", 0)
|
||||||
CREATE_CUSTOM_SLIDERS(Fringe, "Fringing ")
|
CREATE_CUSTOM_SLIDERS(Fringe, "Fringing ", 0)
|
||||||
CREATE_CUSTOM_SLIDERS(Bleed, "Bleeding ")
|
CREATE_CUSTOM_SLIDERS(Bleed, "Bleeding ", 0)
|
||||||
|
|
||||||
xpos += myTVContrast->getWidth() + 30;
|
xpos += myTVContrast->getWidth() + 30;
|
||||||
ypos = VBORDER;
|
ypos = VBORDER;
|
||||||
|
@ -279,7 +279,7 @@ VideoDialog::VideoDialog(OSystem& osystem, DialogContainer& parent,
|
||||||
// TV Phosphor blend level
|
// TV Phosphor blend level
|
||||||
xpos += INDENT;
|
xpos += INDENT;
|
||||||
swidth = font.getMaxCharWidth() * 10;
|
swidth = font.getMaxCharWidth() * 10;
|
||||||
CREATE_CUSTOM_SLIDERS(PhosLevel, "Blend ")
|
CREATE_CUSTOM_SLIDERS(PhosLevel, "Blend ", kPhosBlendChanged)
|
||||||
ypos += 8;
|
ypos += 8;
|
||||||
|
|
||||||
// Scanline intensity and interpolation
|
// Scanline intensity and interpolation
|
||||||
|
@ -288,7 +288,7 @@ VideoDialog::VideoDialog(OSystem& osystem, DialogContainer& parent,
|
||||||
ypos += lineHeight + VGAP / 2;
|
ypos += lineHeight + VGAP / 2;
|
||||||
|
|
||||||
xpos += INDENT;
|
xpos += INDENT;
|
||||||
CREATE_CUSTOM_SLIDERS(ScanIntense, "Intensity ")
|
CREATE_CUSTOM_SLIDERS(ScanIntense, "Intensity ", kScanlinesChanged)
|
||||||
ypos += lineHeight + 2;
|
ypos += lineHeight + 2;
|
||||||
|
|
||||||
// Adjustable presets
|
// Adjustable presets
|
||||||
|
@ -580,7 +580,7 @@ void VideoDialog::handlePhosphorChange()
|
||||||
void VideoDialog::handleCommand(CommandSender* sender, int cmd,
|
void VideoDialog::handleCommand(CommandSender* sender, int cmd,
|
||||||
int data, int id)
|
int data, int id)
|
||||||
{
|
{
|
||||||
switch(cmd)
|
switch (cmd)
|
||||||
{
|
{
|
||||||
case GuiObject::kOKCmd:
|
case GuiObject::kOKCmd:
|
||||||
saveConfig();
|
saveConfig();
|
||||||
|
@ -610,10 +610,30 @@ void VideoDialog::handleCommand(CommandSender* sender, int cmd,
|
||||||
case kCloneCustomCmd: loadTVAdjustables(NTSCFilter::PRESET_CUSTOM);
|
case kCloneCustomCmd: loadTVAdjustables(NTSCFilter::PRESET_CUSTOM);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case kScanlinesChanged:
|
||||||
|
if (myTVScanIntense->getValue() == 0)
|
||||||
|
{
|
||||||
|
myTVScanIntense->setValueLabel("Off");
|
||||||
|
myTVScanIntense->setValueUnit("");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
myTVScanIntense->setValueUnit("%");
|
||||||
|
break;
|
||||||
|
|
||||||
case kPhosphorChanged:
|
case kPhosphorChanged:
|
||||||
handlePhosphorChange();
|
handlePhosphorChange();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case kPhosBlendChanged:
|
||||||
|
if (myTVPhosLevel->getValue() == 0)
|
||||||
|
{
|
||||||
|
myTVPhosLevel->setValueLabel("Off");
|
||||||
|
myTVPhosLevel->setValueUnit("");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
myTVPhosLevel->setValueUnit("%");
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Dialog::handleCommand(sender, cmd, data, 0);
|
Dialog::handleCommand(sender, cmd, data, 0);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -106,7 +106,9 @@ class VideoDialog : public Dialog
|
||||||
kCloneRGBCmd = 'CLrb',
|
kCloneRGBCmd = 'CLrb',
|
||||||
kCloneBadCmd = 'CLbd',
|
kCloneBadCmd = 'CLbd',
|
||||||
kCloneCustomCmd = 'CLcu',
|
kCloneCustomCmd = 'CLcu',
|
||||||
kPhosphorChanged = 'VDph'
|
kPhosphorChanged = 'VDph',
|
||||||
|
kPhosBlendChanged = 'VDbl',
|
||||||
|
kScanlinesChanged = 'VDsc'
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
Loading…
Reference in New Issue