Hook up sky density panel to fixedenv and edit_ext_daycycle UI.

Fix retrieving LLSD for density configs (element not array) in density UI.

Tweak layout of sky density controls.
meow-7.2.2
Graham Linden 2018-08-29 21:13:09 +01:00
parent cb00370c4a
commit 964a472461
8 changed files with 192 additions and 149 deletions

View File

@ -1161,20 +1161,41 @@ F32 LLSettingsSky::getMieAnisotropy() const
{
return mSettings[SETTING_MIE_ANISOTROPY_FACTOR].asReal();
}
LLSD LLSettingsSky::getRayleighConfig() const
{
LLSD copy = *(mSettings[SETTING_RAYLEIGH_CONFIG].beginArray());
return copy;
}
LLSD LLSettingsSky::getMieConfig() const
{
LLSD copy = *(mSettings[SETTING_MIE_CONFIG].beginArray());
return copy;
}
LLSD LLSettingsSky::getAbsorptionConfig() const
{
LLSD copy = *(mSettings[SETTING_ABSORPTION_CONFIG].beginArray());
return copy;
}
LLSD LLSettingsSky::getRayleighConfigs() const
{
return mSettings[SETTING_RAYLEIGH_CONFIG];
LLSD copy = *(mSettings[SETTING_RAYLEIGH_CONFIG].beginArray());
return copy;
}
LLSD LLSettingsSky::getMieConfigs() const
{
return mSettings[SETTING_MIE_CONFIG];
LLSD copy = *(mSettings[SETTING_MIE_CONFIG].beginArray());
return copy;
}
LLSD LLSettingsSky::getAbsorptionConfigs() const
{
return mSettings[SETTING_ABSORPTION_CONFIG];
LLSD copy = *(mSettings[SETTING_ABSORPTION_CONFIG].beginArray());
return copy;
}
void LLSettingsSky::setRayleighConfigs(const LLSD& rayleighConfig)

View File

@ -116,10 +116,17 @@ public:
F32 getSkyTopRadius() const;
F32 getSunArcRadians() const;
F32 getMieAnisotropy() const;
// Return first (only) profile layer represented in LLSD
LLSD getRayleighConfig() const;
LLSD getMieConfig() const;
LLSD getAbsorptionConfig() const;
// Return entire LLSDArray of profile layers represented in LLSD
LLSD getRayleighConfigs() const;
LLSD getMieConfigs() const;
LLSD getAbsorptionConfigs() const;
LLUUID getBloomTextureId() const;
void setRayleighConfigs(const LLSD& rayleighConfig);

View File

@ -818,7 +818,7 @@ void LLFloaterEditExtDayCycle::updateSkyTabs(const LLSettingsSkyPtr_t &p_sky)
{
panel->setSky(p_sky);
}
panel = dynamic_cast<LLPanelSettingsDensityTab*>(tab_container->getChildView("advanced_atmo_panel"));
panel = dynamic_cast<LLPanelSettingsSkyDensityTab*>(tab_container->getChildView("advanced_atmo_panel"));
if (panel)
{
panel->setSky(p_sky);
@ -859,7 +859,7 @@ void LLFloaterEditExtDayCycle::setSkyTabsEnabled(BOOL enable)
panel->setEnabled(enable);
panel->setAllChildrenEnabled(enable);
}
panel = dynamic_cast<LLPanelSettingsDensityTab*>(tab_container->getChildView("advanced_atmo_panel"));
panel = dynamic_cast<LLPanelSettingsSkyDensityTab*>(tab_container->getChildView("advanced_atmo_panel"));
if (panel)
{
panel->setEnabled(enable);

View File

@ -596,6 +596,12 @@ BOOL LLFloaterFixedEnvironmentSky::postBuild()
panel->setOnDirtyFlagChanged([this](LLPanel *, bool value) { onPanelDirtyFlagChanged(value); });
mTab->addTabPanel(LLTabContainer::TabPanelParams().panel(panel).select_tab(false));
panel = new LLPanelSettingsSkyDensityTab;
panel->buildFromFile("panel_settings_sky_density.xml");
panel->setSky(std::static_pointer_cast<LLSettingsSky>(mSettings));
panel->setOnDirtyFlagChanged([this](LLPanel *, bool value) { onPanelDirtyFlagChanged(value); });
mTab->addTabPanel(LLTabContainer::TabPanelParams().panel(panel).select_tab(false));
return TRUE;
}

View File

@ -35,7 +35,6 @@
#include "llvirtualtrackball.h"
#include "llsettingssky.h"
namespace
{
// Atmosphere Tab
@ -100,7 +99,7 @@ namespace
static LLPanelInjector<LLPanelSettingsSkyAtmosTab> t_settings_atmos("panel_settings_atmos");
static LLPanelInjector<LLPanelSettingsSkyCloudTab> t_settings_cloud("panel_settings_cloud");
static LLPanelInjector<LLPanelSettingsSkySunMoonTab> t_settings_sunmoon("panel_settings_sunmoon");
static LLPanelInjector<LLPanelSettingsDensityTab> t_settings_density("panel_settings_density");
static LLPanelInjector<LLPanelSettingsSkyDensityTab> t_settings_density("panel_settings_density");
//==========================================================================
LLPanelSettingsSky::LLPanelSettingsSky() :
@ -511,11 +510,11 @@ void LLPanelSettingsSkySunMoonTab::onMoonScaleChanged()
}
LLPanelSettingsDensityTab::LLPanelSettingsDensityTab()
LLPanelSettingsSkyDensityTab::LLPanelSettingsSkyDensityTab()
{
}
BOOL LLPanelSettingsDensityTab::postBuild()
BOOL LLPanelSettingsSkyDensityTab::postBuild()
{
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_EXPONENTIAL)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onRayleighExponentialChanged(); });
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_EXPONENTIAL_SCALE)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onRayleighExponentialScaleChanged(); });
@ -539,7 +538,7 @@ BOOL LLPanelSettingsDensityTab::postBuild()
return TRUE;
}
void LLPanelSettingsDensityTab::setEnabled(BOOL enabled)
void LLPanelSettingsSkyDensityTab::setEnabled(BOOL enabled)
{
LLPanelSettingsSky::setEnabled(enabled);
@ -562,7 +561,7 @@ void LLPanelSettingsDensityTab::setEnabled(BOOL enabled)
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MAX_ALTITUDE)->setEnabled(enabled);
}
void LLPanelSettingsDensityTab::refresh()
void LLPanelSettingsSkyDensityTab::refresh()
{
if (!mSkySettings)
{
@ -574,30 +573,46 @@ void LLPanelSettingsDensityTab::refresh()
setEnabled(TRUE);
setAllChildrenEnabled(TRUE);
LLSD rayleigh_config = mSkySettings->getRayleighConfigs();
LLSD mie_config = mSkySettings->getMieConfigs();
LLSD absorption_config = mSkySettings->getAbsorptionConfigs();
// Get first (only) profile layer of each type for editing
LLSD rayleigh_config = mSkySettings->getRayleighConfig();
LLSD mie_config = mSkySettings->getMieConfig();
LLSD absorption_config = mSkySettings->getAbsorptionConfig();
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_EXPONENTIAL)->setValue(rayleigh_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_TERM]);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_EXPONENTIAL_SCALE)->setValue(rayleigh_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_SCALE_FACTOR]);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_LINEAR)->setValue(rayleigh_config[LLSettingsSky::SETTING_DENSITY_PROFILE_LINEAR_TERM]);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_CONSTANT)->setValue(rayleigh_config[LLSettingsSky::SETTING_DENSITY_PROFILE_CONSTANT_TERM]);
F32 rayleigh_exponential_term = rayleigh_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_TERM].asReal();
F32 rayleigh_exponential_scale = rayleigh_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_SCALE_FACTOR].asReal();
F32 rayleigh_linear_term = rayleigh_config[LLSettingsSky::SETTING_DENSITY_PROFILE_LINEAR_TERM].asReal();
F32 rayleigh_constant_term = rayleigh_config[LLSettingsSky::SETTING_DENSITY_PROFILE_CONSTANT_TERM].asReal();
F32 mie_exponential_term = mie_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_TERM].asReal();
F32 mie_exponential_scale = mie_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_SCALE_FACTOR].asReal();
F32 mie_linear_term = mie_config[LLSettingsSky::SETTING_DENSITY_PROFILE_LINEAR_TERM].asReal();
F32 mie_constant_term = mie_config[LLSettingsSky::SETTING_DENSITY_PROFILE_CONSTANT_TERM].asReal();
F32 mie_aniso_factor = mie_config[LLSettingsSky::SETTING_MIE_ANISOTROPY_FACTOR].asReal();
F32 absorption_exponential_term = absorption_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_TERM].asReal();
F32 absorption_exponential_scale = absorption_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_SCALE_FACTOR].asReal();
F32 absorption_linear_term = absorption_config[LLSettingsSky::SETTING_DENSITY_PROFILE_LINEAR_TERM].asReal();
F32 absorption_constant_term = absorption_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_TERM].asReal();
F32 max_alt = rayleigh_config[LLSettingsSky::SETTING_DENSITY_PROFILE_WIDTH].asReal();
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_EXPONENTIAL)->setValue(mie_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_TERM]);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_EXPONENTIAL_SCALE)->setValue(mie_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_SCALE_FACTOR]);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_LINEAR)->setValue(mie_config[LLSettingsSky::SETTING_DENSITY_PROFILE_LINEAR_TERM]);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_CONSTANT)->setValue(mie_config[LLSettingsSky::SETTING_DENSITY_PROFILE_CONSTANT_TERM]);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_ANISO)->setValue(mie_config[LLSettingsSky::SETTING_MIE_ANISOTROPY_FACTOR]);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_EXPONENTIAL)->setValue(rayleigh_exponential_term);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_EXPONENTIAL_SCALE)->setValue(rayleigh_exponential_scale);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_LINEAR)->setValue(rayleigh_linear_term);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_CONSTANT)->setValue(rayleigh_constant_term);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_EXPONENTIAL)->setValue(absorption_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_TERM]);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_EXPONENTIAL_SCALE)->setValue(absorption_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_SCALE_FACTOR]);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_LINEAR)->setValue(absorption_config[LLSettingsSky::SETTING_DENSITY_PROFILE_LINEAR_TERM]);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_CONSTANT)->setValue(absorption_config[LLSettingsSky::SETTING_DENSITY_PROFILE_CONSTANT_TERM]);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_EXPONENTIAL)->setValue(mie_exponential_term);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_EXPONENTIAL_SCALE)->setValue(mie_exponential_scale);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_LINEAR)->setValue(mie_linear_term);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_CONSTANT)->setValue(mie_constant_term);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_ANISO)->setValue(mie_aniso_factor);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MAX_ALTITUDE)->setValue(rayleigh_config[LLSettingsSky::SETTING_DENSITY_PROFILE_WIDTH]);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_EXPONENTIAL)->setValue(absorption_exponential_term);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_EXPONENTIAL_SCALE)->setValue(absorption_exponential_scale);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_LINEAR)->setValue(absorption_linear_term);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_CONSTANT)->setValue(absorption_constant_term);
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MAX_ALTITUDE)->setValue(max_alt);
}
void LLPanelSettingsDensityTab::updateProfile()
void LLPanelSettingsSkyDensityTab::updateProfile()
{
F32 rayleigh_exponential_term = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_RAYLEIGH_EXPONENTIAL)->getValueF32();
F32 rayleigh_exponential_scale = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_RAYLEIGH_EXPONENTIAL_SCALE)->getValueF32();
@ -625,72 +640,72 @@ void LLPanelSettingsDensityTab::updateProfile()
mSkySettings->update();
}
void LLPanelSettingsDensityTab::onRayleighExponentialChanged()
void LLPanelSettingsSkyDensityTab::onRayleighExponentialChanged()
{
updateProfile();
}
void LLPanelSettingsDensityTab::onRayleighExponentialScaleChanged()
void LLPanelSettingsSkyDensityTab::onRayleighExponentialScaleChanged()
{
updateProfile();
}
void LLPanelSettingsDensityTab::onRayleighLinearChanged()
void LLPanelSettingsSkyDensityTab::onRayleighLinearChanged()
{
updateProfile();
}
void LLPanelSettingsDensityTab::onRayleighConstantChanged()
void LLPanelSettingsSkyDensityTab::onRayleighConstantChanged()
{
updateProfile();
}
void LLPanelSettingsDensityTab::onMieExponentialChanged()
void LLPanelSettingsSkyDensityTab::onMieExponentialChanged()
{
updateProfile();
}
void LLPanelSettingsDensityTab::onMieExponentialScaleChanged()
void LLPanelSettingsSkyDensityTab::onMieExponentialScaleChanged()
{
updateProfile();
}
void LLPanelSettingsDensityTab::onMieLinearChanged()
void LLPanelSettingsSkyDensityTab::onMieLinearChanged()
{
updateProfile();
}
void LLPanelSettingsDensityTab::onMieConstantChanged()
void LLPanelSettingsSkyDensityTab::onMieConstantChanged()
{
updateProfile();
}
void LLPanelSettingsDensityTab::onMieAnisoFactorChanged()
void LLPanelSettingsSkyDensityTab::onMieAnisoFactorChanged()
{
updateProfile();
}
void LLPanelSettingsDensityTab::onAbsorptionExponentialChanged()
void LLPanelSettingsSkyDensityTab::onAbsorptionExponentialChanged()
{
updateProfile();
}
void LLPanelSettingsDensityTab::onAbsorptionExponentialScaleChanged()
void LLPanelSettingsSkyDensityTab::onAbsorptionExponentialScaleChanged()
{
updateProfile();
}
void LLPanelSettingsDensityTab::onAbsorptionLinearChanged()
void LLPanelSettingsSkyDensityTab::onAbsorptionLinearChanged()
{
updateProfile();
}
void LLPanelSettingsDensityTab::onAbsorptionConstantChanged()
void LLPanelSettingsSkyDensityTab::onAbsorptionConstantChanged()
{
updateProfile();
}
void LLPanelSettingsDensityTab::onMaxAltitudeChanged()
void LLPanelSettingsSkyDensityTab::onMaxAltitudeChanged()
{
updateProfile();
}

View File

@ -127,12 +127,12 @@ private:
};
// single subtab of the density settings tab
class LLPanelSettingsDensityTab : public LLPanelSettingsSky
class LLPanelSettingsSkyDensityTab : public LLPanelSettingsSky
{
LOG_CLASS(LLPanelSettingsDensityTab);
LOG_CLASS(LLPanelSettingsSkyDensityTab);
public:
LLPanelSettingsDensityTab();
LLPanelSettingsSkyDensityTab();
virtual BOOL postBuild() override;
virtual void setEnabled(BOOL enabled) override;

View File

@ -524,11 +524,11 @@ Select a key frame from the timeline above to edit settings.
border="true"
class="panel_settings_density"
filename="panel_settings_sky_density.xml"
label="Advanced Atmospherics"
label="Density"
layout="topleft"
left_delta="0"
top_pad="5"
name="sky_density_panel" />
name="panel_settings_sky_density" />
</tab_container>
</layout_panel>
</layout_stack>

View File

@ -22,11 +22,11 @@
auto_resize="true"
user_resize="true"
visible="true"
height="28">
height="16">
<slider
decimal_digits="2"
follows="left|top"
height="16"
height="14"
increment="0.01"
initial_value="0"
layout="topleft"
@ -35,53 +35,51 @@
max_val="1"
name="rayleigh_exponential"
label="Rayleigh Exponential Term:"
top_delta="8"
top_pad="8"
width="400"
label_width="160"
can_edit_text="true"/>
<slider
decimal_digits="2"
follows="left|top"
height="16"
height="14"
increment="0.01"
initial_value="0"
layout="topleft"
left_delta="5"
min_val="0"
max_val="1"
name="rayleigh_exponential_scale"
label="Rayleigh Exponential Scale:"
top_delta="8"
width="400"
label_width="160"
can_edit_text="true"/>
<slider
decimal_digits="2"
follows="left|top"
height="16"
height="14"
increment="0.01"
initial_value="0"
layout="topleft"
left_delta="5"
min_val="0"
max_val="1"
name="rayleigh_linear"
label="Rayleigh Linear Term:"
top_delta="8"
width="400"
label_width="160"
can_edit_text="true"/>
<slider
decimal_digits="2"
follows="left|top"
height="16"
height="14"
increment="0.01"
initial_value="0"
layout="topleft"
left_delta="5"
min_val="0"
max_val="1"
name="rayleigh_constant"
label="Rayleigh Constant Term:"
top_delta="8"
width="400"
label_width="160"
can_edit_text="true"/>
</layout_panel>
<layout_panel
@ -90,11 +88,11 @@
auto_resize="true"
user_resize="true"
visible="true"
height="28">
height="18">
<slider
decimal_digits="2"
follows="left|top"
height="16"
height="14"
increment="0.01"
initial_value="0"
layout="topleft"
@ -103,136 +101,65 @@
max_val="3.0"
name="mie_exponential"
label="Mie Exponential Term:"
top_delta="8"
top_pad="8"
width="400"
label_width="160"
can_edit_text="true"/>
<slider
decimal_digits="2"
follows="left|top"
height="16"
height="14"
increment="0.01"
initial_value="0"
layout="topleft"
left_delta="5"
min_val="0"
min_val="-1"
max_val="1"
name="mie_exponential_scale"
label="Mie Exponential Scale:"
top_delta="8"
width="400"
label_width="160"
can_edit_text="true"/>
<slider
decimal_digits="2"
follows="left|top"
height="16"
height="14"
increment="0.01"
initial_value="0"
layout="topleft"
left_delta="5"
min_val="0"
max_val="3.0"
name="mie_linear"
label="Mie Linear Term:"
top_delta="8"
width="400"
label_width="160"
can_edit_text="true"/>
<slider
decimal_digits="2"
follows="left|top"
height="16"
height="14"
increment="0.01"
initial_value="0"
layout="topleft"
left_delta="5"
min_val="0"
max_val="10"
name="mie_constant"
label="Mie Constant Term:"
top_delta="8"
width="400"
label_width="160"
can_edit_text="true"/>
<slider
decimal_digits="2"
follows="left|top"
height="16"
height="14"
increment="0.01"
initial_value="0"
layout="topleft"
left_delta="5"
min_val="0.2"
max_val="1.8"
name="mie_aniso_factor"
label="Mie Aniso Factor:"
top_delta="8"
width="400"
can_edit_text="true"/>
</layout_panel>
<layout_panel
border="true"
bevel_style="in"
auto_resize="true"
user_resize="true"
visible="true"
height="28">
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
left_delta="5"
min_val="0"
max_val="1"
name="absorption_exponential"
label="Absorption Exponential Term:"
top_delta="8"
width="400"
can_edit_text="true"/>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
left_delta="5"
min_val="0"
max_val="1"
name="absorption_exponential_scale"
label="Absorption Exponential Scale:"
top_delta="8"
width="400"
can_edit_text="true"/>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
left_delta="5"
min_val="0"
max_val="1"
name="absorption_linear"
label="Absorption Linear Term:"
top_delta="8"
width="400"
can_edit_text="true"/>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
left_delta="5"
min_val="0"
max_val="1"
name="absorption_constant"
label="Absorption Constant Term:"
top_delta="8"
width="400"
label_width="160"
can_edit_text="true"/>
</layout_panel>
<layout_panel
@ -245,7 +172,73 @@
<slider
decimal_digits="2"
follows="left|top"
height="16"
height="14"
increment="0.01"
initial_value="0"
layout="topleft"
left_delta="5"
min_val="0"
max_val="1"
name="absorption_exponential"
label="Absorption Exponential Term:"
top_pad="8"
width="400"
label_width="160"
can_edit_text="true"/>
<slider
decimal_digits="2"
follows="left|top"
height="14"
increment="0.01"
initial_value="0"
layout="topleft"
min_val="-1"
max_val="1"
name="absorption_exponential_scale"
label="Absorption Exponential Scale:"
width="400"
label_width="160"
can_edit_text="true"/>
<slider
decimal_digits="2"
follows="left|top"
height="14"
increment="0.01"
initial_value="0"
layout="topleft"
min_val="0"
max_val="1"
name="absorption_linear"
label="Absorption Linear Term:"
width="400"
label_width="160"
can_edit_text="true"/>
<slider
decimal_digits="2"
follows="left|top"
height="14"
increment="0.01"
initial_value="0"
layout="topleft"
min_val="0"
max_val="1"
name="absorption_constant"
label="Absorption Constant Term:"
width="400"
label_width="160"
can_edit_text="true"/>
</layout_panel>
<layout_panel
border="true"
bevel_style="in"
auto_resize="true"
user_resize="true"
visible="true"
height="10">
<slider
decimal_digits="2"
follows="left|top"
height="14"
increment="1"
initial_value="0"
layout="topleft"
@ -254,9 +247,10 @@
max_val="40000"
name="max_altitude"
label="Max Altitude:"
top_delta="8"
top_pad="8"
width="400"
label_width="160"
can_edit_text="true"/>
</layout_panel>
</layout_stack>
</panel>
</panel>