Fixed #538: Implemented GUI controls for display centering
This commit is contained in:
parent
b756445a87
commit
1466ae965b
3 changed files with 60 additions and 8 deletions
|
@ -720,6 +720,29 @@ int check_prefs_changed_gfx()
|
||||||
update_display(&currprefs);
|
update_display(&currprefs);
|
||||||
changed = 1;
|
changed = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (currprefs.gf[0].gfx_filter_autoscale != changed_prefs.gf[0].gfx_filter_autoscale ||
|
||||||
|
currprefs.gfx_xcenter_pos != changed_prefs.gfx_xcenter_pos ||
|
||||||
|
currprefs.gfx_ycenter_pos != changed_prefs.gfx_ycenter_pos ||
|
||||||
|
currprefs.gfx_xcenter_size != changed_prefs.gfx_xcenter_size ||
|
||||||
|
currprefs.gfx_ycenter_size != changed_prefs.gfx_ycenter_size ||
|
||||||
|
currprefs.gfx_xcenter != changed_prefs.gfx_xcenter ||
|
||||||
|
currprefs.gfx_ycenter != changed_prefs.gfx_ycenter)
|
||||||
|
{
|
||||||
|
currprefs.gfx_xcenter_pos = changed_prefs.gfx_xcenter_pos;
|
||||||
|
currprefs.gfx_ycenter_pos = changed_prefs.gfx_ycenter_pos;
|
||||||
|
currprefs.gfx_xcenter_size = changed_prefs.gfx_xcenter_size;
|
||||||
|
currprefs.gfx_ycenter_size = changed_prefs.gfx_ycenter_size;
|
||||||
|
currprefs.gfx_xcenter = changed_prefs.gfx_xcenter;
|
||||||
|
currprefs.gfx_ycenter = changed_prefs.gfx_ycenter;
|
||||||
|
currprefs.gf[0].gfx_filter_autoscale = changed_prefs.gf[0].gfx_filter_autoscale;
|
||||||
|
|
||||||
|
get_custom_limits(NULL, NULL, NULL, NULL, NULL);
|
||||||
|
fixup_prefs_dimensions(&changed_prefs);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (currprefs.leds_on_screen != changed_prefs.leds_on_screen ||
|
if (currprefs.leds_on_screen != changed_prefs.leds_on_screen ||
|
||||||
currprefs.hide_idle_led != changed_prefs.hide_idle_led)
|
currprefs.hide_idle_led != changed_prefs.hide_idle_led)
|
||||||
{
|
{
|
||||||
|
|
|
@ -203,17 +203,18 @@ static NavigationMap navMap[] =
|
||||||
// active move left move right move up move down
|
// active move left move right move up move down
|
||||||
// PanelDisplay
|
// PanelDisplay
|
||||||
{"sldWidth", "", "", "Frameskip", "sldHeight"},
|
{"sldWidth", "", "", "Frameskip", "sldHeight"},
|
||||||
{"sldHeight", "", "", "sldWidth", "sldVertPos"},
|
{"sldHeight", "", "", "sldWidth", "Auto"},
|
||||||
{"sldVertPos", "", "", "sldHeight", "Auto"},
|
{"Auto", "Display", "Single", "sldHeight", "Nearest Neighbor (pixelated)"},
|
||||||
{"Auto", "Display", "Single", "sldVertPos", "Nearest Neighbor (pixelated)"},
|
|
||||||
{"Nearest Neighbor (pixelated)", "Display", "Double", "Auto", "Linear (smooth)"},
|
{"Nearest Neighbor (pixelated)", "Display", "Double", "Auto", "Linear (smooth)"},
|
||||||
{"Linear (smooth)", "Display", "Scanlines", "Nearest Neighbor (pixelated)", "CorrectAR"},
|
{"Linear (smooth)", "Display", "Scanlines", "Nearest Neighbor (pixelated)", "CorrectAR"},
|
||||||
{"Single", "Auto", "Auto", "sdlVertPos", "Double"},
|
{"Single", "Auto", "Auto", "Vertical", "Double"},
|
||||||
{"Double", "Nearest Neighbor (pixelated)", "Nearest Neighbor (pixelated)", "Single", "Scanlines"},
|
{"Double", "Nearest Neighbor (pixelated)", "Nearest Neighbor (pixelated)", "Single", "Scanlines"},
|
||||||
{"Scanlines", "Linear (smooth)", "Linear (smooth)", "Double", "Fullscreen"},
|
{"Scanlines", "Linear (smooth)", "Linear (smooth)", "Double", "Fullscreen"},
|
||||||
{"CorrectAR", "Display", "Fullscreen", "Linear (smooth)", "Frameskip"},
|
{"CorrectAR", "Display", "Fullscreen", "Linear (smooth)", "Frameskip"},
|
||||||
{"Fullscreen", "CorrectAR", "CorrectAR", "Scanlines", "Frameskip"},
|
{"Fullscreen", "CorrectAR", "CorrectAR", "Scanlines", "Frameskip"},
|
||||||
{"Frameskip", "Display", "Display", "CorrectAR", "sldWidth"},
|
{"Frameskip", "Display", "Display", "CorrectAR", "sldWidth"},
|
||||||
|
{"Vertical", "", "", "Horizontal", "Single"},
|
||||||
|
{"Horizontal", "", "", "", "Vertical"},
|
||||||
|
|
||||||
// active move left move right move up move down
|
// active move left move right move up move down
|
||||||
//PanelSound
|
//PanelSound
|
||||||
|
|
|
@ -38,6 +38,10 @@ static gcn::UaeCheckBox* chkFrameskip;
|
||||||
static gcn::UaeCheckBox* chkAspect;
|
static gcn::UaeCheckBox* chkAspect;
|
||||||
static gcn::UaeCheckBox* chkFullscreen;
|
static gcn::UaeCheckBox* chkFullscreen;
|
||||||
|
|
||||||
|
static gcn::Window* grpCentering;
|
||||||
|
static gcn::UaeCheckBox* chkHorizontal;
|
||||||
|
static gcn::UaeCheckBox* chkVertical;
|
||||||
|
|
||||||
class AmigaScreenActionListener : public gcn::ActionListener
|
class AmigaScreenActionListener : public gcn::ActionListener
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -78,6 +82,12 @@ public:
|
||||||
changed_prefs.gfx_apmode[1].gfx_fullscreen = GFX_FULLSCREEN;
|
changed_prefs.gfx_apmode[1].gfx_fullscreen = GFX_FULLSCREEN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if (actionEvent.getSource() == chkHorizontal)
|
||||||
|
changed_prefs.gfx_xcenter = chkHorizontal->isSelected() ? 2 : 0;
|
||||||
|
|
||||||
|
else if (actionEvent.getSource() == chkVertical)
|
||||||
|
changed_prefs.gfx_ycenter = chkVertical->isSelected() ? 2 : 0;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -151,6 +161,11 @@ void InitPanelDisplay(const struct _ConfigCategory& category)
|
||||||
sldAmigaHeight->addActionListener(amigaScreenActionListener);
|
sldAmigaHeight->addActionListener(amigaScreenActionListener);
|
||||||
lblAmigaHeightInfo = new gcn::Label("200");
|
lblAmigaHeightInfo = new gcn::Label("200");
|
||||||
|
|
||||||
|
chkHorizontal = new gcn::UaeCheckBox("Horizontal");
|
||||||
|
chkHorizontal->addActionListener(amigaScreenActionListener);
|
||||||
|
chkVertical = new gcn::UaeCheckBox("Vertical");
|
||||||
|
chkVertical->addActionListener(amigaScreenActionListener);
|
||||||
|
|
||||||
chkAspect = new gcn::UaeCheckBox("Correct Aspect Ratio");
|
chkAspect = new gcn::UaeCheckBox("Correct Aspect Ratio");
|
||||||
chkAspect->setId("CorrectAR");
|
chkAspect->setId("CorrectAR");
|
||||||
chkAspect->addActionListener(amigaScreenActionListener);
|
chkAspect->addActionListener(amigaScreenActionListener);
|
||||||
|
@ -180,8 +195,17 @@ void InitPanelDisplay(const struct _ConfigCategory& category)
|
||||||
lblAmigaWidth->getX() + lblAmigaWidth->getWidth() + sldAmigaWidth->getWidth() + lblAmigaWidth->getWidth() + (
|
lblAmigaWidth->getX() + lblAmigaWidth->getWidth() + sldAmigaWidth->getWidth() + lblAmigaWidth->getWidth() + (
|
||||||
DISTANCE_BORDER * 2), posY + DISTANCE_BORDER);
|
DISTANCE_BORDER * 2), posY + DISTANCE_BORDER);
|
||||||
grpAmigaScreen->setBaseColor(gui_baseCol);
|
grpAmigaScreen->setBaseColor(gui_baseCol);
|
||||||
|
|
||||||
category.panel->add(grpAmigaScreen);
|
category.panel->add(grpAmigaScreen);
|
||||||
|
|
||||||
|
grpCentering = new gcn::Window("Centering");
|
||||||
|
grpCentering->setPosition(DISTANCE_BORDER + grpAmigaScreen->getWidth() + DISTANCE_BORDER, DISTANCE_BORDER);
|
||||||
|
grpCentering->add(chkHorizontal, DISTANCE_BORDER, DISTANCE_BORDER);
|
||||||
|
grpCentering->add(chkVertical, DISTANCE_BORDER, chkHorizontal->getY() + chkHorizontal->getHeight() + DISTANCE_NEXT_Y);
|
||||||
|
grpCentering->setMovable(false);
|
||||||
|
grpCentering->setSize(chkHorizontal->getX() + chkHorizontal->getWidth() + DISTANCE_BORDER * 2, posY + DISTANCE_BORDER);
|
||||||
|
grpCentering->setBaseColor(gui_baseCol);
|
||||||
|
category.panel->add(grpCentering);
|
||||||
|
|
||||||
posY = DISTANCE_BORDER + grpAmigaScreen->getHeight() + DISTANCE_NEXT_Y;
|
posY = DISTANCE_BORDER + grpAmigaScreen->getHeight() + DISTANCE_NEXT_Y;
|
||||||
|
|
||||||
scalingMethodActionListener = new ScalingMethodActionListener();
|
scalingMethodActionListener = new ScalingMethodActionListener();
|
||||||
|
@ -250,11 +274,12 @@ void ExitPanelDisplay()
|
||||||
delete lblAmigaHeight;
|
delete lblAmigaHeight;
|
||||||
delete sldAmigaHeight;
|
delete sldAmigaHeight;
|
||||||
delete lblAmigaHeightInfo;
|
delete lblAmigaHeightInfo;
|
||||||
//delete lblVertPos;
|
|
||||||
//delete sldVertPos;
|
|
||||||
//delete lblVertPosInfo;
|
|
||||||
delete grpAmigaScreen;
|
delete grpAmigaScreen;
|
||||||
|
|
||||||
|
delete chkHorizontal;
|
||||||
|
delete chkVertical;
|
||||||
|
delete grpCentering;
|
||||||
|
|
||||||
delete chkAspect;
|
delete chkAspect;
|
||||||
delete chkFullscreen;
|
delete chkFullscreen;
|
||||||
|
|
||||||
|
@ -301,6 +326,9 @@ void RefreshPanelDisplay()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
chkHorizontal->setSelected(changed_prefs.gfx_xcenter == 2);
|
||||||
|
chkVertical->setSelected(changed_prefs.gfx_ycenter == 2);
|
||||||
|
|
||||||
chkAspect->setSelected(changed_prefs.gfx_correct_aspect);
|
chkAspect->setSelected(changed_prefs.gfx_correct_aspect);
|
||||||
chkFullscreen->setSelected(changed_prefs.gfx_apmode[0].gfx_fullscreen == GFX_FULLSCREEN);
|
chkFullscreen->setSelected(changed_prefs.gfx_apmode[0].gfx_fullscreen == GFX_FULLSCREEN);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue