diff options
| author | angela <angela@lindenlab.com> | 2009-12-04 20:01:09 +0800 | 
|---|---|---|
| committer | angela <angela@lindenlab.com> | 2009-12-04 20:01:09 +0800 | 
| commit | 87c6a2964325f7771cf03f6f7e82253a132c0e6d (patch) | |
| tree | 7724f4a40ddd3fa148f07f87ac199e5d1cb79277 | |
| parent | 29ed5c88c0a8aade716fed33d66ef12f7207b61e (diff) | |
 EXT-2956 Animation preview floater play/pause buttons are hard-coded
| -rw-r--r-- | indra/newview/llfloateranimpreview.cpp | 84 | ||||
| -rw-r--r-- | indra/newview/llfloateranimpreview.h | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_animation_preview.xml | 35 | 
3 files changed, 90 insertions, 31 deletions
| diff --git a/indra/newview/llfloateranimpreview.cpp b/indra/newview/llfloateranimpreview.cpp index eae2747cc9..9e6ef2fc4d 100644 --- a/indra/newview/llfloateranimpreview.cpp +++ b/indra/newview/llfloateranimpreview.cpp @@ -208,7 +208,12 @@ BOOL LLFloaterAnimPreview::postBuild()  	mPlayButton = getChild<LLButton>( "play_btn");  	mPlayButton->setClickedCallback(onBtnPlay, this); +	mPlayButton->setVisible(true); +	mPauseButton = getChild<LLButton>( "pause_btn"); +	mPauseButton->setClickedCallback(onBtnPause, this); +	mPauseButton->setVisible(false); +	  	mStopButton = getChild<LLButton>( "stop_btn");  	mStopButton->setClickedCallback(onBtnStop, this); @@ -560,24 +565,60 @@ void LLFloaterAnimPreview::onBtnPlay(void* user_data)  	if (previewp->mMotionID.notNull() && previewp->mAnimPreview)  	{  		LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar(); - +		  		if(!avatarp->isMotionActive(previewp->mMotionID))  		{  			previewp->resetMotion();  			previewp->mPauseRequest = NULL; +			previewp->mPauseButton->setVisible(TRUE); +			previewp->mPauseButton->setEnabled(TRUE); +			previewp->mPlayButton->setVisible(FALSE); +			previewp->mPlayButton->setEnabled(FALSE);  		} -		else +		else if (avatarp->areAnimationsPaused())  		{ -			if (avatarp->areAnimationsPaused()) -			{ -				previewp->mPauseRequest = NULL; -			} -			else +			 +			previewp->mPauseRequest = NULL; +			previewp->mPauseButton->setVisible(TRUE); +			previewp->mPauseButton->setEnabled(TRUE); +			previewp->mPlayButton->setVisible(FALSE); +			previewp->mPlayButton->setEnabled(FALSE); +		} + +	} + +	 + +} + +//----------------------------------------------------------------------------- +// onBtnPause() +//----------------------------------------------------------------------------- +void LLFloaterAnimPreview::onBtnPause(void* user_data) +{ +	LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)user_data; +	if (!previewp->getEnabled()) +		return; +	 +	if (previewp->mMotionID.notNull() && previewp->mAnimPreview) +	{ +		LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar(); + +		if(avatarp->isMotionActive(previewp->mMotionID)) +		{ +			if (!avatarp->areAnimationsPaused())  			{  				previewp->mPauseRequest = avatarp->requestPause(); +				 +				previewp->mPlayButton->setVisible(TRUE); +				previewp->mPlayButton->setEnabled(TRUE); +				previewp->mPauseButton->setVisible(FALSE); +				previewp->mPauseButton->setEnabled(FALSE);  			}  		}  	} + +  }  //----------------------------------------------------------------------------- @@ -595,6 +636,10 @@ void LLFloaterAnimPreview::onBtnStop(void* user_data)  		previewp->resetMotion();  		previewp->mPauseRequest = avatarp->requestPause();  	} +	previewp->mPlayButton->setVisible(TRUE); +	previewp->mPlayButton->setEnabled(TRUE); +	previewp->mPauseButton->setVisible(FALSE); +	previewp->mPauseButton->setEnabled(FALSE);  }  //----------------------------------------------------------------------------- @@ -912,43 +957,38 @@ void LLFloaterAnimPreview::refresh()  	{  		childShow("bad_animation_text");  		mPlayButton->setEnabled(FALSE); +		mPlayButton->setVisible(TRUE); +		mPauseButton->setVisible(FALSE);  		mStopButton->setEnabled(FALSE);  		childDisable("ok_btn");  	}  	else  	{  		childHide("bad_animation_text"); -		mPlayButton->setEnabled(TRUE);  		LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();  		if (avatarp->isMotionActive(mMotionID))  		{  			mStopButton->setEnabled(TRUE);  			LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(mMotionID); -			if (avatarp->areAnimationsPaused()) -			{ - -				mPlayButton->setImages(std::string("button_anim_play.tga"), -									   std::string("button_anim_play_selected.tga")); - -			} -			else +			if (!avatarp->areAnimationsPaused())  			{  				if (motionp)  				{  					F32 fraction_complete = motionp->getLastUpdateTime() / motionp->getDuration();  					childSetValue("playback_slider", fraction_complete);  				} -				mPlayButton->setImages(std::string("button_anim_pause.tga"), -									   std::string("button_anim_pause_selected.tga")); - +			 +				mPlayButton->setVisible(FALSE); +				mPauseButton->setVisible(TRUE); +				  			} +		  		}  		else  		{  			mPauseRequest = avatarp->requestPause(); -			mPlayButton->setImages(std::string("button_anim_play.tga"), -								   std::string("button_anim_play_selected.tga")); - +			//mPlayButton->setVisible(TRUE); +			//mPlayButton->setEnabled(TRUE);			  			mStopButton->setEnabled(TRUE); // stop also resets, leave enabled.  		}  		childEnable("ok_btn"); diff --git a/indra/newview/llfloateranimpreview.h b/indra/newview/llfloateranimpreview.h index f1c4a6b0d0..09b04f1f42 100644 --- a/indra/newview/llfloateranimpreview.h +++ b/indra/newview/llfloateranimpreview.h @@ -87,6 +87,7 @@ public:  	void refresh();  	static void	onBtnPlay(void*); +	static void	onBtnPause(void*);	  	static void	onBtnStop(void*);  	static void onSliderMove(LLUICtrl*, void*);  	static void onCommitBaseAnim(LLUICtrl*, void*); @@ -119,6 +120,7 @@ protected:  	S32					mLastMouseX;  	S32					mLastMouseY;  	LLButton*			mPlayButton; +	LLButton*			mPauseButton;	  	LLButton*			mStopButton;  	LLRect				mPreviewRect;  	LLRectf				mPreviewImageRect; diff --git a/indra/newview/skins/default/xui/en/floater_animation_preview.xml b/indra/newview/skins/default/xui/en/floater_animation_preview.xml index a8f875754e..4f4288b654 100644 --- a/indra/newview/skins/default/xui/en/floater_animation_preview.xml +++ b/indra/newview/skins/default/xui/en/floater_animation_preview.xml @@ -456,26 +456,43 @@ Maximum animation length is [MAX_LENGTH] seconds.       image_overlay="Play_Over"       image_unselected="SegmentedBtn_Left_Off"       image_selected="SegmentedBtn_Left_On_Selected" -        image_disabled_selected="SegmentedBtn_Left_Selected_Disabled" -        image_disabled="SegmentedBtn_Left_Disabled" -	image_pressed="SegmentedBtn_Left_Press" -	image_pressed_selected="SegmentedBtn_Left_Selected_Press" +	 image_disabled_selected="SegmentedBtn_Left_Selected_Disabled" +	 image_disabled="SegmentedBtn_Left_Disabled" +	 image_pressed="SegmentedBtn_Left_Press" +	 image_pressed_selected="SegmentedBtn_Left_Selected_Press"       layout="topleft"       left="10"       name="play_btn" -     tool_tip="Play/pause your animation" +     tool_tip="Play your animation"       top_pad="0"       width="23" />      <button +	 visible = "false" +     follows="top|right" +     height="23" +     image_overlay="Pause_Over" +     image_unselected="SegmentedBtn_Left_Off" +     image_selected="SegmentedBtn_Left_On_Selected" +	 image_disabled_selected="SegmentedBtn_Left_Selected_Disabled" +	 image_disabled="SegmentedBtn_Left_Disabled" +	 image_pressed="SegmentedBtn_Left_Press" +	 image_pressed_selected="SegmentedBtn_Left_Selected_Press" +     layout="topleft" +     left="10" +     name="pause_btn" +     tool_tip="Pause your animation" +     top_pad="-23" +     width="23" />	  +    <button       follows="top|right"       height="23"       image_overlay="StopReload_Over"       image_unselected="SegmentedBtn_Right_Off"       image_selected="SegmentedBtn_Right_On_Selected" -        image_disabled_selected="SegmentedBtn_Right_Selected_Disabled" -        image_disabled="SegmentedBtn_Right_Disabled" -	image_pressed="SegmentedBtn_Right_Press" -	image_pressed_selected="SegmentedBtn_Right_Selected_Press" +	 image_disabled_selected="SegmentedBtn_Right_Selected_Disabled" +	 image_disabled="SegmentedBtn_Right_Disabled" +	 image_pressed="SegmentedBtn_Right_Press" +	 image_pressed_selected="SegmentedBtn_Right_Selected_Press"       layout="topleft"       name="stop_btn"       tool_tip="Stop animation playback" | 
