MAINT-8052: One more step towards parcel environments.
parent
5e544ee35d
commit
536aeb54a6
|
|
@ -251,7 +251,7 @@ LLSD LLSettingsBase::getSettings() const
|
|||
|
||||
LLSD LLSettingsBase::cloneSettings() const
|
||||
{
|
||||
return combineSDMaps(mSettings, LLSD());
|
||||
return combineSDMaps(getSettings(), LLSD());
|
||||
}
|
||||
|
||||
size_t LLSettingsBase::getHash() const
|
||||
|
|
|
|||
|
|
@ -84,25 +84,6 @@ public:
|
|||
static LLSD defaults();
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
S64Seconds getDayLength() const
|
||||
{
|
||||
return mDayLength;
|
||||
}
|
||||
|
||||
void setDayLength(S64Seconds seconds)
|
||||
{
|
||||
mDayLength = seconds;
|
||||
}
|
||||
|
||||
S64Seconds getDayOffset() const
|
||||
{
|
||||
return mDayOffset;
|
||||
}
|
||||
|
||||
void setDayOffset(S64Seconds seconds)
|
||||
{
|
||||
mDayOffset = seconds;
|
||||
}
|
||||
|
||||
KeyframeList_t getTrackKeyframes(S32 track);
|
||||
TimeList_t getTrackTimes(S32 track);
|
||||
|
|
@ -139,6 +120,12 @@ public:
|
|||
|
||||
virtual validation_list_t getValidationList() const;
|
||||
static validation_list_t validationList();
|
||||
|
||||
S64Seconds getDayLength() const { return mDayLength; }
|
||||
void setDayLength(S64Seconds val ) { mDayLength = val; }
|
||||
S64Seconds getDayOffset() const { return mDayOffset; }
|
||||
void setDayOffset(S64Seconds val) { mDayOffset = val; }
|
||||
|
||||
protected:
|
||||
LLSettingsDay();
|
||||
|
||||
|
|
@ -157,8 +144,8 @@ private:
|
|||
|
||||
F64Seconds mLastUpdateTime;
|
||||
|
||||
S64Seconds mDayLength;
|
||||
S64Seconds mDayOffset;
|
||||
S64Seconds mDayLength;
|
||||
S64Seconds mDayOffset;
|
||||
|
||||
F32 secondsToKeyframe(S64Seconds seconds);
|
||||
F64Seconds keyframeToSeconds(F32 keyframe);
|
||||
|
|
|
|||
|
|
@ -270,6 +270,8 @@ LLSD LLSettingsSky::defaults()
|
|||
dfltsetting[SETTING_MOON_TEXTUREID] = IMG_MOON; // gMoonTextureID; // These two are returned by the login... wow!
|
||||
dfltsetting[SETTING_SUN_TEXUTUREID] = IMG_SUN; // gSunTextureID;
|
||||
|
||||
dfltsetting[SETTING_TYPE] = "sky";
|
||||
|
||||
return dfltsetting;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -412,6 +412,8 @@ public:
|
|||
virtual validation_list_t getValidationList() const;
|
||||
static validation_list_t validationList();
|
||||
|
||||
static LLSD translateLegacySettings(LLSD legacy);
|
||||
|
||||
protected:
|
||||
static const std::string SETTING_LEGACY_EAST_ANGLE;
|
||||
static const std::string SETTING_LEGACY_ENABLE_CLOUD_SCROLL;
|
||||
|
|
@ -423,8 +425,6 @@ protected:
|
|||
|
||||
virtual void updateSettings();
|
||||
|
||||
static LLSD translateLegacySettings(LLSD legacy);
|
||||
|
||||
private:
|
||||
static const F32 NIGHTTIME_ELEVATION;
|
||||
static const F32 NIGHTTIME_ELEVATION_COS;
|
||||
|
|
|
|||
|
|
@ -100,6 +100,8 @@ LLSD LLSettingsWater::defaults()
|
|||
dfltsetting[SETTING_WAVE1_DIR] = LLVector2(1.04999f, -0.42000f).getValue();
|
||||
dfltsetting[SETTING_WAVE2_DIR] = LLVector2(1.10999f, -1.16000f).getValue();
|
||||
|
||||
dfltsetting[SETTING_TYPE] = "water";
|
||||
|
||||
return dfltsetting;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -201,6 +201,8 @@ public:
|
|||
virtual validation_list_t getValidationList() const;
|
||||
static validation_list_t validationList();
|
||||
|
||||
static LLSD translateLegacySettings(LLSD legacy);
|
||||
|
||||
protected:
|
||||
static const std::string SETTING_LEGACY_BLUR_MULTIPILER;
|
||||
static const std::string SETTING_LEGACY_FOG_COLOR;
|
||||
|
|
@ -217,8 +219,6 @@ protected:
|
|||
|
||||
LLSettingsWater();
|
||||
|
||||
static LLSD translateLegacySettings(LLSD legacy);
|
||||
|
||||
LLVector4 mWaterPlane;
|
||||
F32 mWaterFogKS;
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -28,6 +28,8 @@
|
|||
#define LL_LLFLOATEREDITEXTDAYCYCLE_H
|
||||
|
||||
#include "llfloater.h"
|
||||
#include "llsettingsdaycycle.h"
|
||||
#include <boost/signals2.hpp>
|
||||
|
||||
class LLCheckBoxCtrl;
|
||||
class LLComboBox;
|
||||
|
|
@ -43,90 +45,92 @@ class LLFloaterEditExtDayCycle : public LLFloater
|
|||
LOG_CLASS(LLFloaterEditExtDayCycle);
|
||||
|
||||
public:
|
||||
typedef boost::signals2::signal<void(LLSettingsDay::ptr_t)> edit_commit_signal_t;
|
||||
typedef boost::signals2::connection connection_t;
|
||||
|
||||
LLFloaterEditExtDayCycle(const LLSD &key);
|
||||
|
||||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
/*virtual*/ void onClose(bool app_quitting);
|
||||
/*virtual*/ void draw();
|
||||
BOOL postBuild();
|
||||
void onOpen(const LLSD& key);
|
||||
void onClose(bool app_quitting);
|
||||
|
||||
void onVisibilityChange(BOOL new_visibility);
|
||||
|
||||
// /*virtual*/ void draw();
|
||||
connection_t setEditCommitSignal(edit_commit_signal_t::slot_type cb);
|
||||
|
||||
private:
|
||||
|
||||
/// sync the time slider with day cycle structure
|
||||
void syncTimeSlider();
|
||||
|
||||
// makes sure key slider has what's in day cycle
|
||||
void loadTrack();
|
||||
|
||||
/// makes sure day cycle data structure has what's in menu
|
||||
void applyTrack();
|
||||
|
||||
/// refresh the sky presets combobox
|
||||
void refreshSkyPresetsList();
|
||||
|
||||
/// refresh the day cycle combobox
|
||||
void refreshDayCyclesList();
|
||||
|
||||
/// add a slider to the track
|
||||
// void addSliderKey(F32 time, LLWLParamKey keyframe);
|
||||
|
||||
void initCallbacks();
|
||||
// LLWLParamKey getSelectedDayCycle();
|
||||
bool isNewDay() const;
|
||||
void dumpTrack();
|
||||
void enableEditing(bool enable);
|
||||
void reset();
|
||||
void saveRegionDayCycle();
|
||||
|
||||
void setApplyProgress(bool started);
|
||||
bool getApplyProgress() const;
|
||||
|
||||
void onTimeSliderMoved(); /// time slider moved
|
||||
void onKeyTimeMoved(); /// a key frame moved
|
||||
void onKeyTimeChanged(); /// a key frame's time changed
|
||||
void onKeyPresetChanged(); /// sky preset selected
|
||||
void onAddKey(); /// new key added on slider
|
||||
void onDeleteKey(); /// a key frame deleted
|
||||
|
||||
void onRegionSettingsChange();
|
||||
void onRegionChange();
|
||||
void onRegionSettingsApplied(bool success);
|
||||
void onRegionInfoUpdate();
|
||||
|
||||
void onDayCycleNameEdited();
|
||||
void onDayCycleSelected();
|
||||
void onBtnSave();
|
||||
void onBtnCancel();
|
||||
|
||||
bool onSaveAnswer(const LLSD& notification, const LLSD& response);
|
||||
void onSaveConfirmed();
|
||||
|
||||
void onDayCycleListChange();
|
||||
void onSkyPresetListChange();
|
||||
|
||||
static std::string getRegionName();
|
||||
|
||||
/// convenience class for holding keyframes mapped to sliders
|
||||
// struct SliderKey
|
||||
// {
|
||||
// public:
|
||||
// SliderKey(LLWLParamKey kf, F32 t) : keyframe(kf), time(t) {}
|
||||
// SliderKey() : keyframe(), time(0.f) {} // Don't use this default constructor
|
||||
// /// sync the time slider with day cycle structure
|
||||
// void syncTimeSlider();
|
||||
//
|
||||
// LLWLParamKey keyframe;
|
||||
// F32 time;
|
||||
// };
|
||||
// // makes sure key slider has what's in day cycle
|
||||
// void loadTrack();
|
||||
//
|
||||
// /// makes sure day cycle data structure has what's in menu
|
||||
// void applyTrack();
|
||||
//
|
||||
// /// refresh the sky presets combobox
|
||||
void refreshSkyPresetsList();
|
||||
|
||||
static const F32 sHoursPerDay;
|
||||
void onDayPresetChanged(); /// sky preset selected
|
||||
|
||||
LLLineEditor* mDayCycleNameEditor;
|
||||
LLComboBox* mDayCyclesCombo;
|
||||
LLMultiSliderCtrl* mTimeSlider;
|
||||
LLMultiSliderCtrl* mKeysSlider;
|
||||
LLComboBox* mSkyPresetsCombo;
|
||||
LLTimeCtrl* mTimeCtrl;
|
||||
LLCheckBoxCtrl* mMakeDefaultCheckBox;
|
||||
LLButton* mSaveButton;
|
||||
void onBtnSave();
|
||||
void onBtnCancel();
|
||||
|
||||
// /// refresh the day cycle combobox
|
||||
// void refreshDayCyclesList();
|
||||
//
|
||||
// /// add a slider to the track
|
||||
// // void addSliderKey(F32 time, LLWLParamKey keyframe);
|
||||
//
|
||||
// void initCallbacks();
|
||||
// // LLWLParamKey getSelectedDayCycle();
|
||||
// bool isNewDay() const;
|
||||
// void dumpTrack();
|
||||
// void enableEditing(bool enable);
|
||||
// void reset();
|
||||
// void saveRegionDayCycle();
|
||||
//
|
||||
// void setApplyProgress(bool started);
|
||||
// bool getApplyProgress() const;
|
||||
//
|
||||
// void onTimeSliderMoved(); /// time slider moved
|
||||
// void onKeyTimeMoved(); /// a key frame moved
|
||||
// void onKeyTimeChanged(); /// a key frame's time changed
|
||||
// void onAddKey(); /// new key added on slider
|
||||
// void onDeleteKey(); /// a key frame deleted
|
||||
//
|
||||
// void onRegionSettingsChange();
|
||||
// void onRegionChange();
|
||||
// void onRegionSettingsApplied(bool success);
|
||||
// void onRegionInfoUpdate();
|
||||
//
|
||||
// void onDayCycleNameEdited();
|
||||
// void onDayCycleSelected();
|
||||
//
|
||||
// bool onSaveAnswer(const LLSD& notification, const LLSD& response);
|
||||
// void onSaveConfirmed();
|
||||
//
|
||||
// void onDayCycleListChange();
|
||||
// void onSkyPresetListChange();
|
||||
//
|
||||
// static std::string getRegionName();
|
||||
|
||||
LLSettingsDay::ptr_t mSavedDay;
|
||||
LLSettingsDay::ptr_t mEditDay;
|
||||
|
||||
LLComboBox* mDayPresetsCombo;
|
||||
LLButton* mSaveButton;
|
||||
LLButton* mCancelButton;
|
||||
|
||||
edit_commit_signal_t mCommitSignal;
|
||||
|
||||
// LLComboBox* mDayCyclesCombo;
|
||||
// LLMultiSliderCtrl* mTimeSlider;
|
||||
// LLMultiSliderCtrl* mKeysSlider;
|
||||
// LLTimeCtrl* mTimeCtrl;
|
||||
// LLCheckBoxCtrl* mMakeDefaultCheckBox;
|
||||
|
||||
// map of sliders to parameters
|
||||
// std::map<std::string, SliderKey> mSliderToKey;
|
||||
|
|
|
|||
|
|
@ -190,6 +190,8 @@ public:
|
|||
protected:
|
||||
virtual void doApply();
|
||||
|
||||
virtual void doEditCommited(LLSettingsDay::ptr_t &newday);
|
||||
|
||||
private:
|
||||
LLViewerRegion * mLastRegion;
|
||||
};
|
||||
|
|
@ -3437,3 +3439,8 @@ void LLPanelRegionEnvironment::doApply()
|
|||
LLEnvironment::instance().updateRegion(mEditingDayCycle, daylength.value(), dayoffset_s.value());
|
||||
}
|
||||
}
|
||||
|
||||
void LLPanelRegionEnvironment::doEditCommited(LLSettingsDay::ptr_t &newday)
|
||||
{
|
||||
mEditingDayCycle = newday;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -412,67 +412,6 @@ protected:
|
|||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if 0
|
||||
class LLPanelEnvironmentInfo : public LLPanelRegionInfo
|
||||
{
|
||||
LOG_CLASS(LLPanelEnvironmentInfo);
|
||||
|
||||
public:
|
||||
LLPanelEnvironmentInfo();
|
||||
|
||||
// LLPanel
|
||||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
|
||||
// LLView
|
||||
/*virtual*/ void onVisibilityChange(BOOL new_visibility);
|
||||
|
||||
// LLPanelRegionInfo
|
||||
/*virtual*/ bool refreshFromRegion(LLViewerRegion* region);
|
||||
|
||||
private:
|
||||
void refresh();
|
||||
void setControlsEnabled(bool enabled);
|
||||
void setApplyProgress(bool started);
|
||||
void setDirty(bool dirty);
|
||||
|
||||
void sendRegionSunUpdate();
|
||||
void fixEstateSun();
|
||||
|
||||
void populateWaterPresetsList();
|
||||
void populateSkyPresetsList();
|
||||
void populateDayCyclesList();
|
||||
|
||||
bool getSelectedWaterParams(LLSD& water_params);
|
||||
bool getSelectedSkyParams(LLSD& sky_params, std::string& preset_name);
|
||||
bool getSelectedDayCycleParams(LLSD& day_cycle, LLSD& sky_map, short& scope);
|
||||
|
||||
void onSwitchRegionSettings();
|
||||
void onSwitchDayCycle();
|
||||
|
||||
void onSelectWaterPreset();
|
||||
void onSelectSkyPreset();
|
||||
void onSelectDayCycle();
|
||||
|
||||
void onBtnApply();
|
||||
void onBtnCancel();
|
||||
|
||||
void onRegionSettingschange();
|
||||
void onRegionSettingsApplied(bool ok);
|
||||
|
||||
/// New environment settings that are being applied to the region.
|
||||
// LLEnvironmentSettings mNewRegionSettings;
|
||||
|
||||
bool mEnableEditing;
|
||||
|
||||
LLRadioGroup* mRegionSettingsRadioGroup;
|
||||
LLRadioGroup* mDayCycleSettingsRadioGroup;
|
||||
|
||||
LLComboBox* mWaterPresetCombo;
|
||||
LLComboBox* mSkyPresetCombo;
|
||||
LLComboBox* mDayCyclePresetCombo;
|
||||
};
|
||||
#endif
|
||||
|
||||
class LLPanelRegionExperiences : public LLPanelRegionInfo
|
||||
{
|
||||
|
|
|
|||
|
|
@ -37,6 +37,10 @@
|
|||
#include "llslurl.h"
|
||||
#include "lllayoutstack.h"
|
||||
|
||||
#include "llfloater.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llfloatereditextdaycycle.h"
|
||||
|
||||
static LLPanelInjector<LLPanelEnvironmentInfo> register_environment_panel("environment_panel");
|
||||
|
||||
LLPanelEnvironmentInfo::LLPanelEnvironmentInfo():
|
||||
|
|
@ -329,7 +333,11 @@ void LLPanelEnvironmentInfo::setDirty(bool dirty)
|
|||
void LLPanelEnvironmentInfo::onSwitchDefaultSelection()
|
||||
{
|
||||
bool use_defaults = mRegionSettingsRadioGroup->getSelectedIndex() == 0;
|
||||
getChild<LLView>("user_environment_settings")->setEnabled(!use_defaults);
|
||||
|
||||
getChild<LLView>("edit_btn")->setEnabled(!use_defaults);
|
||||
|
||||
mDayLengthSlider->setEnabled(!use_defaults);
|
||||
mDayOffsetSlider->setEnabled(!use_defaults);
|
||||
|
||||
setDirty(true);
|
||||
}
|
||||
|
|
@ -352,8 +360,25 @@ void LLPanelEnvironmentInfo::onBtnCancel()
|
|||
|
||||
void LLPanelEnvironmentInfo::onBtnEdit()
|
||||
{
|
||||
LLFloaterEditExtDayCycle *dayeditor = (LLFloaterEditExtDayCycle *)LLFloaterReg::getInstance("env_edit_extdaycycle");
|
||||
|
||||
if (dayeditor)
|
||||
{
|
||||
dayeditor->setEditCommitSignal(boost::bind(&LLPanelEnvironmentInfo::onEditiCommited, this, _1));
|
||||
dayeditor->openFloater();
|
||||
}
|
||||
}
|
||||
|
||||
void LLPanelEnvironmentInfo::onEditiCommited(LLSettingsDay::ptr_t newday)
|
||||
{
|
||||
doEditCommited(newday);
|
||||
}
|
||||
|
||||
void LLPanelEnvironmentInfo::doEditCommited(LLSettingsDay::ptr_t &newday)
|
||||
{
|
||||
mEditingDayCycle = newday;
|
||||
/*TODO pure virtual*/
|
||||
}
|
||||
|
||||
// void LLPanelEnvironmentInfo::onRegionSettingschange()
|
||||
// {
|
||||
|
|
|
|||
|
|
@ -63,7 +63,10 @@ protected:
|
|||
void onBtnCancel();
|
||||
void onBtnEdit();
|
||||
|
||||
void onEditiCommited(LLSettingsDay::ptr_t newday);
|
||||
|
||||
virtual void doApply(); // = 0;
|
||||
virtual void doEditCommited(LLSettingsDay::ptr_t &newday);
|
||||
|
||||
/// New environment settings that are being applied to the region.
|
||||
// LLEnvironmentSettings mNewRegionSettings;
|
||||
|
|
|
|||
|
|
@ -263,8 +263,8 @@ LLSettingsWater::ptr_t LLSettingsVOWater::buildFromLegacyPreset(const std::strin
|
|||
LLSD results = LLSettingsWater::settingValidation(newsettings, validations);
|
||||
if (!results["success"].asBoolean())
|
||||
{
|
||||
LL_WARNS("SETTINGS") << "Water setting validation failed!\n" << results << LL_ENDL;
|
||||
LLSettingsWater::ptr_t();
|
||||
LL_WARNS("SETTINGS") << "Water setting validation failed!: " << results << LL_ENDL;
|
||||
return LLSettingsWater::ptr_t();
|
||||
}
|
||||
|
||||
LLSettingsWater::ptr_t waterp = boost::make_shared<LLSettingsVOWater>(newsettings);
|
||||
|
|
@ -292,8 +292,8 @@ LLSettingsWater::ptr_t LLSettingsVOWater::buildDefaultWater()
|
|||
LLSD results = LLSettingsWater::settingValidation(settings, validations);
|
||||
if (!results["success"].asBoolean())
|
||||
{
|
||||
LL_WARNS("SETTINGS") << "Water setting validation failed!\n" << results << LL_ENDL;
|
||||
LLSettingsWater::ptr_t();
|
||||
LL_WARNS("SETTINGS") << "Water setting validation failed!: " << results << LL_ENDL;
|
||||
return LLSettingsWater::ptr_t();
|
||||
}
|
||||
|
||||
LLSettingsWater::ptr_t waterp = boost::make_shared<LLSettingsVOWater>(settings);
|
||||
|
|
@ -308,8 +308,8 @@ LLSettingsWater::ptr_t LLSettingsVOWater::buildClone()
|
|||
LLSD results = LLSettingsWater::settingValidation(settings, validations);
|
||||
if (!results["success"].asBoolean())
|
||||
{
|
||||
LL_WARNS("SETTINGS") << "Water setting validation failed!\n" << results << LL_ENDL;
|
||||
LLSettingsWater::ptr_t();
|
||||
LL_WARNS("SETTINGS") << "Water setting validation failed!: " << results << LL_ENDL;
|
||||
return LLSettingsWater::ptr_t();
|
||||
}
|
||||
|
||||
LLSettingsWater::ptr_t waterp = boost::make_shared<LLSettingsVOWater>(settings);
|
||||
|
|
@ -414,31 +414,48 @@ LLSettingsVODay::LLSettingsVODay():
|
|||
LLSettingsDay::ptr_t LLSettingsVODay::buildFromLegacyPreset(const std::string &name, const LLSD &oldsettings)
|
||||
{
|
||||
LLSD newsettings(defaults());
|
||||
std::set<std::string> framenames;
|
||||
|
||||
newsettings[SETTING_NAME] = name;
|
||||
newsettings[SETTING_DAYLENGTH] = static_cast<S32>(MINIMUM_DAYLENGTH);
|
||||
|
||||
LLSD watertrack = LLSDArray(
|
||||
LLSDMap(SETTING_KEYKFRAME, LLSD::Real(0.0f))
|
||||
(SETTING_KEYNAME, "Default"));
|
||||
(SETTING_KEYNAME, "water:Default"));
|
||||
|
||||
LLSD skytrack = LLSD::emptyArray();
|
||||
|
||||
for (LLSD::array_const_iterator it = oldsettings.beginArray(); it != oldsettings.endArray(); ++it)
|
||||
{
|
||||
std::string framename = (*it)[1].asString();
|
||||
LLSD entry = LLSDMap(SETTING_KEYKFRAME, (*it)[0].asReal())
|
||||
(SETTING_KEYNAME, (*it)[1].asString());
|
||||
(SETTING_KEYNAME, "sky:" + framename);
|
||||
framenames.insert(framename);
|
||||
skytrack.append(entry);
|
||||
}
|
||||
|
||||
newsettings[SETTING_TRACKS] = LLSDArray(watertrack)(skytrack);
|
||||
|
||||
LLSD frames(LLSD::emptyMap());
|
||||
|
||||
{
|
||||
LLSettingsWater::ptr_t pwater = LLEnvironment::instance().findWaterByName("Default");
|
||||
frames["water:Default"] = pwater->getSettings();
|
||||
}
|
||||
|
||||
for (std::set<std::string>::iterator itn = framenames.begin(); itn != framenames.end(); ++itn)
|
||||
{
|
||||
LLSettingsSky::ptr_t psky = LLEnvironment::instance().findSkyByName(*itn);
|
||||
frames["sky:" + (*itn)] = psky->getSettings();
|
||||
}
|
||||
|
||||
newsettings[SETTING_FRAMES] = frames;
|
||||
|
||||
LLSettingsDay::validation_list_t validations = LLSettingsDay::validationList();
|
||||
LLSD results = LLSettingsDay::settingValidation(newsettings, validations);
|
||||
if (!results["success"].asBoolean())
|
||||
{
|
||||
LL_WARNS("SETTINGS") << "Day setting validation failed!\n" << results << LL_ENDL;
|
||||
LLSettingsDay::ptr_t();
|
||||
LL_WARNS("SETTINGS") << "Day setting validation failed!: " << results << LL_ENDL;
|
||||
return LLSettingsDay::ptr_t();
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -463,51 +480,55 @@ LLSettingsDay::ptr_t LLSettingsVODay::buildFromLegacyPreset(const std::string &n
|
|||
|
||||
LLSettingsDay::ptr_t LLSettingsVODay::buildFromLegacyMessage(const LLUUID ®ionId, LLSD daycycle, LLSD skydefs, LLSD waterdef)
|
||||
{
|
||||
LLSettingsWater::ptr_t water = LLSettingsVOWater::buildFromLegacyPreset("Region", waterdef);
|
||||
|
||||
if (!water)
|
||||
{
|
||||
LL_WARNS("WindlightCaps") << "Water construction failed." << LL_ENDL;
|
||||
return LLSettingsDay::ptr_t();
|
||||
}
|
||||
|
||||
LLEnvironment::namedSettingMap_t skys;
|
||||
LLSD frames(LLSD::emptyMap());
|
||||
|
||||
for (LLSD::map_iterator itm = skydefs.beginMap(); itm != skydefs.endMap(); ++itm)
|
||||
{
|
||||
std::string name = (*itm).first;
|
||||
LLSettingsSky::ptr_t sky = LLSettingsVOSky::buildFromLegacyPreset(name, (*itm).second);
|
||||
LLSD newsettings = LLSettingsSky::translateLegacySettings((*itm).second);
|
||||
std::string newname = "sky:" + (*itm).first;
|
||||
|
||||
if (!sky)
|
||||
{
|
||||
LL_WARNS("WindlightCaps") << "Sky construction failed." << LL_ENDL;
|
||||
return LLSettingsDay::ptr_t();
|
||||
}
|
||||
newsettings[SETTING_NAME] = newname;
|
||||
frames[newname] = newsettings;
|
||||
|
||||
skys[name] = sky;
|
||||
LL_WARNS("WindlightCaps") << "created region sky '" << name << "'" << LL_ENDL;
|
||||
LL_WARNS("SETTINGS") << "created region sky '" << newname << "'" << LL_ENDL;
|
||||
}
|
||||
|
||||
LLSettingsDay::ptr_t dayp = buildFromLegacyPreset("Region (legacy)", daycycle);
|
||||
LLSD watersettings = LLSettingsWater::translateLegacySettings(waterdef);
|
||||
std::string watername = "water:"+ watersettings[SETTING_NAME].asString();
|
||||
watersettings[SETTING_NAME] = watername;
|
||||
frames[watername] = watersettings;
|
||||
|
||||
dayp->setWaterAtKeyframe(water, 0.0f);
|
||||
LLSD watertrack = LLSDArray(
|
||||
LLSDMap(SETTING_KEYKFRAME, LLSD::Real(0.0f))
|
||||
(SETTING_KEYNAME, watername));
|
||||
|
||||
for (LLSD::array_iterator ita = daycycle.beginArray(); ita != daycycle.endArray(); ++ita)
|
||||
LLSD skytrack(LLSD::emptyArray());
|
||||
for (LLSD::array_const_iterator it = daycycle.beginArray(); it != daycycle.endArray(); ++it)
|
||||
{
|
||||
F32 frame = (*ita)[0].asReal();
|
||||
std::string name = (*ita)[1].asString();
|
||||
|
||||
LLEnvironment::namedSettingMap_t::iterator it = skys.find(name);
|
||||
|
||||
if (it == skys.end())
|
||||
continue;
|
||||
dayp->setSkyAtKeyframe(boost::static_pointer_cast<LLSettingsSky>((*it).second), frame, 1);
|
||||
|
||||
LL_WARNS("WindlightCaps") << "Added '" << name << "' to region day cycle at " << frame << LL_ENDL;
|
||||
LLSD entry = LLSDMap(SETTING_KEYKFRAME, (*it)[0].asReal())
|
||||
(SETTING_KEYNAME, "sky:" + (*it)[1].asString());
|
||||
skytrack.append(entry);
|
||||
}
|
||||
|
||||
dayp->setInitialized();
|
||||
LLSD newsettings = LLSDMap
|
||||
( SETTING_NAME, "Region (legacy)" )
|
||||
( SETTING_TRACKS, LLSDArray(watertrack)(skytrack))
|
||||
( SETTING_FRAMES, frames );
|
||||
|
||||
LLSettingsSky::validation_list_t validations = LLSettingsSky::validationList();
|
||||
LLSD results = LLSettingsDay::settingValidation(newsettings, validations);
|
||||
if (!results["success"].asBoolean())
|
||||
{
|
||||
LL_WARNS("SETTINGS") << "Day setting validation failed!:" << results << LL_ENDL;
|
||||
LLSettingsDay::ptr_t();
|
||||
}
|
||||
|
||||
LLSettingsDay::ptr_t dayp = boost::make_shared<LLSettingsVODay>(newsettings);
|
||||
|
||||
if (dayp)
|
||||
{
|
||||
dayp->setInitialized();
|
||||
}
|
||||
return dayp;
|
||||
}
|
||||
|
||||
|
|
@ -555,13 +576,13 @@ LLSettingsDay::ptr_t LLSettingsVODay::buildClone()
|
|||
LLSD results = LLSettingsDay::settingValidation(settings, validations);
|
||||
if (!results["success"].asBoolean())
|
||||
{
|
||||
LL_WARNS("SETTINGS") << "Water setting validation failed!\n" << results << LL_ENDL;
|
||||
LL_WARNS("SETTINGS") << "Day setting validation failed!\n" << results << LL_ENDL;
|
||||
LLSettingsDay::ptr_t();
|
||||
}
|
||||
|
||||
|
||||
LLSettingsDay::ptr_t dayp = boost::make_shared<LLSettingsVODay>(settings);
|
||||
|
||||
dayp->initialize();
|
||||
return dayp;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -226,7 +226,7 @@ void LLViewerFloaterReg::registerFloaters()
|
|||
LLFloaterReg::add("env_edit_water", "floater_edit_water_preset.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterEditWater>);
|
||||
LLFloaterReg::add("env_edit_day_cycle", "floater_edit_day_cycle.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterEditDayCycle>);
|
||||
|
||||
LLFloaterReg::add("env_edit_extdaycycle", "floater_edit_ext_daycycle.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterEditExtDayCycle>);
|
||||
LLFloaterReg::add("env_edit_extdaycycle", "floater_edit_ext_day_cycle.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterEditExtDayCycle>);
|
||||
|
||||
|
||||
LLFloaterReg::add("event", "floater_event.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterEvent>);
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater
|
||||
legacy_header_height="18"
|
||||
height="381"
|
||||
layout="topleft"
|
||||
name="Edit Day cycle"
|
||||
help_topic="day_presets"
|
||||
save_rect="true"
|
||||
title="Edit Day Cycle"
|
||||
width="705">
|
||||
legacy_header_height="18"
|
||||
height="500"
|
||||
layout="topleft"
|
||||
name="env_edit_extdaycycle"
|
||||
help_topic="day_presets"
|
||||
save_rect="true"
|
||||
title="Edit Day Cycle"
|
||||
width="705">
|
||||
|
||||
<string name="title_new">Create a New Day Cycle</string>
|
||||
<string name="title_edit">Edit Day Cycle</string>
|
||||
|
|
@ -15,471 +15,130 @@
|
|||
<string name="hint_edit">To edit your day cycle, adjust the controls below and click "Save".</string>
|
||||
<string name="combo_label">-Select a preset-</string>
|
||||
|
||||
<text
|
||||
follows="top|left|right"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="hint"
|
||||
top="25"
|
||||
width="685" />
|
||||
<text
|
||||
follows="top|left|right"
|
||||
font="SansSerif"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="label"
|
||||
top_pad="25"
|
||||
width="120">
|
||||
Preset Name:
|
||||
</text>
|
||||
<combo_box
|
||||
allow_text_entry="true"
|
||||
follows="top|left"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
max_chars="100"
|
||||
name="day_cycle_combo"
|
||||
top_delta="-5"
|
||||
width="200" />
|
||||
<line_editor
|
||||
height="20"
|
||||
left_delta="0"
|
||||
name="day_cycle_name"
|
||||
top_delta="0"
|
||||
visible="true"
|
||||
width="200" />
|
||||
<text
|
||||
follows="top|left|right"
|
||||
height="95"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="note"
|
||||
top_delta="0"
|
||||
width="345"
|
||||
wrap="true">
|
||||
Note: if you change the name of your preset, you will be creating a new preset and the existing preset will not be changed.
|
||||
</text>
|
||||
<!--======== Controls panel ========-->
|
||||
<text
|
||||
follows="left|top|right"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="hint_item1"
|
||||
top="100"
|
||||
width="300">
|
||||
- Click on a tab to edit the specific sky settings and time.
|
||||
</text>
|
||||
<text
|
||||
follows="left|top|right"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
name="hint_item2"
|
||||
top_pad="10"
|
||||
width="300">
|
||||
- Click and drag the tabs to set the transition times.
|
||||
</text>
|
||||
<text
|
||||
follows="left|top|right"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
name="hint_item3"
|
||||
top_pad="10"
|
||||
width="300">
|
||||
- Use the scrubber to preview your day cycle.
|
||||
</text>
|
||||
<panel
|
||||
follows="top|left"
|
||||
height="100"
|
||||
name="day_cycle_slider_panel"
|
||||
layout="topleft"
|
||||
left_delta="25"
|
||||
top_pad="15"
|
||||
width="660">
|
||||
<multi_slider
|
||||
can_edit_text="true"
|
||||
control_name="WLTimeSlider"
|
||||
decimal_digits="0"
|
||||
draw_track="false"
|
||||
follows="bottom"
|
||||
height="10"
|
||||
increment="0.0833333"
|
||||
initial_value="0"
|
||||
layout="topleft"
|
||||
left="20"
|
||||
max_sliders="20"
|
||||
max_val="24"
|
||||
name="WLTimeSlider"
|
||||
show_text="false"
|
||||
top_pad="0"
|
||||
use_triangle="true"
|
||||
width="525" />
|
||||
<multi_slider
|
||||
can_edit_text="true"
|
||||
control_name="WLDayCycleKeys"
|
||||
decimal_digits="0"
|
||||
follows="bottom"
|
||||
height="10"
|
||||
increment="0.0833333"
|
||||
initial_value="0"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
max_sliders="20"
|
||||
max_val="24"
|
||||
name="WLDayCycleKeys"
|
||||
show_text="false"
|
||||
top_pad="15"
|
||||
width="525" />
|
||||
<button
|
||||
height="20"
|
||||
label="Add Key"
|
||||
label_selected="Add Key"
|
||||
layout="topleft"
|
||||
left_pad="20"
|
||||
name="WLAddKey"
|
||||
top_delta="-18"
|
||||
width="96" />
|
||||
<button
|
||||
height="20"
|
||||
label="Delete Key"
|
||||
label_selected="Delete Key"
|
||||
layout="topleft"
|
||||
name="WLDeleteKey"
|
||||
top_pad="5"
|
||||
width="96" />
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
left="8"
|
||||
name="WL12am"
|
||||
top="74"
|
||||
width="55">
|
||||
12am
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="WL3am"
|
||||
top_delta="0"
|
||||
width="55">
|
||||
3am
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="WL6am"
|
||||
top_delta="0"
|
||||
width="55">
|
||||
6am
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="WL9amHash"
|
||||
top_delta="0"
|
||||
width="55">
|
||||
9am
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="WL12pmHash"
|
||||
top_delta="0"
|
||||
width="55">
|
||||
12pm
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="WL3pm"
|
||||
top_delta="0"
|
||||
width="55">
|
||||
3pm
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="WL6pm"
|
||||
top_delta="0"
|
||||
width="55">
|
||||
6pm
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="WL9pm"
|
||||
top_delta="0"
|
||||
width="55">
|
||||
9pm
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="WL12am2"
|
||||
top_delta="0"
|
||||
width="55">
|
||||
12am
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
font="SansSerif"
|
||||
height="14"
|
||||
layout="topleft"
|
||||
left="20"
|
||||
name="WL12amHash"
|
||||
top="54"
|
||||
width="6">
|
||||
|
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
font="SansSerif"
|
||||
height="11"
|
||||
layout="topleft"
|
||||
left_pad="59"
|
||||
name="WL3amHash"
|
||||
top_delta="3"
|
||||
width="6">
|
||||
I
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
font="SansSerif"
|
||||
height="14"
|
||||
layout="topleft"
|
||||
left_pad="59"
|
||||
name="WL6amHash"
|
||||
top_delta="-3"
|
||||
width="6">
|
||||
|
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
font="SansSerif"
|
||||
height="11"
|
||||
layout="topleft"
|
||||
left_pad="59"
|
||||
name="WL9amHash2"
|
||||
top_delta="3"
|
||||
width="6">
|
||||
I
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
font="SansSerif"
|
||||
height="14"
|
||||
layout="topleft"
|
||||
left_pad="59"
|
||||
name="WL12pmHash2"
|
||||
top_delta="-3"
|
||||
width="6">
|
||||
|
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
font="SansSerif"
|
||||
height="11"
|
||||
layout="topleft"
|
||||
left_pad="59"
|
||||
name="WL3pmHash"
|
||||
top_delta="3"
|
||||
width="6">
|
||||
I
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
font="SansSerif"
|
||||
height="14"
|
||||
layout="topleft"
|
||||
left_pad="59"
|
||||
name="WL6pmHash"
|
||||
top_delta="-3"
|
||||
width="6">
|
||||
|
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
font="SansSerif"
|
||||
height="11"
|
||||
layout="topleft"
|
||||
left_pad="59"
|
||||
name="WL9pmHash"
|
||||
top_delta="3"
|
||||
width="6">
|
||||
I
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
font="SansSerif"
|
||||
height="14"
|
||||
layout="topleft"
|
||||
left_pad="59"
|
||||
name="WL12amHash2"
|
||||
top_delta="-3"
|
||||
width="6">
|
||||
|
|
||||
</text>
|
||||
</panel>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
font="SansSerif"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
left_delta="192"
|
||||
name="WLCurKeyPresetText"
|
||||
top_pad="10"
|
||||
width="80">
|
||||
Sky Setting:
|
||||
</text>
|
||||
<combo_box
|
||||
height="18"
|
||||
label="Preset"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
name="WLSkyPresets"
|
||||
width="205" />
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
border_visible="true"
|
||||
follows="left|top|right"
|
||||
font="SansSerif"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
left_delta="-40"
|
||||
name="WLCurKeyTimeText"
|
||||
top_pad="15"
|
||||
width="35">
|
||||
Time:
|
||||
</text>
|
||||
<time
|
||||
follows="left|top"
|
||||
height="16"
|
||||
label_width="0"
|
||||
layout="topleft"
|
||||
left_pad="3"
|
||||
name="time"
|
||||
top_delta="-1"
|
||||
value="6:00 AM"
|
||||
width="75"/>
|
||||
<view_border
|
||||
bevel_style="none"
|
||||
follows="top|left"
|
||||
height="0"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="horiz_separator"
|
||||
top_pad="20"
|
||||
width="685"/>
|
||||
<loading_indicator
|
||||
height="23"
|
||||
layout="topleft"
|
||||
left="25"
|
||||
name="progress_indicator"
|
||||
top="350"
|
||||
visible="false"
|
||||
width="23" />
|
||||
<check_box
|
||||
follows="top|left"
|
||||
height="10"
|
||||
label="Make this my new day cycle"
|
||||
layout="topleft"
|
||||
left="310"
|
||||
name="make_default_cb"
|
||||
top_delta="13"
|
||||
width="230"/>
|
||||
<button
|
||||
follows="bottom|right"
|
||||
height="23"
|
||||
label="Save"
|
||||
layout="topleft"
|
||||
left_pad="0"
|
||||
name="save"
|
||||
top_delta="-13"
|
||||
width="70"/>
|
||||
<button
|
||||
follows="bottom|right"
|
||||
height="23"
|
||||
label="Cancel"
|
||||
layout="topleft"
|
||||
left_pad="15"
|
||||
name="cancel"
|
||||
top_delta="0"
|
||||
width="70"/>
|
||||
</floater>
|
||||
<layout_stack name="test_stack"
|
||||
width="705"
|
||||
height="500"
|
||||
follows="all"
|
||||
orientation="vertical">
|
||||
<layout_panel name="temp"
|
||||
border="false"
|
||||
auto_resize="false"
|
||||
user_resize="true"
|
||||
height="30"
|
||||
min_height="30"
|
||||
background_visible="false">
|
||||
<!-- This layout_panel is for loading legacy presets -->
|
||||
<text
|
||||
follows="top|left|right"
|
||||
font="SansSerif"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
name="label"
|
||||
top_offset="20"
|
||||
left_offset="10"
|
||||
width="120">
|
||||
Preset Name:
|
||||
</text>
|
||||
<combo_box
|
||||
allow_text_entry="true"
|
||||
follows="top|left"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
max_chars="100"
|
||||
name="day_cycle_preset_combo"
|
||||
top_delta="-5"
|
||||
width="200" />
|
||||
</layout_panel>
|
||||
<layout_panel name="timeline"
|
||||
border="true"
|
||||
bevel_style="in"
|
||||
auto_resize="false"
|
||||
user_resize="true"
|
||||
bg_alpha_color="red"
|
||||
height="150"
|
||||
min_height="0"
|
||||
visible="true"
|
||||
background_visible="true">
|
||||
<text
|
||||
follows="top|left|right"
|
||||
font="SansSerif"
|
||||
height="10"
|
||||
layout="topleft"
|
||||
name="label"
|
||||
top_offset="20"
|
||||
left_offset="10"
|
||||
width="120">
|
||||
Time Line Goes here
|
||||
</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
bg_alpha_color="blue"
|
||||
height="11"
|
||||
min_height="0"
|
||||
visible="true"
|
||||
background_visible="true">
|
||||
<tab_container
|
||||
follows="all"
|
||||
halign="left"
|
||||
height="386"
|
||||
layout="topleft"
|
||||
left_offset="0"
|
||||
name="landtab"
|
||||
tab_position="top"
|
||||
tab_width="140"
|
||||
tab_padding_right="3"
|
||||
top_offset="6"
|
||||
width="633">
|
||||
<panel
|
||||
border="true"
|
||||
follows="all"
|
||||
label="DUMMY"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
help_topic="land_general_tab"
|
||||
name="land_general_panel"
|
||||
top="0">
|
||||
<text
|
||||
follows="top|left|right"
|
||||
font="SansSerif"
|
||||
height="10"
|
||||
layout="center"
|
||||
name="label"
|
||||
top_offset="20"
|
||||
left_offset="10"
|
||||
width="300">
|
||||
Space For editing selected frame
|
||||
</text>
|
||||
|
||||
</panel>
|
||||
</tab_container>
|
||||
</layout_panel>
|
||||
<layout_panel name="buttons"
|
||||
auto_resize="false"
|
||||
user_resize="true"
|
||||
height="43"
|
||||
min_height="0"
|
||||
background_visible="false">
|
||||
<button
|
||||
follows="top|left"
|
||||
height="23"
|
||||
label="Save"
|
||||
left_offset="160"
|
||||
top_offset="60"
|
||||
name="save_btn"
|
||||
width="100" />
|
||||
<button
|
||||
follows="top|left"
|
||||
height="23"
|
||||
label="Cancel"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="cancel_btn"
|
||||
width="100" />
|
||||
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
|
||||
</floater>
|
||||
|
|
|
|||
|
|
@ -10,172 +10,217 @@
|
|||
name="Test Floater"
|
||||
title="LAYOUTSTACK TESTS"
|
||||
width="420">
|
||||
<layout_stack
|
||||
<layout_stack name="test_stack"
|
||||
left="0"
|
||||
top="0"
|
||||
width="420"
|
||||
width="100"
|
||||
height="250"
|
||||
follows="left|right|top|bottom"
|
||||
follows="left|top|bottom"
|
||||
orientation="vertical">
|
||||
<layout_panel
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
bg_alpha_color="red"
|
||||
max_height="200"
|
||||
background_visible="false">
|
||||
<layout_stack
|
||||
left="5"
|
||||
top="5"
|
||||
right="-5"
|
||||
follows="left|right|top|bottom"
|
||||
orientation="horizontal">
|
||||
<layout_panel
|
||||
border="true"
|
||||
bevel_style="in"
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
width="160"
|
||||
background_visible="true">
|
||||
<text follows="top|left"
|
||||
halign="left"
|
||||
text_color="white">Environment Source</text>
|
||||
<radio_group
|
||||
follows="top|left"
|
||||
height="45"
|
||||
layout="topleft"
|
||||
left_delta="10"
|
||||
name="environment_select_radio_group"
|
||||
bottom_delta="50"
|
||||
max_width="200"
|
||||
width="200">
|
||||
<radio_item
|
||||
label="Default Environment"
|
||||
layout="topleft"
|
||||
name="use_default_setting"
|
||||
height="20"/>
|
||||
<radio_item
|
||||
label="Custom Environment"
|
||||
layout="topleft"
|
||||
height="20"
|
||||
name="use_custom_setting"/>
|
||||
</radio_group>
|
||||
<button
|
||||
follows="top|left"
|
||||
height="23"
|
||||
label="Edit Custom"
|
||||
left_delta="30"
|
||||
bottom_delta="30"
|
||||
width="100"
|
||||
name="edit_btn"/>
|
||||
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
border="true"
|
||||
bevel_style="in"
|
||||
auto_resize="false"
|
||||
user_resize="true"
|
||||
height="11"
|
||||
width="220"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right"
|
||||
halign="left"
|
||||
text_color="white">Day Settings</text>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="left|top"
|
||||
height="12"
|
||||
layout="topleft"
|
||||
left_delta="10"
|
||||
top_pad="10"
|
||||
width="200">
|
||||
Day Length (hours)
|
||||
</text>
|
||||
<slider
|
||||
can_edit_text="true"
|
||||
control_name="DayLengthSLD"
|
||||
decimal_digits="1"
|
||||
follows="left|top"
|
||||
height="20"
|
||||
increment="0.5"
|
||||
initial_value="4"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
top_pad="6"
|
||||
name="day_length_sld"
|
||||
min_val="4"
|
||||
max_val="178"
|
||||
width="200" />
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="left|top"
|
||||
height="12"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
top_pad="10"
|
||||
width="200">
|
||||
Day Offset (hours)
|
||||
</text>
|
||||
<slider
|
||||
can_edit_text="true"
|
||||
control_name="DayOffsetSLD"
|
||||
decimal_digits="1"
|
||||
follows="left|top"
|
||||
height="20"
|
||||
increment="0.5"
|
||||
initial_value="-8"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
top_pad="6"
|
||||
name="day_offset_sld"
|
||||
min_val="-12"
|
||||
max_val="12"
|
||||
width="200" />
|
||||
|
||||
</layout_panel>
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
visible="false"
|
||||
bg_alpha_color="blue"
|
||||
height="100"
|
||||
background_visible="true">
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
bg_alpha_color="blue"
|
||||
height="11"
|
||||
min_height="0"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="white">flex</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
bg_alpha_color="blue"
|
||||
height="11"
|
||||
min_height="0"
|
||||
background_visible="false">
|
||||
<check_box
|
||||
control_name="may_override_chk"
|
||||
height="16"
|
||||
label="Parcel Owners May Override"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
top="10"
|
||||
name="allow_override_chk"
|
||||
width="200" />
|
||||
<button
|
||||
follows="bottom|left"
|
||||
height="23"
|
||||
label="Apply"
|
||||
right="-160"
|
||||
bottom="-30"
|
||||
name="apply_btn"
|
||||
width="100" />
|
||||
<button
|
||||
follows="bottom|left"
|
||||
height="23"
|
||||
label="Cancel"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="cancel_btn"
|
||||
width="100" />
|
||||
|
||||
visible="false"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="white">flex</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
bg_alpha_color="blue"
|
||||
height="11"
|
||||
min_height="0"
|
||||
visible="true"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="white">flex</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
bg_alpha_color="blue"
|
||||
height="11"
|
||||
min_height="0"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="white">flex</text>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
<layout_stack name="test_stack"
|
||||
left_pad="5"
|
||||
top="0"
|
||||
width="100"
|
||||
height="250"
|
||||
follows="left|top|bottom"
|
||||
orientation="vertical">
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
bg_alpha_color="blue"
|
||||
height="100"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="white">flex</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
visible="false"
|
||||
bg_alpha_color="blue"
|
||||
height="100"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="white">flex</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="fixed"
|
||||
auto_resize="false"
|
||||
user_resize="true"
|
||||
height="50"
|
||||
min_height="10"
|
||||
bg_alpha_color="green"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="black">fixed</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="fixed"
|
||||
auto_resize="false"
|
||||
user_resize="true"
|
||||
height="50"
|
||||
min_height="10"
|
||||
bg_alpha_color="green"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="black">fixed</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
bg_alpha_color="blue"
|
||||
height="100"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="white">flex</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
bg_alpha_color="blue"
|
||||
height="100"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="white">flex</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
bg_alpha_color="blue"
|
||||
height="100"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="white">flex</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
bg_alpha_color="blue"
|
||||
height="100"
|
||||
visible="true"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="white">flex</text>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
<layout_stack name="test_stack"
|
||||
left_pad="5"
|
||||
top="0"
|
||||
width="100"
|
||||
height="250"
|
||||
follows="left|top|bottom"
|
||||
orientation="vertical">
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
height="11"
|
||||
bg_alpha_color="blue"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="white">flex</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="fixed"
|
||||
auto_resize="false"
|
||||
user_resize="true"
|
||||
height="50"
|
||||
bg_alpha_color="green"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="black">fixed</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
bg_alpha_color="blue"
|
||||
height="11"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="white">flex</text>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
<layout_stack name="test_stack"
|
||||
left_pad="5"
|
||||
top="0"
|
||||
width="100"
|
||||
height="250"
|
||||
follows="left|top|bottom"
|
||||
orientation="vertical">
|
||||
<layout_panel name="fixed"
|
||||
auto_resize="false"
|
||||
user_resize="true"
|
||||
height="50"
|
||||
bg_alpha_color="green"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="black">fixed</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="fixed"
|
||||
auto_resize="false"
|
||||
user_resize="true"
|
||||
height="50"
|
||||
bg_alpha_color="green"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="black">fixed</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="fixed"
|
||||
auto_resize="false"
|
||||
user_resize="true"
|
||||
height="50"
|
||||
bg_alpha_color="green"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="black">fixed</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
bg_alpha_color="blue"
|
||||
height="11"
|
||||
min_height="0"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="white">flex</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
bg_alpha_color="blue"
|
||||
height="11"
|
||||
min_height="0"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="white">flex</text>
|
||||
</layout_panel>
|
||||
<layout_panel name="flex"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
bg_alpha_color="blue"
|
||||
height="11"
|
||||
min_height="0"
|
||||
background_visible="true">
|
||||
<text follows="top|left|right" halign="center" text_color="white">flex</text>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
|
|
|||
Loading…
Reference in New Issue