1 #include "menulist.h" 2 #include "actormanager.h" 3 update()4void MenuList::update() 5 { 6 } 7 shutdown()8void MenuList::shutdown() 9 { 10 /* 11 list<MenuElement*>::iterator tmp_iter; 12 for(tmp_iter=elements.begin();tmp_iter!=elements.end();tmp_iter++) 13 g->actormanager->erase(*tmp_iter); 14 */ 15 } 16 add(MenuElement * e)17void MenuList::add(MenuElement *e) 18 { 19 elements.push_back(e); 20 } 21 next()22MenuElement* MenuList::next() 23 { 24 MenuElement* tmp; 25 26 //Si es el ultimo devolvemos NULL 27 if(actual_el==elements.size() || elements.size()==0) 28 return NULL; 29 30 tmp=elements[actual_el]; 31 actual_el++; 32 return tmp; 33 } 34 current()35MenuElement* MenuList::current() 36 { 37 //Devuelve el elemento actual sin avanzar 38 if(actual_el==elements.size() || elements.size()==0) 39 return NULL; 40 return elements[actual_el]; 41 } 42 addMouse(MenuMouseElement * e)43void MenuList::addMouse(MenuMouseElement *e) 44 { 45 mouse.push_back(e); 46 } 47 nextMouse()48MenuMouseElement* MenuList::nextMouse() 49 { 50 MenuMouseElement* tmp; 51 52 //Si es el ultimo devolvemos NULL 53 if(actual_mouse==mouse.size() || mouse.size()==0) 54 return NULL; 55 56 tmp=mouse[actual_mouse]; 57 actual_mouse++; 58 return tmp; 59 } 60 currentMouse()61MenuMouseElement* MenuList::currentMouse() 62 { 63 //Devuelve el elemento actual sin avanzar 64 if(actual_mouse==mouse.size() || mouse.size()==0) 65 return NULL; 66 return mouse[actual_mouse]; 67 } 68 goDown()69void MenuList::goDown() 70 { 71 if(elements.size()==0) 72 return; 73 74 if(!selectedIn()) 75 return; 76 77 elements[selected]->getSignal(MenuElement::UNSELECTED); 78 79 selected++; 80 if(selected==(signed)elements.size()) 81 selected=0; 82 83 elements[selected]->getSignal(MenuElement::SELECTED); 84 } 85 goUp()86void MenuList::goUp() 87 { 88 if(elements.size()==0) 89 return; 90 91 if(!selectedIn()) 92 return; 93 94 elements[selected]->getSignal(MenuElement::UNSELECTED); 95 96 if(selected==0) 97 selected=elements.size(); 98 selected--; 99 100 elements[selected]->getSignal(MenuElement::SELECTED); 101 } 102 goLeft()103void MenuList::goLeft() 104 { 105 if(elements.size()==0) 106 return; 107 108 if(!selectedIn()) 109 return; 110 111 elements[selected]->getSignal(MenuElement::PRESS_LEFT); 112 } 113 goRight()114void MenuList::goRight() 115 { 116 if(elements.size()==0) 117 return; 118 119 if(!selectedIn()) 120 return; 121 122 elements[selected]->getSignal(MenuElement::PRESS_RIGHT); 123 } 124 pressEnter()125void MenuList::pressEnter() 126 { 127 if(elements.size()==0) 128 return; 129 130 if(!selectedIn()) 131 return; 132 133 elements[selected]->getSignal(MenuElement::PRESS_ENTER); 134 } 135 selectedIn()136bool MenuList::selectedIn() 137 { 138 if(!is_selected) 139 { 140 is_selected=true; 141 selected=0; 142 elements[selected]->getSignal(MenuElement::SELECTED); 143 return false; 144 } 145 return true; 146 } 147 selectedOut()148bool MenuList::selectedOut() 149 { 150 if(is_selected) 151 { 152 is_selected=false; 153 elements[selected]->getSignal(MenuElement::UNSELECTED); 154 return false; 155 } 156 return true; 157 } 158