Few improvements of spinner and option UI (#4453)
* few improvements of option UI * small fix * show the correct spinner text when not activated * camera name for translation * clean the code (loop camera spinner)
This commit is contained in:
parent
edcf9cb624
commit
5f6eb5e440
@ -5,7 +5,7 @@
|
|||||||
<spacer width="100%" height="3%"/>
|
<spacer width="100%" height="3%"/>
|
||||||
<div width="100%" height="91%" layout="vertical-row" >
|
<div width="100%" height="91%" layout="vertical-row" >
|
||||||
|
|
||||||
<label width="100%" I18N="In the ui/camera settings" text="Player camera"/>
|
<label id="camera_name" width="100%" I18N="In the ui/camera settings" text="Player camera"/>
|
||||||
<spacer width="5" height="1%"/>
|
<spacer width="5" height="1%"/>
|
||||||
|
|
||||||
<div width="100%" height="fit" layout="horizontal-row">
|
<div width="100%" height="fit" layout="horizontal-row">
|
||||||
|
@ -417,7 +417,7 @@ void SpinnerWidget::setValue(const int new_value)
|
|||||||
std::string imagefile = file_manager->searchTexture(s);
|
std::string imagefile = file_manager->searchTexture(s);
|
||||||
((IGUIImage*)(m_children[1].m_element))->setImage(irr_driver->getTexture(imagefile));
|
((IGUIImage*)(m_children[1].m_element))->setImage(irr_driver->getTexture(imagefile));
|
||||||
}
|
}
|
||||||
else if (m_labels.size() > 0 && m_children.size() > 0 && !m_deactivated)
|
else if (m_labels.size() > 0 && m_children.size() > 0)
|
||||||
{
|
{
|
||||||
assert(new_value >= 0);
|
assert(new_value >= 0);
|
||||||
assert(new_value < (int)m_labels.size());
|
assert(new_value < (int)m_labels.size());
|
||||||
@ -502,15 +502,6 @@ void SpinnerWidget::setActive(bool active)
|
|||||||
setCustomText(m_custom_text);
|
setCustomText(m_custom_text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
// Save it temporary because setValue(which is uses for update in
|
|
||||||
// this case) overwrites it
|
|
||||||
core::stringw custom_text = m_custom_text;
|
|
||||||
setText(L"-");
|
|
||||||
setValue(getValue()); // Update the display
|
|
||||||
m_custom_text = custom_text;
|
|
||||||
}
|
|
||||||
} // setActive
|
} // setActive
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
#include "config/user_config.hpp"
|
#include "config/user_config.hpp"
|
||||||
#include "guiengine/widgets/check_box_widget.hpp"
|
#include "guiengine/widgets/check_box_widget.hpp"
|
||||||
|
#include "guiengine/widgets/label_widget.hpp"
|
||||||
#include "guiengine/widgets/spinner_widget.hpp"
|
#include "guiengine/widgets/spinner_widget.hpp"
|
||||||
#include "states_screens/options/options_screen_ui.hpp"
|
#include "states_screens/options/options_screen_ui.hpp"
|
||||||
#include "utils/translation.hpp"
|
#include "utils/translation.hpp"
|
||||||
@ -62,6 +63,11 @@ void CustomCameraSettingsDialog::beforeAddingWidgets()
|
|||||||
getWidget<SpinnerWidget>("backward_camera_angle")->setRange(0 , 45);
|
getWidget<SpinnerWidget>("backward_camera_angle")->setRange(0 , 45);
|
||||||
if (UserConfigParams::m_camera_present == 1) // Standard camera
|
if (UserConfigParams::m_camera_present == 1) // Standard camera
|
||||||
{
|
{
|
||||||
|
getWidget<LabelWidget>("camera_name")->setText(_("Standard"), false);
|
||||||
|
getWidget<SpinnerWidget>("fov")->setValue(UserConfigParams::m_standard_camera_fov);
|
||||||
|
getWidget<SpinnerWidget>("camera_distance")->setFloatValue(UserConfigParams::m_standard_camera_distance);
|
||||||
|
getWidget<SpinnerWidget>("camera_angle")->setValue(UserConfigParams::m_standard_camera_forward_up_angle);
|
||||||
|
getWidget<SpinnerWidget>("backward_camera_angle")->setValue(UserConfigParams::m_standard_camera_backward_up_angle);
|
||||||
getWidget<CheckBoxWidget>("camera_smoothing")->setState(UserConfigParams::m_standard_camera_forward_smoothing);
|
getWidget<CheckBoxWidget>("camera_smoothing")->setState(UserConfigParams::m_standard_camera_forward_smoothing);
|
||||||
getWidget<CheckBoxWidget>("use_soccer_camera")->setState(UserConfigParams::m_standard_reverse_look_use_soccer_cam);
|
getWidget<CheckBoxWidget>("use_soccer_camera")->setState(UserConfigParams::m_standard_reverse_look_use_soccer_cam);
|
||||||
// Not allowed to change fov, distance, and angles. Only allow to change smoothing and follow soccer
|
// Not allowed to change fov, distance, and angles. Only allow to change smoothing and follow soccer
|
||||||
@ -72,6 +78,11 @@ void CustomCameraSettingsDialog::beforeAddingWidgets()
|
|||||||
}
|
}
|
||||||
else if (UserConfigParams::m_camera_present == 2) // Drone chase camera
|
else if (UserConfigParams::m_camera_present == 2) // Drone chase camera
|
||||||
{
|
{
|
||||||
|
getWidget<LabelWidget>("camera_name")->setText(_("Drone chase"), false);
|
||||||
|
getWidget<SpinnerWidget>("fov")->setValue(UserConfigParams::m_drone_camera_fov);
|
||||||
|
getWidget<SpinnerWidget>("camera_distance")->setFloatValue(UserConfigParams::m_drone_camera_distance);
|
||||||
|
getWidget<SpinnerWidget>("camera_angle")->setValue(UserConfigParams::m_drone_camera_forward_up_angle);
|
||||||
|
getWidget<SpinnerWidget>("backward_camera_angle")->setValue(UserConfigParams::m_drone_camera_backward_up_angle);
|
||||||
getWidget<CheckBoxWidget>("camera_smoothing")->setState(UserConfigParams::m_drone_camera_forward_smoothing);
|
getWidget<CheckBoxWidget>("camera_smoothing")->setState(UserConfigParams::m_drone_camera_forward_smoothing);
|
||||||
getWidget<CheckBoxWidget>("use_soccer_camera")->setState(UserConfigParams::m_drone_reverse_look_use_soccer_cam);
|
getWidget<CheckBoxWidget>("use_soccer_camera")->setState(UserConfigParams::m_drone_reverse_look_use_soccer_cam);
|
||||||
// Not allowed to change fov, distance, and angles. Only allow to change smoothing and follow soccer
|
// Not allowed to change fov, distance, and angles. Only allow to change smoothing and follow soccer
|
||||||
@ -82,6 +93,7 @@ void CustomCameraSettingsDialog::beforeAddingWidgets()
|
|||||||
}
|
}
|
||||||
else // Custom camera
|
else // Custom camera
|
||||||
{
|
{
|
||||||
|
getWidget<LabelWidget>("camera_name")->setText(_("Custom"), false);
|
||||||
getWidget<SpinnerWidget>("fov")->setValue(UserConfigParams::m_saved_camera_fov);
|
getWidget<SpinnerWidget>("fov")->setValue(UserConfigParams::m_saved_camera_fov);
|
||||||
getWidget<SpinnerWidget>("camera_distance")->setFloatValue(UserConfigParams::m_saved_camera_distance);
|
getWidget<SpinnerWidget>("camera_distance")->setFloatValue(UserConfigParams::m_saved_camera_distance);
|
||||||
getWidget<SpinnerWidget>("camera_angle")->setValue(UserConfigParams::m_saved_camera_forward_up_angle);
|
getWidget<SpinnerWidget>("camera_angle")->setValue(UserConfigParams::m_saved_camera_forward_up_angle);
|
||||||
|
@ -83,6 +83,11 @@ void OptionsScreenAudio::init()
|
|||||||
sfx->setState( UserConfigParams::m_sfx );
|
sfx->setState( UserConfigParams::m_sfx );
|
||||||
music->setState( UserConfigParams::m_music );
|
music->setState( UserConfigParams::m_music );
|
||||||
|
|
||||||
|
if(!UserConfigParams::m_sfx)
|
||||||
|
getWidget<SpinnerWidget>("sfx_volume")->setActive(false);
|
||||||
|
if(!UserConfigParams::m_music)
|
||||||
|
getWidget<SpinnerWidget>("music_volume")->setActive(false);
|
||||||
|
|
||||||
} // init
|
} // init
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
@ -155,9 +160,15 @@ void OptionsScreenAudio::eventCallback(Widget* widget, const std::string& name,
|
|||||||
Log::info("OptionsScreenAudio", "Music is now %s", ((bool) UserConfigParams::m_music) ? "on" : "off");
|
Log::info("OptionsScreenAudio", "Music is now %s", ((bool) UserConfigParams::m_music) ? "on" : "off");
|
||||||
|
|
||||||
if(w->getState() == false)
|
if(w->getState() == false)
|
||||||
|
{
|
||||||
music_manager->stopMusic();
|
music_manager->stopMusic();
|
||||||
|
getWidget<SpinnerWidget>("music_volume")->setActive(false);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
music_manager->startMusic();
|
music_manager->startMusic();
|
||||||
|
getWidget<SpinnerWidget>("music_volume")->setActive(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(name == "sfx_enabled")
|
else if(name == "sfx_enabled")
|
||||||
{
|
{
|
||||||
@ -169,6 +180,11 @@ void OptionsScreenAudio::eventCallback(Widget* widget, const std::string& name,
|
|||||||
if (UserConfigParams::m_sfx)
|
if (UserConfigParams::m_sfx)
|
||||||
{
|
{
|
||||||
SFXManager::get()->quickSound("horn");
|
SFXManager::get()->quickSound("horn");
|
||||||
|
getWidget<SpinnerWidget>("sfx_volume")->setActive(true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
getWidget<SpinnerWidget>("sfx_volume")->setActive(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} // eventCallback
|
} // eventCallback
|
||||||
|
@ -150,6 +150,20 @@ void OptionsScreenUI::loadedFromFile()
|
|||||||
font_size->m_properties[GUIEngine::PROP_MAX_VALUE] = "5";
|
font_size->m_properties[GUIEngine::PROP_MAX_VALUE] = "5";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Setup camera spinner
|
||||||
|
GUIEngine::SpinnerWidget* camera_preset = getWidget<GUIEngine::SpinnerWidget>("camera_preset");
|
||||||
|
assert( camera_preset != NULL );
|
||||||
|
|
||||||
|
camera_preset->m_properties[PROP_WRAP_AROUND] = "true";
|
||||||
|
camera_preset->clearLabels();
|
||||||
|
//I18N: In the UI options, Camera setting: Custom
|
||||||
|
camera_preset->addLabel( core::stringw(_("Custom")));
|
||||||
|
//I18N: In the UI options, Camera setting: Standard
|
||||||
|
camera_preset->addLabel( core::stringw(_("Standard")));
|
||||||
|
//I18N: In the UI options, Camera setting: Drone chase
|
||||||
|
camera_preset->addLabel( core::stringw(_("Drone chase")));
|
||||||
|
camera_preset->m_properties[GUIEngine::PROP_MIN_VALUE] = "0";
|
||||||
|
camera_preset->m_properties[GUIEngine::PROP_MAX_VALUE] = "2";
|
||||||
updateCameraPresetSpinner();
|
updateCameraPresetSpinner();
|
||||||
|
|
||||||
font_size->setValueUpdatedCallback([this](SpinnerWidget* spinner)
|
font_size->setValueUpdatedCallback([this](SpinnerWidget* spinner)
|
||||||
@ -339,21 +353,11 @@ void OptionsScreenUI::init()
|
|||||||
irr_driver->setMaxTextureSize();
|
irr_driver->setMaxTextureSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --- select the right camera in the spinner
|
||||||
GUIEngine::SpinnerWidget* camera_preset = getWidget<GUIEngine::SpinnerWidget>("camera_preset");
|
GUIEngine::SpinnerWidget* camera_preset = getWidget<GUIEngine::SpinnerWidget>("camera_preset");
|
||||||
assert( camera_preset != NULL );
|
assert( camera_preset != NULL );
|
||||||
|
|
||||||
camera_preset->m_properties[PROP_WRAP_AROUND] = "true";
|
|
||||||
camera_preset->clearLabels();
|
|
||||||
//I18N: In the UI options, Camera setting: Custom
|
|
||||||
camera_preset->addLabel( core::stringw(_("Custom")));
|
|
||||||
//I18N: In the UI options, Camera setting: Standard
|
|
||||||
camera_preset->addLabel( core::stringw(_("Standard")));
|
|
||||||
//I18N: In the UI options, Camera setting: Drone chase
|
|
||||||
camera_preset->addLabel( core::stringw(_("Drone chase")));
|
|
||||||
camera_preset->m_properties[GUIEngine::PROP_MIN_VALUE] = "1";
|
|
||||||
camera_preset->m_properties[GUIEngine::PROP_MAX_VALUE] = "2";
|
|
||||||
camera_preset->setValue(UserConfigParams::m_camera_present); // use the saved camera
|
camera_preset->setValue(UserConfigParams::m_camera_present); // use the saved camera
|
||||||
|
|
||||||
updateCameraPresetSpinner();
|
updateCameraPresetSpinner();
|
||||||
} // init
|
} // init
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user