| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | #include "..\enodes.h"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | e2d::EButtonToggle::EButtonToggle() | 
					
						
							|  |  |  |  | 	: EButton() | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	, m_bState(true) | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	, m_pNormalOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pMouseoverOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pSelectedOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pDisabledOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pNormalOff(nullptr) | 
					
						
							|  |  |  |  | 	, m_pMouseoverOff(nullptr) | 
					
						
							|  |  |  |  | 	, m_pSelectedOff(nullptr) | 
					
						
							|  |  |  |  | 	, m_pDisabledOff(nullptr) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | e2d::EButtonToggle::EButtonToggle(ENode * toggleOnNormal, ENode * toggleOffNormal, const BtnClkCallback & callback) | 
					
						
							| 
									
										
										
										
											2017-12-15 21:51:07 +08:00
										 |  |  |  | 	: EButton() | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	, m_bState(true) | 
					
						
							| 
									
										
										
										
											2017-12-15 21:51:07 +08:00
										 |  |  |  | 	, m_pNormalOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pMouseoverOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pSelectedOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pDisabledOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pNormalOff(nullptr) | 
					
						
							|  |  |  |  | 	, m_pMouseoverOff(nullptr) | 
					
						
							|  |  |  |  | 	, m_pSelectedOff(nullptr) | 
					
						
							|  |  |  |  | 	, m_pDisabledOff(nullptr) | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | { | 
					
						
							|  |  |  |  | 	this->setNormal(toggleOnNormal); | 
					
						
							|  |  |  |  | 	this->setNormalOff(toggleOffNormal); | 
					
						
							|  |  |  |  | 	this->setCallback(callback); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | e2d::EButtonToggle::EButtonToggle(ENode * toggleOnNormal, ENode * toggleOffNormal, ENode * toggleOnSelected, ENode * toggleOffSelected, const BtnClkCallback & callback) | 
					
						
							| 
									
										
										
										
											2017-12-15 21:51:07 +08:00
										 |  |  |  | 	: EButton() | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	, m_bState(true) | 
					
						
							| 
									
										
										
										
											2017-12-15 21:51:07 +08:00
										 |  |  |  | 	, m_pNormalOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pMouseoverOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pSelectedOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pDisabledOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pNormalOff(nullptr) | 
					
						
							|  |  |  |  | 	, m_pMouseoverOff(nullptr) | 
					
						
							|  |  |  |  | 	, m_pSelectedOff(nullptr) | 
					
						
							|  |  |  |  | 	, m_pDisabledOff(nullptr) | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | { | 
					
						
							|  |  |  |  | 	this->setNormal(toggleOnNormal); | 
					
						
							|  |  |  |  | 	this->setNormalOff(toggleOffNormal); | 
					
						
							|  |  |  |  | 	this->setSelected(toggleOnSelected); | 
					
						
							|  |  |  |  | 	this->setSelectedOff(toggleOffSelected); | 
					
						
							|  |  |  |  | 	this->setCallback(callback); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | e2d::EButtonToggle::EButtonToggle(ENode * toggleOnNormal, ENode * toggleOffNormal, ENode * toggleOnMouseOver, ENode * toggleOffMouseOver, ENode * toggleOnSelected, ENode * toggleOffSelected, const BtnClkCallback & callback) | 
					
						
							| 
									
										
										
										
											2017-12-15 21:51:07 +08:00
										 |  |  |  | 	: EButton() | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	, m_bState(true) | 
					
						
							| 
									
										
										
										
											2017-12-15 21:51:07 +08:00
										 |  |  |  | 	, m_pNormalOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pMouseoverOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pSelectedOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pDisabledOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pNormalOff(nullptr) | 
					
						
							|  |  |  |  | 	, m_pMouseoverOff(nullptr) | 
					
						
							|  |  |  |  | 	, m_pSelectedOff(nullptr) | 
					
						
							|  |  |  |  | 	, m_pDisabledOff(nullptr) | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | { | 
					
						
							|  |  |  |  | 	this->setNormal(toggleOnNormal); | 
					
						
							|  |  |  |  | 	this->setNormalOff(toggleOffNormal); | 
					
						
							|  |  |  |  | 	this->setMouseOver(toggleOnMouseOver); | 
					
						
							|  |  |  |  | 	this->setMouseOverOff(toggleOffMouseOver); | 
					
						
							|  |  |  |  | 	this->setSelected(toggleOnSelected); | 
					
						
							|  |  |  |  | 	this->setSelectedOff(toggleOffSelected); | 
					
						
							|  |  |  |  | 	this->setCallback(callback); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | e2d::EButtonToggle::EButtonToggle(ENode * toggleOnNormal, ENode * toggleOffNormal, ENode * toggleOnMouseOver, ENode * toggleOffMouseOver, ENode * toggleOnSelected, ENode * toggleOffSelected, ENode * toggleOnDisabled, ENode * toggleOffDisabled, const BtnClkCallback & callback) | 
					
						
							| 
									
										
										
										
											2017-12-15 21:51:07 +08:00
										 |  |  |  | 	: EButton() | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	, m_bState(true) | 
					
						
							| 
									
										
										
										
											2017-12-15 21:51:07 +08:00
										 |  |  |  | 	, m_pNormalOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pMouseoverOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pSelectedOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pDisabledOn(nullptr) | 
					
						
							|  |  |  |  | 	, m_pNormalOff(nullptr) | 
					
						
							|  |  |  |  | 	, m_pMouseoverOff(nullptr) | 
					
						
							|  |  |  |  | 	, m_pSelectedOff(nullptr) | 
					
						
							|  |  |  |  | 	, m_pDisabledOff(nullptr) | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | { | 
					
						
							|  |  |  |  | 	this->setNormal(toggleOnNormal); | 
					
						
							|  |  |  |  | 	this->setNormalOff(toggleOffNormal); | 
					
						
							|  |  |  |  | 	this->setMouseOver(toggleOnMouseOver); | 
					
						
							|  |  |  |  | 	this->setMouseOverOff(toggleOffMouseOver); | 
					
						
							|  |  |  |  | 	this->setSelected(toggleOnSelected); | 
					
						
							|  |  |  |  | 	this->setSelectedOff(toggleOffSelected); | 
					
						
							|  |  |  |  | 	this->setDisabled(toggleOnDisabled); | 
					
						
							|  |  |  |  | 	this->setDisabledOff(toggleOffDisabled); | 
					
						
							|  |  |  |  | 	this->setCallback(callback); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::EButtonToggle::toggle() | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2017-11-09 18:22:41 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ð<EFBFBD>ť״̬
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	setState(!m_bState); | 
					
						
							| 
									
										
										
										
											2017-11-09 18:22:41 +08:00
										 |  |  |  | 	// ִ<>лص<D0BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	if (m_Callback) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		m_Callback(); | 
					
						
							|  |  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | bool e2d::EButtonToggle::getState() const | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	return m_bState; | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | void e2d::EButtonToggle::setState(bool bState) | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	if (m_bState != bState) | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 		m_bState = bState; | 
					
						
							|  |  |  |  | 		_updateState(); | 
					
						
							| 
									
										
										
										
											2017-11-09 18:22:41 +08:00
										 |  |  |  | 		_updateVisiable(); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::EButtonToggle::setNormal(ENode * normal) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	if (normal != m_pNormalOn) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		// <20>Ƴ<EFBFBD><C6B3>ɵ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		if (m_pNormalOn) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			this->removeChild(m_pNormalOn); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		if (normal) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			this->addChild(normal); | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 			normal->setPivot(m_fPivotX, m_fPivotY); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 		} | 
					
						
							|  |  |  |  | 		m_pNormalOn = normal; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 		_updateState(); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 		_updateVisiable(); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::EButtonToggle::setMouseOver(ENode * mouseover) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	if (mouseover != m_pMouseoverOn) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		// <20>Ƴ<EFBFBD><C6B3>ɵ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		if (m_pMouseoverOn) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			this->removeChild(m_pMouseoverOn); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		if (mouseover) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			this->addChild(mouseover); | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 			mouseover->setPivot(m_fPivotX, m_fPivotY); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 		} | 
					
						
							|  |  |  |  | 		m_pMouseoverOn = mouseover; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 		_updateState(); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 		_updateVisiable(); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::EButtonToggle::setSelected(ENode * selected) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	if (selected != m_pSelectedOn) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		// <20>Ƴ<EFBFBD><C6B3>ɵ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		if (m_pSelectedOn) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			this->removeChild(m_pSelectedOn); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		if (selected) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			this->addChild(selected); | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 			selected->setPivot(m_fPivotX, m_fPivotY); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 		} | 
					
						
							|  |  |  |  | 		m_pSelectedOn = selected; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 		_updateState(); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 		_updateVisiable(); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::EButtonToggle::setDisabled(ENode * disabled) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	if (disabled != m_pDisabledOn) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		// <20>Ƴ<EFBFBD><C6B3>ɵ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		if (m_pDisabledOn) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			this->removeChild(m_pDisabledOn); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		if (disabled) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			this->addChild(disabled); | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 			disabled->setPivot(m_fPivotX, m_fPivotY); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 		} | 
					
						
							|  |  |  |  | 		m_pDisabledOn = disabled; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 		_updateState(); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 		_updateVisiable(); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::EButtonToggle::setNormalOff(ENode * normal) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	if (normal != m_pNormalOff) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		// <20>Ƴ<EFBFBD><C6B3>ɵ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		if (m_pNormalOff) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			this->removeChild(m_pNormalOff); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		if (normal) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			this->addChild(normal); | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 			normal->setPivot(m_fPivotX, m_fPivotY); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 		} | 
					
						
							|  |  |  |  | 		m_pNormalOff = normal; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 		_updateState(); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 		_updateVisiable(); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::EButtonToggle::setMouseOverOff(ENode * mouseover) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	if (mouseover != m_pMouseoverOff) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		// <20>Ƴ<EFBFBD><C6B3>ɵ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		if (m_pMouseoverOff) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			this->removeChild(m_pMouseoverOff); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		if (mouseover) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			this->addChild(mouseover); | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 			mouseover->setPivot(m_fPivotX, m_fPivotY); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 		} | 
					
						
							|  |  |  |  | 		m_pMouseoverOff = mouseover; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 		_updateState(); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 		_updateVisiable(); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::EButtonToggle::setSelectedOff(ENode * selected) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	if (selected != m_pSelectedOff) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		// <20>Ƴ<EFBFBD><C6B3>ɵ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		if (m_pSelectedOff) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			this->removeChild(m_pSelectedOff); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		if (selected) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			this->addChild(selected); | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 			selected->setPivot(m_fPivotX, m_fPivotY); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 		} | 
					
						
							|  |  |  |  | 		m_pSelectedOff = selected; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 		_updateState(); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 		_updateVisiable(); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::EButtonToggle::setDisabledOff(ENode * disabled) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	if (disabled != m_pDisabledOff) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		// <20>Ƴ<EFBFBD><C6B3>ɵ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		if (m_pDisabledOff) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			this->removeChild(m_pDisabledOff); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		if (disabled) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			this->addChild(disabled); | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 			disabled->setPivot(m_fPivotX, m_fPivotY); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 		} | 
					
						
							|  |  |  |  | 		m_pDisabledOff = disabled; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 		_updateState(); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 		_updateVisiable(); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | void e2d::EButtonToggle::setPivotX(float pivotX) | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	ENode::setPivotX(pivotX); | 
					
						
							|  |  |  |  | 	if (m_pNormalOn) m_pNormalOn->setPivotX(pivotX); | 
					
						
							|  |  |  |  | 	if (m_pMouseoverOn) m_pMouseoverOn->setPivotX(pivotX); | 
					
						
							|  |  |  |  | 	if (m_pSelectedOn) m_pSelectedOn->setPivotX(pivotX); | 
					
						
							|  |  |  |  | 	if (m_pDisabledOn) m_pDisabledOn->setPivotX(pivotX); | 
					
						
							|  |  |  |  | 	if (m_pNormalOff) m_pNormalOff->setPivotX(pivotX); | 
					
						
							|  |  |  |  | 	if (m_pMouseoverOff) m_pMouseoverOff->setPivotX(pivotX); | 
					
						
							|  |  |  |  | 	if (m_pSelectedOff) m_pSelectedOff->setPivotX(pivotX); | 
					
						
							|  |  |  |  | 	if (m_pDisabledOff) m_pDisabledOff->setPivotX(pivotX); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::EButtonToggle::setPivotY(float pivotY) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	ENode::setPivotY(pivotY); | 
					
						
							|  |  |  |  | 	if (m_pNormalOn) m_pNormalOn->setPivotY(pivotY); | 
					
						
							|  |  |  |  | 	if (m_pMouseoverOn) m_pMouseoverOn->setPivotY(pivotY); | 
					
						
							|  |  |  |  | 	if (m_pSelectedOn) m_pSelectedOn->setPivotY(pivotY); | 
					
						
							|  |  |  |  | 	if (m_pDisabledOn) m_pDisabledOn->setPivotY(pivotY); | 
					
						
							|  |  |  |  | 	if (m_pNormalOff) m_pNormalOff->setPivotY(pivotY); | 
					
						
							|  |  |  |  | 	if (m_pMouseoverOff) m_pMouseoverOff->setPivotY(pivotY); | 
					
						
							|  |  |  |  | 	if (m_pSelectedOff) m_pSelectedOff->setPivotY(pivotY); | 
					
						
							|  |  |  |  | 	if (m_pDisabledOff) m_pDisabledOff->setPivotY(pivotY); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::EButtonToggle::setPivot(float pivotX, float pivotY) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	ENode::setPivot(pivotX, pivotY); | 
					
						
							|  |  |  |  | 	if (m_pNormalOn) m_pNormalOn->setPivot(pivotX, pivotY); | 
					
						
							|  |  |  |  | 	if (m_pMouseoverOn) m_pMouseoverOn->setPivot(pivotX, pivotY); | 
					
						
							|  |  |  |  | 	if (m_pSelectedOn) m_pSelectedOn->setPivot(pivotX, pivotY); | 
					
						
							|  |  |  |  | 	if (m_pDisabledOn) m_pDisabledOn->setPivot(pivotX, pivotY); | 
					
						
							|  |  |  |  | 	if (m_pNormalOff) m_pNormalOff->setPivot(pivotX, pivotY); | 
					
						
							|  |  |  |  | 	if (m_pMouseoverOff) m_pMouseoverOff->setPivot(pivotX, pivotY); | 
					
						
							|  |  |  |  | 	if (m_pSelectedOff) m_pSelectedOff->setPivot(pivotX, pivotY); | 
					
						
							|  |  |  |  | 	if (m_pDisabledOff) m_pDisabledOff->setPivot(pivotX, pivotY); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::EButtonToggle::_updateState() | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	if (m_bState) | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		m_pNormal = m_pNormalOn; | 
					
						
							|  |  |  |  | 		m_pMouseover = m_pMouseoverOn; | 
					
						
							|  |  |  |  | 		m_pSelected = m_pSelectedOn; | 
					
						
							|  |  |  |  | 		m_pDisabled = m_pDisabledOn; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 		if (m_pNormalOff) m_pNormalOff->setVisiable(false); | 
					
						
							|  |  |  |  | 		if (m_pMouseoverOff) m_pMouseoverOff->setVisiable(false); | 
					
						
							|  |  |  |  | 		if (m_pSelectedOff) m_pSelectedOff->setVisiable(false); | 
					
						
							|  |  |  |  | 		if (m_pDisabledOff) m_pDisabledOff->setVisiable(false); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 	else | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		m_pNormal = m_pNormalOff; | 
					
						
							|  |  |  |  | 		m_pMouseover = m_pMouseoverOff; | 
					
						
							|  |  |  |  | 		m_pSelected = m_pSelectedOff; | 
					
						
							|  |  |  |  | 		m_pDisabled = m_pDisabledOff; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 		if (m_pNormalOn) m_pNormalOn->setVisiable(false); | 
					
						
							|  |  |  |  | 		if (m_pMouseoverOn) m_pMouseoverOn->setVisiable(false); | 
					
						
							|  |  |  |  | 		if (m_pSelectedOn) m_pSelectedOn->setVisiable(false); | 
					
						
							|  |  |  |  | 		if (m_pDisabledOn) m_pDisabledOn->setVisiable(false); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::EButtonToggle::_runCallback() | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	m_bState = !m_bState; | 
					
						
							|  |  |  |  | 	_updateState(); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	if (m_Callback) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		m_Callback(); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } |