| 
									
										
										
										
											2017-11-07 23:32:44 +08:00
										 |  |  |  | #include "..\enodes.h"
 | 
					
						
							| 
									
										
										
										
											2017-11-08 11:18:11 +08:00
										 |  |  |  | #include "..\elisteners.h"
 | 
					
						
							| 
									
										
										
										
											2017-11-07 23:32:44 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | e2d::EMenu::EMenu() | 
					
						
							|  |  |  |  | 	: m_bEnable(true) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | e2d::EMenu::EMenu(int number, EButton * button1, ...) | 
					
						
							| 
									
										
										
										
											2017-12-15 21:51:07 +08:00
										 |  |  |  | 	: m_bEnable(true) | 
					
						
							| 
									
										
										
										
											2017-11-07 23:32:44 +08:00
										 |  |  |  | { | 
					
						
							|  |  |  |  | 	EButton ** ppButton = &button1; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	while (number > 0) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		this->addButton(*ppButton); | 
					
						
							|  |  |  |  | 		ppButton++; | 
					
						
							|  |  |  |  | 		number--; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | bool e2d::EMenu::isEnable() const | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	return m_bEnable; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | size_t e2d::EMenu::getButtonCount() const | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	return m_vButtons.size(); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::EMenu::setEnable(bool enable) | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2017-11-08 11:18:11 +08:00
										 |  |  |  | 	if (m_bEnable != enable) | 
					
						
							| 
									
										
										
										
											2017-11-07 23:32:44 +08:00
										 |  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2017-11-08 11:18:11 +08:00
										 |  |  |  | 		m_bEnable = enable; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-15 21:51:07 +08:00
										 |  |  |  | 		for (auto button = m_vButtons.begin(); button != m_vButtons.end(); button++) | 
					
						
							| 
									
										
										
										
											2017-11-08 11:18:11 +08:00
										 |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			if (enable) | 
					
						
							|  |  |  |  | 			{ | 
					
						
							| 
									
										
										
										
											2017-12-15 21:51:07 +08:00
										 |  |  |  | 				(*button)->m_pListener->start(); | 
					
						
							| 
									
										
										
										
											2017-11-08 11:18:11 +08:00
										 |  |  |  | 			} | 
					
						
							|  |  |  |  | 			else | 
					
						
							|  |  |  |  | 			{ | 
					
						
							| 
									
										
										
										
											2017-12-15 21:51:07 +08:00
										 |  |  |  | 				(*button)->m_pListener->stop(); | 
					
						
							| 
									
										
										
										
											2017-11-08 11:18:11 +08:00
										 |  |  |  | 			} | 
					
						
							|  |  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2017-11-07 23:32:44 +08:00
										 |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | void e2d::EMenu::addButton(EButton * button) | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2017-11-08 11:18:11 +08:00
										 |  |  |  | 	if (button) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		this->addChild(button); | 
					
						
							|  |  |  |  | 		m_vButtons.push_back(button); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 		if (m_bEnable) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			button->m_pListener->start(); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		else | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			button->m_pListener->stop(); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2017-11-07 23:32:44 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | bool e2d::EMenu::removeButton(EButton * button) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	if (m_vButtons.empty()) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		return false; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	this->removeChild(button); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	if (button) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		size_t size = m_vButtons.size(); | 
					
						
							|  |  |  |  | 		for (size_t i = 0; i < size; i++) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			if (m_vButtons[i] == button) | 
					
						
							|  |  |  |  | 			{ | 
					
						
							| 
									
										
										
										
											2017-11-08 11:18:11 +08:00
										 |  |  |  | 				// <20>Ƴ<EFBFBD><C6B3><EFBFBD>ťǰ<C5A5><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 				button->m_pListener->start(); | 
					
						
							| 
									
										
										
										
											2017-11-07 23:32:44 +08:00
										 |  |  |  | 				m_vButtons.erase(m_vButtons.begin() + i); | 
					
						
							|  |  |  |  | 				return true; | 
					
						
							|  |  |  |  | 			} | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 	return false; | 
					
						
							|  |  |  |  | } |