some minor UI cosmetics

This commit is contained in:
Thomas Jentzsch 2019-04-04 10:56:39 +02:00
parent be775b53e3
commit 3f5440bb24
5 changed files with 52 additions and 28 deletions

View File

@ -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;
} }

View File

@ -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

View File

@ -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:

View File

@ -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;

View File

@ -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: