diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/character/avatar_lad.xml | 17 | ||||
| -rw-r--r-- | indra/newview/llscrollingpanelparam.cpp | 63 | ||||
| -rw-r--r-- | indra/newview/llscrollingpanelparam.h | 3 | ||||
| -rw-r--r-- | indra/newview/llscrollingpanelparambase.cpp | 29 | ||||
| -rw-r--r-- | indra/newview/llscrollingpanelparambase.h | 7 | 
5 files changed, 72 insertions, 47 deletions
| diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index aef402d4db..2cdd86267e 100644 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -2021,7 +2021,7 @@       value_min="-1"       value_max="1">        <param_skeleton> - +	            <bone           name="mEyeLeft"           scale="0 0 0" @@ -2031,8 +2031,9 @@           name="mEyeRight"           scale="0 0 0"           offset="-.005 0 0" /> - -        <bone +		  +	   +<bone           name="mFaceEyeAltLeft"           scale="0 0 0"           offset="-.005 0 0" /> @@ -2041,7 +2042,7 @@           name="mFaceEyeAltRight"           scale="0 0 0"           offset="-.005 0 0" /> - +	            <bone           name="mFaceEyeLidLowerRight"           scale="0 0.3 0.7" @@ -2052,7 +2053,7 @@           scale="0 0.3 0.7"           offset="0 0 0" /> -        <bone +		 <bone           name="mFaceEyeLidUpperRight"           scale="0 0.3 0.7"           offset=" 0 0 0" /> @@ -2061,17 +2062,17 @@           name="mFaceEyeLidUpperLeft"           scale="0 0.3 0.7"           offset=" 0 0 0" /> - +		           <bone           name="mFaceEyecornerInnerLeft"           scale="0 0 0"           offset="-0.005 -0.008 0.0" /> - +		           <bone           name="mFaceEyecornerInnerRight"           scale="0 0 0"           offset="-0.005 0.008 0.0" /> - +		         </param_skeleton>      </param> diff --git a/indra/newview/llscrollingpanelparam.cpp b/indra/newview/llscrollingpanelparam.cpp index 76340a9ea8..833eaaf8ca 100644 --- a/indra/newview/llscrollingpanelparam.cpp +++ b/indra/newview/llscrollingpanelparam.cpp @@ -254,15 +254,19 @@ void LLScrollingPanelParam::onHintHeldDown( LLVisualParamHint* hint )  		// Make sure we're not taking the slider out of bounds  		// (this is where some simple UI limits are stored) -		F32 new_percent = weightToSlider(new_weight); -		if (mSlider->getMinValue() < new_percent -			&& new_percent < mSlider->getMaxValue()) +		F32 new_percent = weightToPercent(new_weight); +		LLSliderCtrl* slider = getChild<LLSliderCtrl>("param slider"); +		if (slider)  		{ -			mWearable->setVisualParamWeight( hint->getVisualParam()->getID(), new_weight); -			mWearable->writeToAvatar(gAgentAvatarp); -			gAgentAvatarp->updateVisualParams(); +			if (slider->getMinValue() < new_percent +				&& new_percent < slider->getMaxValue()) +			{ +				mWearable->setVisualParamWeight( hint->getVisualParam()->getID(), new_weight); +				mWearable->writeToAvatar(gAgentAvatarp); +				gAgentAvatarp->updateVisualParams(); -			mSlider->setValue( weightToSlider( new_weight ) ); +				slider->setValue( weightToPercent( new_weight ) ); +			}  		}  	}  } @@ -283,13 +287,17 @@ void LLScrollingPanelParam::onHintMinMouseUp( void* userdata )  		F32 range = self->mHintMax->getVisualParamWeight() - self->mHintMin->getVisualParamWeight();  		// step a fraction in the negative directiona  		F32 new_weight = current_weight - (range / 10.f); -		F32 new_percent = self->weightToSlider(new_weight); -		if (self->mSlider->getMinValue() < new_percent -			&& new_percent < self->mSlider->getMaxValue()) +		F32 new_percent = self->weightToPercent(new_weight); +		LLSliderCtrl* slider = self->getChild<LLSliderCtrl>("param slider"); +		if (slider)  		{ -			self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight); -			self->mWearable->writeToAvatar(gAgentAvatarp); -			self->mSlider->setValue( self->weightToSlider( new_weight ) ); +			if (slider->getMinValue() < new_percent +				&& new_percent < slider->getMaxValue()) +			{ +				self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight); +				self->mWearable->writeToAvatar(gAgentAvatarp); +				slider->setValue( self->weightToPercent( new_weight ) ); +			}  		}  	} @@ -313,16 +321,33 @@ void LLScrollingPanelParam::onHintMaxMouseUp( void* userdata )  			F32 range = self->mHintMax->getVisualParamWeight() - self->mHintMin->getVisualParamWeight();  			// step a fraction in the negative direction  			F32 new_weight = current_weight + (range / 10.f); -			F32 new_percent = self->weightToSlider(new_weight); -			if (self->mSlider->getMinValue() < new_percent -				&& new_percent < self->mSlider->getMaxValue()) +			F32 new_percent = self->weightToPercent(new_weight); +			LLSliderCtrl* slider = self->getChild<LLSliderCtrl>("param slider"); +			if (slider)  			{ -				self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight); -				self->mWearable->writeToAvatar(gAgentAvatarp); -				self->mSlider->setValue( self->weightToSlider( new_weight ) ); +				if (slider->getMinValue() < new_percent +					&& new_percent < slider->getMaxValue()) +				{ +					self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight); +					self->mWearable->writeToAvatar(gAgentAvatarp); +					slider->setValue( self->weightToPercent( new_weight ) ); +				}  			}  		}  	}  	LLVisualParamHint::requestHintUpdates( self->mHintMin, self->mHintMax );  } + + +F32 LLScrollingPanelParam::weightToPercent( F32 weight ) +{ +	LLViewerVisualParam* param = mParam; +	return (weight - param->getMinWeight()) /  (param->getMaxWeight() - param->getMinWeight()) * 100.f; +} + +F32 LLScrollingPanelParam::percentToWeight( F32 percent ) +{ +	LLViewerVisualParam* param = mParam; +	return percent / 100.f * (param->getMaxWeight() - param->getMinWeight()) + param->getMinWeight(); +} diff --git a/indra/newview/llscrollingpanelparam.h b/indra/newview/llscrollingpanelparam.h index fd8ef75cdd..1ebf89f483 100644 --- a/indra/newview/llscrollingpanelparam.h +++ b/indra/newview/llscrollingpanelparam.h @@ -63,6 +63,9 @@ public:  	void				onHintMouseDown( LLVisualParamHint* hint );  	void				onHintHeldDown( LLVisualParamHint* hint ); +	F32					weightToPercent( F32 weight ); +	F32					percentToWeight( F32 percent ); +  public:  	// Constants for LLPanelVisualParam  	const static F32 PARAM_STEP_TIME_THRESHOLD; diff --git a/indra/newview/llscrollingpanelparambase.cpp b/indra/newview/llscrollingpanelparambase.cpp index 4df619ed7d..eb490127a1 100644 --- a/indra/newview/llscrollingpanelparambase.cpp +++ b/indra/newview/llscrollingpanelparambase.cpp @@ -43,7 +43,6 @@ LLScrollingPanelParamBase::LLScrollingPanelParamBase( const LLPanel::Params& pan  						      LLViewerJointMesh* mesh, LLViewerVisualParam* param, bool allow_modify, LLWearable* wearable, LLJoint* jointp, bool use_hints)  	: LLScrollingPanel( panel_params ),  	  mParam(param), -	  mSlider(nullptr),  	  mAllowModify(allow_modify),  	  mWearable(wearable)  { @@ -51,15 +50,13 @@ LLScrollingPanelParamBase::LLScrollingPanelParamBase( const LLPanel::Params& pan  		buildFromFile( "panel_scrolling_param.xml");  	else  		buildFromFile( "panel_scrolling_param_base.xml"); - -	mSlider = getChild<LLSliderCtrl>("param slider"); -	mSlider->setMaxValue(100.f * (mParam->getMaxWeight() - mParam->getMinWeight())); -	mSlider->setValue(weightToSlider(param->getWeight())); +	 +	getChild<LLUICtrl>("param slider")->setValue(weightToPercent(param->getWeight()));  	std::string display_name = LLTrans::getString(param->getDisplayName()); -	mSlider->setLabelArg("[DESC]", display_name); -	mSlider->setEnabled(mAllowModify); -	mSlider->setCommitCallback(boost::bind(LLScrollingPanelParamBase::onSliderMoved, mSlider, this)); +	getChild<LLUICtrl>("param slider")->setLabelArg("[DESC]", display_name); +	getChildView("param slider")->setEnabled(mAllowModify); +	childSetCommitCallback("param slider", LLScrollingPanelParamBase::onSliderMoved, this);  	setVisible(false);  	setBorderVisible( false ); @@ -80,9 +77,9 @@ void LLScrollingPanelParamBase::updatePanel(bool allow_modify)  	}  	F32 current_weight = mWearable->getVisualParamWeight( param->getID() ); -	mSlider->setValue(weightToSlider( current_weight ) ); +	getChild<LLUICtrl>("param slider")->setValue(weightToPercent( current_weight ) );  	mAllowModify = allow_modify; -	mSlider->setEnabled(mAllowModify); +	getChildView("param slider")->setEnabled(mAllowModify);  }  // static @@ -93,7 +90,7 @@ void LLScrollingPanelParamBase::onSliderMoved(LLUICtrl* ctrl, void* userdata)  	LLViewerVisualParam* param = self->mParam;  	F32 current_weight = self->mWearable->getVisualParamWeight( param->getID() ); -	F32 new_weight = self->sliderToWeight( (F32)slider->getValue().asReal() ); +	F32 new_weight = self->percentToWeight( (F32)slider->getValue().asReal() );  	if (current_weight != new_weight )  	{  		self->mWearable->setVisualParamWeight( param->getID(), new_weight); @@ -102,12 +99,14 @@ void LLScrollingPanelParamBase::onSliderMoved(LLUICtrl* ctrl, void* userdata)  	}  } -F32 LLScrollingPanelParamBase::weightToSlider(F32 weight) +F32 LLScrollingPanelParamBase::weightToPercent( F32 weight )  { -	return (weight - mParam->getMinWeight()) * 100.f; +	LLViewerVisualParam* param = mParam; +	return (weight - param->getMinWeight()) /  (param->getMaxWeight() - param->getMinWeight()) * 100.f;  } -F32 LLScrollingPanelParamBase::sliderToWeight(F32 slider) +F32 LLScrollingPanelParamBase::percentToWeight( F32 percent )  { -	return slider / 100.f + mParam->getMinWeight(); +	LLViewerVisualParam* param = mParam; +	return percent / 100.f * (param->getMaxWeight() - param->getMinWeight()) + param->getMinWeight();  } diff --git a/indra/newview/llscrollingpanelparambase.h b/indra/newview/llscrollingpanelparambase.h index 1e9d1628bb..fd686636f2 100644 --- a/indra/newview/llscrollingpanelparambase.h +++ b/indra/newview/llscrollingpanelparambase.h @@ -36,7 +36,6 @@ class LLViewerVisualParam;  class LLWearable;  class LLVisualParamHint;  class LLViewerVisualParam; -class LLSliderCtrl;  class LLJoint;  class LLScrollingPanelParamBase : public LLScrollingPanel @@ -50,13 +49,11 @@ public:  	static void			onSliderMoved(LLUICtrl* ctrl, void* userdata); -	F32					weightToSlider(F32 weight); -	F32					sliderToWeight(F32 slider); +	F32					weightToPercent( F32 weight ); +	F32					percentToWeight( F32 percent );  public:  	LLViewerVisualParam* mParam; -	LLSliderCtrl* mSlider; -  protected:  	bool mAllowModify;  	LLWearable *mWearable; | 
