diff options
| author | AlexanderP ProductEngine <apaschenko@productengine.com> | 2012-11-16 22:36:12 +0200 | 
|---|---|---|
| committer | AlexanderP ProductEngine <apaschenko@productengine.com> | 2012-11-16 22:36:12 +0200 | 
| commit | e298c2ded8e25a28127c668cf30a74a25c139041 (patch) | |
| tree | 0517349a365864905a68ba6bf9f66ee05ddc41f4 /indra/llui/llbutton.cpp | |
| parent | 50b69c3f97c0b58791f7dd67f8b2fbdc9e8ef503 (diff) | |
CHUI-487, CHUI-488 FIXED (Enable flashing FUI button behavior and Implement Flashing Conversations panel line item behavior): implemented FUI button flashing; clean up code
Diffstat (limited to 'indra/llui/llbutton.cpp')
| -rw-r--r-- | indra/llui/llbutton.cpp | 46 | 
1 files changed, 20 insertions, 26 deletions
| diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp index 3b9076ee54..8a34e221b1 100644 --- a/indra/llui/llbutton.cpp +++ b/indra/llui/llbutton.cpp @@ -170,17 +170,18 @@ LLButton::LLButton(const LLButton::Params& p)  	mMouseUpSignal(NULL),  	mHeldDownSignal(NULL),  	mUseDrawContextAlpha(p.use_draw_context_alpha), -	mHandleRightMouse(p.handle_right_mouse), -	mButtonFlashCount(p.button_flash_count), -	mButtonFlashRate(p.button_flash_rate) +	mHandleRightMouse(p.handle_right_mouse)  { +	// If optional parameter "p.button_flash_count" is not provided, LLFlashTimer will be +	// used instead it a "default" value from gSavedSettings.getS32("FlashCount")). +	// Likewise, missing "p.button_flash_rate" is replaced by gSavedSettings.getF32("FlashPeriod"); +	S32 flash_count = p.button_flash_count || 0; +	F32 flash_rate = p.button_flash_rate || 0.0; // +	mFlashingTimer = new LLFlashTimer ((LLFlashTimer::callback_t)NULL, flash_count, flash_rate); +  	static LLUICachedControl<S32> llbutton_orig_h_pad ("UIButtonOrigHPad", 0);  	static Params default_params(LLUICtrlFactory::getDefaultParams<LLButton>()); -if (this->getName() == "chat") -{ -bool q = false; -q = !q; -} +  	if (!p.label_selected.isProvided())  	{  		mSelectedLabel = mUnselectedLabel; @@ -271,6 +272,7 @@ LLButton::~LLButton()  	delete mMouseDownSignal;  	delete mMouseUpSignal;  	delete mHeldDownSignal; +	delete mFlashingTimer;  }  // HACK: Committing a button is the same as instantly clicking it. @@ -595,22 +597,11 @@ void LLButton::draw()  {  	static LLCachedControl<bool> sEnableButtonFlashing(*LLUI::sSettingGroups["config"], "EnableButtonFlashing", true);  	F32 alpha = mUseDrawContextAlpha ? getDrawContext().mAlpha : getCurrentTransparency(); -	bool flash = FALSE; -	if( mFlashing) -	{ -		if ( sEnableButtonFlashing) -		{ -			F32 elapsed = mFlashingTimer.getElapsedTimeF32(); -			S32 flash_count = S32(elapsed * mButtonFlashRate * 2.f); -			// flash on or off? -			flash = (flash_count % 2 == 0) || flash_count > S32((F32)mButtonFlashCount * 2.f); -		} -		else -		{ // otherwise just highlight button in flash color -			flash = true; -		} -	} +	mFlashing = mFlashingTimer->isFlashing(); + +	bool flash = mFlashing && +	                 (!sEnableButtonFlashing || mFlashingTimer->isHighlight());  	bool pressed_by_keyboard = FALSE;  	if (hasFocus()) @@ -955,10 +946,13 @@ void LLButton::setToggleState(BOOL b)  void LLButton::setFlashing( BOOL b )	  {  -	if ((bool)b != mFlashing) +	if (b) +	{ +		mFlashingTimer->startFlashing(); +	} +	else  	{ -		mFlashing = b;  -		mFlashingTimer.reset(); +		mFlashingTimer->stopFlashing();  	}  } | 
